Я пытаюсь сгенерировать общий ключ из открытых и закрытых ключей на 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 ...