RSA/ECB/nopadding В GO
Необходимо расшифровать 128байтный слайс информации зашифрованный с помощью публичного ключа. Приватный ключ имеется , имеется также механизм расшифровки в Java :
Cipher rsaCipher = Cipher.getInstance("RSA/ECB/nopadding");
rsaCipher.init(Cipher.DECRYPT_MODE, client.getRSAPrivateKey());
В Golang пробовал:
rsa.DecryptOAEP(sha256.New(), rand.Reader,client.PrivateKey,plainText,[]byte(""))
privateKey.Decrypt()
И другие способы но не получается расшифровать. Подскажите что нужно делать ?
Ответы (1 шт):
Автор решения: Denis Stein
→ Ссылка
Если заглянуть в исходники функции rsa.DecryptOAEP и далее k := priv.Size() то не трудно догадаться,что длинна битов открытого ключа меньше шифротекста, но почему то я думаю, что дело в закрытом ключе,а точнее в его импорте в Вашу программу.
Как пример:
priv, err := ioutil.ReadFile(pathToKey)
if err != nil {
// handling err
}
privPem, _ := pem.Decode(priv)