问题描述
有我的上下文:我们有 Xamarin.Forms 应用程序,它从带有 \n\r 的 Base64 字符串中的服务器接收证书。我想将此证书放在 KeyStore 中,所以我正在执行此代码:
var ks = KeyStore.GetInstance("AndroidKeyStore");
ks.Load(null);
if (ks.ContainsAlias(RSAStrings.ServerCertificateName))
{
ks.DeleteEntry(RSAStrings.ServerCertificateName);
}
var cerBase64 = "-----BEGIN CERTIFICATE-----" + Environment.NewLine + cer + "-----END CERTIFICATE-----" + Environment.NewLine;
var cerBytes = System.Text.UTF8Encoding.UTF8.GetBytes(cerBase64);
var memStream = new MemoryStream(cerBytes);
this.serverCertificate = CertificateFactory.GetInstance("X.509").GenerateCertificate(memStream);
ks.SetCertificateEntry(RSAStrings.ServerCertificateName,this.serverCertificate);
当 GenerateCertificate 时,我收到错误“inStream is empty”,但我的 MemoryStream 包含所有字节,我可以看到它。
任何帮助将不胜感激。
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)