使用 .pem 文件私钥在 Go 中使用 RSASSA-PSS 对字符串进行签名
Using a .pem file private key to sign a string with RSASSA-PSS in Go
我正在尝试设置 Amazon Pay,并按照他们的指南签署请求:
https://amazonpaycheckoutintegrationguide.s3.amazonaws.com/amazon-pay-api-v2/signing-requests.html
我卡在了第 3 步。我有一个来自 Amazon 的包含私钥的 .pem 文件。看起来像:
-----BEGIN PRIVATE KEY-----
M...
-----END PRIVATE KEY-----
我应该对我之前使用 RSASSA-PSS 算法创建的字符串进行签名,该算法具有 SHA256 哈希和 20 的盐长度。我看到 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))
但是这个 returns 也没有。我对加密类型的东西一点都不熟悉,所以如果有人能提供一些指导,我将不胜感激!
解码返回 nil,因为反引号中的私钥字符串是自动缩进的!删除所有缩进修复了问题。
我正在尝试设置 Amazon Pay,并按照他们的指南签署请求: https://amazonpaycheckoutintegrationguide.s3.amazonaws.com/amazon-pay-api-v2/signing-requests.html
我卡在了第 3 步。我有一个来自 Amazon 的包含私钥的 .pem 文件。看起来像:
-----BEGIN PRIVATE KEY-----
M...
-----END PRIVATE KEY-----
我应该对我之前使用 RSASSA-PSS 算法创建的字符串进行签名,该算法具有 SHA256 哈希和 20 的盐长度。我看到 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))
但是这个 returns 也没有。我对加密类型的东西一点都不熟悉,所以如果有人能提供一些指导,我将不胜感激!
解码返回 nil,因为反引号中的私钥字符串是自动缩进的!删除所有缩进修复了问题。