我正在尝试使用XAMARIN上的c#从 p12 证书文件中获取 X509Certificate 对象。
在我的按钮点击方法中,我有以下代码。
List<string> s = Directory.EnumerateFiles("/sdcard", "*.p12", SearchOption.AllDirectories).ToList();
TextView txtTextView = FindViewById<TextView>(Resource.Id.textView1);
txtTextView.Text = s[0];
X509Certificate cert = new X509Certificate();
cert.Import(s[0],"eet",X509KeyStorageFlags.Exportable);
此代码在 / sdcard / Download / 目录中找到2个证书。在Windows平台上,我只需将证书安装到证书库中即可获得私钥。然后我加载证书存储并加载X509Certificate对象。在Android上我试图做同样但证书。即使Android说证书已经成功安装,商店也是空的。所以我决定直接从文件中读取它。我认为该文件已成功找到。当我尝试导入时,我得到例外:
System.Security.Cryptography.CryptographicException: Input data cannot be coded as a valid certificate.
我做错了什么? 感谢。