使用 .pem 文件私钥在 Go 中使用 RSASSA-PSS 对字符串进行签名

我正在尝试设置 Amazon Pay,并按照他们的指南签署请求:https://amazonpaycheckoutintegrationguide.s3.amazonaws.com/amazon-pay-api-v2/signing-requests.html


我被困在步骤3上。我有一个来自亚马逊的.pem文件,其中包含一个私钥。它看起来像这样:


-----BEGIN PRIVATE KEY-----

M...

-----END PRIVATE KEY-----

我应该使用RSASSA-PSS算法对之前创建的字符串进行签名,该算法具有SHA256哈希和20的盐长度。我看到Go有一个功能可以做到这一点(https://golang.org/pkg/crypto/rsa/#SignPSS),但我不知道如何获取我的.pem文件私钥并在此函数中使用它。它需要一个 *rsa。私钥由它的外观...


我试过这个...


var privateKeyString = `-----BEGIN PRIVATE KEY-----...`

decoded, _ := pem.Decode([]byte(privateKeyString))

parsed, _ := x509.ParsePKCS8PrivateKey(decoded.Bytes)

privateKey := parsed.(*rsa.PrivateKey)

但是pem。解码返回零。我也试过:


parsed, _ := x509.ParsePKCS8PrivateKey([]byte(privateKeyString))

但这也会返回零。我根本不熟悉加密类型的东西,所以如果有人可以提供一些指导,那将不胜感激!


胡子哥哥
浏览 235回答 1
1回答

慕的地10843

解码返回 nil,因为后面的刻度线中的私钥字符串是如何自动缩进的!删除所有缩进解决了问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go