Your suggested change has been received. Thank you.

close

Suggest A Change

https://thales.na.market.dpondemand.io/docs/dpod/services/kmo….

back

NAE-XML Interface Development

Secret Management Operations

search

Please Note:

Secret Management Operations

Secrets are managed objects that can store user defined data. This data can be:

  • blob

  • password

  • seed

There are two types of objects used to store secrets:

  • Secret Object: It can have password or seed as the data type. The seed may be used for cryptographic operations in the future, which is why it is a separate type. The password is a convenient way to store simple text strings.

  • Opaque Object: It is of blob data type. It can be used to store arbitrary data.

CipherTrust Manager's Network Attached Encryption (NAE) protocol only supports Opaques Objects for XML interface 6.1 or higher.

Secrets support many of the same attributes that keys do. They can be made un-deletable, support meta-data, etc. They also support most of the same lifecycle states as keys.

The XML Interface enables you to:

SecretObjectImportRequest

Import a secret object.

<SecretObjectImportRequest>
<ID>......</ID>
<ObjectName>......</ObjectName>
<ObjectData>......</ObjectData>
<ObjectDataType>......</ObjectDataType>
<ObjectUUID>.......</ObjectUUID>               # optional
<ObjectMUID>........</ObjectMUID>              # optional
<ExternalObjectID>.......</ExternalObjectID>   # optional
<Exportable/>
<Deletable/>
<Aliases>                       # optional, supported for 6.8 and higher
    <Alias>
        <Name>...</Name>
        <Type>...</Type>
    </Alias>
    ...
</Aliases>
<Permissions>...</Permissions>   # optional, supported for 6.5 and higher
<CustomAttributeList>            # optional,supported for 6.5 and higher
    <CustomAttribute>            # supported for 6.5 and higher
        <Name>...</Name>         # supported for 6.5 and higher
        <Type>...</Type>         # optional, supported for 6.5 and higher
        <Value>...</Value>       # supported for 6.5 and higher 
    </CustomAttribute>
    ...
</CustomAttributeList>
</SecretObjectImportRequest>
ElementDescription
IDContains the user-specified request ID.
ObjectNameName of the secret object.
ObjectDataData to be imported as an opaque object.
ObjectDataTypeData type of the object.
NOTE: Currently, only opaque objects are supported.
ObjectUUIDUsed to set a UUID. It is an optional element. If not provided, a randomly generated value is used.
ObjectMUIDUsed to set a MUID. It is an optional element.
ExternalObjectIDUsed to set an ObjectID. It is an optional element.
AliasesSpecifies the list of Alias elements.
AliasAlias is unique for each secret object. This element contains <Name> and <Type> elements.
NameIndicates the name of the Alias element.
TypeSpecifies the data type of an Alias (<Name>) element. It is an optional tag, and can be of String type.
NOTE: If <Type> is not specified, the data type of the <Name> element is selected as String.
PermissionsSpecifies the secret object usage permissions granted to specific groups.
An owner of a secret object can grant secret object usage permissions to specific user groups by adding the Permissions element, and the Group and appropriate secret object usage permission elements: Encrypt, Decrypt, SIGN, and SIGNV. This element is optional.
GroupSpecifies the group that has permission to use secret object. It is a child element of the Permissions element.
EncryptIndicates that the group can use the secret object to encrypt data. Only present and applicable for symmetric keys.
DecryptIndicates that the group can use the secret object to decrypt data.
SIGNIndicates that the group can use the secret object to create signatures.
SIGNVIndicates that the group can use the secret object to verify signatures.
CustomAttributeListSpecifies the list of custom attributes. This element can contain multiple CustomeAttribute elements. This element is optional.
CustomAttributeWhen a custom attribute is present, this element contains one Name and one Value element.
NameIndicates the name of the custom attribute.
TypeData type of Custom Attribute. It can be one of the following types:
• String
• Integer
• Long Integer
• Big Integer
• Enumeration
• Boolean
• Byte String
• Date/Time (default format: "yyyy-mm-dd hr:mm:ss")
• Interval
NOTE: If <Type> is not specified, then String is selected as the default data-type for <Value>.
ValueSpecifies the value of the attribute. This value must be base64 encoded, and input is considered as text. If your original data contains non-printable characters, convert the original data to hex values, and then convert the hex values to base64.

