代码之家  ›  专栏  ›  技术社区  ›  mgibson

C++OpenSSL EVP\u DigestVerify间歇性失败rsa\u pk1。c: 103带RSA\u R\u BAD\u PAD\u BYTE\u计数

  •  -1
  • mgibson  · 技术社区  · 9 年前

    a full, basic code example

    我的代码非常接近OpenSSL EVP签名和验证 Asymmetric example 对内存管理进行一些提升重构。

    下面的测试输出说明了这个问题。“A”和“AAA”已成功签名和验证,而“AA”因RSA\u R\u BAD\u PAD\u BYTE\u COUNT padding错误而失败。为了尝试纠正这一点,我将padding设置为PKCS,但没有什么不同。

    2048 bit [2] -  Text: A - Success
    Authentication failure: 67567722, rsa_pk1.c, 103, , 0 257
    Error string: error:0407006A:lib(4):func(112):reason(106)
    2048 bit [2] -  Text: AA - Failure
    2048 bit [2] -  Text: AAA - Success
    

    如果这里有任何提示,我们将不胜感激!

    1 回复  |  直到 9 年前
        1
  •  3
  •   bezet    9 年前

    char* 进入 string 在…内 testSignVerify :

    string hashString((char*)pHash.get());
    

    应该是:

    string hashString(pHash.get(), hashLength);
    

    '\0' 它会遇到,这对于普通字符串来说是可以的,但对于加密哈希来说,它只是可能的字符之一。