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 00cfa3cb..4f673fbb 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/examples/ResolveDIDDoc.java +++ b/src/main/java/org/eclipse/tractusx/ssi/examples/ResolveDIDDoc.java @@ -22,13 +22,11 @@ package org.eclipse.tractusx.ssi.examples; import java.net.http.HttpClient; -import org.eclipse.tractusx.ssi.lib.did.resolver.DidResolverException; import org.eclipse.tractusx.ssi.lib.did.web.DidWebFactory; import org.eclipse.tractusx.ssi.lib.did.web.DidWebResolver; import org.eclipse.tractusx.ssi.lib.did.web.util.DidWebParser; import org.eclipse.tractusx.ssi.lib.exception.did.DidParseException; -import org.eclipse.tractusx.ssi.lib.exception.resolver.DidDocumentResolverAlreadyRegisteredException; -import org.eclipse.tractusx.ssi.lib.exception.resolver.DidDocumentResolverNotRegisteredException; +import org.eclipse.tractusx.ssi.lib.exception.did.DidResolverException; import org.eclipse.tractusx.ssi.lib.model.did.Did; import org.eclipse.tractusx.ssi.lib.model.did.DidDocument; @@ -43,8 +41,7 @@ public class ResolveDIDDoc { * exception */ public static DidDocument ResovleDocument(String didUrl) - throws DidDocumentResolverNotRegisteredException, - DidDocumentResolverAlreadyRegisteredException, DidParseException, DidResolverException { + throws DidParseException, DidResolverException { // DID Resolver Constracture params DidWebParser didParser = new DidWebParser(); diff --git a/src/main/java/org/eclipse/tractusx/ssi/examples/Validation.java b/src/main/java/org/eclipse/tractusx/ssi/examples/Validation.java index 0ba2b497..2dd7072e 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/examples/Validation.java +++ b/src/main/java/org/eclipse/tractusx/ssi/examples/Validation.java @@ -22,7 +22,7 @@ package org.eclipse.tractusx.ssi.examples; import com.nimbusds.jwt.SignedJWT; -import org.eclipse.tractusx.ssi.lib.exception.proof.JwtAudienceCheckFailedException; +import org.eclipse.tractusx.ssi.lib.exception.proof.JwtAudienceCheckException; import org.eclipse.tractusx.ssi.lib.exception.proof.JwtExpiredException; import org.eclipse.tractusx.ssi.lib.exception.proof.SignatureParseException; import org.eclipse.tractusx.ssi.lib.jwt.SignedJwtValidator; @@ -34,11 +34,11 @@ public class Validation { * * @param signedJWT the signed jwt * @param audience the audience - * @throws JwtAudienceCheckFailedException the jwt audience check failed exception + * @throws JwtAudienceCheckException the jwt audience check failed exception * @throws JwtExpiredException the jwt expired exception */ public static void validateJWTDate(SignedJWT signedJWT, String audience) - throws JwtAudienceCheckFailedException, JwtExpiredException, SignatureParseException { + throws JwtAudienceCheckException, JwtExpiredException, SignatureParseException { SignedJwtValidator jwtValidator = new SignedJwtValidator(); jwtValidator.validateDate(signedJWT); } @@ -48,11 +48,11 @@ public static void validateJWTDate(SignedJWT signedJWT, String audience) * * @param signedJWT the signed jwt * @param audience the audience - * @throws JwtAudienceCheckFailedException the jwt audience check failed exception + * @throws JwtAudienceCheckException the jwt audience check failed exception * @throws JwtExpiredException the jwt expired exception */ public static void validateJWTAudiences(SignedJWT signedJWT, String audience) - throws JwtAudienceCheckFailedException, JwtExpiredException, SignatureParseException { + throws JwtAudienceCheckException, JwtExpiredException, SignatureParseException { SignedJwtValidator jwtValidator = new SignedJwtValidator(); jwtValidator.validateAudiences(signedJWT, audience); } 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 846b0015..7d87273a 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/examples/Verification.java +++ b/src/main/java/org/eclipse/tractusx/ssi/examples/Verification.java @@ -24,18 +24,17 @@ import com.nimbusds.jwt.SignedJWT; import java.net.http.HttpClient; import java.security.SignatureException; -import org.eclipse.tractusx.ssi.lib.did.resolver.DidResolverException; import org.eclipse.tractusx.ssi.lib.did.web.DidWebResolver; import org.eclipse.tractusx.ssi.lib.did.web.util.DidWebParser; import org.eclipse.tractusx.ssi.lib.exception.did.DidParseException; +import org.eclipse.tractusx.ssi.lib.exception.did.DidResolverException; import org.eclipse.tractusx.ssi.lib.exception.json.TransformJsonLdException; import org.eclipse.tractusx.ssi.lib.exception.key.InvalidPublicKeyFormatException; 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.SignatureVerificationFailedException; +import org.eclipse.tractusx.ssi.lib.exception.proof.SignatureVerificationException; import org.eclipse.tractusx.ssi.lib.exception.proof.UnsupportedSignatureTypeException; import org.eclipse.tractusx.ssi.lib.exception.proof.UnsupportedVerificationMethodException; -import org.eclipse.tractusx.ssi.lib.exception.resolver.DidDocumentResolverNotRegisteredException; import org.eclipse.tractusx.ssi.lib.jwt.SignedJwtVerifier; import org.eclipse.tractusx.ssi.lib.model.verifiable.credential.VerifiableCredential; import org.eclipse.tractusx.ssi.lib.proof.LinkedDataProofValidation; @@ -47,14 +46,15 @@ * @throws DidParseException * @throws SignatureException * @throws DidResolverException - * @throws SignatureVerificationFailedException + * @throws SignatureVerificationException * @throws UnsupportedVerificationMethodException */ public class Verification { public static void verifyJWT(SignedJWT jwt) throws DidParseException, SignatureException, DidResolverException, - SignatureVerificationFailedException, UnsupportedVerificationMethodException { + SignatureVerificationException, UnsupportedVerificationMethodException, + SignatureParseException { // DID Resolver constructor params DidWebParser didParser = new DidWebParser(); var httpClient = HttpClient.newHttpClient(); @@ -74,7 +74,7 @@ public static void verifyJWT(SignedJWT jwt) * @throws DidDocumentResolverNotRegisteredException * @throws TransformJsonLdException * @throws NoVerificationKeyFoundException - * @throws SignatureVerificationFailedException + * @throws SignatureVerificationException * @throws InvalidPublicKeyFormatException * @throws DidParseException * @throws SignatureParseException @@ -82,9 +82,8 @@ public static void verifyJWT(SignedJWT jwt) */ public static boolean verifyED21559LD(VerifiableCredential verifiableCredential) throws UnsupportedSignatureTypeException, SignatureParseException, DidParseException, - InvalidPublicKeyFormatException, SignatureVerificationFailedException, - NoVerificationKeyFoundException, TransformJsonLdException, - DidDocumentResolverNotRegisteredException { + InvalidPublicKeyFormatException, SignatureVerificationException, + NoVerificationKeyFoundException, TransformJsonLdException { // DID Resolver constructor params DidWebParser didParser = new DidWebParser(); var httpClient = HttpClient.newHttpClient(); @@ -97,9 +96,8 @@ public static boolean verifyED21559LD(VerifiableCredential verifiableCredential) public static boolean verifyJWSLD(VerifiableCredential verifiableCredential) throws UnsupportedSignatureTypeException, SignatureParseException, DidParseException, - InvalidPublicKeyFormatException, SignatureVerificationFailedException, - NoVerificationKeyFoundException, DidDocumentResolverNotRegisteredException, - TransformJsonLdException { + InvalidPublicKeyFormatException, SignatureVerificationException, + NoVerificationKeyFoundException, TransformJsonLdException { // 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 d0416108..7428488c 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,8 +29,6 @@ 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. */ @@ -49,17 +47,10 @@ public KeyPair generateKey() throws KeyGenerationException { Ed25519PublicKeyParameters publicKey = (Ed25519PublicKeyParameters) keyPair.getPublic(); x21559PrivateKey x21559PrivateKey; - try { - x21559PrivateKey = new x21559PrivateKey(privateKey.getEncoded()); - } catch (InvalidPrivateKeyFormatException e) { - throw new KeyGenerationException(e.getCause()); - } + x21559PrivateKey = new x21559PrivateKey(privateKey.getEncoded()); + x21559PublicKey x21559PublicKey; - try { - x21559PublicKey = new x21559PublicKey(publicKey.getEncoded()); - } catch (InvalidPublicKeyFormatException e) { - throw new KeyGenerationException(e.getCause()); - } + x21559PublicKey = new x21559PublicKey(publicKey.getEncoded()); return new KeyPair(x21559PublicKey, x21559PrivateKey); } } diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/did/resolver/CompositeDidResolver.java b/src/main/java/org/eclipse/tractusx/ssi/lib/did/resolver/CompositeDidResolver.java index cd7f2618..fc88aefa 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/did/resolver/CompositeDidResolver.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/did/resolver/CompositeDidResolver.java @@ -21,6 +21,7 @@ package org.eclipse.tractusx.ssi.lib.did.resolver; import java.util.Arrays; +import org.eclipse.tractusx.ssi.lib.exception.did.DidResolverException; import org.eclipse.tractusx.ssi.lib.model.did.Did; import org.eclipse.tractusx.ssi.lib.model.did.DidDocument; diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/did/resolver/DidResolver.java b/src/main/java/org/eclipse/tractusx/ssi/lib/did/resolver/DidResolver.java index 68048e35..a86c10f9 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/did/resolver/DidResolver.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/did/resolver/DidResolver.java @@ -22,6 +22,7 @@ package org.eclipse.tractusx.ssi.lib.did.resolver; import org.eclipse.tractusx.ssi.lib.exception.did.DidParseException; +import org.eclipse.tractusx.ssi.lib.exception.did.DidResolverException; import org.eclipse.tractusx.ssi.lib.model.did.Did; import org.eclipse.tractusx.ssi.lib.model.did.DidDocument; diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/did/resolver/DidUniResolver.java b/src/main/java/org/eclipse/tractusx/ssi/lib/did/resolver/DidUniResolver.java index d139dcbd..55174295 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/did/resolver/DidUniResolver.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/did/resolver/DidUniResolver.java @@ -27,6 +27,8 @@ import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; +import org.eclipse.tractusx.ssi.lib.exception.did.DidParseException; +import org.eclipse.tractusx.ssi.lib.exception.did.DidResolverException; import org.eclipse.tractusx.ssi.lib.model.did.Did; import org.eclipse.tractusx.ssi.lib.model.did.DidDocument; @@ -70,7 +72,7 @@ public DidUniResolver(HttpClient client, URI uniResolverEndpoint) } @Override - public DidDocument resolve(Did did) throws DidResolverException { + public DidDocument resolve(Did did) throws DidResolverException, DidParseException { URI requestUri = uniResolverEndpoint.resolve(uniResolverResolvePath).resolve("./" + did.toString()); final HttpRequest request = HttpRequest.newBuilder().uri(requestUri).GET().build(); diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/did/web/DidWebResolver.java b/src/main/java/org/eclipse/tractusx/ssi/lib/did/web/DidWebResolver.java index 998f0111..cb6f8326 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/did/web/DidWebResolver.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/did/web/DidWebResolver.java @@ -30,10 +30,10 @@ import java.util.Map; import lombok.RequiredArgsConstructor; import org.eclipse.tractusx.ssi.lib.did.resolver.DidResolver; -import org.eclipse.tractusx.ssi.lib.did.resolver.DidResolverException; import org.eclipse.tractusx.ssi.lib.did.web.util.Constants; import org.eclipse.tractusx.ssi.lib.did.web.util.DidWebParser; import org.eclipse.tractusx.ssi.lib.exception.did.DidParseException; +import org.eclipse.tractusx.ssi.lib.exception.did.DidResolverException; import org.eclipse.tractusx.ssi.lib.model.did.Did; import org.eclipse.tractusx.ssi.lib.model.did.DidDocument; @@ -63,7 +63,6 @@ public DidDocument resolve(Did did) throws DidResolverException, DidParseExcepti final URI uri = parser.parse(did, enforceHttps); final HttpRequest request = HttpRequest.newBuilder().uri(uri).GET().build(); - try { final HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); @@ -84,6 +83,7 @@ public DidDocument resolve(Did did) throws DidResolverException, DidParseExcepti final Map json = mapper.readValue(body, Map.class); return new DidDocument(json); + } catch (Exception e) { throw new DidResolverException( String.format("Unexpected exception: %s", e.getClass().getName()), e); diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/did/DidParseException.java b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/did/DidParseException.java index 4ea9eab7..4fdada59 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/did/DidParseException.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/did/DidParseException.java @@ -22,20 +22,21 @@ package org.eclipse.tractusx.ssi.lib.exception.did; import org.eclipse.tractusx.ssi.lib.exception.SSIException; -/** The type Did parse exception. */ + +/** The type Did parse exception. */ public class DidParseException extends SSIException { private static final long serialVersionUID = -8099856673022088164L; -/** - * Instantiates a new Did parse exception. + /** + * Instantiates a new Did parse exception. * * @param message the message */ public DidParseException(String did) { super(String.format("Invalid DID URL: %s, not able to parse it", did)); } -/** - * Instantiates a new Did parse exception. + /** + * Instantiates a new Did parse exception. * * @param message the message * @param cause the cause @@ -43,15 +44,15 @@ public DidParseException(String did) { public DidParseException(String message, Throwable cause) { super(message, cause); } - /** - * Instantiates a new Did parse exception. + /** + * Instantiates a new Did parse exception. * * @param cause the cause */ public DidParseException(Throwable cause) { super(cause); } -/** + /** * Instantiates a new Did parse exception. * * @param message the message diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/resolver/DidDocumentResolverAlreadyRegisteredException.java b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/did/DidResolverException.java similarity index 54% rename from src/main/java/org/eclipse/tractusx/ssi/lib/exception/resolver/DidDocumentResolverAlreadyRegisteredException.java rename to src/main/java/org/eclipse/tractusx/ssi/lib/exception/did/DidResolverException.java index 5991115f..173b6db8 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/resolver/DidDocumentResolverAlreadyRegisteredException.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/did/DidResolverException.java @@ -19,61 +19,51 @@ * ******************************************************************************* */ -package org.eclipse.tractusx.ssi.lib.exception.resolver; +package org.eclipse.tractusx.ssi.lib.exception.did; -import org.eclipse.tractusx.ssi.lib.model.did.DidMethod; +import org.eclipse.tractusx.ssi.lib.exception.SSIException; -/** The type SSI did document resolver already registered exception. */ -public class DidDocumentResolverAlreadyRegisteredException extends Exception { +/** The type Did resolver exception. */ +public class DidResolverException extends SSIException { - private static final long serialVersionUID = 1101625710675168299L; /** - * Instantiates a new did document resolver already registered exception. + * Instantiates a new Did resolver exception. * * @param message the message */ - public DidDocumentResolverAlreadyRegisteredException(DidMethod didMethod) { - super(String.format("No DID document resolver registered for DID method '%s'", didMethod)); - } - - /** - * Instantiates a new did document resolver already registered exception. - * - * @param message the message - * @param cause the cause - */ - public DidDocumentResolverAlreadyRegisteredException(String message) { + public DidResolverException(String message) { super(message); } /** - * Instantiates a new did document resolver already registered exception. + * Instantiates a new Did resolver exception from another exception with a message. * + * @param message the message * @param cause the cause */ - public DidDocumentResolverAlreadyRegisteredException(String message, Throwable cause) { + public DidResolverException(String message, Throwable cause) { super(message, cause); } /** - * Instantiates a new did document resolver already registered exception. + * Instantiates a new Did resolver exception from another exception. * - * @param message the message * @param cause the cause */ - public DidDocumentResolverAlreadyRegisteredException(Throwable cause) { + public DidResolverException(Throwable cause) { super(cause); } /** - * Instantiates a new did document resolver already registered exception. + * Instantiates a new Did resolver exception with a message from another exception, allowing for + * disabling and printing the stack trace. * * @param message the message * @param cause the cause * @param enableSuppression the enable suppression * @param writableStackTrace the writable stack trace */ - public DidDocumentResolverAlreadyRegisteredException( + public DidResolverException( 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/json/TransformJsonLdException.java b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/json/TransformJsonLdException.java index beefc88b..dd6b044d 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/json/TransformJsonLdException.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/json/TransformJsonLdException.java @@ -25,7 +25,7 @@ /** The type tranform json LD exception. */ public class TransformJsonLdException extends SSIException { - + private static final long serialVersionUID = -1139580728763064789L; /** * Instantiates a new tranform json LD exception. diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/key/InvalidPrivateKeyFormatException.java b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/key/InvalidPrivateKeyFormatException.java index 02b301cb..f676441a 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/key/InvalidPrivateKeyFormatException.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/key/InvalidPrivateKeyFormatException.java @@ -21,10 +21,8 @@ package org.eclipse.tractusx.ssi.lib.exception.key; -import org.eclipse.tractusx.ssi.lib.exception.SSIException; - /** The type Invalide private key format. */ -public class InvalidPrivateKeyFormatException extends SSIException { +public class InvalidPrivateKeyFormatException extends KeyGenerationException { private static final long serialVersionUID = -3348735256693555408L; /** * Instantiates a new Invalid private key format. diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/key/InvalidPublicKeyFormatException.java b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/key/InvalidPublicKeyFormatException.java index 91650f6a..6a8950c5 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/key/InvalidPublicKeyFormatException.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/key/InvalidPublicKeyFormatException.java @@ -21,10 +21,8 @@ package org.eclipse.tractusx.ssi.lib.exception.key; -import org.eclipse.tractusx.ssi.lib.exception.SSIException; - /** The type Invalid public key format. */ -public class InvalidPublicKeyFormatException extends SSIException { +public class InvalidPublicKeyFormatException extends KeyGenerationException { private static final long serialVersionUID = -8303592321627404757L; /** * Instantiates a new Invalide public key format. diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/key/KeyGenerationException.java b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/key/KeyGenerationException.java index 8c6bf4cd..5724559f 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/key/KeyGenerationException.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/key/KeyGenerationException.java @@ -20,6 +20,7 @@ */ package org.eclipse.tractusx.ssi.lib.exception.key; + import org.eclipse.tractusx.ssi.lib.exception.SSIException; /** The type Key Generation Exception */ diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/JwtAudienceCheckFailedException.java b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/JwtAudienceCheckException.java similarity index 78% rename from src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/JwtAudienceCheckFailedException.java rename to src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/JwtAudienceCheckException.java index 9498059b..f3f21912 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/JwtAudienceCheckFailedException.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/JwtAudienceCheckException.java @@ -22,10 +22,9 @@ package org.eclipse.tractusx.ssi.lib.exception.proof; import java.util.List; -import org.eclipse.tractusx.ssi.lib.exception.SSIException; /** The type Jwt audience check failed exception. */ -public class JwtAudienceCheckFailedException extends SSIException { +public class JwtAudienceCheckException extends SignatureValidationException { private static final long serialVersionUID = -3258865938704740787L; /** * Instantiates a new Jwt audience check failed exception. @@ -33,7 +32,7 @@ public class JwtAudienceCheckFailedException extends SSIException { * @param expectedAudience the expected audience * @param actualAudience the actual audience */ - public JwtAudienceCheckFailedException(String expectedAudience, List actualAudience) { + public JwtAudienceCheckException(String expectedAudience, List actualAudience) { super( "JWT audience check failed. Expected audience: " + expectedAudience @@ -41,19 +40,19 @@ public JwtAudienceCheckFailedException(String expectedAudience, List act + String.join(", ", actualAudience)); } - public JwtAudienceCheckFailedException(String message) { + public JwtAudienceCheckException(String message) { super(message); } - public JwtAudienceCheckFailedException(String message, Throwable cause) { + public JwtAudienceCheckException(String message, Throwable cause) { super(message, cause); } - public JwtAudienceCheckFailedException(Throwable cause) { + public JwtAudienceCheckException(Throwable cause) { super(cause); } - public JwtAudienceCheckFailedException( + public JwtAudienceCheckException( 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/JwtExpiredException.java b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/JwtExpiredException.java index d4d72acc..2208a4c8 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/JwtExpiredException.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/JwtExpiredException.java @@ -22,11 +22,10 @@ package org.eclipse.tractusx.ssi.lib.exception.proof; import java.util.Date; -import org.eclipse.tractusx.ssi.lib.exception.SSIException; /** The type Jwt expired exception. */ -public class JwtExpiredException extends SSIException { -private static final long serialVersionUID = -1766884006095685877L; +public class JwtExpiredException extends SignatureValidationException { + private static final long serialVersionUID = -1766884006095685877L; /** * Instantiates a new Jwt expired exception. * diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/NoVerificationKeyFoundException.java b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/NoVerificationKeyFoundException.java index 25ff3abe..809bc8d9 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/NoVerificationKeyFoundException.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/NoVerificationKeyFoundException.java @@ -21,11 +21,10 @@ package org.eclipse.tractusx.ssi.lib.exception.proof; -import org.eclipse.tractusx.ssi.lib.exception.SSIException; - /** NoVerificationKeyFoundExcpetion */ -public class NoVerificationKeyFoundException extends SSIException { -private static final long serialVersionUID = -3859874631952203429L; +public class NoVerificationKeyFoundException extends SignatureVerificationException { + private static final long serialVersionUID = -3859874631952203429L; + public NoVerificationKeyFoundException(String message) { super(message); } diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/SignatureGenerateFailedException.java b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/SignatureGenerateFailedException.java index d56bc48c..d7fa3f25 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/SignatureGenerateFailedException.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/SignatureGenerateFailedException.java @@ -25,7 +25,7 @@ /** The type signature check failed exception. */ public class SignatureGenerateFailedException extends SSIException { -private static final long serialVersionUID = -994642818493030478L; + private static final long serialVersionUID = -994642818493030478L; /** * Instantiates a new signature generate failed exception. * diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/SignatureParseException.java b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/SignatureParseException.java index a280bacf..206befae 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/SignatureParseException.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/SignatureParseException.java @@ -25,7 +25,7 @@ /** The type signature parse exception. */ public class SignatureParseException extends SSIException { -private static final long serialVersionUID = -3875927810143603019L; + private static final long serialVersionUID = -3875927810143603019L; /** * Instantiates a new signature parse exception. * diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/resolver/DidWebException.java b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/SignatureValidationException.java similarity index 71% rename from src/main/java/org/eclipse/tractusx/ssi/lib/exception/resolver/DidWebException.java rename to src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/SignatureValidationException.java index c534d0e7..c4640511 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/resolver/DidWebException.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/SignatureValidationException.java @@ -19,50 +19,50 @@ * ******************************************************************************* */ -package org.eclipse.tractusx.ssi.lib.exception.resolver; +package org.eclipse.tractusx.ssi.lib.exception.proof; import org.eclipse.tractusx.ssi.lib.exception.SSIException; -/** The type Did web exception. */ -public class DidWebException extends SSIException { -private static final long serialVersionUID = 1101625710675168299L; +/** The type Signature Validation exception. */ +public class SignatureValidationException extends SSIException { + /** - * Instantiates a new Did web exception. + * Instantiates a new signature verification exception. * * @param message the message */ - public DidWebException(String message) { + public SignatureValidationException(String message) { super(message); } /** - * Instantiates a new Did web exception. + * Instantiates a new signature validation exception. * * @param message the message * @param cause the cause */ - public DidWebException(String message, Throwable cause) { + protected SignatureValidationException(String message, Throwable cause) { super(message, cause); } /** - * Instantiates a new Did web exception. + * Instantiates a new signature verification exception. * * @param cause the cause */ - public DidWebException(Throwable cause) { + protected SignatureValidationException(Throwable cause) { super(cause); } /** - * Instantiates a new Did web exception. + * Instantiates a new signature verification exception. * * @param message the message * @param cause the cause * @param enableSuppression the enable suppression * @param writableStackTrace the writable stack trace */ - public DidWebException( + protected SignatureValidationException( 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/SignatureVerificationFailedException.java b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/SignatureVerificationException.java similarity index 82% rename from src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/SignatureVerificationFailedException.java rename to src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/SignatureVerificationException.java index 182a03fb..892e2357 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/SignatureVerificationFailedException.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/SignatureVerificationException.java @@ -24,14 +24,14 @@ import org.eclipse.tractusx.ssi.lib.exception.SSIException; /** The type Signature Verification Failed exception. */ -public class SignatureVerificationFailedException extends SSIException { -private static final long serialVersionUID = 7515946489095871265L; +public class SignatureVerificationException extends SSIException { + /** * Instantiates a new signature verification failed exception. * * @param message the message */ - public SignatureVerificationFailedException(String message) { + public SignatureVerificationException(String message) { super(message); } @@ -41,7 +41,7 @@ public SignatureVerificationFailedException(String message) { * @param message the message * @param cause the cause */ - protected SignatureVerificationFailedException(String message, Throwable cause) { + protected SignatureVerificationException(String message, Throwable cause) { super(message, cause); } @@ -50,7 +50,7 @@ protected SignatureVerificationFailedException(String message, Throwable cause) * * @param cause the cause */ - protected SignatureVerificationFailedException(Throwable cause) { + protected SignatureVerificationException(Throwable cause) { super(cause); } @@ -62,7 +62,7 @@ protected SignatureVerificationFailedException(Throwable cause) { * @param enableSuppression the enable suppression * @param writableStackTrace the writable stack trace */ - protected SignatureVerificationFailedException( + protected SignatureVerificationException( 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.java b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/proof/UnsupportedSignatureTypeException.java index 4bc944ba..b5b966bb 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 @@ -21,10 +21,8 @@ package org.eclipse.tractusx.ssi.lib.exception.proof; -import org.eclipse.tractusx.ssi.lib.exception.SSIException; - /** The type Unsupported signature type exception. */ -public class UnsupportedSignatureTypeException extends SSIException { +public class UnsupportedSignatureTypeException extends SignatureVerificationException { /** * 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 9781cac9..7b747d43 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 @@ -22,11 +22,10 @@ package org.eclipse.tractusx.ssi.lib.exception.proof; import lombok.Getter; -import org.eclipse.tractusx.ssi.lib.exception.SSIException; import org.eclipse.tractusx.ssi.lib.model.did.VerificationMethod; /** The type Unsupported verification method exception. */ -public class UnsupportedVerificationMethodException extends SSIException { +public class UnsupportedVerificationMethodException extends SignatureVerificationException { /** The verification method */ @Getter private final VerificationMethod method; diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/resolver/DidDocumentResolverNotRegisteredException.java b/src/main/java/org/eclipse/tractusx/ssi/lib/exception/resolver/DidDocumentResolverNotRegisteredException.java deleted file mode 100644 index a48a1187..00000000 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/exception/resolver/DidDocumentResolverNotRegisteredException.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * ****************************************************************************** - * Copyright (c) 2021,2023 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ******************************************************************************* - */ - -package org.eclipse.tractusx.ssi.lib.exception.resolver; - -import org.eclipse.tractusx.ssi.lib.model.did.DidMethod; - -/** The type Did document resolver not registered exception. */ -public class DidDocumentResolverNotRegisteredException extends Exception { - - - private static final long serialVersionUID = 1101625710675168299L; - /** - * Instantiates a new Did document resolver not registered exception. - * - * @param didMethod the did method - */ - public DidDocumentResolverNotRegisteredException(DidMethod didMethod) { - super(String.format("No DID document resolver registered for DID method '%s'", didMethod)); - } - - public DidDocumentResolverNotRegisteredException(String message) { - super(message); - } - - public DidDocumentResolverNotRegisteredException(String message, Throwable cause) { - super(message, cause); - } - - public DidDocumentResolverNotRegisteredException(Throwable cause) { - super(cause); - } - - public DidDocumentResolverNotRegisteredException( - String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } -} 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 d6f73973..4f22a752 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 @@ -25,7 +25,7 @@ import java.text.ParseException; import java.util.Date; import java.util.List; -import org.eclipse.tractusx.ssi.lib.exception.proof.JwtAudienceCheckFailedException; +import org.eclipse.tractusx.ssi.lib.exception.proof.JwtAudienceCheckException; import org.eclipse.tractusx.ssi.lib.exception.proof.JwtExpiredException; import org.eclipse.tractusx.ssi.lib.exception.proof.SignatureParseException; @@ -46,7 +46,7 @@ public void validateDate(SignedJWT jwt) throws JwtExpiredException, SignaturePar } public void validateAudiences(SignedJWT jwt, String expectedAudience) - throws JwtAudienceCheckFailedException, SignatureParseException { + throws JwtAudienceCheckException, SignatureParseException { List audiences; try { audiences = jwt.getJWTClaimsSet().getAudience(); @@ -55,7 +55,7 @@ public void validateAudiences(SignedJWT jwt, String expectedAudience) } boolean isValidAudience = audiences.stream().anyMatch(x -> x.equals(expectedAudience)); if (!isValidAudience) { - throw new JwtAudienceCheckFailedException(expectedAudience, audiences); + throw new JwtAudienceCheckException(expectedAudience, audiences); } } } 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 4bb33776..46ee3c69 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,15 +28,15 @@ 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; import org.bouncycastle.crypto.params.Ed25519PublicKeyParameters; import org.eclipse.tractusx.ssi.lib.did.resolver.DidResolver; -import org.eclipse.tractusx.ssi.lib.did.resolver.DidResolverException; import org.eclipse.tractusx.ssi.lib.exception.did.DidParseException; -import org.eclipse.tractusx.ssi.lib.exception.proof.SignatureVerificationFailedException; +import org.eclipse.tractusx.ssi.lib.exception.did.DidResolverException; +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.UnsupportedVerificationMethodException; import org.eclipse.tractusx.ssi.lib.model.MultibaseString; import org.eclipse.tractusx.ssi.lib.model.did.Did; @@ -63,18 +63,19 @@ public class SignedJwtVerifier { * @throws DidParseException * @throws SignatureException * @throws DidResolverException - * @throws SignatureVerificationFailedException + * @throws SignatureVerificationException * @throws UnsupportedVerificationMethodException + * @throws SignatureParseException */ public boolean verify(SignedJWT jwt) - throws DidParseException, SignatureException, DidResolverException, - SignatureVerificationFailedException, UnsupportedVerificationMethodException { + throws DidParseException, DidResolverException, SignatureVerificationException, + UnsupportedVerificationMethodException, SignatureParseException { JWTClaimsSet jwtClaimsSet; try { jwtClaimsSet = jwt.getJWTClaimsSet(); } catch (ParseException e) { - throw new SignatureException(e.getMessage()); + throw new SignatureParseException(e.getMessage()); } final String issuer = jwtClaimsSet.getIssuer(); @@ -100,7 +101,7 @@ public boolean verify(SignedJWT jwt) return true; } } catch (JOSEException e) { - throw new SignatureVerificationFailedException(e.getMessage()); + throw new SignatureVerificationException(e.getMessage()); } } else { throw new UnsupportedVerificationMethodException( @@ -121,7 +122,7 @@ public boolean verify(SignedJWT jwt) return true; } } catch (JOSEException e) { - throw new SignatureVerificationFailedException(e.getMessage()); + throw new SignatureVerificationException(e.getMessage()); } } } diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/proof/IVerifier.java b/src/main/java/org/eclipse/tractusx/ssi/lib/proof/IVerifier.java index b1512b75..640b2dee 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/proof/IVerifier.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/proof/IVerifier.java @@ -26,9 +26,8 @@ import org.eclipse.tractusx.ssi.lib.exception.proof.NoVerificationKeyFoundException; import org.eclipse.tractusx.ssi.lib.exception.proof.SignatureGenerateFailedException; import org.eclipse.tractusx.ssi.lib.exception.proof.SignatureParseException; -import org.eclipse.tractusx.ssi.lib.exception.proof.SignatureVerificationFailedException; +import org.eclipse.tractusx.ssi.lib.exception.proof.SignatureVerificationException; import org.eclipse.tractusx.ssi.lib.exception.proof.UnsupportedSignatureTypeException; -import org.eclipse.tractusx.ssi.lib.exception.resolver.DidDocumentResolverNotRegisteredException; import org.eclipse.tractusx.ssi.lib.model.verifiable.Verifiable; import org.eclipse.tractusx.ssi.lib.model.verifiable.credential.VerifiableCredential; import org.eclipse.tractusx.ssi.lib.proof.hash.HashedLinkedData; @@ -46,13 +45,12 @@ public interface IVerifier { * @throws SignatureParseException * @throws InvalidPublicKeyFormatException * @throws SignatureGenerateFailedException - * @throws SignatureVerificationFailedException + * @throws SignatureVerificationException * @throws DidParseException - * @throws DidDocumentResolverNotRegisteredException * @throws NoVerificationKeyFoundException */ public boolean verify(HashedLinkedData hashedLinkedData, Verifiable verifiable) throws SignatureParseException, DidParseException, InvalidPublicKeyFormatException, - SignatureVerificationFailedException, UnsupportedSignatureTypeException, - NoVerificationKeyFoundException, DidDocumentResolverNotRegisteredException; + SignatureVerificationException, UnsupportedSignatureTypeException, + NoVerificationKeyFoundException; } diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/proof/LinkedDataProofValidation.java b/src/main/java/org/eclipse/tractusx/ssi/lib/proof/LinkedDataProofValidation.java index f89f0df0..1abc90ed 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/proof/LinkedDataProofValidation.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/proof/LinkedDataProofValidation.java @@ -29,9 +29,8 @@ import org.eclipse.tractusx.ssi.lib.exception.key.InvalidPublicKeyFormatException; 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.SignatureVerificationFailedException; +import org.eclipse.tractusx.ssi.lib.exception.proof.SignatureVerificationException; import org.eclipse.tractusx.ssi.lib.exception.proof.UnsupportedSignatureTypeException; -import org.eclipse.tractusx.ssi.lib.exception.resolver.DidDocumentResolverNotRegisteredException; import org.eclipse.tractusx.ssi.lib.model.verifiable.Verifiable; import org.eclipse.tractusx.ssi.lib.model.verifiable.Verifiable.VerifiableType; import org.eclipse.tractusx.ssi.lib.model.verifiable.credential.VerifiableCredential; @@ -83,7 +82,7 @@ public static LinkedDataProofValidation newInstance(DidResolver didResolver) { * @throws UnsupportedSignatureTypeException * @throws DidDocumentResolverNotRegisteredException * @throws NoVerificationKeyFoundException - * @throws SignatureVerificationFailedException + * @throws SignatureVerificationException * @throws InvalidPublicKeyFormatException * @throws DidParseException * @throws SignatureParseException @@ -91,9 +90,8 @@ public static LinkedDataProofValidation newInstance(DidResolver didResolver) { */ public boolean verify(Verifiable verifiable) throws UnsupportedSignatureTypeException, SignatureParseException, DidParseException, - InvalidPublicKeyFormatException, SignatureVerificationFailedException, - NoVerificationKeyFoundException, DidDocumentResolverNotRegisteredException, - TransformJsonLdException { + InvalidPublicKeyFormatException, SignatureVerificationException, + NoVerificationKeyFoundException, TransformJsonLdException { var type = verifiable.getProof().getType(); IVerifier verifier = null; diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/proof/types/ed25519/Ed25519ProofVerifier.java b/src/main/java/org/eclipse/tractusx/ssi/lib/proof/types/ed25519/Ed25519ProofVerifier.java index 5936161a..716b9ae6 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/proof/types/ed25519/Ed25519ProofVerifier.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/proof/types/ed25519/Ed25519ProofVerifier.java @@ -31,12 +31,11 @@ import org.eclipse.tractusx.ssi.lib.crypt.IPublicKey; import org.eclipse.tractusx.ssi.lib.crypt.x21559.x21559PublicKey; import org.eclipse.tractusx.ssi.lib.did.resolver.DidResolver; -import org.eclipse.tractusx.ssi.lib.did.resolver.DidResolverException; import org.eclipse.tractusx.ssi.lib.exception.did.DidParseException; +import org.eclipse.tractusx.ssi.lib.exception.did.DidResolverException; import org.eclipse.tractusx.ssi.lib.exception.key.InvalidPublicKeyFormatException; import org.eclipse.tractusx.ssi.lib.exception.proof.NoVerificationKeyFoundException; import org.eclipse.tractusx.ssi.lib.exception.proof.UnsupportedSignatureTypeException; -import org.eclipse.tractusx.ssi.lib.exception.resolver.DidDocumentResolverNotRegisteredException; import org.eclipse.tractusx.ssi.lib.model.MultibaseString; import org.eclipse.tractusx.ssi.lib.model.did.Did; import org.eclipse.tractusx.ssi.lib.model.did.DidDocument; @@ -57,8 +56,7 @@ public class Ed25519ProofVerifier implements IVerifier { @SneakyThrows({DidResolverException.class}) public boolean verify(HashedLinkedData hashedLinkedData, Verifiable verifiable) throws UnsupportedSignatureTypeException, InvalidPublicKeyFormatException, - NoVerificationKeyFoundException, DidParseException, - DidDocumentResolverNotRegisteredException { + NoVerificationKeyFoundException, DidParseException { final Proof proof = verifiable.getProof(); final Ed25519Signature2020 ed25519Signature2020 = new Ed25519Signature2020(proof); @@ -75,9 +73,8 @@ public boolean verify(HashedLinkedData hashedLinkedData, Verifiable verifiable) } private IPublicKey discoverPublicKey(Ed25519Signature2020 signature) - throws DidDocumentResolverNotRegisteredException, UnsupportedSignatureTypeException, - InvalidPublicKeyFormatException, NoVerificationKeyFoundException, DidResolverException, - DidParseException { + throws UnsupportedSignatureTypeException, InvalidPublicKeyFormatException, + NoVerificationKeyFoundException, DidResolverException, DidParseException { final Did issuer = DidParser.parse(signature.getVerificationMethod()); diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/proof/types/jws/JWSProofVerifier.java b/src/main/java/org/eclipse/tractusx/ssi/lib/proof/types/jws/JWSProofVerifier.java index 7888c294..de3a617e 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/proof/types/jws/JWSProofVerifier.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/proof/types/jws/JWSProofVerifier.java @@ -35,12 +35,12 @@ import lombok.SneakyThrows; import org.eclipse.tractusx.ssi.lib.crypt.IPublicKey; import org.eclipse.tractusx.ssi.lib.did.resolver.DidResolver; -import org.eclipse.tractusx.ssi.lib.did.resolver.DidResolverException; import org.eclipse.tractusx.ssi.lib.exception.did.DidParseException; +import org.eclipse.tractusx.ssi.lib.exception.did.DidResolverException; import org.eclipse.tractusx.ssi.lib.exception.key.InvalidPublicKeyFormatException; 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.SignatureVerificationFailedException; +import org.eclipse.tractusx.ssi.lib.exception.proof.SignatureVerificationException; import org.eclipse.tractusx.ssi.lib.model.did.Did; import org.eclipse.tractusx.ssi.lib.model.did.DidDocument; import org.eclipse.tractusx.ssi.lib.model.did.DidParser; @@ -60,7 +60,7 @@ public class JWSProofVerifier implements IVerifier { @SneakyThrows({DidResolverException.class}) public boolean verify(HashedLinkedData hashedLinkedData, Verifiable document) throws SignatureParseException, DidParseException, InvalidPublicKeyFormatException, - SignatureVerificationFailedException { + SignatureVerificationException { final Proof proof = document.getProof(); if (!proof.getType().equals(JWSSignature2020.JWS_VERIFICATION_KEY_2020)) { @@ -97,7 +97,7 @@ public boolean verify(HashedLinkedData hashedLinkedData, Verifiable document) try { return jws.verify(verifier); } catch (JOSEException e) { - throw new SignatureVerificationFailedException(e.getMessage()); + throw new SignatureVerificationException(e.getMessage()); } } @@ -136,11 +136,11 @@ private OctetKeyPair discoverOctectKey(JWSSignature2020 signature) * @param publicKey the public key * @return the boolean * @throws SignatureParseException - * @throws SignatureVerificationFailedException + * @throws SignatureVerificationException * @throws InvalidPublicKeyFormatException */ public boolean verify(HashedLinkedData hashedLinkedData, byte[] signature, IPublicKey publicKey) - throws SignatureParseException, SignatureVerificationFailedException, + throws SignatureParseException, SignatureVerificationException, InvalidPublicKeyFormatException { var keyPair = @@ -162,7 +162,7 @@ public boolean verify(HashedLinkedData hashedLinkedData, byte[] signature, IPubl try { return jws.verify(verifier); } catch (JOSEException e) { - throw new SignatureVerificationFailedException(e.getMessage()); + throw new SignatureVerificationException(e.getMessage()); } } } diff --git a/src/main/java/org/eclipse/tractusx/ssi/lib/validation/JsonLdValidatorImpl.java b/src/main/java/org/eclipse/tractusx/ssi/lib/validation/JsonLdValidatorImpl.java index e9d307f1..34041515 100644 --- a/src/main/java/org/eclipse/tractusx/ssi/lib/validation/JsonLdValidatorImpl.java +++ b/src/main/java/org/eclipse/tractusx/ssi/lib/validation/JsonLdValidatorImpl.java @@ -76,14 +76,11 @@ private void validateJsonLd(JsonLdObject jsonLdObject) throws InvalidJsonLdExcep findUndefinedTerms(jsonObject); } catch (JsonLdError ex) { - throw new InvalidJsonLdException( - String.format( - "Json LD validation failed for json: %s", jsonLdObject.toJsonObject().toString()), - ex); + throw new InvalidJsonLdException(ex.getCode().toMessage()); } } - private static void findUndefinedTerms(JsonArray jsonArray) { + private static void findUndefinedTerms(JsonArray jsonArray) throws InvalidJsonLdException { for (JsonValue entry : jsonArray) { if (entry instanceof JsonObject) { findUndefinedTerms((JsonObject) entry); @@ -91,11 +88,11 @@ private static void findUndefinedTerms(JsonArray jsonArray) { } } - private static void findUndefinedTerms(JsonObject jsonObject) { + private static void findUndefinedTerms(JsonObject jsonObject) throws InvalidJsonLdException { for (Map.Entry entry : jsonObject.entrySet()) { if (entry.getKey().startsWith(UNDEFINED_TERM_URI)) { - throw new RuntimeException( + throw new InvalidJsonLdException( "Undefined JSON-LD term: " + entry.getKey().substring(UNDEFINED_TERM_URI.length())); } diff --git a/src/test/java/org/eclipse/tractusx/ssi/lib/did/resolver/CompositeDidResolverTest.java b/src/test/java/org/eclipse/tractusx/ssi/lib/did/resolver/CompositeDidResolverTest.java index 83afa40c..8a5c471c 100644 --- a/src/test/java/org/eclipse/tractusx/ssi/lib/did/resolver/CompositeDidResolverTest.java +++ b/src/test/java/org/eclipse/tractusx/ssi/lib/did/resolver/CompositeDidResolverTest.java @@ -34,6 +34,7 @@ import static org.mockito.Mockito.when; import lombok.SneakyThrows; +import org.eclipse.tractusx.ssi.lib.exception.did.DidResolverException; import org.eclipse.tractusx.ssi.lib.model.did.Did; import org.eclipse.tractusx.ssi.lib.model.did.DidDocument; import org.eclipse.tractusx.ssi.lib.model.did.DidMethod; diff --git a/src/test/java/org/eclipse/tractusx/ssi/lib/did/resolver/DidUniResolverIT.java b/src/test/java/org/eclipse/tractusx/ssi/lib/did/resolver/DidUniResolverIT.java index 6b0495a2..5e3bc595 100644 --- a/src/test/java/org/eclipse/tractusx/ssi/lib/did/resolver/DidUniResolverIT.java +++ b/src/test/java/org/eclipse/tractusx/ssi/lib/did/resolver/DidUniResolverIT.java @@ -27,6 +27,8 @@ import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.http.HttpClient; +import org.eclipse.tractusx.ssi.lib.exception.did.DidParseException; +import org.eclipse.tractusx.ssi.lib.exception.did.DidResolverException; import org.eclipse.tractusx.ssi.lib.model.did.Did; import org.eclipse.tractusx.ssi.lib.model.did.DidDocument; import org.eclipse.tractusx.ssi.lib.model.did.DidMethod; @@ -84,9 +86,10 @@ public void initEach() throws MalformedURLException, URISyntaxException { * Should resolve valid did. * * @throws DidResolverException the did resolver exception + * @throws DidParseException */ @Test - public void shouldResolveValidDid() throws DidResolverException { + public void shouldResolveValidDid() throws DidResolverException, DidParseException { Did validDidWeb = new Did( new DidMethod("key"), diff --git a/src/test/java/org/eclipse/tractusx/ssi/lib/did/web/DidWebResolverTest.java b/src/test/java/org/eclipse/tractusx/ssi/lib/did/web/DidWebResolverTest.java index 9a2f91a2..a04e70fe 100644 --- a/src/test/java/org/eclipse/tractusx/ssi/lib/did/web/DidWebResolverTest.java +++ b/src/test/java/org/eclipse/tractusx/ssi/lib/did/web/DidWebResolverTest.java @@ -33,8 +33,8 @@ import java.net.http.HttpClient; import java.net.http.HttpResponse; import lombok.SneakyThrows; -import org.eclipse.tractusx.ssi.lib.did.resolver.DidResolverException; import org.eclipse.tractusx.ssi.lib.did.web.util.DidWebParser; +import org.eclipse.tractusx.ssi.lib.exception.did.DidResolverException; import org.eclipse.tractusx.ssi.lib.model.did.Did; import org.eclipse.tractusx.ssi.lib.model.did.DidDocument; import org.eclipse.tractusx.ssi.lib.model.did.DidMethod;