Что именно команда openssl `pkeyutl -derive`? - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь сгенерировать общий ключ из открытых и закрытых ключей на GoLang. У меня есть результат команды openssl

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. В моем go-коде я загружаю закрытые и открытые ключи, функция 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)

переменная firstVar - большое целое число, что мне теперь делать? Я ожидаю преобразовать это значение в 16d9 9f97 ...

...