0

我正在尝试实现 SCEP 服务,我对密码学 ++ 的经验非常有限,所以这是一场艰苦的战斗。目前我正在接受来自客户的证书请求,并且我正在解释该请求。证书请求应该采用 CMS/PKCS#7 的形式,但是我在解释它时遇到了很大的困难:

  1. http://lipingshare.com/Asn1Editor/使用 ASN.1 编辑器时,我只是得到“读取数据失败”。
  2. 在 Linux 上使用 'openssl asn1parse -inform DER < bytes' 时,我得到了一些看起来很明智的东西。该应用程序应该在 Windows .NET 上运行,因此对 linux 的破坏主要是一种绝望。
  3. 尝试在 .NET 中解码失败:

    byte[] 数据 = Convert.FromBase64String( input_message );
    SignedCms signerInfo = new SignedCms();
    EnvelopedCms contentInfo = new EnvelopedCms();
    签名者信息.解码(数据);
    contentInfo.Decode(signerInfo.ContentInfo.Content);
    contentInfo.Decrypt();[*]

    [*]:这会失败并出现 CryptographicException 和消息:“找不到对象或属性”。

  4. 尝试使用 BouncyCastle .NET 类进行解码失败:

    byte[] 数据 = Convert.FromBase64String( input_message );
    Org.BouncyCastle.Cms.CmsSignedData signedData = new CmsDignedData(data);
    Org.BouncyCastle.Cms.CmsEnvelopedData ed = new CmsEnvelopedData(signedD.ContentInfo);[*]

    [*] 失败,出现“ArgumentException”和消息:“未知对象因素:BerTaggedObject”。

我意识到这不能满足 StackOverflows 对一个清晰简洁的问题的要求;但我想这只是反映了我这边缺乏清晰性:-(基本上我会非常感谢任何关于如何使用标准 Windows 类或BouncyCastle API;但以一些具体问题结束:

  1. 我可以从 Linux 上的 asn1parse 似乎处理我的消息这一事实推断出一些东西,而 Lipingshare Asn.1 编辑器失败了吗?
  2. SCEP 标准规定 CMS 消息应进行 BER 编码;而 asn1parse 程序采用“-inform DER”开关(并且仍然有效......),而 BouncyCastle 类似乎抱怨 BERTaggedObject。

感谢任何想法,想法或建议。

乔金

4

0 回答 0