相关疑难解决方法(0)

使用C例程和openssl dgst,rsautl命令时的不同签名

我正在使用以下语句来创建RSA公钥和私钥。

openssl genrsa -out ksign_private.pem 1024 openssl rsa -in ksign_private.pem -pubout> ksign_public.pem

然后我有使用从openssl libcrypto函数使用PEM_read_RSAPrivateKey,EVP_PKEY_assign_RSA,EVP_SignInit,EVP_SignUpdate,EVP_SignFinal函数来生成签名文件的程序。

我还有一个例程可以验证可以使用PEM_read_RSA_PUBKEY,EVP_PKEY_assign_RSA,EVP_VerifyInit,EVP_VerifyUpdate,EVP_VerifyFinal进行验证。这些例程的源代码附在下面。

使用这些功能时,我可以创建SHA1签名,使用私钥对其进行加密,然后使用公钥对其进行解密。

但是,我尝试使用openssl rsautl使用相同的数据文件,相同的私钥,公共密钥,而openssl rsautl创建的签名却大不相同。

openssl dgst -sha1 -binary < myData > testfile.sha1
openssl rsautl -sign -in testfile.sha1 -inkey ksign_private.pem -keyform PEM -out testfile.sig
Run Code Online (Sandbox Code Playgroud)

谁能告诉我使用openssl rsautl或dgst命令时我使用了哪些错误选项?

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <ctype.h>
#include <unistd.h>
#include <string.h>
#include <openssl/sha.h>
#include <errno.h>
#include <getopt.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <openssl/evp.h>
#include <openssl/pem.h>
#include <openssl/rsa.h>

int ksignEvpSign(FILE * private_key, FILE * inFileFP, FILE * outFileFP);
int ksignEvpVerify(FILE …
Run Code Online (Sandbox Code Playgroud)

c openssl rsa signature

4
推荐指数
1
解决办法
5945
查看次数

标签 统计

c ×1

openssl ×1

rsa ×1

signature ×1