...

Package x509limbo

import "crypto/internal/cryptotest/x509limbo"
Overview
Index

Overview ▾

Constants

X509LimboModule is the module path of the upstream x509-limbo project.

const X509LimboModule = "github.com/C2SP/x509-limbo"

X509LimboVersion is the X509LimboModule version that schema.go was generated against.

const X509LimboVersion = "v0.0.0-20260522003327-feb7caccc1af"

type ExpectedResult

type ExpectedResult string
const ExpectedResultFAILURE ExpectedResult = "FAILURE"
const ExpectedResultSUCCESS ExpectedResult = "SUCCESS"

func (*ExpectedResult) UnmarshalJSON

func (j *ExpectedResult) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Feature

type Feature string
const FeatureDenialOfService Feature = "denial-of-service"
const FeatureHasCertPolicies Feature = "has-cert-policies"
const FeatureHasCrl Feature = "has-crl"
const FeatureHasPolicyConstraints Feature = "has-policy-constraints"
const FeatureMaxChainDepth Feature = "max-chain-depth"
const FeatureNameConstraintDn Feature = "name-constraint-dn"
const FeatureNoCertPolicies Feature = "no-cert-policies"
const FeaturePedanticPublicSuffixWildcard Feature = "pedantic-public-suffix-wildcard"
const FeaturePedanticRfc5280 Feature = "pedantic-rfc5280"
const FeaturePedanticSerialNumber Feature = "pedantic-serial-number"
const FeaturePedanticWebpkiEku Feature = "pedantic-webpki-eku"
const FeaturePedanticWebpkiSubscriberKey Feature = "pedantic-webpki-subscriber-key"
const FeatureRfc5280IncompatibleWithWebpki Feature = "rfc5280-incompatible-with-webpki"

func (*Feature) UnmarshalJSON

func (j *Feature) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Importance

type Importance string
const ImportanceCritical Importance = "critical"
const ImportanceHigh Importance = "high"
const ImportanceLow Importance = "low"
const ImportanceMedium Importance = "medium"
const ImportanceUndetermined Importance = "undetermined"

func (*Importance) UnmarshalJSON

func (j *Importance) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type KeyUsage

type KeyUsage string
const KeyUsageCRLSign KeyUsage = "cRLSign"
const KeyUsageContentCommitment KeyUsage = "contentCommitment"
const KeyUsageDataEncipherment KeyUsage = "dataEncipherment"
const KeyUsageDecipherOnly KeyUsage = "decipherOnly"
const KeyUsageDigitalSignature KeyUsage = "digitalSignature"
const KeyUsageEncipherOnly KeyUsage = "encipherOnly"
const KeyUsageKeyAgreement KeyUsage = "keyAgreement"
const KeyUsageKeyCertSign KeyUsage = "keyCertSign"
const KeyUsageKeyEncipherment KeyUsage = "keyEncipherment"

func (*KeyUsage) UnmarshalJSON

func (j *KeyUsage) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type KnownEKUs

type KnownEKUs string
const KnownEKUsAnyExtendedKeyUsage KnownEKUs = "anyExtendedKeyUsage"
const KnownEKUsClientAuth KnownEKUs = "clientAuth"
const KnownEKUsCodeSigning KnownEKUs = "codeSigning"
const KnownEKUsEmailProtection KnownEKUs = "emailProtection"
const KnownEKUsOCSPSigning KnownEKUs = "OCSPSigning"
const KnownEKUsServerAuth KnownEKUs = "serverAuth"
const KnownEKUsTimeStamping KnownEKUs = "timeStamping"

func (*KnownEKUs) UnmarshalJSON

func (j *KnownEKUs) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Limbo

The top-level testcase container.

type Limbo struct {
    // One or more testcases in this testsuite
    Testcases []Testcase `json:"testcases"`

    // The limbo schema version; this must currently always be 1
    Version int `json:"version"`
}

func (*Limbo) UnmarshalJSON

func (j *Limbo) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PeerKind

type PeerKind string
const PeerKindDNS PeerKind = "DNS"
const PeerKindIP PeerKind = "IP"
const PeerKindRFC822 PeerKind = "RFC822"

