// Copyright (c) 2011 DMTF.  All rights reserved.
   [Version ( "2.29.0" ), 
    UMLPackagePath ( "CIM::User::PublicKey" ), 
    Description ( 
       "A SignedCredential is a credential that is cryptographically "
       "signed by a trusted Certificate Authority (CA) or the owner of "
       "the credential itself." )]
class CIM_SignedCredential : CIM_Credential {

      [Key, Override ( "InstanceID" ), 
       Description ( 
          "Within the scope of the instantiating Namespace, "
          "InstanceID opaquely and uniquely identifies an instance "
          "of this class. In order to ensure uniqueness within the "
          "NameSpace, the value of InstanceID SHOULD be constructed "
          "using the following \'preferred\' algorithm: \n"
          "<OrgID>:<LocalID> \n"
          "Where <OrgID> and <LocalID> are separated by a colon "
          "\':\', and where <OrgID> MUST include a copyrighted, "
          "trademarked or otherwise unique name that is owned by "
          "the business entity creating/defining the InstanceID, or "
          "is a registered ID that is assigned to the business "
          "entity by a recognized global authority. (This is "
          "similar to the <Schema Name>_<Class Name> structure of "
          "Schema class names.) In addition, to ensure uniqueness, "
          "<OrgID> MUST NOT contain a colon (\':\'). When using "
          "this algorithm, the first colon to appear in InstanceID "
          "MUST appear between <OrgID> and <LocalID>. \n"
          "<LocalID> is chosen by the organizational entity and "
          "SHOULD not be re-used to identify different underlying "
          "(real-world) elements. If the above \'preferred\' "
          "algorithm is not used, the defining entity MUST assure "
          "that the resultant InstanceID is not re-used across any "
          "InstanceIDs produced by this or other providers for this "
          "instance\'s NameSpace. \n"
          "For DMTF defined instances, the \'preferred\' algorithm "
          "MUST be used with the <OrgID> set to \'CIM\'." )]
   string InstanceID;

      [Description ( "Issuer name who signed the credential." )]
   string IssuerName;

      [Description ( 
          "Certificate authority\'s or credential owner\'s "
          "identifying digest that confers validity on a signed "
          "credential." ), 
       OctetString]
   uint8 Signature[];

      [Description ( 
          "Algorithm used to generate the signature. The algorithms "
          "specified are described in RFC3279. If the value of this "
          "property is 1, \"Other\", then the "
          "OtherSignatureAlgorithm shall be non NULL, non blank "
          "string" ), 
       ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
          "11", "12", "13", "14", "15", "16", "17", "18", "19", 
          "20..32767", "32768..65535" }, 
       Values { "Other", "SHA1withDSA", "SHA1withECDSA", 
          "SHA224withECDSA", "SHA256withECDSA", "SHA384withECDSA", 
          "SHA512withECDSA", "GOST3411withGOST3410", 
          "GOST3411withECGOST3410", "MD2withRSA", "MD5withRSA", 
          "SHA1withRSA", "SHA224withRSA", "SHA256withRSA", 
          "SHA384withRSA", "SHA512withRSA", "RIPEMD160withRSA", 
          "RIPEMD128withRSA", "RIPEMD256withRSA", "DMTF Reserved", 
          "Vendor Reserved" }]
   uint16 SignatureAlgorithm;

      [Description ( 
          "A string describing the signature algorithm when the "
          "SignatureAlgorithm property has the value 1, \"Other\"." )]
   string OtherSignatureAlgorithm;

      [Description ( "Object ID of the signature algorithm." )]
   string SignatureAlgorithmOID;


};
