使用crypto ++库验证openssl签名

完整的adnan

我正在尝试使用crypto ++验证open-ssl签名,这是open-ssl部分:

$ openssl genrsa 1024 >priv.pem

$ openssl rsa -in priv.pem -pubout -out pubkey.pem

$ openssl dgst -sha1 -sign privkey.pem data.txt > sign

$ openssl dgst -sha1 -verify pubkey.pem -signature sign data.txt
  Verified OK

现在在我的C ++代码中:

int main(int argc, char* argv[])
{
    try
    {
        RSA::PublicKey publicKey;
        const char * pubFilename = "pubkey.pem";
    FileSource pubFile(pubFilename,true,new PEMStripper(new Base64Decoder()));
    RSASSA_PKCS1v15_SHA_Verifier pub(pubFile);
        cout << "n: " << pub.GetTrapdoorFunction().GetModulus() << endl;
        cout << "e: " << pub.GetTrapdoorFunction().GetPublicExponent() << endl;
        string message = "data that is to be hashed and signed.";  //same as data.txt

        ifstream file ("sign", ios::in | ios::binary | ios::ate);
    ifstream::pos_type sigSize;
    char* sig;
    if(file.is_open())
    {
          sigSize = file.tellg();
          sig = new char[sigSize];
          file.seekg(0, ios::beg);
          if(!file.read(sig, sigSize))
          {
          cout << "fail to read" << endl;
          }
          file.close();
    }
        bool result = pub.VerifyMessage( (const byte*)message.c_str(),
            message.length(), (const byte*)sig, sigSize );

        // Result
        if( true == result ) {
            cout << "Signature on message verified" << endl;
        } else {
            cout << "Message verification failed" << endl;
        }

    } // try

    catch( CryptoPP::Exception& e ) {
        std::cerr << "Error: " << e.what() << std::endl;
    }

    return 0;
}

但是我总是收到消息验证失败

ALK

您确定data.txt不包含最后的尾随\n吗?

如果不是这样,请在此行中将一个附加到字符串lietrale,如下所示:

string message = "data that is to be hashed and signed.\n";  //same as data.txt

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用OpenSSL进行签名验证

来自分类Dev

使用OpenSSL进行签名验证

来自分类Dev

使用Openssl验证签名ECDSA签名

来自分类Dev

使用openssl在c ++中验证RSA签名

来自分类Dev

M2crypto签名与OpenSSL签名

来自分类Dev

使用.Net进行RSA签名并使用OpenSSL命令进行验证

来自分类Dev

如何使用OpenSSL验证Jarsigner创建的* .SF / *。RSA签名

来自分类Dev

如何使用python和openssl验证Webhook签名

来自分类Dev

在Delphi中使用OpenSSL验证SHA256签名失败

来自分类Dev

使用openssl和node.js验证签名

来自分类Dev

如何使用OpenSSL验证Jarsigner创建的* .SF / *。RSA签名

来自分类Dev

使用 OpenSSL 和 Python3 签名数据 - 无法验证签名数据

来自分类Dev

如何使用Crypto ++库创建HMAC 256?

来自分类Dev

如何使用PyKCS11库验证签名数据

来自分类Dev

如何使用wss4j库验证soap签名

来自分类Dev

如何使用PyKCS11库验证签名数据

来自分类Dev

如何使用wss4j库验证soap签名

来自分类Dev

react native - 使用带有 JWS、bcrypt 或 react-native-crypto 的数字签名验证源

来自分类Dev

使用安全性转换来验证使用Ruby / OpenSSL创建的RSA签名

来自分类Dev

Apple登录“ invalid_client”,使用PHP和openSSL签名JWT以进行身份验证

来自分类Dev

使用openssl验证ECDSA签名类型时,ASN1编码例程错误

来自分类Dev

OpenSSL在C中使用RAW EC生成的密钥进行签名和验证

来自分类Dev

使用openssl验证x509证书是否有效并由受信任的CA签名

来自分类Dev

即使“验证”成功,也无法使用OpenSSL进行S / MIME签名

来自分类Dev

如何使用OpenSSL的C库编写/读取不完整的证书签名请求?

来自分类Dev

在iOS上使用Crypto ++验证消息时出错

来自分类Dev

如何在kdevelop中使用Crypto ++库构建项目

来自分类Dev

使用Crypto ++库以CBC模式实现AES128

来自分类Dev

如何在kdevelop中使用Crypto ++库构建项目

Related 相关文章

  1. 1

    使用OpenSSL进行签名验证

  2. 2

    使用OpenSSL进行签名验证

  3. 3

    使用Openssl验证签名ECDSA签名

  4. 4

    使用openssl在c ++中验证RSA签名

  5. 5

    M2crypto签名与OpenSSL签名

  6. 6

    使用.Net进行RSA签名并使用OpenSSL命令进行验证

  7. 7

    如何使用OpenSSL验证Jarsigner创建的* .SF / *。RSA签名

  8. 8

    如何使用python和openssl验证Webhook签名

  9. 9

    在Delphi中使用OpenSSL验证SHA256签名失败

  10. 10

    使用openssl和node.js验证签名

  11. 11

    如何使用OpenSSL验证Jarsigner创建的* .SF / *。RSA签名

  12. 12

    使用 OpenSSL 和 Python3 签名数据 - 无法验证签名数据

  13. 13

    如何使用Crypto ++库创建HMAC 256?

  14. 14

    如何使用PyKCS11库验证签名数据

  15. 15

    如何使用wss4j库验证soap签名

  16. 16

    如何使用PyKCS11库验证签名数据

  17. 17

    如何使用wss4j库验证soap签名

  18. 18

    react native - 使用带有 JWS、bcrypt 或 react-native-crypto 的数字签名验证源

  19. 19

    使用安全性转换来验证使用Ruby / OpenSSL创建的RSA签名

  20. 20

    Apple登录“ invalid_client”,使用PHP和openSSL签名JWT以进行身份验证

  21. 21

    使用openssl验证ECDSA签名类型时,ASN1编码例程错误

  22. 22

    OpenSSL在C中使用RAW EC生成的密钥进行签名和验证

  23. 23

    使用openssl验证x509证书是否有效并由受信任的CA签名

  24. 24

    即使“验证”成功,也无法使用OpenSSL进行S / MIME签名

  25. 25

    如何使用OpenSSL的C库编写/读取不完整的证书签名请求?

  26. 26

    在iOS上使用Crypto ++验证消息时出错

  27. 27

    如何在kdevelop中使用Crypto ++库构建项目

  28. 28

    使用Crypto ++库以CBC模式实现AES128

  29. 29

    如何在kdevelop中使用Crypto ++库构建项目

热门标签

归档