SecretObjectImportResponse

Server response to SecretObjectImportRequest.

<SecretObjectImportResponse>
    <ID>......</ID>
    <Success>.....</Success>
    <Fingerprint>......</Fingerprint>
    <ObjectName>......</ObjectName>
</SecretObjectImportResponse>
ElementDescription
IDContains the user-specified request ID.
ObjectNameName of the secret object.
FingerprintContains the fingerprint of the secret object.
Example
<SecretObjectImportRequest>
    <ID>1</ID>
    <ObjectName>Sample_Secret1</ObjectName>
    <ObjectData>ABCDEF</ObjectData>
    <ObjectDataType>opaque</ObjectDataType>
    <ObjectUUID>jaiufhsfiuv</ObjectUUID>
    <ObjectMUID>jaiufhsfiuvehyufjbkdhkv</ObjectMUID>
    <ExternalObjectID>98765</ExternalObjectID>
    <Exportable/>
    <Deletable/>
</SecretObjectImportRequest>
<SecretObjectImportResponse>
    <ID>1</ID>
    <Success>true</Success>
    <Fingerprint>970093678B182127</Fingerprint>
    <ObjectName>Sample_Secret1</ObjectName>
</SecretObjectImportResponse>

SecretObjectExportRequest

Export a Secret Object.

<SecretObjectExportRequest>
    <ID>......</ID>
    <ObjectName>......</ObjectName>
    <Alias>.....</Alias>
</SecretObjectExportRequest>
ElementDescription
IDContains the user-specified request ID.
ObjectNameIndicates the name of the secret object. You can use ObjectName/Alias to export a secret object.
AliasIndicates the alias name of the secret object. You can use Alias/ObjectName to export a secret object.

SecretObjectExportResponse

Server response to SecretObjectExportRequest.

<SecretObjectExportResponse>
    <ID>......</ID>
    <Success>true</Success>
    <ObjectName>......</ObjectName>
    <ObjectData>......</ObjectData>
    <ObjectType>......</ObjectType>
    <Fingerprint>......</Fingerprint>
    <ObjectLength>.....</ObjectLength>
</SecretObjectExportResponse>
ElementDescription
IDContains the user-specified request ID.
ObjectNameName of the secret object.
ObjectDataThe data of the opaque object.
ObjectTypeData type of the object.
NOTE: Currently, only Opaque Objects are supported.
FingerprintContains the fingerprint of the secret object.
ObjectLengthContains the length of the object material/data.
Example
<SecretObjectExportRequest>
    <ID>123</ID>
    <ObjectName>MySecret1234</ObjectName>
</SecretObjectExportRequest>
<SecretObjectExportResponse>
    <ID>123</ID>
    <Success>true</Success>
    <ObjectName>MySecret1234</ObjectName>
    <ObjectData>ABCDEFG</ObjectData>
    <ObjectType>Opaque Object</ObjectType>
    <Fingerprint>93BE4612C41D23AF</Fingerprint>
    <ObjectLength>7</ObjectLength>
</SecretObjectExportResponse>

SecretObjectInfoRequest

Return information about a secret object.

<SecretObjectInfoRequest>
    <ID>......</ID>
    <ObjectName>......</ObjectName>
    <IDType>......</IDType>                # optional, supported for 6.4 or higher 
    <GetObjectIDs/>                      #optional
</SecretObjectInfoRequest>
ElementDescription
IDContains the user-specified request ID.
ObjectNameName of the secret object.
IDTypeIdentifier in the ObjectName is managed according to the value specified in this tag. Possible values are:
• Name (Default)
• UUID
• MUID
• ObjectId
• Alias (supported for 6.8 or higher)
GetObjectIDsDisplays all the identifiers of the object such as UUID, MUID, and ObjectID. This element is optional.

