Я делал несколько простых тестов с криптографией BouncyCastle и криптографией RSA. То, что я делаю, генерируя частный/открытый ключ пары, как так:Ошибка BouncyCastle: не удается распознать тип ключа в подписчике на основе ECDSA
KeyPairGenerator kpg = KeyPairGenerator.getInstance("EC", "JsafeJCE");
kpg.initialize(new ECGenParameterSpec("secp384r1"));
KeyPair kp = kpg.genKeyPair();
PrivateKey priv = kp.getPrivate();
PublicKey pub = kp.getPublic();
Затем я генерировать подпись, как так
Signature sig = Signature.getInstance("SHA384/ECDSA","BC");
, и я пытаюсь подписать секретный ключ:
sig.initSign(priv);
Все это вызывает у меня ошибку:
java.security.InvalidKeyException: не удается распознать тип ключа в ECDSA основанный подписчик
Когда я до н.э. и JsafeJCE, я не получаю ошибки и все в порядке. Работает также, если оба провайдера являются BC. Так почему же я не могу подписать сгенерированный ключ JsafeJCE с BC lib?
Что происходит, когда поставщик на другом конце отличается? Поэтому я работаю с существующим приложением, которое использует поставщика JsafeJCE. Я использую BC на моем конце. Смогут ли ВС правильно проверить все? – Otra
Да, данные транспортируются с использованием независимых от поставщика стандартных форматов. –