Encryption 导入加密会话密钥

Encryption 导入加密会话密钥,encryption,cryptography,saml,cryptoapi,Encryption,Cryptography,Saml,Cryptoapi,我有asn.1结构(加密会话密钥): 如何使用CryptImportKey函数解密此结构?该结构使用俄罗斯GOST协议。我很确定,CryptImportKey开箱即用不支持这些。您可能需要提取信息,然后使用CryptImportKey支持的结构将其导入 比如说 看起来你可以使用某种插件,也许你可以从。不过我不确定,我的俄语不是很好(我的朋友安雅也不喜欢加密:) 我使用加密技术。示例我的代码。错误发生在第194行(错误0x80090005)。我认为问题出在SIMPLEBLOB的结构上。不知何故,你

我有asn.1结构(加密会话密钥):


如何使用CryptImportKey函数解密此结构?

该结构使用俄罗斯GOST协议。我很确定,
CryptImportKey
开箱即用不支持这些。您可能需要提取信息,然后使用
CryptImportKey
支持的结构将其导入

比如说


看起来你可以使用某种插件,也许你可以从。不过我不确定,我的俄语不是很好(我的朋友安雅也不喜欢加密:)

我使用加密技术。示例我的代码。错误发生在第194行(错误0x80090005)。我认为问题出在SIMPLEBLOB的结构上。不知何故,你不认为问题中应该包含信息?@shushlyakov你可以使用OllyDbg来验证你的假设:只需在CryptImportKey上设置一个断点,一旦命中,就要密切关注;这不会很快,但最终您会遇到抛出错误的指令。要缩小初始搜索范围,还可以使用跟踪模式而不是单步执行/单步执行,将条件设置为EAX等于0x80090005。
SEQUENCE(2 elem)
  SEQUENCE(2 elem)
    OCTET STRING(32 byte) 5E70735F3698B4355B45037FA7CE0097115E45C6585994726642063F723AB49E
    OCTET STRING(4 byte) 8C860884
  [0](3 elem)
    OBJECT IDENTIFIER1.2.643.2.2.31.1
    [0](2 elem)
      SEQUENCE(2 elem)
        OBJECT IDENTIFIER1.2.643.2.2.19
        SEQUENCE(2 elem)
          OBJECT IDENTIFIER1.2.643.2.2.36.0
          OBJECT IDENTIFIER1.2.643.2.2.30.1
      BIT STRING(1 elem)
        OCTET STRING(64 byte) 2DC3FDF69C913DCCB653268E512F5EDDE41A5DB3583CDF6068F248A2B0B8DE7BC9AA20E3CF63DF5F395521E0A0DD853E0AAF44FA493CD54CA8048D1D9C4185FB
    OCTET STRING(8 byte) 76EEB46B1B1036EB