})
}
- if template.KeyUsage != 0 &&
- !oidInExtensions(oidExtensionKeyUsage, template.ExtraExtensions) {
- ext, err := marshalKeyUsage(template.KeyUsage)
- if err != nil {
- return nil, err
- }
- ret = append(ret, ext)
- }
-
return append(ret, template.ExtraExtensions...), nil
}
Version int
Signature []byte
SignatureAlgorithm SignatureAlgorithm
- KeyUsage KeyUsage
PublicKeyAlgorithm PublicKeyAlgorithm
PublicKey interface{}
// - EmailAddresses
// - IPAddresses
// - URIs
-// - KeyUsage
-// - ExtKeyUsage
-// - UnknownExtKeyUsage
-// - BasicConstraintsValid
-// - IsCA
-// - MaxPathLen
-// - MaxPathLenZero
-// - SubjectKeyId
-// - PolicyIdentifiers
// - ExtraExtensions
// - Attributes (deprecated)
//
if err != nil {
return nil, err
}
- case extension.Id.Equal(oidExtensionKeyUsage):
- out.KeyUsage, err = parseKeyUsageExtension(extension.Value)
- if err != nil {
- return nil, err
- }
}
}
EmailAddresses: []string{"a@example.com", "b@example.com"},
IPAddresses: []net.IP{net.IPv4(192, 0, 2, 0), net.IPv6loopback},
URIs: []*url.URL{urlA, urlB},
- KeyUsage: KeyUsageCertSign,
}
out := marshalAndParseCSR(t, in)
if !reflect.DeepEqual(in.URIs, out.URIs) {
t.Fatalf("Unexpected URIs: got %v, want %v", out.URIs, in.URIs)
}
- if in.KeyUsage != out.KeyUsage {
- t.Fatalf("Unexpected KeyUsage: got %v, want %v", out.KeyUsage, in.KeyUsage)
- }
}