SecretObjectInfoResponse

Server response to SecretObjectInfoRequest.

    <SecretObjectInfoResponse>
    <ID>......</ID>
    <Success>......</Success>
    <ObjectName>......</ObjectName>
    <Fingerprint>......</Fingerprint>
    <ObjectType>opaque</ObjectType>
    <ObjectCreationDate>......</ObjectCreationDate>
    <ObjectUpdatedAt>......</ObjectUpdatedAt>
    <Exportable/>
    <Deletable/>
    <Aliases>                #  available only for 6.8 and higher
        <Alias>
            <Name></Name>
            <Type></Type>
        </Alias>
        ...
    </Aliases>
    <ObjectUUID>.......</ObjectUUID>               
    <ObjectMUID>........</ObjectMUID>              
    <ExternalObjectID>.......</ExternalObjectID>  
    <Encrypt/>                  #  available only for 6.5 and higher     
    <Decrypt/>                  #  available only for 6.5 and higher
    <Sign/>                     #  available only for 6.5 and higher
    <SignV/>                    #  available only for 6.5 and higher
    <CustomAttributeList>       #  present only when there are multiple custom attributes 
        <CustomAttribute>            # supported for 6.5 and higher
            <Name>...</Name>        # supported for 6.5 and higher 
            <Type>...</Type>        # optional, supported for 6.5 and higher       
            <Value>...</Value>      # optional, supported for 6.5 and higher
        </CustomAttribute>
    </CustomAttributeList>
</SecretObjectInfoResponse>
ElementDescription
IDContains the user-specified request ID.
ObjectNameName of the secret object.
FingerprintContains the fingerprint of the secret object.
ObjectTypeData type of the object.
NOTE: Currently, only Opaque Objects are supported.
ObjectCreationDateDate and time when the object was created.
ObjectUpdatedAtDate and time when the object was most recently updated.
AliasesSpecifies the list of Alias elements.
AliasAlias is unique for each secret object. This element contains <Name> and <Type> elements.
NameIndicates the name of the Alias element.
TypeSpecifies the data type of an Alias (<Name>) element.
ObjectUUIDShows the UUID of the secret object.
ObjectMUIDShows the MUID of the secret object.
ExternalObjectIDShows the ExternalObjectID of the secret object.
EncryptIndicates that the secret object is capable of encryption. Only present and applicable for symmetric keys.
DecryptIndicates that the secret object is capable of decryption.
SignIndicates that the secret object is capable of creating signatures.
SignVIndicates that the secret object is capable of verifying signatures.
CustomAttributeListSpecifies the list of custom attributes. This element can contain multiple CustomeAttribute elements. This element is optional.
CustomAttributeWhen a custom attribute is present, this element contains one Name and one Value element.
NameIndicates the name of the custom attribute.
TypeData type of Custom Attribute. It is an optional tag, and can be one of the following types:
• String
• Integer
• Long Integer
• Big Integer
• Enumeration
• Boolean
• Byte String
• Date/Time
• Interval
Note:
• Data-type of <Value> for a new custom attribute is selected as String.
• Data-type for <Value> remains the same for an existing custom attribute and cannot be changed.
ValueSpecifies the value of the attribute. This value must be base64 encoded, and input is considered as text. If your original data contains non-printable characters, convert the original data to hex values, and then convert the hex values to base64.
Example
<SecretObjectInfoRequest>
    <ID>2</ID>
    <ObjectName>Sample_Secret1</ObjectName>
    <GetObjectIDs/>
</SecretObjectInfoRequest>
<SecretObjectInfoResponse>
    <ID>2</ID>
    <Success>true</Success>
    <ObjectName>Sample_Secret1</ObjectName>
    <Fingerprint>970093678B182127</Fingerprint>
    <ObjectType>Opaque Object</ObjectType>
    <ObjectCreationDate>2021-01-20 06:12:34.29376 +0000 UTC</ObjectCreationDate>
    <ObjectUpdatedAt>2021-01-20 06:12:34.29376 +0000 UTC</ObjectUpdatedAt>
    <Exportable/>
    <Deletable/>
    <IsOwner/>
    <ObjectUUID>jaiufhsfiuv</ObjectUUID>
    <ObjectMUID>jaiufhsfiuvehyufjbkdhkv</ObjectMUID>
    <ExternalObjectID>98765</ExternalObjectID>
