我的一个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;
}
}
String path= @"my Path";
string password = "my password";
var collection = new X509Certificate2Collection();
collection.Import(File.ReadAllBytes(path), password,
X509KeyStorageFlags.PersistKeySet);
他们都没有为我工作。使用BouncyCastle方法获得了0个别名,使用x509获得了0个证书。
我做错什么了吗?还是有其他解决方案?