如何解决使用 .pem 文件私钥在 Go 中使用 RSASSA-PSS 对字符串进行签名
我正在尝试设置 Amazon Pay,并按照他们的指南签署请求: https://amazonpaycheckoutintegrationguide.s3.amazonaws.com/amazon-pay-api-v2/signing-requests.html
我被困在第 3 步。我有一个来自 Amazon 的 .pem 文件,其中包含一个私钥。它看起来像:
-----BEGIN PRIVATE KEY-----
M...
-----END PRIVATE KEY-----
我应该用 SHA256 散列和 20 的盐长度对我之前使用 RSASSA-PSS 算法创建的字符串进行签名。我看到 Go 有一个函数可以这样做(https://golang.org/pkg/crypto/rsa/#SignPSS),但我不知道如何获取我的 .pem 文件私钥并在此函数中使用它。从外观上看,它想要一个 *rsa.PrivateKey...
我已经试过了...
var privateKeyString = `-----BEGIN PRIVATE KEY-----...`
decoded,_ := pem.Decode([]byte(privateKeyString))
parsed,_ := x509.ParsePKCS8PrivateKey(decoded.Bytes)
privateKey := parsed.(*rsa.PrivateKey)
但是 pem.Decode 返回 nil。我也试过:
parsed,_ := x509.ParsePKCS8PrivateKey([]byte(privateKeyString))
但这也会返回 nil。我根本不熟悉加密类型的东西,所以如果有人能提供一些指导,我将不胜感激!
解决方法
Decode 返回 nil,因为反引号中的私钥字符串是如何自动缩进的!删除所有缩进解决了问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。