如何从.net中的pkcs12密钥库文件中获取“秘密密钥输入”值

时间:2018-12-28 16:38:43

标签: .net encryption keytool pkcs#12 jceks

我的一个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 Certificate

    String path= @"my Path";
    string password = "my password";
    var collection = new X509Certificate2Collection();
    collection.Import(File.ReadAllBytes(path), password, 
    X509KeyStorageFlags.PersistKeySet);

他们都没有为我工作。使用BouncyCastle方法获得了0个别名,使用x509获得了0个证书。

我做错什么了吗?还是有其他解决方案?

0 个答案:

没有答案