Skip to content

Commit

Permalink
Merge pull request cert-manager#6053 from inteon/critical_change
Browse files Browse the repository at this point in the history
Make KeyUsage and BasicConstraints Critical extensions in the CSR blob
  • Loading branch information
jetstack-bot committed Oct 5, 2023
2 parents c56a2fb + 9606f4d commit df4d15c
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 22 deletions.
2 changes: 1 addition & 1 deletion pkg/util/pki/basicconstraints.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ type basicConstraints struct {

// Adapted from x509.go
func MarshalBasicConstraints(isCA bool, maxPathLen *int) (pkix.Extension, error) {
ext := pkix.Extension{Id: OIDExtensionBasicConstraints}
ext := pkix.Extension{Id: OIDExtensionBasicConstraints, Critical: true}

// A value of -1 causes encoding/asn1 to omit the value as desired.
maxPathLenValue := -1
Expand Down
50 changes: 30 additions & 20 deletions pkg/util/pki/csr_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -407,8 +407,9 @@ func TestGenerateCSR(t *testing.T) {
}
defaultExtraExtensions := []pkix.Extension{
{
Id: OIDExtensionKeyUsage,
Value: asn1KeyUsage,
Id: OIDExtensionKeyUsage,
Value: asn1KeyUsage,
Critical: true,
},
}

Expand All @@ -418,8 +419,9 @@ func TestGenerateCSR(t *testing.T) {
}
ipsecExtraExtensions := []pkix.Extension{
{
Id: OIDExtensionKeyUsage,
Value: asn1KeyUsage,
Id: OIDExtensionKeyUsage,
Value: asn1KeyUsage,
Critical: true,
},
{
Id: OIDExtensionExtendedKeyUsage,
Expand Down Expand Up @@ -503,8 +505,9 @@ func TestGenerateCSR(t *testing.T) {
Subject: pkix.Name{CommonName: "example.org"},
ExtraExtensions: []pkix.Extension{
{
Id: OIDExtensionKeyUsage,
Value: asn1KeyUsageWithCa,
Id: OIDExtensionKeyUsage,
Value: asn1KeyUsageWithCa,
Critical: true,
},
},
},
Expand All @@ -519,12 +522,14 @@ func TestGenerateCSR(t *testing.T) {
Subject: pkix.Name{CommonName: "example.org"},
ExtraExtensions: []pkix.Extension{
{
Id: OIDExtensionKeyUsage,
Value: asn1KeyUsage,
Id: OIDExtensionKeyUsage,
Value: asn1KeyUsage,
Critical: true,
},
{
Id: OIDExtensionBasicConstraints,
Value: basicConstraintsWithoutCA,
Id: OIDExtensionBasicConstraints,
Value: basicConstraintsWithoutCA,
Critical: true,
},
},
},
Expand All @@ -540,12 +545,14 @@ func TestGenerateCSR(t *testing.T) {
Subject: pkix.Name{CommonName: "example.org"},
ExtraExtensions: []pkix.Extension{
{
Id: OIDExtensionKeyUsage,
Value: asn1KeyUsageWithCa,
Id: OIDExtensionKeyUsage,
Value: asn1KeyUsageWithCa,
Critical: true,
},
{
Id: OIDExtensionBasicConstraints,
Value: basicConstraintsWithCA,
Id: OIDExtensionBasicConstraints,
Value: basicConstraintsWithCA,
Critical: true,
},
},
},
Expand Down Expand Up @@ -655,8 +662,9 @@ func Test_buildKeyUsagesExtensionsForCertificate(t *testing.T) {
crt: &cmapi.Certificate{},
want: []pkix.Extension{
{
Id: OIDExtensionKeyUsage,
Value: asn1DefaultKeyUsage,
Id: OIDExtensionKeyUsage,
Value: asn1DefaultKeyUsage,
Critical: true,
},
},
wantErr: false,
Expand All @@ -670,8 +678,9 @@ func Test_buildKeyUsagesExtensionsForCertificate(t *testing.T) {
},
want: []pkix.Extension{
{
Id: OIDExtensionKeyUsage,
Value: asn1DefaultKeyUsage,
Id: OIDExtensionKeyUsage,
Value: asn1DefaultKeyUsage,
Critical: true,
},
{
Id: OIDExtensionExtendedKeyUsage,
Expand All @@ -689,8 +698,9 @@ func Test_buildKeyUsagesExtensionsForCertificate(t *testing.T) {
},
want: []pkix.Extension{
{
Id: OIDExtensionKeyUsage,
Value: asn1DefaultKeyUsage,
Id: OIDExtensionKeyUsage,
Value: asn1DefaultKeyUsage,
Critical: true,
},
{
Id: OIDExtensionExtendedKeyUsage,
Expand Down
2 changes: 1 addition & 1 deletion pkg/util/pki/keyusage.go
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ func reverseBitsInAByte(in byte) byte {

// Adapted from x509.go
func MarshalKeyUsage(usage x509.KeyUsage) (pkix.Extension, error) {
ext := pkix.Extension{Id: OIDExtensionKeyUsage}
ext := pkix.Extension{Id: OIDExtensionKeyUsage, Critical: true}

var a [2]byte
a[0] = reverseBitsInAByte(byte(usage))
Expand Down

0 comments on commit df4d15c

Please sign in to comment.