У меня возникают трудности с обменом секретными ключами между клиентом с использованием Java Bouncycastle и сервера ключей с использованием библиотек RSA Python. Формат PEM используется для передачи ключей через REST. сервер ключей не может расшифровать ключ (необходимый при изменении шифрования пароля) Я поставки, он ожидает PKCS # 1 или PKCS # 8 ключ с ФЭУ следующим образом:Зашифрованный закрытый ключ Poun output: RSA PRIVATE KEY vs PRIVATE KEY
-----BEGIN PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,ACCB65DDEB20F5AB
EcU3fekuLeUc0viPJ20vAG+Jg1Igkvm+JTjnLmMBE6SwDS/hkf3KP0bFto7Pv6fJ
Но выход BouncyCastle в , используя JcePEMEncryptorBuilder и JcaMiscPEMGenerator имеет немного отличается BEGIN строку:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,ACCB65DDEB20F5AB
EcU3fekuLeUc0viPJ20vAG+Jg1Igkvm+JTjnLmMBE6SwDS/hkf3KP0bFto7Pv6fJ
Как я сделал некоторые исследования, я узнал, что PEM начиная НАЧАТЬ RSA PRIVATE KEY указывает ключ кодируется с помощью PKCS # 1.
Когда я пытаюсь получить PKCS # 8 шифрованный вывод с помощью JceOpenSSLPKCS8EncryptorBuilder и JcaPKCS8Generator я получаю PEM следующим образом:
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIICrjAoBgoqhkiG9w0BDAEDMBoEFP+MLFFaKGC6J/37jF7wRgL3coZdAgIIAASC
AoAdWVo4kAQ1S0stQZbzca7wL876nzlKfcOa4BKsCttPnFVPugJOvGDnATgUK5P/
Так что мой вопрос: есть ли способ, чтобы получить BouncyCastle для вывода PEM с зашифрованный закрытый ключ в форме BEGIN PRIVATE KEY или библиотека python, ожидающая неправильного формата?
Рядом с этим я не могу понять, использует ли bouncycstle PKCS # 1 или PKCS # 8 в JcePEMEncryptorBuilder. Он использует PrivateKeyInfo # getEncoded, но документация нечеткая о формате PKCS.
BouncyCastle версия: bcpkix-jdk15on 1,52
Я бы сказал, что Python lib не ожидает правильного заголовка для ключа RSA формата PKCS # 1. Если вы разделите «RSA» с BC, будет ли сервер принят? –
Я действительно пробовал это без везения;) –