Я новичок в использовании хранилищ ключей, есть ли способ создать хранилище ключей, когда у меня есть файл cert и закрытый ключ в формате pem? Пожалуйста, помогитеИмпортировать закрытый ключ из файла pem в хранилище ключей
keyStore = KeyStore.getInstance("PKCS12");
keyStore.load(null, pwd.toCharArray());
String privKeyPEM= privateKey.replace("-----BEGIN RSA PRIVATE KEY-----\r\n","");
privKeyPEM = privKeyPEM.replace("\r\n-----END RSA PRIVATE KEY-----","");
byte [] encoded = Base64.decode(privKeyPEM);
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(encoded);
KeyFactory kf = KeyFactory.getInstance("RSA");
PrivateKey privKey = kf.generatePrivate(keySpec);
Здесь не удается kf.generatePrivate(keySpec)
. и я получил:
algid parse error, not a sequence.
остальная часть кода:
KeyStore.PrivateKeyEntry entry = new KeyStore.PrivateKeyEntry(privKey, new Certificate[ {certificate});
keyStore.setEntry(keyStoreAlias,entry , new KeyStore.PasswordProtection(pwd.toCharArray()));
Как создать хранилище ключей во время выполнения, или это довольно статическая установка? – Hannes
это будет своего рода виртуальное хранилище ключей. Я не знаю, правильно ли импортирую сертификат. –
Может быть, это потому, что я использую pkcs12, а закрытый ключ определяется как pkcs8? но я не знаю, как это сделать программно –