通过 openssl 命令生成的 ECC 密钥与 openssl api 不匹配

问题描述

使用 openssl 命令工具生成密钥,用于将痛苦文本编码为密文。

    `# openssl pkeyutl -derive -inkey alice_priv_key.pem -peerkey bob_pub_key.pem -out alice_shared_secret.bin`
    
     # base64 alice_shared_secret.bin
    

生成的key是这个

     **th1FJSGWJQ+X6SrEWfZhH2HXr/3maXkArolNFpNuk/c=**
  

我想使用 open ssl api 做同样的事情,并从 ecdh 函数中共享的链接获取密钥生成逻辑。当我按照建议使用 ecdh 生成密钥时,计算出的密钥不同

 `unsigned char *ecdh(size_t *secret_len)
  {
  

   [link]( https://wiki.openssl.org/index.PHP/Elliptic_Curve_Diffie_Hellman )
    
   }

  `int main()
   {
    size_t  len = 0;
    unsigned char * key = ecdh(&len);
    int l= strlen((char *) key);
    gchar * b64key = g_base64_encode ( key,l ) ;
    printf("Base 64 encoded val %s",b64key);
    }`
    

Base 64 编码的 val pzJYdMwjcjA32m2PMxJUmSLYCMotGU7Dr2JBqzqzS1w=

任何人都可以建议这里出了什么问题,基本上通过openssl命令和算法生成的密钥应该是相同的?

解决方法

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

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

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