# Class CIM_KeyBasedCredentialManagementService
extends CIM_CredentialManagementService

CIM_KeyBasedCredentialManagementService manages key based credentials such as symmetric and assymetric key pairs and certificates. It also manages the infrustracture necessary for the key based credentials such as key repositories.

### Table of Contents
Hierarchy
Direct Known Subclasses
Class Qualifiers
Class Properties
Class Methods

## Class Hierarchy

CIM_ManagedElement
|
+--CIM_ManagedSystemElement
|
+--CIM_LogicalElement
|
+--CIM_EnabledLogicalElement
|
+--CIM_Service
|
+--CIM_SecurityService
|
+--CIM_AuthenticationService
|
+--CIM_CredentialManagementService
|
+--CIM_KeyBasedCredentialManagementService

## Direct Known Subclasses

CIM_CertificateManagementService

## Class Qualifiers

Name | Data Type | Value
--- | --- | ---
ClassConstraint | string | /* The constraints below aim to efficiently */ /* represent a singular OctetString. Each of the properties*/ /* is a single encoded string, thus only the first element */ /* needs to be populated. */ inv:self.ImportPublicPrivateKeyPair.PublicKey->size()=1 and self.ImportPublicPrivateKeyPair.PrivateKey->size()=1
Description | string | CIM_KeyBasedCredentialManagementService manages key based credentials such as symmetric and assymetric key pairs and certificates. It also manages the infrustracture necessary for the key based credentials such as key repositories.
UMLPackagePath | string | CIM::User::SecurityServices
Version | string | 2.29.0

## Class Properties

### Inherited Properties

Name | Data Type | Class Origin
--- | --- | ---
Caption | string | CIM_ManagedElement
CommunicationStatus | uint16 | CIM_ManagedSystemElement
CreationClassName | string | CIM_Service
Description | string | CIM_ManagedElement
DetailedStatus | uint16 | CIM_ManagedSystemElement
ElementName | string | CIM_ManagedElement
EnabledDefault | uint16 | CIM_EnabledLogicalElement
EnabledState | uint16 | CIM_EnabledLogicalElement
HealthState | uint16 | CIM_ManagedSystemElement
InstallDate | datetime | CIM_ManagedSystemElement
InstanceID | string | CIM_ManagedElement
Name | string | CIM_Service
OperatingStatus | uint16 | CIM_ManagedSystemElement
OtherEnabledState | string | CIM_EnabledLogicalElement
PrimaryOwnerContact | string | CIM_Service
PrimaryOwnerName | string | CIM_Service
PrimaryStatus | uint16 | CIM_ManagedSystemElement
RequestedState | uint16 | CIM_EnabledLogicalElement
Started | boolean | CIM_Service
StartMode | string | CIM_Service
Status | string | CIM_ManagedSystemElement
SystemCreationClassName | string | CIM_Service
SystemName | string | CIM_Service
TimeOfLastStateChange | datetime | CIM_EnabledLogicalElement
TransitioningToState | uint16 | CIM_EnabledLogicalElement
AvailableRequestedStates | uint16[] | CIM_EnabledLogicalElement
OperationalStatus | uint16[] | CIM_ManagedSystemElement
StatusDescriptions | string[] | CIM_ManagedSystemElement

## Class Methods

### Local Class Methods

#### ImportPublicPrivateKeyPair (uint32)

#### Method Qualifiers (ImportPublicPrivateKeyPair)

Name | Data Type | Value
--- | --- | ---
Description | string | This method is called to request an import of public/private key pair. The method is used when assymetric private/public keys are generated elsewhere but are required by the managed system for creation of Certificate Signing Requests (CSRs) or self-signed certificates or any other key based credentials. Upon the successful execution, the PPKPCredential shall be the reference to the CIM_UnsignedCredential instance representing the private/public key pair. The CIM_UnsignedCredential instance shall be associated through CIM_MemberOfCollection association with the instance of CIM_Keystore referenced by the Keystore parameter, and shall be associated through the CIM_AffectsElement association with the method invocation instance of CIM_KeyBasedCredentialManagementService.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 4096, 4097..32767, 32768..65535
Values | string | Completed with No Error, Not Supported, Error Occured, Busy, Invalid Reference, Invalid Parameter, Access Denied, DMTF Reserved, Job Started, Method Reserved, Vendor Specified

