Skip to content

Commit 09d4037

Browse files
committed
crypto/x509/pkix: make 'v1' the default CRL version.
PKIX versions are off-by-one, so v1 is actually a zero on the wire, v2 is a one, and so on. The RFC says that the version in a CRL is optional, but doesn't say what the default is. Since v2 is the only accepted version, I had made the default v2. However, OpenSSL considers the default to be v1. Also, if the default is v2 and the element is optional then we'll never actually write v2 on the wire. That's contrary to the RFC which clearly assumes that v2 will be expressed on the wire in some cases. Therefore, this change aligns with OpenSSL and assumes that v1 is the default CRL version. Fixes #13931 [1] https://tools.ietf.org/html/rfc5280#section-5.1 Change-Id: Ic0f638ebdd21981d92a99a882affebf3a77ab71a Reviewed-on: https://go-review.googlesource.com/20544 Reviewed-by: Brad Fitzpatrick <[email protected]>
1 parent 1b8d4ca commit 09d4037

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/crypto/x509/pkix/pkix.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ func (certList *CertificateList) HasExpired(now time.Time) bool {
177177
// 5280, section 5.1.
178178
type TBSCertificateList struct {
179179
Raw asn1.RawContent
180-
Version int `asn1:"optional,default:1"`
180+
Version int `asn1:"optional,default:0"`
181181
Signature AlgorithmIdentifier
182182
Issuer RDNSequence
183183
ThisUpdate time.Time

0 commit comments

Comments
 (0)