</SecretObjectInfoResponse>
Example - Requesting information of a object using UUID
<SecretObjectInfoRequest>
    <ID>02</ID>
    <ObjectName>1ba3bbe9-152c-4584-bbae-6cc4afeb590e</ObjectName>
    <IDType>UUID</IDType>
</SecretObjectInfoRequest>
<SecretObjectInfoResponse>
    <ID>02</ID>
    <Success>true</Success>
    <ObjectName>Sample_Secret1</ObjectName>
    <Fingerprint>970093678B182127</Fingerprint>
    <ObjectType>Opaque Object</ObjectType>
    <ObjectCreationDate>2021-02-10 07:29:26.588881 +0000 UTC</ObjectCreationDate>
    <ObjectUpdatedAt>2021-02-10 07:29:26.588881 +0000 UTC</ObjectUpdatedAt>
    <Exportable/>
    <Deletable/>
    <IsOwner/>
</SecretObjectInfoResponse>

SecretObjectModifyRequest

Modify a secret object.

<SecretObjectModifyRequest>
<ID>.....</ID>
<ObjectName>.....</ObjectName>
<Owner>.....</Owner>
<ObjectMUID>.....</ObjectMUID>               # optional
<ExternalObjectID>.....</ExternalObjectID>   # optional
<Exportable/>
<Deletable/>
<NonExportable/>
<NonDeletable/>
<Aliases>                              # optional, supported for 6.8 and higher
    <Alias>
        <Name>...</Name>
        <Type>...</Type>
    </Alias>
    ...
</Aliases>
<DeleteAlias>
    <Name>...</Name>
    <Name>...</Name>
</DeleteAlias>
<Permissions>...</Permissions>          # optional, supported for 6.5 and higher
<CustomAttributeList>            # include to add or update 
<CustomAttribute>           # custom attributes
    <Name>...</Name>        # Supported for 6.5 and higher
    <Type>...</Type>        # Optional, supported for 6.5 and higher
    <Value>...</Value>      # Supported for 6.5 and higher
</CustomAttribute>
...
</CustomAttributeList>       
<DeleteCustomAttribute>      # include to delete an existing, supported for 6.5 and higher
    <Name>...</Name>         # custom attribute, supported for 6.5 and higher
    <Name>...</Name>            # Supported for 6.5 and higher
</DeleteCustomAttribute>        # Supported for 6.5 and higher
<DeleteAllCustomAttributes/>    # include to delete all custom attributes, supported for 6.5 and higher
</SecretObjectModifyRequest>

Above example is for reference only. Following tags must not be specified together in a single request, as it causes errors:
<Deletable> and <NonDeletable>
<Exportable> and <NonExportable>

