openssl命令`pkeyutl -derive`到底是什么?

时间:2019-06-17 07:15:31

标签: openssl ecdh

我正在尝试从GoLang上的公钥和私钥生成共享密钥。我有openssl-command结果

00000000: 16d9 9f97 92da c26f c029 ded1 92df 9d22  .......o.)....."
00000010: 61fa c090 a0f1 a5be 2760 de86 afe0 68dc  a.......'`....h.

此外,我用https://github.com/spreedly/gala/blob/master/lib/gala/payment_token.rb那个Ruby脚本重复了此输出。 在我的转到代码中,我正在加载私钥和公钥,接下来使用curve ScalarMult函数,并且结果的第一个变量必须是共享密钥(也许我需要检索哈希,我不知道)。

-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEnttINJoMfcj5IKjJDXsVGYUPa/jPAOZy6nkPYLFZo2+p44Lsax9y4pL0hsQJF1E+5bLnwqWDluyEFY1LLZl42Q==
-----END PUBLIC KEY-----
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgNGGvJbxRPVy71t76
N8EP0h7Fi4MdXDBNX4xwzj1flT+hRANCAAS8pMkD/mB2EZI9aXzTqEWYkvGezIi4
0+JKgB/4GlP5huTo/F3oOajBzSHwhKaDMBp5CutCyn/3GFTd1P0Hr2fH
-----END PRIVATE KEY-----
prkeysrc, _ := ioutil.ReadFile("private.key.path")
prkey, _ := pem.Decode(prkeysrc)
pubsrc, _ := ioutil.ReadFile("publickey.path")
pubkeydecoded, _ := pem.Decode(pubsrc)
pub, err := x509.ParsePKIXPublicKey(pubkeydecoded.Bytes)
publickey := pub.(*ecdsa.PublicKey)
firstVar, _ := c.ScalarMult(publickey.X, publickey.Y, prkey.Bytes)

var firstVar是一个大整数,我现在需要做什么?我希望将此值转换为16d9 9f97 ...

0 个答案:

没有答案