func (*PeerKind) UnmarshalJSON

func (j *PeerKind) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type PeerName

Represents a peer (i.e., end entity) certificate's name (Subject or SAN).

type PeerName struct {
    // The kind of peer name
    Kind PeerKind `json:"kind"`

    // The peer's name
    Value string `json:"value"`
}

func (*PeerName) UnmarshalJSON

func (j *PeerName) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type SignatureAlgorithm

type SignatureAlgorithm string
const SignatureAlgorithmDSAWITHSHA1 SignatureAlgorithm = "DSA_WITH_SHA1"
const SignatureAlgorithmDSAWITHSHA224 SignatureAlgorithm = "DSA_WITH_SHA224"
const SignatureAlgorithmDSAWITHSHA256 SignatureAlgorithm = "DSA_WITH_SHA256"
const SignatureAlgorithmDSAWITHSHA384 SignatureAlgorithm = "DSA_WITH_SHA384"
const SignatureAlgorithmDSAWITHSHA512 SignatureAlgorithm = "DSA_WITH_SHA512"
const SignatureAlgorithmECDSAWITHSHA1 SignatureAlgorithm = "ECDSA_WITH_SHA1"
const SignatureAlgorithmECDSAWITHSHA224 SignatureAlgorithm = "ECDSA_WITH_SHA224"
const SignatureAlgorithmECDSAWITHSHA256 SignatureAlgorithm = "ECDSA_WITH_SHA256"
const SignatureAlgorithmECDSAWITHSHA3224 SignatureAlgorithm = "ECDSA_WITH_SHA3_224"
const SignatureAlgorithmECDSAWITHSHA3256 SignatureAlgorithm = "ECDSA_WITH_SHA3_256"
const SignatureAlgorithmECDSAWITHSHA3384 SignatureAlgorithm = "ECDSA_WITH_SHA3_384"
const SignatureAlgorithmECDSAWITHSHA3512 SignatureAlgorithm = "ECDSA_WITH_SHA3_512"
const SignatureAlgorithmECDSAWITHSHA384 SignatureAlgorithm = "ECDSA_WITH_SHA384"
const SignatureAlgorithmECDSAWITHSHA512 SignatureAlgorithm = "ECDSA_WITH_SHA512"
const SignatureAlgorithmED25519 SignatureAlgorithm = "ED25519"
const SignatureAlgorithmED448 SignatureAlgorithm = "ED448"
const SignatureAlgorithmGOSTR34102012WITH34112012256 SignatureAlgorithm = "GOSTR3410_2012_WITH_3411_2012_256"
const SignatureAlgorithmGOSTR34102012WITH34112012512 SignatureAlgorithm = "GOSTR3410_2012_WITH_3411_2012_512"
const SignatureAlgorithmGOSTR341194WITH34102001 SignatureAlgorithm = "GOSTR3411_94_WITH_3410_2001"
const SignatureAlgorithmRSASSAPSS SignatureAlgorithm = "RSASSA_PSS"
const SignatureAlgorithmRSAWITHMD5 SignatureAlgorithm = "RSA_WITH_MD5"
const SignatureAlgorithmRSAWITHSHA1 SignatureAlgorithm = "RSA_WITH_SHA1"
const SignatureAlgorithmRSAWITHSHA224 SignatureAlgorithm = "RSA_WITH_SHA224"
const SignatureAlgorithmRSAWITHSHA256 SignatureAlgorithm = "RSA_WITH_SHA256"
const SignatureAlgorithmRSAWITHSHA3224 SignatureAlgorithm = "RSA_WITH_SHA3_224"
const SignatureAlgorithmRSAWITHSHA3256 SignatureAlgorithm = "RSA_WITH_SHA3_256"
const SignatureAlgorithmRSAWITHSHA3384 SignatureAlgorithm = "RSA_WITH_SHA3_384"
const SignatureAlgorithmRSAWITHSHA3512 SignatureAlgorithm = "RSA_WITH_SHA3_512"
const SignatureAlgorithmRSAWITHSHA384 SignatureAlgorithm = "RSA_WITH_SHA384"
const SignatureAlgorithmRSAWITHSHA512 SignatureAlgorithm = "RSA_WITH_SHA512"

