|
1 | 1 | package com.danubetech.verifiablecredentials; |
2 | | -import java.security.GeneralSecurityException; |
3 | | -import java.util.LinkedHashMap; |
4 | 2 |
|
5 | 3 | import com.danubetech.verifiablecredentials.jwt.JwtVerifiableCredential; |
| 4 | +import org.junit.jupiter.api.Test; |
| 5 | + |
| 6 | +import java.security.GeneralSecurityException; |
| 7 | +import java.util.LinkedHashMap; |
6 | 8 |
|
7 | | -import junit.framework.TestCase; |
| 9 | +import static org.junit.jupiter.api.Assertions.*; |
8 | 10 |
|
9 | | -public class JwtTest extends TestCase { |
| 11 | +class JwtTest { |
10 | 12 |
|
11 | | - public void testSign() throws Exception { |
| 13 | + @Test |
| 14 | + void testSign() throws Exception { |
12 | 15 |
|
13 | | - VerifiableCredential verifiableCredential = new VerifiableCredential(); |
14 | | - verifiableCredential.getContext().add("https://trafi.fi/credentials/v1"); |
15 | | - verifiableCredential.getType().add("DriversLicenseCredential"); |
16 | | - verifiableCredential.setId("urn:uuid:a87bdfb8-a7df-4bd9-ae0d-d883133538fe"); |
17 | | - verifiableCredential.setIssuer("did:sov:1yvXbmgPoUm4dl66D7KhyD"); |
18 | | - verifiableCredential.setIssuanceDate(VerifiableCredential.DATE_FORMAT.parse("2019-06-16T18:56:59Z")); |
19 | | - verifiableCredential.setExpirationDate(VerifiableCredential.DATE_FORMAT.parse("2019-06-17T18:56:59Z")); |
| 16 | + VerifiableCredential verifiableCredential = new VerifiableCredential(); |
| 17 | + verifiableCredential.getContext().add("https://trafi.fi/credentials/v1"); |
| 18 | + verifiableCredential.getType().add("DriversLicenseCredential"); |
| 19 | + verifiableCredential.setId("urn:uuid:a87bdfb8-a7df-4bd9-ae0d-d883133538fe"); |
| 20 | + verifiableCredential.setIssuer("did:sov:1yvXbmgPoUm4dl66D7KhyD"); |
| 21 | + verifiableCredential.setIssuanceDate(VerifiableCredential.DATE_FORMAT.parse("2019-06-16T18:56:59Z")); |
| 22 | + verifiableCredential.setExpirationDate(VerifiableCredential.DATE_FORMAT.parse("2019-06-17T18:56:59Z")); |
20 | 23 |
|
21 | | - verifiableCredential.setCredentialSubject("did:sov:21tDAKCERh95uGgKbJNHYp"); |
22 | | - LinkedHashMap<String, Object> jsonLdCredentialSubject = verifiableCredential.getJsonLdCredentialSubject(); |
23 | | - LinkedHashMap<String, Object> jsonLdDriversLicenseObject = new LinkedHashMap<String, Object> (); |
24 | | - jsonLdDriversLicenseObject.put("licenseClass", "trucks"); |
25 | | - jsonLdCredentialSubject.put("driversLicense", jsonLdDriversLicenseObject); |
| 24 | + verifiableCredential.setCredentialSubject("did:sov:21tDAKCERh95uGgKbJNHYp"); |
| 25 | + LinkedHashMap<String, Object> jsonLdCredentialSubject = verifiableCredential.getJsonLdCredentialSubject(); |
| 26 | + LinkedHashMap<String, Object> jsonLdDriversLicenseObject = new LinkedHashMap<>(); |
| 27 | + jsonLdDriversLicenseObject.put("licenseClass", "trucks"); |
| 28 | + jsonLdCredentialSubject.put("driversLicense", jsonLdDriversLicenseObject); |
26 | 29 |
|
27 | | - JwtVerifiableCredential jwtVerifiableCredential = JwtVerifiableCredential.fromVerifiableCredential(verifiableCredential); |
28 | | - String jwtString = jwtVerifiableCredential.sign_RSA_RS256(TestUtil.rsaKey); |
29 | | - String jwtPayload = jwtVerifiableCredential.getJwsObject().getPayload().toString(); |
| 30 | + JwtVerifiableCredential jwtVerifiableCredential = JwtVerifiableCredential.fromVerifiableCredential(verifiableCredential); |
| 31 | + String jwtString = jwtVerifiableCredential.sign_RSA_RS256(TestUtil.rsaKey); |
| 32 | + String jwtPayload = jwtVerifiableCredential.getJwsObject().getPayload().toString(); |
30 | 33 |
|
31 | | - assertNotNull(jwtString); |
32 | | - assertNotNull(jwtPayload); |
| 34 | + assertNotNull(jwtString); |
| 35 | + assertNotNull(jwtPayload); |
33 | 36 |
|
34 | | - assertEquals(TestUtil.read(VerifyTest.class.getResourceAsStream("verifiable-credential.jwt.jsonld")).trim(), jwtString.trim()); |
35 | | - assertEquals(TestUtil.read(VerifyTest.class.getResourceAsStream("verifiable-credential.jwt.payload.jsonld")).trim(), jwtPayload.trim()); |
36 | | - } |
| 37 | + assertEquals(TestUtil.read(VerifyTest.class.getResourceAsStream("verifiable-credential.jwt.jsonld")).trim(), jwtString.trim()); |
| 38 | + assertEquals(TestUtil.read(VerifyTest.class.getResourceAsStream("verifiable-credential.jwt.payload.jsonld")).trim(), jwtPayload.trim()); |
| 39 | + } |
37 | 40 |
|
38 | | - public void testVerify() throws Exception { |
| 41 | + @Test |
| 42 | + void testVerify() throws Exception { |
39 | 43 |
|
40 | | - JwtVerifiableCredential jwtVerifiableCredential = JwtVerifiableCredential.fromCompactSerialization(TestUtil.read(VerifyTest.class.getResourceAsStream("verifiable-credential.jwt.jsonld"))); |
41 | | - if (! jwtVerifiableCredential.verify_RSA_RS256(TestUtil.testRSAPublicKey)) throw new GeneralSecurityException("Invalid signature."); |
| 44 | + JwtVerifiableCredential jwtVerifiableCredential = JwtVerifiableCredential.fromCompactSerialization(TestUtil.read(VerifyTest.class.getResourceAsStream("verifiable-credential.jwt.jsonld"))); |
| 45 | + if (!jwtVerifiableCredential.verify_RSA_RS256(TestUtil.testRSAPublicKey)) |
| 46 | + throw new GeneralSecurityException("Invalid signature."); |
42 | 47 |
|
43 | | - String jwtPayload = jwtVerifiableCredential.getJwsObject().getPayload().toString(); |
44 | | - String jwtPayloadVerifiableCredential = jwtVerifiableCredential.getPayloadObject().toJsonString(); |
| 48 | + String jwtPayload = jwtVerifiableCredential.getJwsObject().getPayload().toString(); |
| 49 | + String jwtPayloadVerifiableCredential = jwtVerifiableCredential.getPayloadObject().toJsonString(); |
45 | 50 |
|
46 | | - assertNotNull(jwtPayload); |
47 | | - assertNotNull(jwtPayloadVerifiableCredential); |
| 51 | + assertNotNull(jwtPayload); |
| 52 | + assertNotNull(jwtPayloadVerifiableCredential); |
48 | 53 |
|
49 | | - assertEquals(TestUtil.read(VerifyTest.class.getResourceAsStream("verifiable-credential.jwt.payload.jsonld")).trim(), jwtPayload.trim()); |
| 54 | + assertEquals(TestUtil.read(VerifyTest.class.getResourceAsStream("verifiable-credential.jwt.payload.jsonld")).trim(), jwtPayload.trim()); |
50 | 55 |
|
51 | | - VerifiableCredential verifiableCredential = jwtVerifiableCredential.toVerifiableCredential(); |
| 56 | + VerifiableCredential verifiableCredential = jwtVerifiableCredential.toVerifiableCredential(); |
52 | 57 |
|
53 | | - assertNotNull(verifiableCredential); |
| 58 | + assertNotNull(verifiableCredential); |
54 | 59 |
|
55 | | - assertTrue(verifiableCredential.getType().contains("DriversLicenseCredential")); |
56 | | - assertEquals("urn:uuid:a87bdfb8-a7df-4bd9-ae0d-d883133538fe", verifiableCredential.getId()); |
57 | | - assertEquals("did:sov:1yvXbmgPoUm4dl66D7KhyD", verifiableCredential.getIssuer()); |
58 | | - assertEquals(VerifiableCredential.DATE_FORMAT.parse("2019-06-16T18:56:59Z"), verifiableCredential.getIssuanceDate()); |
59 | | - assertEquals(VerifiableCredential.DATE_FORMAT.parse("2019-06-17T18:56:59Z"), verifiableCredential.getExpirationDate()); |
| 60 | + assertTrue(verifiableCredential.getType().contains("DriversLicenseCredential")); |
| 61 | + assertEquals("urn:uuid:a87bdfb8-a7df-4bd9-ae0d-d883133538fe", verifiableCredential.getId()); |
| 62 | + assertEquals("did:sov:1yvXbmgPoUm4dl66D7KhyD", verifiableCredential.getIssuer()); |
| 63 | + assertEquals(VerifiableCredential.DATE_FORMAT.parse("2019-06-16T18:56:59Z"), verifiableCredential.getIssuanceDate()); |
| 64 | + assertEquals(VerifiableCredential.DATE_FORMAT.parse("2019-06-17T18:56:59Z"), verifiableCredential.getExpirationDate()); |
60 | 65 |
|
61 | | - assertEquals("did:sov:21tDAKCERh95uGgKbJNHYp", verifiableCredential.getCredentialSubject()); |
62 | | - LinkedHashMap<String, Object> jsonLdCredentialSubject = verifiableCredential.getJsonLdCredentialSubject(); |
63 | | - LinkedHashMap<String, Object> jsonLdDriversLicenseObject = (LinkedHashMap<String, Object>) jsonLdCredentialSubject.get("driversLicense"); |
64 | | - assertEquals("trucks", jsonLdDriversLicenseObject.get("licenseClass")); |
65 | | - } |
| 66 | + assertEquals("did:sov:21tDAKCERh95uGgKbJNHYp", verifiableCredential.getCredentialSubject()); |
| 67 | + LinkedHashMap<String, Object> jsonLdCredentialSubject = verifiableCredential.getJsonLdCredentialSubject(); |
| 68 | + LinkedHashMap<String, Object> jsonLdDriversLicenseObject = (LinkedHashMap<String, Object>) jsonLdCredentialSubject.get("driversLicense"); |
| 69 | + assertEquals("trucks", jsonLdDriversLicenseObject.get("licenseClass")); |
| 70 | + } |
66 | 71 | } |
0 commit comments