// Copyright (c) 2012 DMTF.  All rights reserved.
   [Version ( "2.31.1" ), 
    UMLPackagePath ( "CIM::User::PublicKey" ), 
    Description ( 
       "A PublicKeyCertificate is a credential that is "
       "cryptographically signed by a trusted Certificate Authority "
       "(CA) 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 "
       "ITU/CCITT X.509 standard as an example of such certificates." )]
class CIM_PublicKeyCertificate : CIM_SignedCredential {

      [Deprecated { "CIM_SignedCredential.InstanceID" }, 
       Required, Description ( "The scoping System\'s CCN." ), 
       MaxLen ( 256 )]
   string SystemCreationClassName;

      [Deprecated { "CIM_SignedCredential.InstanceID" }, 
       Required, Description ( "The scoping System\'s Name." ), 
       MaxLen ( 256 )]
   string SystemName;

      [Deprecated { "CIM_SignedCredential.InstanceID" }, 
       Required, Description ( "The scoping Service\'s CCN." ), 
       MaxLen ( 256 )]
   string ServiceCreationClassName;

      [Deprecated { "CIM_SignedCredential.InstanceID" }, 
       Required, Description ( "The scoping Service\'s Name." ), 
       MaxLen ( 256 )]
   string ServiceName;

      [Required, Description ( "Certificate subject identifier." ), 
       MaxLen ( 256 )]
   string Subject;

      [Description ( 
          "Alternate subject identifier for the Certificate." ), 
       MaxLen ( 256 )]
   string AltSubject;

      [Description ( "The DER-encoded raw public key." ), 
       OctetString]
   uint8 PublicKey[];


};
