11package com .danubetech .dataintegrity .verifier ;
22
33import com .danubetech .dataintegrity .DataIntegrityProof ;
4- import com .danubetech .dataintegrity .adapter .JWSVerifierAdapter ;
54import com .danubetech .dataintegrity .canonicalizer .Canonicalizer ;
65import com .danubetech .dataintegrity .canonicalizer .URDNA2015Canonicalizer ;
76import com .danubetech .dataintegrity .suites .DataIntegritySuites ;
87import com .danubetech .dataintegrity .suites .EcdsaSecp256r1Signature2019DataIntegritySuite ;
9- import com .danubetech .dataintegrity .util .JWSUtil ;
108import com .danubetech .keyformats .crypto .ByteVerifier ;
119import com .danubetech .keyformats .crypto .impl .P_256_ES256_PublicKeyVerifier ;
12- import com .nimbusds .jose .JOSEException ;
13- import com .nimbusds .jose .JWSAlgorithm ;
14- import com .nimbusds .jose .JWSObject ;
15- import com .nimbusds .jose .JWSVerifier ;
10+ import com .danubetech .keyformats .jose .JWSAlgorithm ;
11+ import io .ipfs .multibase .Multibase ;
1612
1713import java .security .GeneralSecurityException ;
1814import java .security .interfaces .ECPublicKey ;
19- import java .text .ParseException ;
2015
2116public class EcdsaSecp256r1Signature2019LdVerifier extends LdVerifier <EcdsaSecp256r1Signature2019DataIntegritySuite > {
2217
@@ -38,24 +33,15 @@ public Canonicalizer getCanonicalizer(DataIntegrityProof dataIntegrityProof) {
3833
3934 public static boolean verify (byte [] signingInput , DataIntegrityProof dataIntegrityProof , ByteVerifier verifier ) throws GeneralSecurityException {
4035
41- // build the JWS and verify
36+ // verify
4237
43- String jws = dataIntegrityProof .getJws ();
44- if (jws == null ) throw new GeneralSecurityException ("No 'jws ' in proof." );
38+ String proofValue = dataIntegrityProof .getProofValue ();
39+ if (proofValue == null ) throw new GeneralSecurityException ("No 'proofValue ' in proof." );
4540
4641 boolean verify ;
4742
48- try {
49-
50- JWSObject detachedJwsObject = JWSObject .parse (jws );
51- byte [] jwsSigningInput = JWSUtil .getJwsSigningInput (detachedJwsObject .getHeader (), signingInput );
52-
53- JWSVerifier jwsVerifier = new JWSVerifierAdapter (verifier , JWSAlgorithm .ES256 );
54- verify = jwsVerifier .verify (detachedJwsObject .getHeader (), jwsSigningInput , detachedJwsObject .getSignature ());
55- } catch (JOSEException | ParseException ex ) {
56-
57- throw new GeneralSecurityException ("JOSE verification problem: " + ex .getMessage (), ex );
58- }
43+ byte [] bytes = Multibase .decode (proofValue );
44+ verify = verifier .verify (signingInput , bytes , JWSAlgorithm .ES256 );
5945
6046 // done
6147
0 commit comments