首页 > 解决方案 > 在 Xamarin 中使用来自 AndroidKeyStore 的密钥解包封装的 CMS 数据

问题描述

我需要解包/解密包含封装数据的 cms 文件。

我可以执行以下操作,并且效果很好

X509Certificate2 cert = new X509Certificate2();
cert.Import("/sdcard/decryption-key.p12", <password>, X509KeyStorageFlags.DefaultKeySet);

X509Certificate2Collection certCollection = new X509Certificate2Collection(cert);

EnvelopedCms cms = new EnvelopedCms();

cms.Decode(<content info>);
cms.Decrypt(certCollection);

这会从文件系统上的 p12 文件创建 X509Certificate2。但是,我希望将该密钥/证书安全地存储在 AndroidKeyStore 中。

我找到了一些允许我将 p12 加载到密钥库中的代码(将.p12-file 导入 AndroidKeyStore

如何从密钥库中加载数据以创建X509Certificate2上述内容,或者如何cms.Decrypt使用密钥库中的密钥进行调用?

谢谢

标签: c#androidxamarincryptographyandroid-keystore

解决方案


推荐阅读