Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C openSSL:如何初始化公钥加密的密钥?_C_Linux_Ssl_Openssl_Public Key Encryption - Fatal编程技术网

C openSSL:如何初始化公钥加密的密钥?

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

对于使用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 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编码的。看见