解析 EC 公钥

问题描述

我在 ECIES 上工作,需要加载对等公钥。 加载EC公钥

我正在使用 ECDH 并且需要加载对等公钥。 当我尝试从 PEM 文件加载公钥时,似乎没有问题

问题在这里:

EVP_PKEY * get_peer_key()  
{
     // base64 certificate data of alice_pub_key.pem
     char *buffer= "MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEjWrT7F97QrSqGrlIgPK8dphNBicNO6gDLfOIMjhF2MiLuuzd7L7BP+bLCuNtKKe/2dOkgPqgXv4BFWqgp6PZXQ=="`
     // calculate buffer length
     int l = strlen(buffer)
     //create bio from buffer
     BIO *in = BIO_new_mem_buf(buffer,l)
     //gnerate ec key   
     EC_KEY *eckey = PEM_read_bio_EC_PUBKEY(in,NULL,NULL)` // ==> FAIL
     //need to convert to EVP format
     EVP_PKEY *peerKey = EVP_PKEY_new()
     //assign ec key evp
     if(EVP_PKEY_assign_EC_KEY(peerKey,eckey) != 1 )
         printf("\n error hapened");
     return peerKey;
}

工作正常:

EVP_PKEY * get_peer_key()
{
     //Load PEM format file
     char * infile = "alice_pub_key.pem";
     //create bio
     BIO *in = BIO_new(BIO_s_file());
     //read bio file
     BIO_read_filename(in,infile);
     //create eckey
     EC_KEY *eckey = PEM_read_bio_EC_PUBKEY(in,NULL); // ==> success
     // create peer key   
     EVP_PKEY *peerKey = EVP_PKEY_new();
     //assign public key
     if(EVP_PKEY_assign_EC_KEY(peerKey,eckey) != 1 )
         printf("\n error hapened");
     return peerKey;
}

有人可以建议读取pem文件的base64数据时出了什么问题

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)