Как преобразовать ECPrivateKey в ECPublicKey с помощью FIPS BouncyCastle?
Я использую следующий код (слегка упрощенный) для преобразования ECPrivateKey в ECPublicKey:
public static ECPublicKey getPublicKeyFromPrivateKey(ECPrivateKey privateKey) throws GeneralSecurityException {
final KeyFactory keyFactory = KeyFactory.getInstance("ECDSA", new BouncyCastleProvider());
final BCECPrivateKey bcecPrivateKey = (BCECPrivateKey) privateKey;
final ECParameterSpec ecSpec = bcecPrivateKey.getParameters();
final ECPoint q = ecSpec.getG().multiply(bcecPrivateKey.getD());
final byte[] qBytes = q.getEncoded(false);
final ECPoint point = ecSpec.getCurve().decodePoint(qBytes);
final ECPublicKeySpec pubSpec = new ECPublicKeySpec(point, ecSpec);
return (ECPublicKey) keyFactory.generatePublic(pubSpec);
}
Это нормально работает сне FIPS BouncyCastle.Теперь у нас есть требование сделать то же самое в соответствии с FIPS.И здесь проблема в том, что такие классы, как ECParameterSpec, по-видимому, не существуют в FIPS BouncyCastle 1.0.1.Как мы можем сделать то же самое с FIPS BouncyCastle?