【问题标题】:Import encrypted session key导入加密的会话密钥
【发布时间】:2015-05-19 09:39:40
【问题描述】:

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

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

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

【问题讨论】:

    标签: encryption cryptography saml cryptoapi


    【解决方案1】:

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

    例如OID 1.2.643.2.2.19 shows {iso(1) member-body(2) ru(643) 2 cryptopro(2) gostR3410-2001(19)}。

    看来你可以使用某种插件,也许你可以从CryptoPro 获得。不过我不确定,我的俄语不是那么好(而且我的朋友 Anya 不喜欢加密货币 :))。

    【讨论】:

    • 我使用加密货币。例如我的代码pastebin.com/WHXhbXHx。错误发生在第 194 行(错误 0x80090005)。我认为问题出在 SIMPLLEBLOB 结构中。
    • 不知何故,您认为问题不应该包含这些信息?
    • @shushlyakov 您可以使用 OllyDbg 来检查您的假设:只需在 CryptImportKey 上设置一个断点,一旦它被命中,请仔细观察;它不会很快,但最终你会遇到引发错误的指令。为了缩小初始搜索范围,您也可以使用 trace 模式代替 step-into / step-over,设置条件为 EAX 等于 0x80090005 .
    猜你喜欢
    • 1970-01-01
    • 2014-05-31
    • 2016-11-15
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多