我正在尝试在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)