Skip to content

Commit

Permalink
fix: allow ECDSA as algorithm
Browse files Browse the repository at this point in the history
  • Loading branch information
paullatzelsperger committed May 21, 2024
1 parent a553d54 commit 69e90f4
Showing 1 changed file with 15 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -75,11 +75,12 @@
*/
public class CryptoConverter {

public static final String ALGORITHM_RSA = "RSA";
public static final String ALGORITHM_EC = "EC";
public static final String ALGORITHM_ECDSA = "EdDSA";
public static final String ALGORITHM_ED25519 = "Ed25519";
public static final List<String> SUPPORTED_ALGORITHMS = List.of(ALGORITHM_EC, ALGORITHM_RSA, ALGORITHM_ECDSA, ALGORITHM_ED25519);
public static final String ALGORITHM_RSA = "rsa";
public static final String ALGORITHM_EC = "ec";
public static final String ALGORITHM_ECDSA = "ecdsa";
public static final String ALGORITHM_EDDSA = "eddsa";
public static final String ALGORITHM_ED25519 = "ed25519";
public static final List<String> SUPPORTED_ALGORITHMS = List.of(ALGORITHM_EC, ALGORITHM_RSA, ALGORITHM_EDDSA, ALGORITHM_ED25519);


/**
Expand All @@ -98,15 +99,16 @@ public class CryptoConverter {
* @throws EdcException if the {@link PrivateKey} is a EdDSA key and does not disclose its private bytes
*/
public static JWSSigner createSignerFor(PrivateKey key) {
var algorithm = key.getAlgorithm().toLowerCase();
try {
return switch (key.getAlgorithm()) {
case ALGORITHM_EC -> getEcdsaSigner((ECPrivateKey) key);
return switch (algorithm) {
case ALGORITHM_EC, ALGORITHM_ECDSA -> getEcdsaSigner((ECPrivateKey) key);
case ALGORITHM_RSA -> new RSASSASigner(key);
case ALGORITHM_ECDSA, ALGORITHM_ED25519 -> createEdDsaVerifier(key);
default -> throw new IllegalArgumentException(notSupportedError(key.getAlgorithm()));
case ALGORITHM_EDDSA, ALGORITHM_ED25519 -> createEdDsaVerifier(key);
default -> throw new IllegalArgumentException(notSupportedError(algorithm));
};
} catch (JOSEException ex) {
throw new EdcException(notSupportedError(key.getAlgorithm()), ex);
throw new EdcException(notSupportedError(algorithm), ex);
}
}

Expand Down Expand Up @@ -135,9 +137,9 @@ private static ECDSASigner getEcdsaSigner(ECPrivateKey key) throws JOSEException
public static JWSVerifier createVerifierFor(PublicKey publicKey) {
try {
return switch (publicKey.getAlgorithm()) {
case ALGORITHM_EC -> getEcdsaVerifier((ECPublicKey) publicKey);
case ALGORITHM_EC, ALGORITHM_ECDSA -> getEcdsaVerifier((ECPublicKey) publicKey);
case ALGORITHM_RSA -> new RSASSAVerifier((RSAPublicKey) publicKey);
case ALGORITHM_ECDSA, ALGORITHM_ED25519 -> createEdDsaVerifier(publicKey);
case ALGORITHM_EDDSA, ALGORITHM_ED25519 -> createEdDsaVerifier(publicKey);
default -> throw new IllegalArgumentException(notSupportedError(publicKey.getAlgorithm()));
};
} catch (JOSEException e) {
Expand Down Expand Up @@ -188,7 +190,7 @@ public static JWK createJwk(KeyPair keypair, @Nullable String kid) {
return switch (alg) {
case ALGORITHM_EC -> convertEcKey(keypair, kid);
case ALGORITHM_RSA -> convertRsaKey(keypair, kid);
case ALGORITHM_ECDSA, ALGORITHM_ED25519 -> convertEdDsaKey(keypair, kid);
case ALGORITHM_EDDSA, ALGORITHM_ED25519 -> convertEdDsaKey(keypair, kid);
default -> throw new IllegalArgumentException(notSupportedError(keypair.getPublic().getAlgorithm()));
};
}
Expand Down

0 comments on commit 69e90f4

Please sign in to comment.