Google App Engine 的 Go 运行时具有SignBytes函数、PublicCertificates函数和证书结构。
功能符号字节
func SignBytes(c Context, bytes []byte) (keyName string, signature []byte, err error)
SignBytes 使用您的应用程序唯一的私钥对字节进行签名。
func 公共证书
func PublicCertificates(c Context) ([]Certificate, error)
PublicCertificates 检索应用程序的公共证书。它们可用于验证 SignBytes 返回的签名。
类型证书
type Certificate struct {
KeyName string
Data []byte // PEM-encoded X.509 certificate
}
Certificate 代表应用程序的公共证书。
很明显,应用程序需要遍历公共证书以验证签名。但尚不清楚签名是如何生成或验证的。Go 的rsa 包有两个函数来验证签名,VerifyPKCS1v15和VerifyPSS,每个函数都以一个crypto.Hash标识符作为参数。目前,有 15 种不同的哈希标识符(例如,crypto.MD5、crypto.SHA256)给出验证函数和哈希标识符的 2x15=30 组合。
SignBytes 生成的签名是如何验证的?
catspeake
相关分类