ElementDescription
IDContains the user-specified request ID.
ObjectNameName of the secret object.
ObjectMUIDUsed to set a MUID, if not set already.
ExternalObjectIDUsed to set an objectId, if not set already. It is specified in the Long type format.
ExportableUsed to make the secret object exportable.
NonExportableUsed to make the secret object non-exportable.
DeletableUsed to make the secret object deletable.
NonDeletableUsed to make the secret object non-deletable.
AliasesSpecifies the list of Alias elements.
AliasAlias is unique for each secret object. This element contains <Name> and <Type> elements.
NameIndicates the name of the Alias element.
TypeSpecifies the data type of an Alias (<Name>) element. It is an optional tag, and can be of String type.
NOTE: If <Type> is not specified, the data type of the <Name> element is selected as String.
DeleteAliasContains the aliases that will be deleted. Deletes single or multiple aliases.
OwnerUsed to modify the Owner for the Secret Object. The specified owner must already exist.
PermissionsSpecifies the secret object usage permissions granted to specific groups. This element is optional. When used, it overwrites the existing secret object permissions.
Any previous permission settings that are not included in this modification request are erased. Thus, to make a change to a secret object's existing permissions, you must include the full list of permissions for all groups and modify the list by adding or removing groups and permission elements as needed.
An owner of a secret object can grant secret object usage permissions to specific user groups by adding the Permissions element, and the Group and appropriate secret object usage permission elements: Encrypt, Decrypt, SIGN, and SIGNV.
This functionality is available only to the key owner, therefore your application must authenticate as the owner of the secret object to modify its permissions.
GroupsSpecifies the group that has permission to use secret object. It is a child element of the Permissions element.
EncryptIndicates that the group can use the secret object to encrypt data. Only present and applicable for symmetric keys.
DecryptIndicates that the group can use the secret object to decrypt data.
SignIndicates that the group can use the secret object to create signatures.
SignVIndicates that the group can use the secret object to verify signatures.
CustomAttributeListContains the custom attributes that will be added or updated. Child elements are CustomAttribute, Name, and Value. Values must be base64 encoded, and input is considered as text. If your original data contains non-printable characters, convert the original data to hex values, and then convert the hex values to base64.
CustomattributeWhen a custom attribute is present, this element contains one Name, one Type, and one Value element.
NameIndicates the name of the custom attribute.
TypeData type of Custom Attribute. It is an optional tag, and can be one of the following types:
• String
• Integer
• Long Integer
• Big Integer
• Enumeration
• Boolean
• Byte String
• Date/Time
• Interval
NOTE:
• Data-type of <Value> for a new custom attribute is selected as String.
• Data-type for <Value> remains the same for an existing custom attribute and can not be changed.
ValueSpecifies the value of the attribute. This value must be base64 encoded, and the input is considered as text. If your original data contains non-printable characters, convert the original data to hex values, and then convert the hex values to base64.
DeletecustomattributeDeletes the Custom Attributes listed in the Name element.
DeleteallcustomattributesDeletes all of the key's Custom Attributes (Name and Value elements are lost).

SecretObjectModifyResponse

Server response to SecretObjectModifyRequest.

<SecretObjectModifyResponse>
    <ID>.....</ID>
    <Success>.....</Success>
</SecretObjectModifyResponse>
ElementDescription
IDContains the user-specified request ID.
Example 1
<SecretObjectModifyRequest>
    <ID>3</ID>
    <ObjectName>Sample_Secret2</ObjectName>
    <ObjectMUID>zxcvbnmlkjhgfetryuicvbnmtryui</ObjectMUID>
    <ExternalObjectID>1256789</ExternalObjectID>
</SecretObjectModifyRequest>
<SecretObjectModifyResponse>
    <ID>3</ID>
    <Success>true</Success>

Example 2
<SecretObjectModifyRequest>
    <ID>test1</ID>
    <ObjectName>Secret</ObjectName>
    <NonExportable/>
    <NonDeletable/>
</SecretObjectModifyRequest>
<SecretObjectModifyResponse>
    <ID>test1</ID>
    <Success>true</Success>
</SecretObjectModifyResponse>

SecretObjectDeleteRequest

To delete a secret object.

<SecretObjectDeleteRequest>
    <ID>...</ID>
    <ObjectName>....</ObjectName>
</SecretObjectDeleteRequest>
ElementDescription
IDContains the user-specified request ID.
ObjectNameName of the secret object.

SecretObjectDeleteResponse

Server response to SecretObjectDeleteRequest.

<SecretObjectDeleteResponse>
    <ID>.....</ID>
    <Success>.....</Success>
</SecretObjectDeleteResponse>

Example:

<SecretObjectDeleteRequest>
    <ID>Id</ID>
    <ObjectName>Secret_Object_1</ObjectName>
</SecretObjectDeleteRequest>
<SecretObjectDeleteResponse>
    <ID>Id</ID>
    <Success>true</Success>
</SecretObjectDeleteResponse>