C openSSL:如何初始化公钥加密的密钥?
对于使用openSSL API进行公钥加密,在C程序中如何初始化密钥(public&private),给定*.key文件格式的私钥和*.pem文件格式的公钥:C openSSL:如何初始化公钥加密的密钥?,c,linux,ssl,openssl,public-key-encryption,C,Linux,Ssl,Openssl,Public Key Encryption,对于使用openSSL API进行公钥加密,在C程序中如何初始化密钥(public&private),给定*.key文件格式的私钥和*.pem文件格式的公钥: EVP_PKEY *key; /* How is key initialized ? */ ctx = EVP_PKEY_CTX_new(key); 谢谢。试试这个: EVP_PKEY *pkey; FILE *f = fopen("<path for your PEM or DER e
EVP_PKEY *key;
/* How is key initialized ?
*/
ctx = EVP_PKEY_CTX_new(key);
谢谢。试试这个:
EVP_PKEY *pkey;
FILE *f = fopen("<path for your PEM or DER encoded key>", "rb");
if (f == NULL){
// error handling...
}
//if your key is PEM encoded use this
pkey = PEM_read_PUBKEY(f, NULL, NULL, NULL); // pkey now contains the pubKey.
//We are passing NULL to the others parameters because we dont need password to read a public key
//if your key is DER encoded use this
pkey = d2i_PUBKEY_fp(f, NULL);
if (pkey == NULL){
// error handling...
}
EVP_PKEY*PKEY;
文件*f=fopen(“,”rb”);
如果(f==NULL){
//错误处理。。。
}
//如果您的密钥是PEM编码的,请使用此
pkey=PEM_read_PUBKEY(f,NULL,NULL,NULL);//pkey现在包含pubKey。
//我们将NULL传递给其他参数,因为我们不需要密码来读取公钥
//如果您的密钥是DER编码的,请使用此
pkey=d2i_PUBKEY_fp(f,NULL);
if(pkey==NULL){
//错误处理。。。
}
我没有测试,但应该可以工作。这存储私钥,那么公钥呢,以及如何使用问题中提到的文件初始化它们?
EVP_PKEY*PKEY;文件*f=fopen(“,”rb”);如果(f==NULL){//错误处理…}//如果您的密钥是PEM编码的,请使用此pkey=PEM_read_PUBKEY(f,NULL,NULL,NULL);//pkey现在包含pubKey。//我们将NULL传递给其他参数,因为我们不需要密码来读取公钥//如果您的密钥是DER编码的,请使用此pkey=d2i\u PUBKEY\u fp(f,NULL);如果(pkey==NULL){//error handling…}
我没有测试,但应该可以工作..key只是扩展名,而不是编码类型。。。我也是一个初学者,但我相信.key扩展意味着证书是PEM编码的。看见