X509Parameters

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 (KeyUsage)
  },
  "caOptions": {
    object (CaOptions)
  },
  "policyIds": [
    {
      object (ObjectId)
    }
  ],
  "aiaOcspServers": [
    string
  ],
  "additionalExtensions": [
    {
      object (X509Extension)
    }
  ]
}
Fields
keyUsage

object (KeyUsage)

Optional. Indicates the intended use for keys that correspond to a certificate.

caOptions

object (CaOptions)

Optional. Describes options in this X509Parameters that are relevant in a CA certificate.

policyIds[]

object (ObjectId)

Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.

aiaOcspServers[]

string

Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the "Authority Information Access" extension in the certificate.

additionalExtensions[]

object (X509Extension)

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 (KeyUsageOptions)
  },
  "extendedKeyUsage": {
    object (ExtendedKeyUsageOptions)
  },
  "unknownExtendedKeyUsages": [
    {
      object (ObjectId)
    }
  ]
}
Fields
baseKeyUsage

object (KeyUsageOptions)

Describes high-level ways in which a key may be used.

extendedKeyUsage

object (ExtendedKeyUsageOptions)

Detailed scenarios in which a key may be used.

unknownExtendedKeyUsages[]

object (ObjectId)

Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.

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

boolean

The key may be used for digital signatures.

contentCommitment

boolean

The key may be used for cryptographic commitments. Note that this may also be referred to as "non-repudiation".

keyEncipherment

boolean

The key may be used to encipher other keys.

dataEncipherment

boolean

The key may be used to encipher data.

keyAgreement

boolean

The key may be used in a key agreement protocol.

certSign

boolean

The key may be used to sign certificates.

crlSign

boolean

The key may be used sign certificate revocation lists.

encipherOnly

boolean

The key may be used to encipher only.

decipherOnly

boolean

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

boolean

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

boolean

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

boolean

Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as "Signing of downloadable executable code client authentication".

emailProtection

boolean

Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as "Email protection".

timeStamping

boolean

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

boolean

Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as "Signing OCSP responses".

CaOptions

Describes values that are relevant in a CA certificate.

JSON representation
{
  "isCa": boolean,
  "maxIssuerPathLength": integer
}
Fields
isCa

boolean

Optional. Refers to the "CA" X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.

maxIssuerPathLength

integer

Optional. Refers to the path length restriction 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 CA certificate.