Skip to content

Commit 6747fdb

Browse files
committed
More options for JWT.
Signed-off-by: Markus Sabadello <[email protected]>
1 parent 3f0f9bd commit 6747fdb

File tree

1 file changed

+34
-4
lines changed

1 file changed

+34
-4
lines changed

src/main/java/com/danubetech/verifiablecredentials/jwt/JwtVerifiableCredential.java

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import java.io.IOException;
44
import java.security.GeneralSecurityException;
5-
import java.security.PrivateKey;
65
import java.security.PublicKey;
76
import java.security.interfaces.RSAPublicKey;
87
import java.text.ParseException;
@@ -15,8 +14,13 @@
1514
import com.nimbusds.jose.JWSHeader;
1615
import com.nimbusds.jose.JWSSigner;
1716
import com.nimbusds.jose.JWSVerifier;
17+
import com.nimbusds.jose.crypto.ECDSASigner;
18+
import com.nimbusds.jose.crypto.Ed25519Signer;
1819
import com.nimbusds.jose.crypto.RSASSASigner;
1920
import com.nimbusds.jose.crypto.RSASSAVerifier;
21+
import com.nimbusds.jose.jwk.ECKey;
22+
import com.nimbusds.jose.jwk.OctetKeyPair;
23+
import com.nimbusds.jose.jwk.RSAKey;
2024
import com.nimbusds.jwt.JWTClaimsSet;
2125
import com.nimbusds.jwt.SignedJWT;
2226

@@ -141,12 +145,38 @@ public String getCompactSerialization() {
141145
return this.compactSerialization;
142146
}
143147

144-
public String toJwt(String algorithm, PrivateKey privateKey) throws JOSEException {
148+
public String toJwtRSA(RSAKey rsaKey) throws JOSEException {
145149

146-
JWSHeader jwsHeader = new JWSHeader.Builder(JWSAlgorithm.parse(algorithm)).build();
150+
JWSHeader jwsHeader = new JWSHeader.Builder(JWSAlgorithm.RS256).build();
147151
SignedJWT signedJWT = new SignedJWT(jwsHeader, this.getPayload());
148152

149-
JWSSigner signer = new RSASSASigner(privateKey);
153+
JWSSigner signer = new RSASSASigner(rsaKey);
154+
155+
signedJWT.sign(signer);
156+
157+
this.compactSerialization = signedJWT.serialize();
158+
return compactSerialization;
159+
}
160+
161+
public String toJwtEd25519(OctetKeyPair octetKeyPair) throws JOSEException {
162+
163+
JWSHeader jwsHeader = new JWSHeader.Builder(JWSAlgorithm.EdDSA).build();
164+
SignedJWT signedJWT = new SignedJWT(jwsHeader, this.getPayload());
165+
166+
JWSSigner signer = new Ed25519Signer(octetKeyPair);
167+
168+
signedJWT.sign(signer);
169+
170+
this.compactSerialization = signedJWT.serialize();
171+
return compactSerialization;
172+
}
173+
174+
public String toJwtES256K(ECKey ecKey) throws JOSEException {
175+
176+
JWSHeader jwsHeader = new JWSHeader.Builder(JWSAlgorithm.ES256K).build();
177+
SignedJWT signedJWT = new SignedJWT(jwsHeader, this.getPayload());
178+
179+
JWSSigner signer = new ECDSASigner(ecKey);
150180

151181
signedJWT.sign(signer);
152182

0 commit comments

Comments
 (0)