// Copyright (c) 2011 DMTF. All rights reserved. [Version ( "2.29.0" ), ClassConstraint { "/* The constraints below aim to efficiently */ /* represent a singular OctetString. Each of the properties*/ /* is a single encoded stringthus only the first element */ /* needs to be populated. */ inv:self.PublicKey->size()<=1 and self.SerialNumber->size()<=1 and self.EncodedCertificate->size()<=1" }, UMLPackagePath ( "CIM::User::PublicKey" ), Description ( "CIM_X509Certificate describes Internet X509 Public Key " "Infrastructure (PKI) standard based certificates. The " "certificates are signed by a trusted Certificate Authority " "(CA) or by the owner of the certificate and issued to an " "authenticated entity (e.g., human user, service, etc.) called " "the Subject in the certificate. The public key in the " "certificate is cryptographically related to a private key that " "is held and kept private by the authenticated Subject. The " "certificate and its related private key can then be used for " "establishing trust relationships and securing communications " "with the Subject. Refer to the Internet X.509 PKI standard " "(RFC 3280) for more information." )] class CIM_X509Certificate : CIM_X509Infrastructure { [Description ( "Distinguished name identifying the subject of the " "certificate.Subject shall contain information as " "required by section 4.1.2.6 of RFC 3280 and shall be " "formatted based on RFC 4514." ), DN, MappingStrings { "RFC3280.IETF|Section 4.1.2.6" }] string Subject; [Description ( "Alternate subject identifier for the Certificate." ), MappingStrings { "RFC3280.IETF|Section 4.2.1.7" }] string AltSubject; [Description ( "The DER-encoded raw public key that belongs to the " "subject the certificate vouches for.Only the first " "element of PublicKey array property shall be populated " "with DER encoded raw public key octet string." ), OctetString, MappingStrings { "RFC3280.IETF|Section 4.1.2.7" }] string PublicKey[]; [Description ( "The length of the public key represented in the " "PublicKey property." ), MappingStrings { "RFC3280.IETF|Section 4.1.2.7" }] uint16 PublicKeySize; [Description ( "IsValid represents whether the certificate is currently " "valid. When the certificate is revoked or expired or put " "on hold or invalidated for any reason IsValid shall be " "set to FALSE." )] boolean IsValid; [Description ( "Unique number that identifies this certificate.Only the " "first element of the array property shall be populated." ), OctetString, MappingStrings { "RFC3280.IETF|Section 4.1.2.2" }] string SerialNumber[]; [Description ( "Public key algorithm." ), ValueMap { "0", "2", "3", "4", "5..32767", "32768..65535" }, Values { "Unknown", "RSA", "DSA", "ECDSA", "DMTF Reserved", "Vendor Specified" }, MappingStrings { "RFC3280.IETF|Section 4.1.2.7" }] uint16 PublicKeyAlgorithm; [Description ( "Key usage defines the purpose of the key. Key usage " "could include digital signing, key agreement, " "certificate signing, and more. The key usage is an " "extension to the X.509 specification." ), ValueMap { "0", "2", "3", "4", "5", "6", "7", "8..32767", "32768..65535" }, Values { "Unknown", "Digital Signature", "Non Repudiation", "Key Encipherment", "Data Encipherment", "Key Agreement", "Key Certificate Signature", "DMTF Reserved", "Vendor Specified" }, MappingStrings { "RFC3280.IETF|Section 4.2.1.3" }] uint16 KeyUsage[]; [Description ( "This extension indicates one or more purposes for which " "the certified public key may be used, in addition to or " "in place of the basic purposes indicated in the key " "usage extension." ), MappingStrings { "RFC3280.IETF|Section 4.2.1.13" }] string ExtendedKeyUsage[]; [Description ( "An X.509 certificate may contain an optional extension " "that identifies whether the subject of the certificate " "is a certificate authority (CA). If the subject is a CA, " "this property defines the number of certificates that " "may follow this certificate in a certification chain." ), MappingStrings { "RFC3280.IETF|Section 4.2.1.10" }] uint16 PathLengthConstraint; [Description ( "The full content of the certificate in binary form.Only " "the first element of the array property shall be " "populated." ), OctetString, MappingStrings { "RFC3280.IETF|Section 4" }] string EncodedCertificate[]; [Description ( "Extension identifier array for additional attributes " "associated with the certificate. The corresponding array " "element in the IsCritical property denotes whether the " "extension is critical. The corresponding array element " "in the ExtensionValue property contains the value of the " "extension attribute." ), ArrayType ( "Indexed" ), MappingStrings { "RFC3280.IETF|Section 4.1.2.9", "RFC3280.IETF|Section 4.2" }, ModelCorrespondence { "CIM_X509Certificate.IsCritical", "CIM_X509Certificate.ExtensionValue" }] string ExtensionID[]; [Description ( "Certificate extension attribute value array. The " "corresponding array element in the ExtensionID property " "contains the identifier of the certificate extension " "attribute. The corresponding array element in the " "IsCritical property denotes whether the extension is " "critical." ), ArrayType ( "Indexed" ), MappingStrings { "RFC3280.IETF|Section 4.1.2.9", "RFC3280.IETF|Section 4.2" }, ModelCorrespondence { "CIM_X509Certificate.IsCritical", "CIM_X509Certificate.ExtensionID" }] string ExtensionValue[]; [Description ( "TRUE value represents that the extension attribute is " "critical. The corresponding array element in the " "ExtensionID property contains the identifier of the " "extension attribute. The corresponding array element in " "the ExtensionValue property contains the value of the " "extension attribute." ), ArrayType ( "Indexed" ), MappingStrings { "RFC3280.IETF|Section 4.1.2.9", "RFC3280.IETF|Section 4.2" }, ModelCorrespondence { "CIM_X509Certificate.ExtensionID", "CIM_X509Certificate.ExtensionValue" }] boolean IsCritical[]; [Description ( "String that identifies the issuer of the certificate." ), MappingStrings { "RFC3280.IETF|Section 4.1.2.8" }] string IssuerUniqueID; [Description ( "Certificate\'s unique subject identifier." ), MappingStrings { "RFC3280.IETF|Section 4.1.2.8" }] string SubjectUniqueID; [Description ( "TRUE value represents that the certificate is a trusted " "root certificate." )] boolean TrustedRootCertificate; };