微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决通过 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 举报,一经查实,本站将立刻删除。