mirror of
https://github.com/golang/go
synced 2024-11-19 14:54:43 -07:00
crypto/x509: export raw SubjectPublicKeyInfo.
The SPKI will probably be used for identifying public keys in future HSTS specs. R=bradfitz CC=golang-dev https://golang.org/cl/4485044
This commit is contained in:
parent
da39008a27
commit
e1bf165b28
@ -186,6 +186,7 @@ type validity struct {
|
||||
}
|
||||
|
||||
type publicKeyInfo struct {
|
||||
Raw asn1.RawContent
|
||||
Algorithm algorithmIdentifier
|
||||
PublicKey asn1.BitString
|
||||
}
|
||||
@ -402,8 +403,10 @@ const (
|
||||
|
||||
// A Certificate represents an X.509 certificate.
|
||||
type Certificate struct {
|
||||
Raw []byte // Complete ASN.1 DER content (certificate, signature algorithm and signature).
|
||||
RawTBSCertificate []byte // Certificate part of raw ASN.1 DER content.
|
||||
Raw []byte // Complete ASN.1 DER content (certificate, signature algorithm and signature).
|
||||
RawTBSCertificate []byte // Certificate part of raw ASN.1 DER content.
|
||||
RawSubjectPublicKeyInfo []byte // DER encoded SubjectPublicKeyInfo.
|
||||
|
||||
Signature []byte
|
||||
SignatureAlgorithm SignatureAlgorithm
|
||||
|
||||
@ -567,6 +570,7 @@ func parseCertificate(in *certificate) (*Certificate, os.Error) {
|
||||
out := new(Certificate)
|
||||
out.Raw = in.Raw
|
||||
out.RawTBSCertificate = in.TBSCertificate.Raw
|
||||
out.RawSubjectPublicKeyInfo = in.TBSCertificate.PublicKey.Raw
|
||||
|
||||
out.Signature = in.SignatureValue.RightAlign()
|
||||
out.SignatureAlgorithm =
|
||||
@ -983,7 +987,7 @@ func CreateCertificate(rand io.Reader, template, parent *Certificate, pub *rsa.P
|
||||
Issuer: parent.Subject.toRDNSequence(),
|
||||
Validity: validity{template.NotBefore, template.NotAfter},
|
||||
Subject: template.Subject.toRDNSequence(),
|
||||
PublicKey: publicKeyInfo{algorithmIdentifier{oidRSA}, encodedPublicKey},
|
||||
PublicKey: publicKeyInfo{nil, algorithmIdentifier{oidRSA}, encodedPublicKey},
|
||||
Extensions: extensions,
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user