Skip to content

Commit ea80f20

Browse files
committed
Some updates for Schnorr signatures
1 parent 1891f62 commit ea80f20

File tree

6 files changed

+46
-50
lines changed

6 files changed

+46
-50
lines changed

src/test/java/com/danubetech/verifiablecredentials/w3c/bip340/DataIntegrityProofSignTest.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.danubetech.keyformats.PublicKeyBytes;
88
import com.danubetech.keyformats.crypto.ByteSigner;
99
import com.danubetech.keyformats.crypto.ByteVerifier;
10+
import com.danubetech.keyformats.crypto.impl.secp256k1_ES256KS_PrivateKeySigner;
1011
import com.danubetech.keyformats.crypto.impl.secp256k1_ES256KS_PublicKeyVerifier;
1112
import com.danubetech.keyformats.crypto.impl.secp256k1_ES256K_PrivateKeySigner;
1213
import com.danubetech.keyformats.crypto.provider.*;
@@ -41,11 +42,11 @@ public class DataIntegrityProofSignTest {
4142

4243
try {
4344

44-
privateKeyCredential1 = TestUtil.removeMulticodec(Multibase.decode("z3u2en7t5LR2WtQH5PfFqMqwVHBeXouLzo6haApm8XHqvjxq"));
45-
privateKeyCredential2 = TestUtil.removeMulticodec(Multibase.decode("z3u2en7t5LR2WtQH5PfFqMqwVHBeXouLzo6haApm8XHqvjxq"));
45+
privateKeyCredential1 = TestUtil.removeMulticodec(Multibase.decode("z3vLhXkdoZmXj6TwZoG5D8CXvDQ4AzYeZHLusAR5RU5K56zk"));
46+
privateKeyCredential2 = TestUtil.removeMulticodec(Multibase.decode("z3vLhXkdoZmXj6TwZoG5D8CXvDQ4AzYeZHLusAR5RU5K56zk"));
4647

47-
publicKeyCredential1 = TestUtil.removeMulticodec(Multibase.decode("z6MkrJVnaZkeFzdQyMZu1cgjg7k1pZZ6pvBQ7XJPt4swbTQ2"));
48-
publicKeyCredential2 = TestUtil.removeMulticodec(Multibase.decode("z6MkrJVnaZkeFzdQyMZu1cgjg7k1pZZ6pvBQ7XJPt4swbTQ2"));
48+
publicKeyCredential1 = TestUtil.removeMulticodec(Multibase.decode("zQ3shcJDnkBjY3XqD4WVKktWQZqgQSrYzhaTo6gxcs6GXjUuM"));
49+
publicKeyCredential2 = TestUtil.removeMulticodec(Multibase.decode("zQ3shcJDnkBjY3XqD4WVKktWQZqgQSrYzhaTo6gxcs6GXjUuM"));
4950

5051
verifiableCredentialGood1 = VerifiableCredentialV2.fromJson(new InputStreamReader(Objects.requireNonNull(DataIntegrityProofSignTest.class.getResourceAsStream("unsigned.good.DataIntegrityProof.1.jsonld"))));
5152
verifiableCredentialGood2 = VerifiableCredentialV2.fromJson(new InputStreamReader(Objects.requireNonNull(DataIntegrityProofSignTest.class.getResourceAsStream("unsigned.good.DataIntegrityProof.2.jsonld"))));
@@ -80,25 +81,25 @@ void testValidity() {
8081
void testSignCredential1() throws Exception {
8182
DataIntegrityProofLdSigner signer = new DataIntegrityProofLdSigner(byteSignerSecp256k1(privateKeyCredential1));
8283
DataIntegrityProofLdVerifier verifier = new DataIntegrityProofLdVerifier(byteVerifierSecp256k1(publicKeyCredential1));
83-
signer.setCryptosuite("eddsa-rdfc-2022");
84+
signer.setCryptosuite("bip340-rdfc-2025");
8485
signer.setCreated(JsonLDUtils.stringToDate("2023-02-24T23:36:38Z"));
8586
signer.setProofPurpose("assertionMethod");
86-
signer.setVerificationMethod(URI.create("did:key:z6MkrJVnaZkeFzdQyMZu1cgjg7k1pZZ6pvBQ7XJPt4swbTQ2#z6MkrJVnaZkeFzdQyMZu1cgjg7k1pZZ6pvBQ7XJPt4swbTQ2"));
87+
signer.setVerificationMethod(URI.create("did:key:z6DtcgBo65Ms1qzug5JAgVZH3sEpH7vp4q6D2T3cdHnyBFGj#z6DtcgBo65Ms1qzug5JAgVZH3sEpH7vp4q6D2T3cdHnyBFGj"));
8788
DataIntegrityProof dataIntegrityProof = signer.sign(verifiableCredentialGood1);
88-
assertEquals("z2YwC8z3ap7yx1nZYCg4L3j3ApHsF8kgPdSb5xoS1VR7vPG3F561B52hYnQF9iseabecm3ijx4K1FBTQsCZahKZme", dataIntegrityProof.getProofValue());
89+
assertEquals("z4csLXc5E3KGSTBYwC5D4WzixkFWeMcWbjPnC6AHzWrLDrpZsqZoj4JXJEBRx4JShCL8RbDb8NwqhbuPfYU7muFyY", dataIntegrityProof.getProofValue());
8990
assertTrue(verifier.verify(verifiableCredentialGood1));
9091
}
9192

9293
//@Test
9394
void testSignCredential2() throws Exception {
9495
DataIntegrityProofLdSigner signer = new DataIntegrityProofLdSigner(byteSignerSecp256k1(privateKeyCredential2));
9596
DataIntegrityProofLdVerifier verifier = new DataIntegrityProofLdVerifier(byteVerifierSecp256k1(publicKeyCredential2));
96-
signer.setCryptosuite("eddsa-rdfc-2022");
97+
signer.setCryptosuite("bip340-jcs-2025");
9798
signer.setCreated(JsonLDUtils.stringToDate("2023-02-24T23:36:38Z"));
9899
signer.setProofPurpose("assertionMethod");
99100
signer.setVerificationMethod(URI.create("did:key:z6MkrJVnaZkeFzdQyMZu1cgjg7k1pZZ6pvBQ7XJPt4swbTQ2#z6MkrJVnaZkeFzdQyMZu1cgjg7k1pZZ6pvBQ7XJPt4swbTQ2"));
100101
DataIntegrityProof dataIntegrityProof = signer.sign(verifiableCredentialGood2);
101-
assertEquals("zeuuS9pi2ZR8Q41bFFJKS9weSWkwa7pRcxHTHzxjDEHtVSZp3D9Rm3JdzT82EQpmXMb9wvfFJLuDPeSXZaRX1q1c", dataIntegrityProof.getProofValue());
102+
assertEquals("z3P1WFufkFdaA9HM9jd4SYrGFbYYKzymhoYoqLHSG2zVfhjaTXFtdiQ1EwBt8X11x6rPccMdQxmhcYTfd6btY2nWt", dataIntegrityProof.getProofValue());
102103
assertTrue(verifier.verify(verifiableCredentialGood2));
103104
}
104105

@@ -107,7 +108,7 @@ void testSignCredential2() throws Exception {
107108
*/
108109

109110
private static ByteSigner byteSignerSecp256k1(byte[] privateKeyBytes) {
110-
return new secp256k1_ES256K_PrivateKeySigner(PrivateKeyBytes.bytes_to_secp256k1PrivateKey(privateKeyBytes));
111+
return new secp256k1_ES256KS_PrivateKeySigner(PrivateKeyBytes.bytes_to_secp256k1PrivateKey(privateKeyBytes));
111112
}
112113

113114
private static ByteVerifier byteVerifierSecp256k1(byte[] publicKeyBytes) {

src/test/java/com/danubetech/verifiablecredentials/w3c/bip340/DataIntegrityProofVerifyTest.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ public class DataIntegrityProofVerifyTest {
2222

2323
final static byte[] publicKeyCredential1;
2424
final static byte[] publicKeyCredential2;
25-
final static byte[] publicKeyCredential3;
26-
final static byte[] publicKeyCredential4;
2725

2826
final static VerifiableCredentialV2 verifiableCredentialGood1;
2927
final static VerifiableCredentialV2 verifiableCredentialGood2;
@@ -32,10 +30,8 @@ public class DataIntegrityProofVerifyTest {
3230

3331
try {
3432

35-
publicKeyCredential1 = TestUtil.removeMulticodec(Multibase.decode("z6MkrJVnaZkeFzdQyMZu1cgjg7k1pZZ6pvBQ7XJPt4swbTQ2"));
36-
publicKeyCredential2 = TestUtil.removeMulticodec(Multibase.decode("z6MkrJVnaZkeFzdQyMZu1cgjg7k1pZZ6pvBQ7XJPt4swbTQ2"));
37-
publicKeyCredential3 = TestUtil.removeMulticodec(Multibase.decode("z6MkrJVnaZkeFzdQyMZu1cgjg7k1pZZ6pvBQ7XJPt4swbTQ2"));
38-
publicKeyCredential4 = TestUtil.removeMulticodec(Multibase.decode("z6MkrJVnaZkeFzdQyMZu1cgjg7k1pZZ6pvBQ7XJPt4swbTQ2"));
33+
publicKeyCredential1 = TestUtil.removeMulticodec(Multibase.decode("zQ3shcJDnkBjY3XqD4WVKktWQZqgQSrYzhaTo6gxcs6GXjUuM"));
34+
publicKeyCredential2 = TestUtil.removeMulticodec(Multibase.decode("zQ3shcJDnkBjY3XqD4WVKktWQZqgQSrYzhaTo6gxcs6GXjUuM"));
3935

4036
verifiableCredentialGood1 = VerifiableCredentialV2.fromJson(new InputStreamReader(Objects.requireNonNull(DataIntegrityProofVerifyTest.class.getResourceAsStream("signed.good.DataIntegrityProof.1.jsonld"))));
4137
verifiableCredentialGood2 = VerifiableCredentialV2.fromJson(new InputStreamReader(Objects.requireNonNull(DataIntegrityProofVerifyTest.class.getResourceAsStream("signed.good.DataIntegrityProof.2.jsonld"))));

src/test/java/com/danubetech/verifiablecredentials/w3c/ecdsa/DataIntegrityProofSignTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,9 @@ void testValidity() {
9999

100100
Validation.validate(verifiableCredentialGood1);
101101
Validation.validate(verifiableCredentialGood2);
102+
Validation.validate(verifiableCredentialGood3);
103+
Validation.validate(verifiableCredentialGood4);
104+
Validation.validate(verifiableCredentialGood5);
102105
}
103106

104107
/*

src/test/java/com/danubetech/verifiablecredentials/w3c/eddsa/DataIntegrityProofSignTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,8 @@ void testValidity() {
8787

8888
Validation.validate(verifiableCredentialGood1);
8989
Validation.validate(verifiableCredentialGood2);
90+
Validation.validate(verifiableCredentialGood3);
91+
Validation.validate(verifiableCredentialGood4);
9092
}
9193

9294
/*
Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
11
{
2-
"@context": [
3-
"https://www.w3.org/ns/credentials/v2",
4-
"https://www.w3.org/ns/credentials/examples/v2"
5-
],
6-
"id": "urn:uuid:58172aac-d8ba-11ed-83dd-0b3aef56cc33",
7-
"type": [
8-
"VerifiableCredential",
9-
"AlumniCredential"
10-
],
11-
"name": "Alumni Credential",
12-
"description": "A minimum viable example of an Alumni Credential.",
13-
"issuer": "https://vc.example/issuers/5678",
14-
"validFrom": "2023-01-01T00:00:00Z",
15-
"credentialSubject": {
16-
"id": "did:example:abcdefgh",
17-
"alumniOf": "The School of Examples"
18-
}
2+
"@context": [
3+
"https://www.w3.org/ns/credentials/v2",
4+
"https://www.w3.org/ns/credentials/examples/v2"
5+
],
6+
"id": "urn:uuid:58172aac-d8ba-11ed-83dd-0b3aef56cc33",
7+
"type": ["VerifiableCredential", "AlumniCredential"],
8+
"name": "Alumni Credential",
9+
"description": "A minimum viable example of an Alumni Credential.",
10+
"issuer": "https://vc.example/issuers/5678",
11+
"validFrom": "2023-01-01T00:00:00Z",
12+
"credentialSubject": {
13+
"id": "did:example:abcdefgh",
14+
"alumniOf": "The School of Examples"
15+
}
1916
}
Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
11
{
2-
"@context": [
3-
"https://www.w3.org/ns/credentials/v2",
4-
"https://www.w3.org/ns/credentials/examples/v2"
5-
],
6-
"id": "urn:uuid:58172aac-d8ba-11ed-83dd-0b3aef56cc33",
7-
"type": [
8-
"VerifiableCredential",
9-
"AlumniCredential"
10-
],
11-
"name": "Alumni Credential",
12-
"description": "A minimum viable example of an Alumni Credential.",
13-
"issuer": "https://vc.example/issuers/5678",
14-
"validFrom": "2023-01-01T00:00:00Z",
15-
"credentialSubject": {
16-
"id": "did:example:abcdefgh",
17-
"alumniOf": "The School of Examples"
18-
}
2+
"@context": [
3+
"https://www.w3.org/ns/credentials/v2",
4+
"https://www.w3.org/ns/credentials/examples/v2"
5+
],
6+
"id": "urn:uuid:58172aac-d8ba-11ed-83dd-0b3aef56cc33",
7+
"type": ["VerifiableCredential", "AlumniCredential"],
8+
"name": "Alumni Credential",
9+
"description": "A minimum viable example of an Alumni Credential.",
10+
"issuer": "https://vc.example/issuers/5678",
11+
"validFrom": "2023-01-01T00:00:00Z",
12+
"credentialSubject": {
13+
"id": "did:example:abcdefgh",
14+
"alumniOf": "The School of Examples"
15+
}
1916
}

0 commit comments

Comments
 (0)