Migrate to org.bouncycastle.bcpkix-jdk18on by Muthu-Palaniyappan-OL · Pull Request #8 · simple-java-mail/java-utils-mail-dkim

@@ -1,9 +1,9 @@ package org.simplejavamail.utils.mail.dkim;
import java.nio.charset.StandardCharsets; import java.security.InvalidKeyException; import java.security.KeyFactory; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; import java.security.PrivateKey; import java.security.PublicKey; import java.security.Signature; Expand All @@ -20,12 +20,10 @@ import java.util.StringTokenizer; import java.util.regex.Pattern;
import net.i2p.crypto.eddsa.EdDSAPublicKey; import net.i2p.crypto.eddsa.spec.EdDSANamedCurveTable; import net.i2p.crypto.eddsa.spec.EdDSAPublicKeySpec;
import static java.nio.charset.StandardCharsets.UTF_8;
import org.bouncycastle.jcajce.interfaces.EdDSAPublicKey;
/** * A {@code DomainKey} holds the information about a domain key. * Expand Down Expand Up @@ -151,11 +149,10 @@ private RSAPublicKey getRsaPublicKey(String publicKeyTagValue) {
private EdDSAPublicKey getEd25519PublicKey(String publicKeyTagValue) { try { KeyFactory keyFactory = KeyFactory.getInstance(KeyPairType.ED25519.getJavaNotation()); EdDSAPublicKeySpec publicKeySpec = new EdDSAPublicKeySpec(Base64.getDecoder().decode(publicKeyTagValue), EdDSANamedCurveTable.ED_25519_CURVE_SPEC); return (EdDSAPublicKey) keyFactory.generatePublic(publicKeySpec); } catch (NoSuchAlgorithmException nsae) { byte[] keyBytes = Base64.getDecoder().decode(publicKeyTagValue); KeyFactory keyFactory = KeyFactory.getInstance(KeyPairType.ED25519.getJavaNotation(), "BC"); return (EdDSAPublicKey) keyFactory.generatePublic(new X509EncodedKeySpec(keyBytes)); } catch (NoSuchAlgorithmException | NoSuchProviderException nsae) { throw new DkimException("Ed25519 algorithm not found by JVM"); } catch (IllegalArgumentException e) { throw new DkimException("The public key " + publicKeyTagValue + " couldn't be read.", e); Expand Down Expand Up @@ -297,4 +294,4 @@ private void checkKeyCompatiblilty(PrivateKey privateKey)
}
} }