我正在尝试让客户端证书身份验证正常工作,在阅读https://developer.mozilla.org/en-US/docs/Web/HTML/Element/keygen 后,我意识到我需要解析一些 asn1。我试图使用的结构是这样的:type PublicKeyAndChallenge struct { Spki asn1.BitString Challenge asn1.BitString}type SignedPublicKeyAndChallenge struct{ PublicKeyAndChallenge PublicKeyAndChallenge SignitureAlgorithm asn1.BitString Signiture asn1.BitString}我将 base64 编码的 asn1 解码为 []byte,然后尝试将 asn1 解组到结构中。signeeKeySigned := make([]byte, 2048) _ , err = base64.StdEncoding.Decode(signeeKeySigned, signeePubKeySigned) if ( err != nil ){ log.Fatal(err) } //Parse should be asn.1 encoded var signee SignedPublicKeyAndChallenge _, err = asn1.Unmarshal(signeeKeySigned, &signee) if err != nil { log.Fatal(err) } 我收到一个结构错误,所以我相信我在 go 中的结构一定不正确,但我无法弄清楚。
1 回答
大话西游666
TA贡献1817条经验 获得超14个赞
我做了一些鸭鸭,找到了提供 asn.1 类定义的 rfc320 并让它工作了!
现在的结构是:
type SubjectPublicKeyInfo struct {
Algorithm pkix.AlgorithmIdentifier
SubjectPublicKey asn1.BitString
}
type PublicKeyAndChallenge struct {
Spki SubjectPublicKeyInfo
Challenge string
}
type SignedPublicKeyAndChallenge struct{
PublicKeyAndChallenge PublicKeyAndChallenge
SignitureAlgorithm pkix.AlgorithmIdentifier
Signiture asn1.BitString
}
- 1 回答
- 0 关注
- 135 浏览
添加回答
举报
0/150
提交
取消