Microsoft Information Protection SDK - C 1.17
API Reference Documentation for C
Loading...
Searching...
No Matches
delegation_license_cc.h File Reference

Go to the source code of this file.

Typedefs

typedef mip_cc_handlemip_cc_delegation_license
 Handle to a DelegationLicense object.
 
typedef mip_cc_handlemip_cc_delegation_license_settings
 Handle to a DelegationLicenseSettings object.
 
typedef mip_cc_handlemip_cc_delegation_licenses
 Handle to a collection of mip_cc_delegation_license objects.
 

Functions

 MIP_CC_API (mip_cc_result) MIP_CC_CreateDelegationLicenseSettings(const mip_cc_mip_context mipContext
 Creates the settings required for generating delegation licenses and end-user licenses.
 
 MIP_CC_API (void) MIP_CC_ReleaseDelegationLicenseSettings(mip_cc_delegation_license_settings licenses)
 Releases a mip_cc_delegation_license_settings object.
 

Variables

const uint8_t * serializedPublishingLicense
 
const uint8_t int32_t publishingLicenseBufferSize
 
const uint8_t int32_t mip_cc_string_list users
 
const uint8_t int32_t mip_cc_string_list bool acquireEndUserLicenses
 
const uint8_t int32_t mip_cc_string_list bool mip_cc_delegation_license_settingsdelegationLicenseSettings
 
const uint8_t int32_t mip_cc_string_list bool mip_cc_delegation_license_settings mip_cc_errorerrorInfo
 
mip_cc_delegation_licensedelegationLicenseArray
 
mip_cc_delegation_license int32_t * count
 
mip_cc_dynamic_watermarkdynamicWatermark
 
uint8_t * serializedLicense
 
uint8_t int32_t * serializedLicenseSize
 
const mip_cc_pre_license_format format
 
const char ** user
 

Typedef Documentation

◆ mip_cc_delegation_license

Handle to a DelegationLicense object.

◆ mip_cc_delegation_license_settings

Handle to a DelegationLicenseSettings object.

◆ mip_cc_delegation_licenses

Handle to a collection of mip_cc_delegation_license objects.

Function Documentation

◆ MIP_CC_API() [1/2]

MIP_CC_API ( mip_cc_result ) const

Creates the settings required for generating delegation licenses and end-user licenses.

Get the user associated with this collection of licenses.

Gets the end-user license that can be accessed with the key associated with the end-user's identity.

Gets the delegation license in XRML format. For encryption operations, the delegation license uses the key that is associated with the identity that retrieved the delegation license.

Gets the delegation license in JSON format. For encryption operations, the delegation license uses the key that is associated with the identity that retrieved the delegation license.

Gets the dynamic watermark from the delegation license object.

Gets an array of delegation license objects from a mip_cc_delegation_licenses object.

Parameters
mipContextGlobal context shared across all profiles
serializedPublishingLicenseBuffer containing raw publishing license
publishingLicenseBufferSizeSize of publishing license buffer
usersList of users to obtain licenses on behalf of
acquireEndUserLicensesSet to 'true' to obtain end-user licenses that are encrypted using end-user keys
delegationLicenseSettings[Output] Handle to the new delegation license settings object
errorInfo[Output] (Optional) Failure info if operation result is error
Returns
Result code indicating success or failure
Note
To avoid memory leaks, delegationLicenseSettings must be released using MIP_CC_ReleaseDelegationLicenseSettings.
Parameters
licensesHandle to a collection of mip_cc_delegation_license objects
delegationLicenseArray[Input/Output] Caller allocated array of mip_cc_delegation_license objects. Set this value to nullptr to determine the number of items in licenses.
count[Input/Output] Upon input, the size of delegationLicenseArray in items. Upon output, the number of items written to delegationLicenseArray. Each item is sizeof(mip_cc_delegation_license). If delegationLicenseArray is nullptr, count returns the size required (in items) to store the array of mip_cc_delegation_license objects.
errorInfo[Output] (Optional) Failure info if operation result is error
Returns
Result code indicating success or failure
Note
If the input array is too small, the input is truncated and MIP_RESULT_ERROR_INSUFFICIENT_BUFFER is returned. The caller is responsible for releasing each returned mip_cc_delegation_license by calling MIP_CC_ReleaseDelegationLicense.
Parameters
licenseHandle to a mip_cc_delegation_license object
dynamicWatermark[Output] Handle to the dynamic watermark (null if not present)
errorInfo[Output] (Optional) Failure info if operation result is error
Returns
Result code indicating success or failure
Note
The returned dynamicWatermark (mip_cc_dynamic_watermark*) must be freed by calling MIP_CC_ReleaseDynamicWatermark
Parameters
licenseHandle to the mip_cc_delegation_license object
serializedLicense[Input/Output] Caller allocated buffer in bytes for the JSON delegation license. Set this value to nullptr to determine the number of bytes in serializedLicense.
serializedLicenseSize[Input/Output] Upon input, the size of serializedLicense in bytes. Upon output, the number of bytes written to serializedLicense. If serializedLicense is nullptr, serializedLicenseSize returns the size required (in bytes) to store the serializedLicense.
errorInfo[Output] (Optional) Failure info if operation result is error
Returns
Result code indicating success or failure
Note
If the input buffer is too small, the input is truncated and MIP_RESULT_ERROR_INSUFFICIENT_BUFFER is returned. The input buffer is NOT guaranteed to be null terminated.
Parameters
licenseHandle to the mip_cc_delegation_license object
serializedLicense[Input/Output] Caller allocated buffer in bytes for the XRML delegation license. Set this value to nullptr to determine the number of bytes in serializedLicense.
serializedLicenseSize[Input/Output] Upon input, the size of serializedLicense in bytes. Upon output, the number of bytes written to serializedLicense. If serializedLicense is nullptr, serializedLicenseSize returns the size required (in bytes) to store the serializedLicense.
errorInfo[Output] (Optional) Failure info if operation result is error
Returns
Result code indicating success or failure
Note
If the input buffer is too small, the input is truncated and MIP_RESULT_ERROR_INSUFFICIENT_BUFFER is returned. The input buffer is NOT guaranteed to be null terminated.
Parameters
licenseHandle to the mip_cc_delegation_license object
formatThe mip_cc_pre_license_format to use when retrieving the end-user license
serializedLicense[Input/Output] Caller allocated buffer in bytes for the XRML delegation license. Set this value to nullptr to determine the number of bytes in serializedLicense.
serializedLicenseSize[Input/Output] Upon input, the size of serializedLicense in bytes. Upon output, the number of bytes written to serializedLicense. If serializedLicense is nullptr, serializedLicenseSize returns the size required (in bytes) to store the serializedLicense.
errorInfo[Output] (Optional) Failure info if operation result is error
Returns
Result code indicating success or failure
Note
If the input buffer is too small, the input is truncated and MIP_RESULT_ERROR_INSUFFICIENT_BUFFER is returned. The input buffer is NOT guaranteed to be null terminated.
Parameters
licenseHandle to the mip_cc_delegation_license object
user[Output] Address of a null terminated character array that defines the user that is associated with this license collection.
errorInfo[Output] (Optional) Failure info if operation result is error
Returns
Result code indicating success or failure
Note
The memory associated with user is temporary and may not be accessible once other MIP_CC_DelegationLicense calls are executed.

◆ MIP_CC_API() [2/2]

MIP_CC_API ( void )

Releases a mip_cc_delegation_license_settings object.

Releases a mip_cc_delegation_license object.

Releases a mip_cc_delegation_licenses object.

Parameters
licensesThe mip_cc_delegation_license_settings object to release
licensesThe mip_cc_delegation_licenses object to release
licenseThe mip_cc_delegation_license object to release

Variable Documentation

◆ acquireEndUserLicenses

const uint8_t int32_t mip_cc_string_list bool acquireEndUserLicenses

◆ count

mip_cc_delegation_license int32_t* count

◆ delegationLicenseArray

mip_cc_delegation_license* delegationLicenseArray

◆ delegationLicenseSettings

const uint8_t int32_t mip_cc_string_list bool mip_cc_delegation_license_settings* delegationLicenseSettings

◆ dynamicWatermark

mip_cc_dynamic_watermark* dynamicWatermark

◆ errorInfo

const char mip_cc_error* errorInfo

◆ format

◆ publishingLicenseBufferSize

uint8_t const int64_t publishingLicenseBufferSize

◆ serializedLicense

const mip_cc_pre_license_format uint8_t * serializedLicense

◆ serializedLicenseSize

const mip_cc_pre_license_format uint8_t int32_t * serializedLicenseSize

◆ serializedPublishingLicense

const uint8_t* serializedPublishingLicense

◆ user

const char** user

◆ users

uint32_t mip_cc_string_list * users