如何在Windows Mobile 5.0 Pocket PC设备中安装/访问.cer文件?

时间:2015-03-04 07:10:14

标签: .net pocketpc windows-mobile-5.0

我想从.cer文件中访问信息(如发卡人姓名,有效期等)。

我尝试检查商店是否存在证书(因为我没有安装证书,所以它不会出现)

X509Store store = new X509Store("test", StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);    
X509Certificate2Collection certificates = store.Certificates.Find(X509FindType.FindBySubjectName, certSearchString, false);

如果找不到,请尝试按照以下步骤从cer文件中读取

  1. 使用BinaryReader读取证书文件的内容,结果为byte [] value
  2. X509Certificate2 cert = new X509Certificate2(byte value returned by the above step) - 在此步骤中,我收到如下异常:
  3.   

    " System.Security.Cryptography.CryptographicException:Creating   证书对象失败。传入的数据不正确或   .NET Compact Framework不支持。 .NET Compact Framework   不支持从pfx文件中读取。"

    有没有办法从cer文件安装或访问信息?

    如果可以通过调用某些exe或实用程序以编程方式完成它会更有用。

    我的目标是使用证书验证所有网络请求。我所拥有的只是cer文件。

    有没有办法直接使用cer文件验证网络请求?

1 个答案:

答案 0 :(得分:1)

我找到了从Pocket PC设备中的.cer文件中检索信息的方法。

首先,将cer文件转换为DER编码的二进制X.509格式(使用计算机),然后在设备中使用它。

转换步骤:

  1. 打开计算机中的.cer文件
  2. 转到“详细信息”标签,然后点击“复制到文件...”按钮
  3. 出现证书导出向导,单击下一步并选择“DER编码二进制X.509(.CER)”
  4. 单击“下一步”并指定所需的位置和文件名,然后单击“完成”
  5. 这将在所选位置生成.cer文件
  6. 将cer文件(由上述过程生成)复制到Pocket PC设备并以编程方式访问信息,如下所示。

    1. 使用BinaryReader读取证书文件的内容,结果为byte [] value
    2. X509Certificate2 cert = new X509Certificate2(上述步骤返回的字节值)
    3. 通过cert.GetIssuerName();
    4. 等内置方法获取颁发者名称或所需的任何详细信息

      这解决了我的问题。