Skip to content

Commit

Permalink
test: Some improvements to tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
peacekeeper committed Jun 21, 2021
1 parent 4e0844a commit 8e9b055
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 12 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.danubetech.verifiablecredentials;

import com.danubetech.verifiablecredentials.validation.Validation;
import foundation.identity.jsonld.JsonLDUtils;
import info.weboftrust.ldsignatures.LdProof;
import info.weboftrust.ldsignatures.signer.RsaSignature2018LdSigner;
Expand All @@ -21,24 +22,26 @@ void testSign() throws Throwable {

VerifiableCredential verifiableCredential = VerifiableCredential.fromJson(new InputStreamReader(VerifyCredentialTest.class.getResourceAsStream("input.vc.jsonld")));

URI creator = URI.create("did:sov:1yvXbmgPoUm4dl66D7KhyD#keys-1");
URI verificationMethod = URI.create("did:sov:1yvXbmgPoUm4dl66D7KhyD#keys-1");
Date created = JsonLDUtils.DATE_FORMAT.parse("2018-01-01T21:19:10Z");
String domain = null;
String nonce = "c0ae1c8e-c7e7-469f-b252-86e6a0e7387e";

RsaSignature2018LdSigner signer = new RsaSignature2018LdSigner(TestUtil.testRSAPrivateKey);
signer.setCreator(creator);
signer.setVerificationMethod(verificationMethod);
signer.setCreated(created);
signer.setDomain(domain);
signer.setNonce(nonce);
LdProof ldProof = signer.sign(verifiableCredential, true, false);

assertEquals(SignatureSuites.SIGNATURE_SUITE_RSASIGNATURE2018.getTerm(), ldProof.getType());
assertEquals(creator, ldProof.getCreator());
assertEquals(verificationMethod, ldProof.getVerificationMethod());
assertEquals(created, ldProof.getCreated());
assertEquals(domain, ldProof.getDomain());
assertEquals(nonce, ldProof.getNonce());
assertEquals("eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJSUzI1NiJ9..m-5V3caaBBVWldf9c83ve2gBfgDdZqVrBGQZl5flXwgskOTkBlEIODMkK0j203PeOIfHSYZUO5wj4bGCSHZ8ORaQWoJFX_znskHipBvH2wc4TBu4mgMIJefP14gl1kDGF6Vw_BtbP6EWpmm2dnhKztDo-X4XuUGpbyBJ-lVX_CGl0qftzPAZtabUEmc-dB911EfiNbslJ6qJYKd_r7D7scSVKnJtE0xXK4obrWJg2_tx-cD1KWtrJXf-wIXa43gdwlFcVLLrHvzglf-KkHezxI9Ee6RNcIP-YQNrsjNet4obRzZuwcQAJ8-pBwdF901AgDKAI0Q85cjy_LGbxqb0GA", ldProof.getJws());
assertEquals("eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJSUzI1NiJ9..Sn-LB5t_x-kh9mUDq1DaS1GScj3PY_2fMnNnhq09x-ZBf6_EzYfvgFOpEvdLUwxkJiEt7B2x-LGg7bp-o7UEGCbIxWdGUTG7BGAsKsU18hUwOHrVNZ6VHovbxeFgK0iNMn0MObDiGdQbYMG8C71m3AvquUP00-2UiDcqNxmGAYg5tHv7SHXLEgvaz7SnIkBklj1yj_TMXreSGa_okbXFYxh7SkMfFcxHbBFShr0Fzd8DTn8tr_WvPHR7Tx3bkJHmqFx9Wo-0e7FkLeICsgmBKa5Hzz-y_1yEQPsDaZRRsbXfBD4krL7WTplJtAwnQ5Sy-L9cwZzNhCQC6KsggGjTgQ", ldProof.getJws());

Validation.validate(verifiableCredential);

RsaSignature2018LdVerifier verifier = new RsaSignature2018LdVerifier(TestUtil.testRSAPublicKey);
boolean verify = verifier.verify(verifiableCredential);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.danubetech.verifiablecredentials;

import com.danubetech.verifiablecredentials.validation.Validation;
import foundation.identity.jsonld.JsonLDUtils;
import info.weboftrust.ldsignatures.LdProof;
import info.weboftrust.ldsignatures.signer.RsaSignature2018LdSigner;
Expand All @@ -21,24 +22,26 @@ void testSign() throws Throwable {

VerifiablePresentation verifiablePresentation = VerifiablePresentation.fromJson(new InputStreamReader(VerifyCredentialTest.class.getResourceAsStream("input.vp.jsonld")));

URI creator = URI.create("did:sov:1yvXbmgPoUm4dl66D7KhyD#keys-1");
URI verificationMethod = URI.create("did:sov:1yvXbmgPoUm4dl66D7KhyD#keys-1");
Date created = JsonLDUtils.DATE_FORMAT.parse("2018-01-01T21:19:10Z");
String domain = null;
String nonce = "c0ae1c8e-c7e7-469f-b252-86e6a0e7387e";

RsaSignature2018LdSigner signer = new RsaSignature2018LdSigner(TestUtil.testRSAPrivateKey);
signer.setCreator(creator);
signer.setVerificationMethod(verificationMethod);
signer.setCreated(created);
signer.setDomain(domain);
signer.setNonce(nonce);
LdProof ldSignature = signer.sign(verifiablePresentation, true, false);

assertEquals(SignatureSuites.SIGNATURE_SUITE_RSASIGNATURE2018.getTerm(), ldSignature.getType());
assertEquals(creator, ldSignature.getCreator());
assertEquals(verificationMethod, ldSignature.getVerificationMethod());
assertEquals(created, ldSignature.getCreated());
assertEquals(domain, ldSignature.getDomain());
assertEquals(nonce, ldSignature.getNonce());
assertEquals("eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJSUzI1NiJ9..VqTXD63c1DN1saWhkRz-RJL2VMbzNrNQSBcdkLQ82Cv04YcsdmSDJe0odqEDxk77B81zTXpIyeYxUoz8kYzL3vCtaoJTFOUmBLjztBEendyC3EJlH0XL1TEpXoAxBe5J3GLp5CVOphDEfc5SHQz0lVBP3ssX844ndxFgPzJGmLykoLTr7QmRDFkAAErJEEWDsJpTHP1V9MGLsMfbpgPIwmcLutK8mKJcDN7hnjGnHbua3nLQSb5aO6Pdduz9SSCFNk8TDqzowVymuI3wPsZjNBDePZgGIu1b016D0MkkwH7Xy0jZ2JReRPph4VX2TANSTjDeXQ4dSEupyLwd1wWljQ", ldSignature.getJws());
assertEquals("eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJSUzI1NiJ9..PexTQ753-C3IjZwC0F5yA-06EuiM_McqPBRcyPhHw0PdCaVdvK628kqG8PWABJ1oISU8Z75lzpfhwNwD2qRiPTLg6uQqbmm8p633hM0HCIih8Uf3QzflrUlxfPIiAdUmWZiNRHNPbm4KD4hvPl4S0kYmCLJEp0evMbazZHKgnKOzzGsvOIqpCwheH30uzbk5--z8XJGflMLEHqrp42DWuYB8y9l_yn830mC6xAzWe25KRSbODDk2xy1gjIcMeBYPkMuZ4MCamRUYsPuj-aLHq8q8iDrhUoUDH307v0OevDlyu6cG7_H0bgG6fGTzAT5EGkb-EhE3NfAvKo7nh3d6Mw", ldSignature.getJws());

Validation.validate(verifiablePresentation);

RsaSignature2018LdVerifier verifier = new RsaSignature2018LdVerifier(TestUtil.testRSAPublicKey);
boolean verify = verifier.verify(verifiablePresentation);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.danubetech.verifiablecredentials;

import com.danubetech.verifiablecredentials.validation.Validation;
import info.weboftrust.ldsignatures.verifier.RsaSignature2018LdVerifier;
import org.junit.jupiter.api.Test;

Expand All @@ -14,6 +15,8 @@ void testVerify() throws Throwable {

VerifiableCredential verifiableCredential = VerifiableCredential.fromJson(new InputStreamReader(VerifyCredentialTest.class.getResourceAsStream("signed.good.vc.jsonld")));

Validation.validate(verifiableCredential);

RsaSignature2018LdVerifier verifier = new RsaSignature2018LdVerifier(TestUtil.testRSAPublicKey);
boolean verify = verifier.verify(verifiableCredential);

Expand All @@ -30,6 +33,8 @@ void testBadVerify() throws Throwable {

VerifiableCredential verifiableCredential = VerifiableCredential.fromJson(new InputStreamReader(VerifyCredentialTest.class.getResourceAsStream("signed.bad.vc.jsonld")));

Validation.validate(verifiableCredential);

RsaSignature2018LdVerifier verifier = new RsaSignature2018LdVerifier(TestUtil.testRSAPublicKey);
boolean verify = verifier.verify(verifiableCredential);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import com.danubetech.keyformats.crypto.provider.impl.JavaRandomProvider;
import com.danubetech.keyformats.crypto.provider.impl.JavaSHA256Provider;
import com.danubetech.keyformats.crypto.provider.impl.TinkEd25519Provider;
import com.danubetech.verifiablecredentials.validation.Validation;
import info.weboftrust.ldsignatures.verifier.Ed25519Signature2018LdVerifier;
import org.bitcoinj.core.Base58;
import org.junit.jupiter.api.BeforeEach;
Expand Down Expand Up @@ -65,6 +66,19 @@ public void before() {
Ed25519Provider.set(new TinkEd25519Provider());
}

@Test
void testValidity() {

Validation.validate(verifiablePresentationGood1);
Validation.validate(verifiablePresentationGood2);
Validation.validate(verifiablePresentationBad1);
Validation.validate(verifiablePresentationBad2);
Validation.validate(verifiableCredentialGood1);
Validation.validate(verifiableCredentialGood2);
Validation.validate(verifiableCredentialBad1);
Validation.validate(verifiableCredentialBad2);
}

/*
* GOOD CREDENTIAL
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
},
"proof" : {
"type" : "RsaSignature2018",
"creator" : "did:sov:1yvXbmgPoUm4dl66D7KhyD#keys-1",
"verificationMethod" : "did:sov:1yvXbmgPoUm4dl66D7KhyD#keys-1",
"created" : "2018-01-01T21:19:10Z",
"nonce" : "c0ae1c8e-c7e7-469f-b252-86e6a0e7387e",
"jws" : "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJSUzI1NiJ9..m-5V3caaBBVWldf9c83ve2gBfgDdZqVrBGQZl5flXwgskOTkBlEIODMkK0j203PeOIfHSYZUO5wj4bGCSHZ8ORaQWoJFX_znskHipBvH2wc4TBu4mgMIJefP14gl1kDGF6Vw_BtbP6EWpmm2dnhKztDo-X4XuUGpbyBJ-lVX_CGl0qftzPAZtabUEmc-dB911EfiNbslJ6qJYKd_r7D7scSVKnJtE0xXK4obrWJg2_tx-cD1KWtrJXf-wIXa43gdwlFcVLLrHvzglf-KkHezxI9Ee6RNcIP-YQNrsjNet4obRzZuwcQAJ8-pBwdF901AgDKAI0Q85cjy_LGbxqb0GA"
"jws" : "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJSUzI1NiJ9..Sn-LB5t_x-kh9mUDq1DaS1GScj3PY_2fMnNnhq09x-ZBf6_EzYfvgFOpEvdLUwxkJiEt7B2x-LGg7bp-o7UEGCbIxWdGUTG7BGAsKsU18hUwOHrVNZ6VHovbxeFgK0iNMn0MObDiGdQbYMG8C71m3AvquUP00-2UiDcqNxmGAYg5tHv7SHXLEgvaz7SnIkBklj1yj_TMXreSGa_okbXFYxh7SkMfFcxHbBFShr0Fzd8DTn8tr_WvPHR7Tx3bkJHmqFx9Wo-0e7FkLeICsgmBKa5Hzz-y_1yEQPsDaZRRsbXfBD4krL7WTplJtAwnQ5Sy-L9cwZzNhCQC6KsggGjTgQ"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
},
"proof" : {
"type" : "RsaSignature2018",
"creator" : "did:sov:1yvXbmgPoUm4dl66D7KhyD#keys-1",
"verificationMethod" : "did:sov:1yvXbmgPoUm4dl66D7KhyD#keys-1",
"created" : "2018-01-01T21:19:10Z",
"nonce" : "c0ae1c8e-c7e7-469f-b252-86e6a0e7387e",
"jws" : "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJSUzI1NiJ9..m-5V3caaBBVWldf9c83ve2gBfgDdZqVrBGQZl5flXwgskOTkBlEIODMkK0j203PeOIfHSYZUO5wj4bGCSHZ8ORaQWoJFX_znskHipBvH2wc4TBu4mgMIJefP14gl1kDGF6Vw_BtbP6EWpmm2dnhKztDo-X4XuUGpbyBJ-lVX_CGl0qftzPAZtabUEmc-dB911EfiNbslJ6qJYKd_r7D7scSVKnJtE0xXK4obrWJg2_tx-cD1KWtrJXf-wIXa43gdwlFcVLLrHvzglf-KkHezxI9Ee6RNcIP-YQNrsjNet4obRzZuwcQAJ8-pBwdF901AgDKAI0Q85cjy_LGbxqb0GA"
"jws" : "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJSUzI1NiJ9..Sn-LB5t_x-kh9mUDq1DaS1GScj3PY_2fMnNnhq09x-ZBf6_EzYfvgFOpEvdLUwxkJiEt7B2x-LGg7bp-o7UEGCbIxWdGUTG7BGAsKsU18hUwOHrVNZ6VHovbxeFgK0iNMn0MObDiGdQbYMG8C71m3AvquUP00-2UiDcqNxmGAYg5tHv7SHXLEgvaz7SnIkBklj1yj_TMXreSGa_okbXFYxh7SkMfFcxHbBFShr0Fzd8DTn8tr_WvPHR7Tx3bkJHmqFx9Wo-0e7FkLeICsgmBKa5Hzz-y_1yEQPsDaZRRsbXfBD4krL7WTplJtAwnQ5Sy-L9cwZzNhCQC6KsggGjTgQ"
}
}

0 comments on commit 8e9b055

Please sign in to comment.