我正在努力使客户端证书正常工作,在阅读了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解码为[]字节,然后尝试将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)
} 我得到了一个结构错误,所以我相信我的结构在围棋肯定是不正确的,但我无法弄清楚它。
发布于 2015-01-17 15:32:00
我做了一些鸭子,并找到了rfc320,它提供了asn.1类的定义,并让它工作了!
现在的结构是:
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
}https://stackoverflow.com/questions/27992496
复制相似问题