Выполнение операции ECIES с использованием Bouncy Castle с KeyPair в JKS

У меня есть требование выполнить шифрование / дешифрование ECIES с использованием secp256r1 с BC в качестве поставщика.

Мне нужна ссылка (1), как хранить пару закрытых и открытых ключей ECIES в JKS Keystore (2) получить открытый ключ из JKS.

У меня есть пара ключей для подготовки с помощью команды keytool в соответствии с https://zombiesecured.com/html/tutorials/Keytool/ECC-JK.html.

  • Имя алгоритма подписи: SHA256withECDSA
  • Алгоритм открытого ключа субъекта: 256-битный ключ EC

(2) Можете ли вы помочь, как получить ключ в формате ECDSAPublicKey в качестве входных данных для шифрования.

Я нашел ссылку на ключ декодирования для ECPublicKey, как показано ниже. Каким должен быть мой первый аргумент? Как получить закодированный ключ из JKS?

public static ECPublicKey decodePublicKey(byte[] encoded, String namedCurve) throws InvalidKeySpecException, NoSuchAlgorithmException, NoSuchProviderException, IOException
       {
             KeyFactory fact = KeyFactory.getInstance("ECDSA", BouncyCastleProvider.PROVIDER_NAME);
             ECNamedCurveParameterSpec params = ECNamedCurveTable.getParameterSpec(namedCurve);
 
             java.security.spec.EllipticCurve ellipticCurve = EC5Util.convertCurve(params.getCurve(), params.getSeed());
             java.security.spec.ECPublicKeySpec keySpec = new java.security.spec.ECPublicKeySpec(ECPointUtil.decodePoint(ellipticCurve,encoded),EC5Util.convertSpec(ellipticCurve, params));
             return (ECPublicKey) fact.generatePublic(keySpec);
       }
  1. как использовать IESCipher, IESParameterSpec, engineInit для выполнения шифрования / дешифрования ECIES.

0 ответов

Другие вопросы по тегам