代码之家  ›  专栏  ›  技术社区  ›  Pedro Soares

PHP openssl\u pkcs7\u验证未工作

  •  6
  • Pedro Soares  · 技术社区  · 8 年前

    Sign命令:

    openssl_pkcs7_sign(
        $tempdoc,
        $tempsign,
        $this->signature_data['signcert'],
        array($this->signature_data['privkey'],
        $this->signature_data['password']),
        array(),
        PKCS7_BINARY | PKCS7_DETACHED);
    

    验证命令:

    openssl_pkcs7_verify($tempsign, PKCS7_NOVERIFY)
    

    终端命令:

    openssl pkcs7 -inform DER -in signature.pkcs7 -print_certs -text
    



    我在我的代码中进行测试,并发现我是否仅使用分离的PKCS7\u或PKCS7\ u二进制文件创建我的符号 ,但两者一起我收到了错误。为什么会这样?

    1 回复  |  直到 8 年前
        1
  •  3
  •   Holzhey    8 年前

    大概 THIS URL 我可以帮你。,这一部分对其进行了论述。

    SMIME-符号“detached”“attaches”内容与 -二进制和文本规范化了,没有符号。SMIME-verify识别“分离”,但(在multi_split中)始终将两者规范化 -签名-二进制或等效)这会更改签名内容,并且验证失败。发送时符合规范的内容(最初 输出,而不确定发送方是否更改了它。

    docs 可以看出,解析器并没有那么聪明:

    漏洞

    这是我扔给它的,但它可能会让其他人窒息。

    希望有帮助!