An X509Parameters
is used to describe certain fields of an X.509 certificate, such as the key usage fields, fields specific to CA certificates, certificate policy extensions and custom extensions.
JSON representation |
---|
{ "keyUsage": { object ( |
Fields | |
---|---|
keyUsage |
Optional. Indicates the intended use for keys that correspond to a certificate. |
caOptions |
Optional. Describes options in this |
policyIds[] |
Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4. |
aiaOcspServers[] |
Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the "Authority Information Access" extension in the certificate. |
nameConstraints |
Optional. Describes the X.509 name constraints extension. |
additionalExtensions[] |
Optional. Describes custom X.509 extensions. |
KeyUsage
A KeyUsage
describes key usage values that may appear in an X.509 certificate.
JSON representation |
---|
{ "baseKeyUsage": { object ( |
Fields | |
---|---|
baseKeyUsage |
Describes high-level ways in which a key may be used. |
extendedKeyUsage |
Detailed scenarios in which a key may be used. |
unknownExtendedKeyUsages[] |
Used to describe extended key usages that are not listed in the |
KeyUsageOptions
KeyUsage.KeyUsageOptions
corresponds to the key usage values described in https://tools.ietf.org/html/rfc5280#section-4.2.1.3.
JSON representation |
---|
{ "digitalSignature": boolean, "contentCommitment": boolean, "keyEncipherment": boolean, "dataEncipherment": boolean, "keyAgreement": boolean, "certSign": boolean, "crlSign": boolean, "encipherOnly": boolean, "decipherOnly": boolean } |
Fields | |
---|---|
digitalSignature |
The key may be used for digital signatures. |
contentCommitment |
The key may be used for cryptographic commitments. Note that this may also be referred to as "non-repudiation". |
keyEncipherment |
The key may be used to encipher other keys. |
dataEncipherment |
The key may be used to encipher data. |
keyAgreement |
The key may be used in a key agreement protocol. |
certSign |
The key may be used to sign certificates. |
crlSign |
The key may be used sign certificate revocation lists. |
encipherOnly |
The key may be used to encipher only. |
decipherOnly |
The key may be used to decipher only. |
ExtendedKeyUsageOptions
KeyUsage.ExtendedKeyUsageOptions
has fields that correspond to certain common OIDs that could be specified as an extended key usage value.
JSON representation |
---|
{ "serverAuth": boolean, "clientAuth": boolean, "codeSigning": boolean, "emailProtection": boolean, "timeStamping": boolean, "ocspSigning": boolean } |
Fields | |
---|---|
serverAuth |
Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as "TLS WWW server authentication", though regularly used for non-WWW TLS. |
clientAuth |
Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as "TLS WWW client authentication", though regularly used for non-WWW TLS. |
codeSigning |
Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as "Signing of downloadable executable code client authentication". |
emailProtection |
Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as "Email protection". |
timeStamping |
Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as "Binding the hash of an object to a time". |
ocspSigning |
Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as "Signing OCSP responses". |
CaOptions
Describes the X.509 basic constraints extension, per RFC 5280 section 4.2.1.9
JSON representation |
---|
{ "isCa": boolean, "maxIssuerPathLength": integer } |
Fields | |
---|---|
isCa |
Optional. Refers to the "CA" boolean field in the X.509 extension. When this value is missing, the basic constraints extension will be omitted from the certificate. |
maxIssuerPathLength |
Optional. Refers to the path length constraint field in the X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the certificate. |
NameConstraints
Describes the X.509 name constraints extension, per https://tools.ietf.org/html/rfc5280#section-4.2.1.10
JSON representation |
---|
{ "critical": boolean, "permittedDnsNames": [ string ], "excludedDnsNames": [ string ], "permittedIpRanges": [ string ], "excludedIpRanges": [ string ], "permittedEmailAddresses": [ string ], "excludedEmailAddresses": [ string ], "permittedUris": [ string ], "excludedUris": [ string ] } |
Fields | |
---|---|
critical |
Indicates whether or not the name constraints are marked critical. |
permittedDnsNames[] |
Contains permitted DNS names. Any DNS name that can be constructed by simply adding zero or more labels to the left-hand side of the name satisfies the name constraint. For example, |
excludedDnsNames[] |
Contains excluded DNS names. Any DNS name that can be constructed by simply adding zero or more labels to the left-hand side of the name satisfies the name constraint. For example, |
permittedIpRanges[] |
Contains the permitted IP ranges. For IPv4 addresses, the ranges are expressed using CIDR notation as specified in RFC 4632. For IPv6 addresses, the ranges are expressed in similar encoding as IPv4 addresses. |
excludedIpRanges[] |
Contains the excluded IP ranges. For IPv4 addresses, the ranges are expressed using CIDR notation as specified in RFC 4632. For IPv6 addresses, the ranges are expressed in similar encoding as IPv4 addresses. |
permittedEmailAddresses[] |
Contains the permitted email addresses. The value can be a particular email address, a hostname to indicate all email addresses on that host or a domain with a leading period (e.g. |
excludedEmailAddresses[] |
Contains the excluded email addresses. The value can be a particular email address, a hostname to indicate all email addresses on that host or a domain with a leading period (e.g. |
permittedUris[] |
Contains the permitted URIs that apply to the host part of the name. The value can be a hostname or a domain with a leading period (like |
excludedUris[] |
Contains the excluded URIs that apply to the host part of the name. The value can be a hostname or a domain with a leading period (like |