Как получить значение «Ввод секретного ключа» из файла хранилища ключей pkcs12 в .net - PullRequest
0 голосов
/ 28 декабря 2018

Одно из моих Java-приложений использует jckes хранилище для шифрования.Я хочу использовать его в .net, но так как .net не поддерживает этот формат, я преобразовал его в формат pkcs12.Преобразование прошло успешно, и я проверил его с помощью следующей команды.

keytool -list -v -keystore AESEncryptionKeys.pfx -storetype pkcs12

Когда я пытаюсь извлечь секретный ключ с помощью кода в приложении .net, я ничего не получаю.Однако, когда я проверяю, используя keytool , он содержит один секретный ключ.

pkcs12 keystore information

Я попробовал следующие способы его чтения, ноНи один из них не дал мне подробностей.

Использование 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.

Я что-то не так делаю?или есть другое решение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...