Interface X509CertificateCoo

All Superinterfaces:
BundleableObject, CyberObservableObject, CyberObservableObjectCommonProperties, GenericValidation, SdoDefaultValidator, Serializable, Stix, StixCustomProperties
All Known Implementing Classes:
X509Certificate

@Immutable @DefaultTypeValue(value="x509-certificate", groups=DefaultValuesProcessor.class) @BusinessRule(ifExp="true", thenExp="isSelfSigned().isPresent() == true || getHashes().isEmpty() == false || getVersion().isPresent() == true || getSerialNumber().isPresent() == true || getSignatureAlgorithm().isPresent() == true || getIssuer().isPresent() == true || getValidityNotBefore().isPresent() == true || getValidityNotAfter().isPresent() == true || getSubject().isPresent() == true || getSubjectPublicKeyAlgorithm().isPresent() == true || getSubjectPublicKeyModulus().isPresent() == true || getSubjectPublicKeyExponent().isPresent() == true || getX509V3Extensions().isPresent() == true", errorMessage="At least 1 property must be provided") public interface X509CertificateCoo extends CyberObservableObject
x509-certificate

The X509 Certificate Object represents the properties of an X.509 certificate.

  • Method Details

    • isSelfSigned

      @JsonPropertyDescription("Specifies whether the certificate is self-signed, i.e., whether it is signed by the same entity whose identity it certifies.") Optional<Boolean> isSelfSigned()
    • getHashes

      @JsonPropertyDescription("Specifies any hashes that were calculated for the entire contents of the certificate.") Map<@Length(min=3,max=256) @HashingVocab(HashingAlgorithms.class) String,String> getHashes()
    • getVersion

      @JsonPropertyDescription("Specifies the version of the encoded certificate.") Optional<String> getVersion()
    • getSerialNumber

      @JsonPropertyDescription("Specifies the unique identifier for the certificate, as issued by a specific Certificate Authority.") Optional<String> getSerialNumber()
    • getSignatureAlgorithm

      @JsonPropertyDescription("Specifies the name of the algorithm used to sign the certificate.") Optional<String> getSignatureAlgorithm()
    • getIssuer

      @JsonPropertyDescription("Specifies the name of the Certificate Authority that issued the certificate.") Optional<String> getIssuer()
    • getValidityNotBefore

      @JsonPropertyDescription("Specifies the date on which the certificate validity period begins.") Optional<StixInstant> getValidityNotBefore()
    • getValidityNotAfter

      @JsonPropertyDescription("Specifies the date on which the certificate validity period ends.") Optional<StixInstant> getValidityNotAfter()
    • getSubject

      @JsonPropertyDescription("Specifies the name of the entity associated with the public key stored in the subject public key field of the certificate.") Optional<String> getSubject()
    • getSubjectPublicKeyAlgorithm

      @JsonPropertyDescription("Specifies the name of the algorithm with which to encrypt data being sent to the subject.") Optional<String> getSubjectPublicKeyAlgorithm()
    • getSubjectPublicKeyModulus

      @JsonPropertyDescription("Specifies the modulus portion of the subject\u2019s public RSA key.") Optional<String> getSubjectPublicKeyModulus()
    • getSubjectPublicKeyExponent

      @JsonPropertyDescription("Specifies the exponent portion of the subject\u2019s public RSA key, as an integer.") Optional<Long> getSubjectPublicKeyExponent()
    • getX509V3Extensions

      @JsonPropertyDescription("Specifies any standard X.509 v3 extensions that may be used in the certificate.") Optional<X509v3ExtensionsObj> getX509V3Extensions()
    • getId

      @Derived default String getId()
      Deterministically generates the ID for this X.509 certificate based on its serial number, hashes, or subject.
      Specified by:
      getId in interface BundleableObject
      Specified by:
      getId in interface CyberObservableObjectCommonProperties