Skip to content

Commit 05271cd

Browse files
committed
Merge branch 'refactor-signing'
2 parents c82fc83 + 97d2a86 commit 05271cd

31 files changed

+199
-39
lines changed

src/main/java/com/danubetech/dataintegrity/signer/BbsBlsSignature2020LdSigner.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@
99
import com.danubetech.keyformats.crypto.ByteSigner;
1010
import com.danubetech.keyformats.crypto.impl.Bls12381G2_BBSPlus_PrivateKeySigner;
1111
import com.danubetech.keyformats.jose.JWSAlgorithm;
12+
import foundation.identity.jsonld.JsonLDObject;
1213
import io.ipfs.multibase.Multibase;
1314

1415
import java.security.GeneralSecurityException;
16+
import java.util.Objects;
1517

1618
public class BbsBlsSignature2020LdSigner extends LdSigner<BbsBlsSignature2020DataIntegritySuite> {
1719

@@ -27,6 +29,12 @@ public BbsBlsSignature2020LdSigner() {
2729
this((ByteSigner) null);
2830
}
2931

32+
@Override
33+
public void initialize(DataIntegrityProof.Builder<? extends DataIntegrityProof.Builder<?>> proofOptionsBuilder, JsonLDObject jsonLDObject) throws GeneralSecurityException {
34+
proofOptionsBuilder.forceContextsArray(true).contexts(jsonLDObject.getContexts().stream().filter(Objects::nonNull).toList());
35+
}
36+
37+
@Override
3038
public Canonicalizer getCanonicalizer(DataIntegrityProof dataIntegrityProof) {
3139
return URDNA2015SHA256Canonicalizer.getInstance();
3240
}

src/main/java/com/danubetech/dataintegrity/signer/DataIntegrityProofLdSigner.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@
55
import com.danubetech.dataintegrity.suites.DataIntegrityProofDataIntegritySuite;
66
import com.danubetech.dataintegrity.suites.DataIntegritySuites;
77
import com.danubetech.keyformats.crypto.ByteSigner;
8+
import foundation.identity.jsonld.JsonLDObject;
89
import io.ipfs.multibase.Multibase;
910
import org.slf4j.Logger;
1011
import org.slf4j.LoggerFactory;
1112

1213
import java.security.GeneralSecurityException;
14+
import java.util.Objects;
1315

1416
public class DataIntegrityProofLdSigner extends LdSigner<DataIntegrityProofDataIntegritySuite> {
1517

@@ -24,7 +26,7 @@ public DataIntegrityProofLdSigner() {
2426
}
2527

2628
@Override
27-
public void initialize(DataIntegrityProof.Builder<? extends DataIntegrityProof.Builder<?>> ldProofBuilder) throws GeneralSecurityException {
29+
public void initialize(DataIntegrityProof.Builder<? extends DataIntegrityProof.Builder<?>> proofOptionsBuilder, JsonLDObject jsonLDObject) throws GeneralSecurityException {
2830

2931
// determine algorithm and cryptosuite
3032

@@ -37,9 +39,15 @@ public void initialize(DataIntegrityProof.Builder<? extends DataIntegrityProof.B
3739
}
3840
} else {
3941
cryptosuite = DataIntegritySuites.DATA_INTEGRITY_SUITE_DATAINTEGRITYPROOF.findDefaultCryptosuiteForJwsAlgorithm(algorithm);
40-
ldProofBuilder.cryptosuite(cryptosuite);
42+
proofOptionsBuilder.cryptosuite(cryptosuite);
4143
}
4244
if (log.isDebugEnabled()) log.debug("Determined algorithm {} and cryptosuite: {}", algorithm, cryptosuite);
45+
46+
// determine @context
47+
48+
if (cryptosuite.contains("rdfc")) {
49+
proofOptionsBuilder.forceContextsArray(true).contexts(jsonLDObject.getContexts().stream().filter(Objects::nonNull).toList());
50+
}
4351
}
4452

4553
@Override

src/main/java/com/danubetech/dataintegrity/signer/EcdsaKoblitzSignature2016LdSigner.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@
1414
import com.nimbusds.jose.JWSHeader;
1515
import com.nimbusds.jose.JWSSigner;
1616
import com.nimbusds.jose.util.Base64URL;
17+
import foundation.identity.jsonld.JsonLDObject;
1718
import org.bitcoinj.crypto.ECKey;
1819

1920
import java.security.GeneralSecurityException;
2021
import java.util.Collections;
22+
import java.util.Objects;
2123

2224
public class EcdsaKoblitzSignature2016LdSigner extends LdSigner<EcdsaKoblitzSignature2016DataIntegritySuite> {
2325

@@ -33,6 +35,12 @@ public EcdsaKoblitzSignature2016LdSigner() {
3335
this((ByteSigner) null);
3436
}
3537

38+
@Override
39+
public void initialize(DataIntegrityProof.Builder<? extends DataIntegrityProof.Builder<?>> proofOptionsBuilder, JsonLDObject jsonLDObject) throws GeneralSecurityException {
40+
proofOptionsBuilder.forceContextsArray(true).contexts(jsonLDObject.getContexts().stream().filter(Objects::nonNull).toList());
41+
}
42+
43+
@Override
3644
public Canonicalizer getCanonicalizer(DataIntegrityProof dataIntegrityProof) {
3745
return URDNA2015SHA256Canonicalizer.getInstance();
3846
}

src/main/java/com/danubetech/dataintegrity/signer/EcdsaSecp256k1Signature2019LdSigner.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@
1414
import com.nimbusds.jose.JWSHeader;
1515
import com.nimbusds.jose.JWSSigner;
1616
import com.nimbusds.jose.util.Base64URL;
17+
import foundation.identity.jsonld.JsonLDObject;
1718
import org.bitcoinj.crypto.ECKey;
1819

1920
import java.security.GeneralSecurityException;
2021
import java.util.Collections;
22+
import java.util.Objects;
2123

2224
public class EcdsaSecp256k1Signature2019LdSigner extends LdSigner<EcdsaSecp256k1Signature2019DataIntegritySuite> {
2325

@@ -33,6 +35,12 @@ public EcdsaSecp256k1Signature2019LdSigner() {
3335
this((ByteSigner) null);
3436
}
3537

38+
@Override
39+
public void initialize(DataIntegrityProof.Builder<? extends DataIntegrityProof.Builder<?>> proofOptionsBuilder, JsonLDObject jsonLDObject) throws GeneralSecurityException {
40+
proofOptionsBuilder.forceContextsArray(true).contexts(jsonLDObject.getContexts().stream().filter(Objects::nonNull).toList());
41+
}
42+
43+
@Override
3644
public Canonicalizer getCanonicalizer(DataIntegrityProof dataIntegrityProof) {
3745
return URDNA2015SHA256Canonicalizer.getInstance();
3846
}

src/main/java/com/danubetech/dataintegrity/signer/EcdsaSecp256r1Signature2019LdSigner.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@
88
import com.danubetech.keyformats.crypto.ByteSigner;
99
import com.danubetech.keyformats.crypto.impl.P_256_ES256_PrivateKeySigner;
1010
import com.danubetech.keyformats.jose.JWSAlgorithm;
11+
import foundation.identity.jsonld.JsonLDObject;
1112
import io.ipfs.multibase.Multibase;
1213

1314
import java.security.GeneralSecurityException;
1415
import java.security.interfaces.ECPrivateKey;
16+
import java.util.Objects;
1517

1618
public class EcdsaSecp256r1Signature2019LdSigner extends LdSigner<EcdsaSecp256r1Signature2019DataIntegritySuite> {
1719

@@ -27,6 +29,12 @@ public EcdsaSecp256r1Signature2019LdSigner() {
2729
this((ByteSigner) null);
2830
}
2931

32+
@Override
33+
public void initialize(DataIntegrityProof.Builder<? extends DataIntegrityProof.Builder<?>> proofOptionsBuilder, JsonLDObject jsonLDObject) throws GeneralSecurityException {
34+
proofOptionsBuilder.forceContextsArray(true).contexts(jsonLDObject.getContexts().stream().filter(Objects::nonNull).toList());
35+
}
36+
37+
@Override
3038
public Canonicalizer getCanonicalizer(DataIntegrityProof dataIntegrityProof) {
3139
return URDNA2015SHA256Canonicalizer.getInstance();
3240
}

src/main/java/com/danubetech/dataintegrity/signer/EcdsaSecp384r1Signature2019LdSigner.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@
88
import com.danubetech.keyformats.crypto.ByteSigner;
99
import com.danubetech.keyformats.crypto.impl.P_384_ES384_PrivateKeySigner;
1010
import com.danubetech.keyformats.jose.JWSAlgorithm;
11+
import foundation.identity.jsonld.JsonLDObject;
1112
import io.ipfs.multibase.Multibase;
1213

1314
import java.security.GeneralSecurityException;
1415
import java.security.interfaces.ECPrivateKey;
16+
import java.util.Objects;
1517

1618
public class EcdsaSecp384r1Signature2019LdSigner extends LdSigner<EcdsaSecp384r1Signature2019DataIntegritySuite> {
1719

@@ -27,6 +29,12 @@ public EcdsaSecp384r1Signature2019LdSigner() {
2729
this((ByteSigner) null);
2830
}
2931

32+
@Override
33+
public void initialize(DataIntegrityProof.Builder<? extends DataIntegrityProof.Builder<?>> proofOptionsBuilder, JsonLDObject jsonLDObject) throws GeneralSecurityException {
34+
proofOptionsBuilder.forceContextsArray(true).contexts(jsonLDObject.getContexts().stream().filter(Objects::nonNull).toList());
35+
}
36+
37+
@Override
3038
public Canonicalizer getCanonicalizer(DataIntegrityProof dataIntegrityProof) {
3139
return URDNA2015SHA384Canonicalizer.getInstance();
3240
}

src/main/java/com/danubetech/dataintegrity/signer/Ed25519Signature2018LdSigner.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@
1414
import com.nimbusds.jose.JWSHeader;
1515
import com.nimbusds.jose.JWSSigner;
1616
import com.nimbusds.jose.util.Base64URL;
17+
import foundation.identity.jsonld.JsonLDObject;
1718

1819
import java.security.GeneralSecurityException;
1920
import java.util.Collections;
21+
import java.util.Objects;
2022

2123
public class Ed25519Signature2018LdSigner extends LdSigner<Ed25519Signature2018DataIntegritySuite> {
2224

@@ -32,6 +34,12 @@ public Ed25519Signature2018LdSigner() {
3234
this((ByteSigner) null);
3335
}
3436

37+
@Override
38+
public void initialize(DataIntegrityProof.Builder<? extends DataIntegrityProof.Builder<?>> proofOptionsBuilder, JsonLDObject jsonLDObject) throws GeneralSecurityException {
39+
proofOptionsBuilder.forceContextsArray(true).contexts(jsonLDObject.getContexts().stream().filter(Objects::nonNull).toList());
40+
}
41+
42+
@Override
3543
public Canonicalizer getCanonicalizer(DataIntegrityProof dataIntegrityProof) {
3644
return URDNA2015SHA256Canonicalizer.getInstance();
3745
}

src/main/java/com/danubetech/dataintegrity/signer/Ed25519Signature2020LdSigner.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@
88
import com.danubetech.keyformats.crypto.ByteSigner;
99
import com.danubetech.keyformats.crypto.impl.Ed25519_EdDSA_PrivateKeySigner;
1010
import com.danubetech.keyformats.jose.JWSAlgorithm;
11+
import foundation.identity.jsonld.JsonLDObject;
1112
import io.ipfs.multibase.Multibase;
1213

1314
import java.security.GeneralSecurityException;
15+
import java.util.Objects;
1416

1517
public class Ed25519Signature2020LdSigner extends LdSigner<Ed25519Signature2020DataIntegritySuite> {
1618

@@ -26,6 +28,12 @@ public Ed25519Signature2020LdSigner() {
2628
this((ByteSigner) null);
2729
}
2830

31+
@Override
32+
public void initialize(DataIntegrityProof.Builder<? extends DataIntegrityProof.Builder<?>> proofOptionsBuilder, JsonLDObject jsonLDObject) throws GeneralSecurityException {
33+
proofOptionsBuilder.forceContextsArray(true).contexts(jsonLDObject.getContexts().stream().filter(Objects::nonNull).toList());
34+
}
35+
36+
@Override
2937
public Canonicalizer getCanonicalizer(DataIntegrityProof dataIntegrityProof) {
3038
return URDNA2015SHA256Canonicalizer.getInstance();
3139
}

src/main/java/com/danubetech/dataintegrity/signer/JcsEcdsaSecp256k1Signature2019LdSigner.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public JcsEcdsaSecp256k1Signature2019LdSigner() {
2828
this((ByteSigner) null);
2929
}
3030

31+
@Override
3132
public Canonicalizer getCanonicalizer(DataIntegrityProof dataIntegrityProof) {
3233
return JCSSHA256Canonicalizer.getInstance();
3334
}

src/main/java/com/danubetech/dataintegrity/signer/JcsEd25519Signature2020LdSigner.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.danubetech.keyformats.crypto.ByteSigner;
99
import com.danubetech.keyformats.crypto.impl.Ed25519_EdDSA_PrivateKeySigner;
1010
import com.danubetech.keyformats.jose.JWSAlgorithm;
11+
import foundation.identity.jsonld.JsonLDObject;
1112
import io.ipfs.multibase.Base58;
1213

1314
import java.security.GeneralSecurityException;
@@ -27,6 +28,7 @@ public JcsEd25519Signature2020LdSigner() {
2728
this((ByteSigner) null);
2829
}
2930

31+
@Override
3032
public Canonicalizer getCanonicalizer(DataIntegrityProof dataIntegrityProof) {
3133
return JCSSHA256Canonicalizer.getInstance();
3234
}

0 commit comments

Comments
 (0)