Одно из моих Java-приложений использует jckes
хранилище для шифрования.Я хочу использовать его в .net, но так как .net не поддерживает этот формат, я преобразовал его в формат pkcs12
.Преобразование прошло успешно, и я проверил его с помощью следующей команды.
keytool -list -v -keystore AESEncryptionKeys.pfx -storetype pkcs12
Когда я пытаюсь извлечь секретный ключ с помощью кода в приложении .net, я ничего не получаю.Однако, когда я проверяю, используя keytool , он содержит один секретный ключ.
Я попробовал следующие способы его чтения, ноНи один из них не дал мне подробностей.
Использование BouncyCastle Библиотека
String pfxfilename = @"my Path";
char[] password = new char[] { "my password" };
Pkcs12Store ks = new Pkcs12Store(new FileStream(pfxfilename, FileMode.Open), pswd.ToCharArray());
string alias = null;
foreach (string al in ks.Aliases) {
if (ks.IsKeyEntry(al) && ks.GetKey(al).Key.IsPrivate) {
alias = al;
break;
}
}
Использование X509 Сертификат
String path= @"my Path";
string password = "my password";
var collection = new X509Certificate2Collection();
collection.Import(File.ReadAllBytes(path), password,
X509KeyStorageFlags.PersistKeySet);
Нетиз них работает на меня.Я получил 0 псевдонимов с использованием методов BouncyCastle и 0 сертификатов с использованием x509.
Я что-то не так делаю?или есть другое решение?