小编Ale*_*lis的帖子

OpenSSL C ++ RSA标志与命令行标志不同

我正在尝试在C ++中签名文本,然后在命令行中进行验证。我正在使用OpenSSL库。这是我生成密钥的命令行:

openssl genrsa -out key.pem 1024
Run Code Online (Sandbox Code Playgroud)

现在我有了我的私钥。然后这就是我登录命令行的方式:

echo "hola" | openssl rsautl -pkcs -sign -inkey key.pem > sign.txt
Run Code Online (Sandbox Code Playgroud)

至此,所有工作似乎都正常了,现在我在sign.txt中登录了。现在,我试图在C中做同样的事情。这是我的代码:

RSA * rsaPrivKey;


RSA * createRSAWithFilename (const char * filename, int publicKey)
{
   FILE * fp = fopen (filename, "rb");

   if (fp == NULL)
   {
      printf ("Unable to open file %s \n", filename);
      return NULL;
   }
   RSA *rsa = RSA_new ();

   if (publicKey)
      rsa = PEM_read_RSA_PUBKEY (fp, &rsa, NULL, NULL);
   else
      rsa = PEM_read_RSAPrivateKey (fp, &rsa, NULL, NULL);

   return rsa; …
Run Code Online (Sandbox Code Playgroud)

c++ openssl rsa sign digital-signature

5
推荐指数
1
解决办法
2804
查看次数

标签 统计

c++ ×1

digital-signature ×1

openssl ×1

rsa ×1

sign ×1