|
1 | 1 | package com.danubetech.verifiablecredentials; |
2 | 2 |
|
| 3 | +import static org.junit.jupiter.api.Assertions.assertEquals; |
| 4 | + |
| 5 | +import java.net.URI; |
| 6 | +import java.util.Date; |
| 7 | +import java.util.LinkedHashMap; |
| 8 | + |
| 9 | +import org.junit.jupiter.api.Test; |
| 10 | + |
3 | 11 | import com.github.jsonldjava.utils.JsonUtils; |
4 | 12 |
|
5 | 13 | import info.weboftrust.ldsignatures.LdSignature; |
6 | 14 | import info.weboftrust.ldsignatures.signer.RsaSignature2018LdSigner; |
7 | 15 | import info.weboftrust.ldsignatures.suites.SignatureSuites; |
8 | | -import org.junit.jupiter.api.Test; |
9 | | - |
10 | | -import java.net.URI; |
11 | | -import java.util.LinkedHashMap; |
12 | | - |
13 | | -import static org.junit.jupiter.api.Assertions.assertEquals; |
14 | 16 |
|
15 | 17 | class SignTest { |
16 | 18 |
|
17 | | - @Test |
18 | | - void testSign() throws Exception { |
19 | | - |
20 | | - VerifiableCredential verifiableCredential = new VerifiableCredential(); |
21 | | - verifiableCredential.getContext().add("https://trafi.fi/credentials/v1"); |
22 | | - verifiableCredential.getType().add("DriversLicenseCredential"); |
23 | | - verifiableCredential.setIssuer("did:sov:1yvXbmgPoUm4dl66D7KhyD"); |
24 | | - verifiableCredential.setIssuanceDate(VerifiableCredential.DATE_FORMAT.parse("2017-10-24T05:33:31Z")); |
25 | | - |
26 | | - verifiableCredential.setCredentialSubject("did:sov:21tDAKCERh95uGgKbJNHYp"); |
27 | | - LinkedHashMap<String, Object> jsonLdCredentialSubject = verifiableCredential.getJsonLdCredentialSubject(); |
28 | | - LinkedHashMap<String, Object> jsonLdDriversLicenseObject = new LinkedHashMap<>(); |
29 | | - jsonLdDriversLicenseObject.put("licenseClass", "trucks"); |
30 | | - jsonLdCredentialSubject.put("driversLicense", jsonLdDriversLicenseObject); |
31 | | - |
32 | | - URI creator = URI.create("did:sov:1yvXbmgPoUm4dl66D7KhyD#keys-1"); |
33 | | - String created = "2018-01-01T21:19:10Z"; |
34 | | - String domain = null; |
35 | | - String nonce = "c0ae1c8e-c7e7-469f-b252-86e6a0e7387e"; |
36 | | - |
37 | | - RsaSignature2018LdSigner signer = new RsaSignature2018LdSigner(TestUtil.testRSAPrivateKey); |
38 | | - signer.setCreator(creator); |
39 | | - signer.setCreated(created); |
40 | | - signer.setDomain(domain); |
41 | | - signer.setNonce(nonce); |
42 | | - LdSignature ldSignature = signer.sign(verifiableCredential.getJsonLdObject()); |
43 | | - |
44 | | - assertEquals(SignatureSuites.SIGNATURE_SUITE_RSASIGNATURE2018.getTerm(), ldSignature.getType()); |
45 | | - assertEquals(creator, ldSignature.getCreator()); |
46 | | - assertEquals(created, ldSignature.getCreated()); |
47 | | - assertEquals(domain, ldSignature.getDomain()); |
48 | | - assertEquals(nonce, ldSignature.getNonce()); |
49 | | - assertEquals("eyJjcml0IjpbImI2NCJdLCJiNjQiOmZhbHNlLCJhbGciOiJSUzI1NiJ9..O_-LVz0SghpFOlO0xU1d7dk8rXpoQXpd1dBdGuXyjqE72bSZOn_C65M-_ZasNtgt0AxDmkdEFhb1Ji5hZmkuIm9qhMnZDiMMcn6FuMd0eQyYR2OqLOcxOLVdCjgJF4s7M_Mpl7CgZ1w5QnqIEgCp3kzYskvmJrqOsib4a-VXh7xAyA4Lo9edK02wF7t5BrjO6Yz9xaHjB2V9A-Vh3UEXj8kc3cE3M7rMiPlmAiZRdKpl9lVL0ANW1Y0sMPceL3CPoOsjTomfOnGxXylfnhemnVAjpVs5HhG4NlzBf9FT-YPlxfmzVSw1P6epIGSMq4nVXuRXlWD-E_4KcG6teUD3jQ", ldSignature.getSignatureValue()); |
50 | | - } |
| 19 | + @Test |
| 20 | + void testSign() throws Exception { |
| 21 | + |
| 22 | + LinkedHashMap<String, Object> jsonLdObject = (LinkedHashMap<String, Object>) JsonUtils.fromInputStream(VerifyTest.class.getResourceAsStream("verifiable-credential.input.jsonld")); |
| 23 | + VerifiableCredential verifiableCredential = VerifiableCredential.fromJsonLdObject(jsonLdObject); |
| 24 | + |
| 25 | + URI creator = URI.create("did:sov:1yvXbmgPoUm4dl66D7KhyD#keys-1"); |
| 26 | + Date created = VerifiableCredential.DATE_FORMAT.parse("2018-01-01T21:19:10Z"); |
| 27 | + String domain = null; |
| 28 | + String nonce = "c0ae1c8e-c7e7-469f-b252-86e6a0e7387e"; |
| 29 | + |
| 30 | + RsaSignature2018LdSigner signer = new RsaSignature2018LdSigner(TestUtil.testRSAPrivateKey); |
| 31 | + signer.setCreator(creator); |
| 32 | + signer.setCreated(created); |
| 33 | + signer.setDomain(domain); |
| 34 | + signer.setNonce(nonce); |
| 35 | + LdSignature ldSignature = signer.sign(verifiableCredential.getJsonLdObject(), true, false); |
| 36 | + |
| 37 | + System.out.println(verifiableCredential.toPrettyJsonString()); |
| 38 | + |
| 39 | + assertEquals(SignatureSuites.SIGNATURE_SUITE_RSASIGNATURE2018.getTerm(), ldSignature.getType()); |
| 40 | + assertEquals(creator, ldSignature.getCreator()); |
| 41 | + assertEquals(created, ldSignature.getCreated()); |
| 42 | + assertEquals(domain, ldSignature.getDomain()); |
| 43 | + assertEquals(nonce, ldSignature.getNonce()); |
| 44 | + assertEquals("eyJjcml0IjpbImI2NCJdLCJiNjQiOmZhbHNlLCJhbGciOiJSUzI1NiJ9..pZtcYsR_vEtm5ZLEGNJZPYuWQeD_drBG55gDrX4V-Zxe-R0ue90QzfLn9ZAheBrnWxQNobOsmc0wLBLnSNp5fMbmxHzaMuPadkMXgyqdgH6r13YHidLhtsg8OWGBU0nlFQe5NPztP8HJdgdTmK8ohQlx1pB7BQuB3-iY_cHO7PLuVJFplI616v7zINW46SNc6PE2cJ_O-dnehA_PaNCnUn7s-TfqTYC7LQ2N95XImBt9zW5DYE7NRY7ZZh1sBNaSnHweOYZay-W6u789J3zTFxgbl-hZGziFA4EOJoWUAdb1vCBzlBWasfmkD0LAxlv7UV0Fp3wG2laIFiTwgrm9eg", ldSignature.getJws()); |
| 45 | + } |
51 | 46 | } |
0 commit comments