#### Method Parameters (ImportPublicPrivateKeyPair)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
Usage | uint16
Description | string | The usage of the certificate by the managed element that the certificate is for or is scoped to.
IN | boolean | true
ModelCorrespondence | string | CIM_CredentialContext.Usage
ValueMap | string | 2, 3, 4, 6, 7, 8, .., 32768..65535
Values | string | Owned, Trusted, Trusted for Authentication, Trusted for Authorization, Trusted for Authentication/Authorization, Trusted for Third-Party Authentication/Authorization, DMTF Reserved, Vendor Reserved
PrivateKey | string[]
Description | string | The DER-encoded raw private key.Only the first element of the array property shall be populated.
IN | boolean | true
OctetString | boolean | true
Required | boolean | true
PublicKey | string[]
Description | string | The DER-encoded raw public key.Only the first element of the array property shall be populated.
IN | boolean | true
OctetString | boolean | true
Required | boolean | true
CredentialContext | REF CIM_ManagedElement
Description | string | The managed element that represents the user or owner or the scoping element of the certificate. Such managed element could be the web service that owns the certificate or uses it for verification or account that the certificate is scoped to.
IN | boolean | true
Job | REF CIM_ConcreteJob
Description | string | Contains a reference to the ConcreteJob created to track the execution initiated by the method invocation. If method returns 4096 - Job Started, then this parameter shall not be NULL.
IN | boolean | false
OUT | boolean | true
Keystore | REF CIM_Keystore
Description | string | The reference to the CIM_Keystore instance representing the key store, which the public/private key pair is imported in to.
IN | boolean | true
Required | boolean | true
PPKPCredential | REF CIM_UnsignedCredential
Description | string | The PPKPCredential output parameter references the instance of CIM_UnsignedCredential that represents the public/private key pair.
IN | boolean | false
OUT | boolean | true
Required | boolean | true

#### CreateKeystore (uint32)

#### Method Qualifiers (CreateKeystore)

Name | Data Type | Value
--- | --- | ---
Description | string | This method is called to request a creation of a keystore repository to be used for storage of the key based credentials. Upon the successful execution, the NewKeystore parameter shall reference to the newly created instance of CIM_Keystore. The property values of the newly created instance of the CIM_Keystore shall match all the non-null, non-key properties of the Keystore parameter embedded instance. The newly created CIM_Keystore instance shall be associated to the instance CIM_System referenced by the OwningSystem parameter using CIM_OwningCollectionElement association, shall be associated with the CIM_KeyBasedCredentialManagementService instance using the CIM_ServiceAffectsElement association, and shall be associated to the instances of CIM_Service referenced in the KeystoreUtilizers using CIM_Dependency association.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 4096, 4097..32767, 32768..65535
Values | string | Completed with No Error, Not Supported, Error Occured, Busy, Invalid Reference, Invalid Parameter, Access Denied, DMTF Reserved, Job Started, Method Reserved, Vendor Specified

#### Method Parameters (CreateKeystore)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
Keystore | string
Description | string | The Keystore parameter contains the desired CIM_Keystore instance. The embedded instance shall contain the ElementName and Usage properties.
EmbeddedInstance | string | CIM_Keystore
IN | boolean | true
Required | boolean | true
KeystoreUtilizers | CIM_ManagedElement[]
Description | string | The KeystoreUtilizers parameter contains an array of references to the instances of ManagedElement that represent the managed element that would utilize the keystore. Such services could be web services or protocol services that utilize the credentials stored in the keystore for the identity verification purposes.
IN | boolean | true
Job | REF CIM_ConcreteJob
Description | string | Contains a reference to the ConcreteJob created to track the execution initiated by the method invocation. If method returns 4096 - Job Started, then this parameter shall not be NULL.
IN | boolean | false
OUT | boolean | true
NewKeystore | REF CIM_Keystore
Description | string | The NewKeystore output parameter references the instance of CIM_Keystore that represents the newly created keystore repository.
IN | boolean | false
OUT | boolean | true
Required | boolean | true
OwningSystem | REF CIM_System
Description | string | The OwningSystem parameter references to the desired CIM_System instance that represents the owning managed system for the keystore.
IN | boolean | true
Required | boolean | true

### Inherited Class Methods

Name | Return Type | Class Origin
--- | --- | ---
RequestStateChange | uint32 | CIM_EnabledLogicalElement
StartService | uint32 | CIM_Service
StopService | uint32 | CIM_Service