|
pure virtual |
Add the register batch item for any key format especially for keys that cannot be represented by a p6ICryptoKey object.
A successful startRequestMsg function must be called first.
Register (Section 4.3 KMIP spec), allows the KMIP client to send one of several objects to the server for storage. This call is used to send one of the following objects: {Symmetric Key, Private Key, Public Key}. This function requires that the caller has properly encoded in TTLV the Key Block's Key Material field. The rawKey.keyMaterial value will be written directly into the message's Key Material field and must be a multiple of 8 bytes (a standard KMIP encoding requirement).
Note that this function cannot be used for wrapped keys (see addRegisterWrappedKeyRequest()).
rawkey | [ in ] all the key information needed to compose a Key Block structure |
attrbutes | [ in ] The required attribues {Cryptographic Algorithm, Cryptographic Length, Cryptographic Usage}, and any other attributes to be associated with the new key object (e.g., Object Group) |
pExtension | [ in ] optional can be NULL, vendor defined extension to the operation |
Success | P6R::eOk | |
Failure | P6R::eNotInitialized | A successful call to intialize() must be made before calling this funciton. |
P6R::eTooSmall | The configured buffer size in pPool is too small to hold the generated message. | |
P6R::eInvalidState | A successful call to startRequestMsg() must be made before calling this function. | |
P6R::eRange | pExtension->encodedExtension.length must be a multiple of 8, since encoded as the Vendor Extension Structure | |
P6R::eRange | pKey->keyMaterial.length must be a multiple of 8, since encoded as Key Material field | |
P6R::eFormatError | rawKey.objectType does not indicate a key object |