登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-11 21:18:34 177浏览 收藏

golang学习网今天将给大家带来《在 Go 中使用 .pem 文件私钥通过 RSASSA-PSS 对字符串进行签名》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

我正在尝试设置 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,因为反引号中的私钥字符串是自动缩进的!删除所有缩进解决了该问题。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>