func (*SignatureAlgorithm) UnmarshalJSON

func (j *SignatureAlgorithm) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type Testcase

Represents an individual Limbo testcase.

type Testcase struct {
    // A list of testcase IDs that this testcase is mutually incompatible with
    ConflictsWith []string `json:"conflicts_with,omitempty,omitzero"`

    // A list of PEM-encoded Certificate Revocation Lists (CRLs)
    Crls []string `json:"crls,omitempty,omitzero"`

    // A short, Markdown-formatted description
    Description string `json:"description"`

    // For server (i.e. client-side) validation: the expected peer name, if any
    ExpectedPeerName *TestcaseExpectedPeerName `json:"expected_peer_name,omitempty,omitzero"`

    // For client (i.e. server-side) validation: the expected peer names
    ExpectedPeerNames []PeerName `json:"expected_peer_names"`

    // The expected validation result
    ExpectedResult ExpectedResult `json:"expected_result"`

    // A constraining list of extended key usages, either in well-known form or as
    // OIDs
    ExtendedKeyUsage []KnownEKUs `json:"extended_key_usage"`

    // Zero or more human-readable tags that describe OPTIONAL functionality described
    // by this testcase. Implementers should use this to specify testcases for
    // non-mandatory X.509 behavior (like certificate policy validation) or for
    // 'pedantic' cases. Consumers that don't understand a given feature should skip
    // tests that are marked with it.
    Features []Feature `json:"features,omitempty,omitzero"`

    // A short, unique identifier for this testcase
    Id string `json:"id"`

    // The testcase's importance
    Importance Importance `json:"importance,omitempty,omitzero"`

    // A constraining list of key usages
    KeyUsage []KeyUsage `json:"key_usage"`

    // The maximum chain-building depth
    MaxChainDepth interface{} `json:"max_chain_depth,omitempty,omitzero"`

    // The PEM-encoded peer (EE) certificate
    PeerCertificate string `json:"peer_certificate"`

    // The PEM-encoded private key for the peer certificate, if present
    PeerCertificateKey interface{} `json:"peer_certificate_key,omitempty,omitzero"`

    // A list of acceptable signature algorithms to constrain against
    SignatureAlgorithms []SignatureAlgorithm `json:"signature_algorithms"`

    // A list of PEM-encoded CA certificates to consider trusted
    TrustedCerts []string `json:"trusted_certs"`

    // A list of PEM-encoded untrusted intermediates to use during path building
    UntrustedIntermediates []string `json:"untrusted_intermediates"`

    // The kind of validation to perform
    ValidationKind ValidationKind `json:"validation_kind"`

    // The time at which to perform the validation
    ValidationTime interface{} `json:"validation_time,omitempty,omitzero"`
}

func (*Testcase) UnmarshalJSON

func (j *Testcase) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TestcaseExpectedPeerName

For server (i.e. client-side) validation: the expected peer name, if any

type TestcaseExpectedPeerName struct {
    // The kind of peer name
    Kind PeerKind `json:"kind"`

    // The peer's name
    Value string `json:"value"`
}

func (*TestcaseExpectedPeerName) UnmarshalJSON

func (j *TestcaseExpectedPeerName) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.

type TestcaseExpectedPeerName_0

type TestcaseExpectedPeerName_0 = PeerName

type TestcaseMaxChainDepth_0

type TestcaseMaxChainDepth_0 *int

type TestcasePeerCertificateKey_0

type TestcasePeerCertificateKey_0 *string

type TestcaseValidationTime_0

type TestcaseValidationTime_0 *time.Time

type ValidationKind

type ValidationKind string
const ValidationKindCLIENT ValidationKind = "CLIENT"
const ValidationKindSERVER ValidationKind = "SERVER"

func (*ValidationKind) UnmarshalJSON

func (j *ValidationKind) UnmarshalJSON(value []byte) error

UnmarshalJSON implements json.Unmarshaler.