aboutsummaryrefslogtreecommitdiff
path: root/src/pkg
diff options
context:
space:
mode:
authorAdam Langley <agl@golang.org>2010-08-03 12:26:48 -0400
committerAdam Langley <agl@golang.org>2010-08-03 12:26:48 -0400
commit7748a7f159f43a7098dfdb170d26b152d8d5ba77 (patch)
tree05e0ed37eb48d61c304b22a3ceac398e1ddd3d2d /src/pkg
parent3f19d8ae8d9c1fd8bfbfadb3dda091a6147b8855 (diff)
downloadgo-7748a7f159f43a7098dfdb170d26b152d8d5ba77.tar.xz
crypto/x509: unwrap Subject Key Identifier
RFC 5280, 4.2.1.2 says: SubjectKeyIdentifier ::= KeyIdentifier KeyIdentifier ::= OCTET STRING Previously, we were failing to unwrap the second level of OCTET STRING encoding. Fixes #993. R=rsc CC=golang-dev https://golang.org/cl/1917044
Diffstat (limited to 'src/pkg')
-rw-r--r--src/pkg/crypto/x509/x509.go7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/pkg/crypto/x509/x509.go b/src/pkg/crypto/x509/x509.go
index 728116850f..e4a05d3ef0 100644
--- a/src/pkg/crypto/x509/x509.go
+++ b/src/pkg/crypto/x509/x509.go
@@ -610,7 +610,12 @@ func parseCertificate(in *certificate) (*Certificate, os.Error) {
case 14:
// RFC 5280, 4.2.1.2
- out.SubjectKeyId = e.Value
+ var keyid []byte
+ _, err = asn1.Unmarshal(&keyid, e.Value)
+ if err != nil {
+ return nil, err
+ }
+ out.SubjectKeyId = keyid
continue
}
}