diff --git a/src/main/java/org/eclipse/tractusx/ssi/examples/ResolveDIDDoc.java b/src/main/java/org/eclipse/tractusx/ssi/examples/ResolveDIDDoc.java index 4f673fbb..0f0d8dd5 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/examples/ResolveDIDDoc.java +++ b/src/main/java/org/eclipse/tractusx/ssi/examples/ResolveDIDDoc.java @@ -37,6 +37,7 @@ public class ResolveDIDDoc { * * @param didUrl the did url * @return the did document + * @throws org.eclipse.tractusx.ssi.lib.did.resolver.DidResolverException * @throws DidDocumentResolverNotRegisteredException the did document resolver not registered * exception */ diff --git a/src/main/java/org/eclipse/tractusx/ssi/examples/Verification.java b/src/main/java/org/eclipse/tractusx/ssi/examples/Verification.java index 7d87273a..f3818c6d 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/examples/Verification.java +++ b/src/main/java/org/eclipse/tractusx/ssi/examples/Verification.java @@ -33,6 +33,7 @@ import org.eclipse.tractusx.ssi.lib.exception.proof.NoVerificationKeyFoundException; import org.eclipse.tractusx.ssi.lib.exception.proof.SignatureParseException; import org.eclipse.tractusx.ssi.lib.exception.proof.SignatureVerificationException; +import org.eclipse.tractusx.ssi.lib.exception.proof.SignatureVerificationFailedException; import org.eclipse.tractusx.ssi.lib.exception.proof.UnsupportedSignatureTypeException; import org.eclipse.tractusx.ssi.lib.exception.proof.UnsupportedVerificationMethodException; import org.eclipse.tractusx.ssi.lib.jwt.SignedJwtVerifier; @@ -79,11 +80,13 @@ public static void verifyJWT(SignedJWT jwt) * @throws DidParseException * @throws SignatureParseException * @throws UnsupportedSignatureTypeException + * @throws SignatureVerificationFailedException */ public static boolean verifyED21559LD(VerifiableCredential verifiableCredential) throws UnsupportedSignatureTypeException, SignatureParseException, DidParseException, InvalidPublicKeyFormatException, SignatureVerificationException, - NoVerificationKeyFoundException, TransformJsonLdException { + NoVerificationKeyFoundException, TransformJsonLdException, + SignatureVerificationFailedException { // DID Resolver constructor params DidWebParser didParser = new DidWebParser(); var httpClient = HttpClient.newHttpClient(); @@ -97,7 +100,8 @@ public static boolean verifyED21559LD(VerifiableCredential verifiableCredential) public static boolean verifyJWSLD(VerifiableCredential verifiableCredential) throws UnsupportedSignatureTypeException, SignatureParseException, DidParseException, InvalidPublicKeyFormatException, SignatureVerificationException, - NoVerificationKeyFoundException, TransformJsonLdException { + NoVerificationKeyFoundException, TransformJsonLdException, + SignatureVerificationFailedException { // DID Resolver constructor params DidWebParser didParser = new DidWebParser(); var httpClient = HttpClient.newHttpClient(); diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/crypt/x21559/x21559Generator.java b/src/main/java/org/eclipse/tractusx/ssi/lib/crypt/x21559/x21559Generator.java index 7428488c..d0416108 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/crypt/x21559/x21559Generator.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/crypt/x21559/x21559Generator.java @@ -29,6 +29,8 @@ import org.bouncycastle.crypto.params.Ed25519PublicKeyParameters; import org.eclipse.tractusx.ssi.lib.crypt.IKeyGenerator; import org.eclipse.tractusx.ssi.lib.crypt.KeyPair; +import org.eclipse.tractusx.ssi.lib.exception.key.InvalidPrivateKeyFormatException; +import org.eclipse.tractusx.ssi.lib.exception.key.InvalidPublicKeyFormatException; import org.eclipse.tractusx.ssi.lib.exception.key.KeyGenerationException; /** X21559 key generator. */ @@ -47,10 +49,17 @@ public KeyPair generateKey() throws KeyGenerationException { Ed25519PublicKeyParameters publicKey = (Ed25519PublicKeyParameters) keyPair.getPublic(); x21559PrivateKey x21559PrivateKey; - x21559PrivateKey = new x21559PrivateKey(privateKey.getEncoded()); - + try { + x21559PrivateKey = new x21559PrivateKey(privateKey.getEncoded()); + } catch (InvalidPrivateKeyFormatException e) { + throw new KeyGenerationException(e.getCause()); + } x21559PublicKey x21559PublicKey; - x21559PublicKey = new x21559PublicKey(publicKey.getEncoded()); + try { + x21559PublicKey = new x21559PublicKey(publicKey.getEncoded()); + } catch (InvalidPublicKeyFormatException e) { + throw new KeyGenerationException(e.getCause()); + } return new KeyPair(x21559PublicKey, x21559PrivateKey); } } diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/SSIException.class b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/SSIException.class new file mode 100644 index 00000000..0fad65c9 Binary files /dev/null and b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/SSIException.class differ diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/SSIException.java b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/SSIException.java index 8118e6f9..e99554e3 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/SSIException.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/SSIException.java @@ -24,8 +24,6 @@ /** The type SSI exception. */ public class SSIException extends Exception { - private static final long serialVersionUID = -6426089110128695365L; - /** * Instantiates a new SSI exception. * diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/did/resolver/DidResolverException.java b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/SignatureVerificationFailedException.java similarity index 69% rename from src/main/java/org/eclipse/tractusx/ssi/lib/did/resolver/DidResolverException.java rename to src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/SignatureVerificationFailedException.java index f8812602..9bee64c7 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/did/resolver/DidResolverException.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/SignatureVerificationFailedException.java @@ -19,51 +19,50 @@ * ******************************************************************************* */ -package org.eclipse.tractusx.ssi.lib.did.resolver; +package org.eclipse.tractusx.ssi.lib.exception.proof; import org.eclipse.tractusx.ssi.lib.exception.SSIException; -/** The type Did resolver exception. */ -public class DidResolverException extends SSIException { +/** The type Signature Verification Failed exception. */ +public class SignatureVerificationFailedException extends SSIException { /** - * Instantiates a new Did resolver exception. + * Instantiates a new signature verification failed exception. * * @param message the message */ - public DidResolverException(String message) { + public SignatureVerificationFailedException(String message) { super(message); } /** - * Instantiates a new Did resolver exception from another exception with a message. + * Instantiates a new signature verification failed exception. * * @param message the message * @param cause the cause */ - public DidResolverException(String message, Throwable cause) { + protected SignatureVerificationFailedException(String message, Throwable cause) { super(message, cause); } /** - * Instantiates a new Did resolver exception from another exception. + * Instantiates a new signature verification failed exception. * * @param cause the cause */ - public DidResolverException(Throwable cause) { + protected SignatureVerificationFailedException(Throwable cause) { super(cause); } /** - * Instantiates a new Did resolver exception with a message from another exception, allowing for - * disabling and printing the stack trace. + * Instantiates a new signature verification failed exception. * * @param message the message * @param cause the cause * @param enableSuppression the enable suppression * @param writableStackTrace the writable stack trace */ - public DidResolverException( + protected SignatureVerificationFailedException( String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { super(message, cause, enableSuppression, writableStackTrace); } diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/UnsupportedSignatureTypeException.class b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/UnsupportedSignatureTypeException.class new file mode 100644 index 00000000..1eda9c0a Binary files /dev/null and b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/UnsupportedSignatureTypeException.class differ diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/UnsupportedSignatureTypeException.java b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/UnsupportedSignatureTypeException.java index b5b966bb..a63b7241 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/UnsupportedSignatureTypeException.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/UnsupportedSignatureTypeException.java @@ -24,6 +24,8 @@ /** The type Unsupported signature type exception. */ public class UnsupportedSignatureTypeException extends SignatureVerificationException { + private static final long serialVersionUID = 6406987797507777929L; + /** * Instantiates a new unsupported signature type exception. * diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/UnsupportedVerificationMethodException.java b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/UnsupportedVerificationMethodException.java index 7b747d43..04f81b7a 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/UnsupportedVerificationMethodException.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/UnsupportedVerificationMethodException.java @@ -27,6 +27,8 @@ /** The type Unsupported verification method exception. */ public class UnsupportedVerificationMethodException extends SignatureVerificationException { + private static final long serialVersionUID = 6406987797507777929L; + /** The verification method */ @Getter private final VerificationMethod method; diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/jwt/SignedJwtValidator.java b/src/main/java/org/eclipse/tractusx/ssi/lib/jwt/SignedJwtValidator.java index 4f22a752..9cae9c47 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/jwt/SignedJwtValidator.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/jwt/SignedJwtValidator.java @@ -46,7 +46,7 @@ public void validateDate(SignedJWT jwt) throws JwtExpiredException, SignaturePar } public void validateAudiences(SignedJWT jwt, String expectedAudience) - throws JwtAudienceCheckException, SignatureParseException { + throws SignatureParseException, JwtAudienceCheckException { List audiences; try { audiences = jwt.getJWTClaimsSet().getAudience(); diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/jwt/SignedJwtVerifier.java b/src/main/java/org/eclipse/tractusx/ssi/lib/jwt/SignedJwtVerifier.java index 46ee3c69..715ead43 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/jwt/SignedJwtVerifier.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/jwt/SignedJwtVerifier.java @@ -28,6 +28,7 @@ import com.nimbusds.jose.util.Base64URL; import com.nimbusds.jwt.JWTClaimsSet; import com.nimbusds.jwt.SignedJWT; +import java.security.SignatureException; import java.text.ParseException; import java.util.List; import lombok.RequiredArgsConstructor;