class ProtectionHandler
Manages protection-related actions for a specific protection configuration.
Summary
Members | Descriptions |
---|---|
public std::shared_ptr<Stream> CreateProtectedStream(const std::shared_ptr<Stream>& backingStream, int64_t contentStartPosition, int64_t contentSize) | Create a protected stream that will allow for encryption/decryption of content. |
public int64_t EncryptBuffer(int64_t offsetFromStart, const uint8_t* inputBuffer, int64_t inputBufferSize, uint8_t* outputBuffer, int64_t outputBufferSize, bool isFinal) | Encrypt a buffer. |
public int64_t DecryptBuffer(int64_t offsetFromStart, const uint8_t* inputBuffer, int64_t inputBufferSize, uint8_t* outputBuffer, int64_t outputBufferSize, bool isFinal) | Decrypt a buffer. |
public int64_t GetProtectedContentLength(int64_t unprotectedLength, bool includesFinalBlock) | Calculates size (in bytes) of content if it were to be encrypted with this ProtectionHandler. |
public int64_t GetBlockSize() | Gets the block size (in bytes) for the cipher mode used by this ProtectionHandler. |
public std::vector<std::string> GetRights() const | Gets the rights granted to the user/identity associated with this ProtectionHandler. |
public bool AccessCheck(const std::string& right) const | Checks if protection handler grants user access to the specified right. |
public const std::string GetIssuedTo() | Gets user associated with the protection handler. |
public const std::string GetOwner() | Gets email address of content owner. |
public bool IsIssuedToOwner() | Gets if the current user is the content owner or not. |
public std::shared_ptr<ProtectionDescriptor> GetProtectionDescriptor() | Gets protection details. |
public const std::string GetContentId() | Gets unique identifier for the document/content. |
public bool DoesUseDeprecatedAlgorithms() | Gets if protection handler uses deprecated crypto algorithms (ECB) for backward compatibility or not. |
public bool UsesApplicationDefinedPadding() | Gets if protected content requires application-defined padding or if it is handled internally. |
public bool IsAuditedExtractAllowed() | Gets if protection handler grants user 'audited extract' right or not. |
public const std::vector<uint8_t>& GetSerializedPublishingLicense() const | Serialize ProtectionHandler into a publishing license (PL) |
public const std::vector<uint8_t>& GetSerializedPreLicense(PreLicenseFormat format) const | Get pre-license. |
public CipherMode GetCipherMode() const | Gets the cipher mode of the protection handler. |
enum PreLicenseFormat | Pre-license format. |
Members
CreateProtectedStream function
Create a protected stream that will allow for encryption/decryption of content.
Parameters:
backingStream: Backing stream from which to read/write
contentStartPosition: Starting position (in bytes) within the backing stream where protected content begins
contentSize: Size (in bytes) of protected content within backing stream
Returns: Protected stream
EncryptBuffer function
Encrypt a buffer.
Parameters:
offsetFromStart: Relative position of inputBuffer from the very beginning of the cleartext content
inputBuffer: Buffer of cleartext content that will be encrypted
inputBufferSize: Size (in bytes) of input buffer
outputBuffer: Buffer into which encrypted content will be copied
outputBufferSize: Size (in bytes) of output buffer
isFinal: If input buffer contains the final cleartext bytes or not
Returns: Actual size (in bytes) of encrypted content
DecryptBuffer function
Decrypt a buffer.
Parameters:
offsetFromStart: Relative position of inputBuffer from the very beginning of the encrypted content
inputBuffer: Buffer of encrypted content that will be decrypted
inputBufferSize: Size (in bytes) of input buffer
outputBuffer: Buffer into which decrypted content will be copied
outputBufferSize: Size (in bytes) of output buffer
isFinal: If input buffer contains the final encrypted bytes or not
Returns: Actual size (in bytes) of decrypted content
GetProtectedContentLength function
Calculates size (in bytes) of content if it were to be encrypted with this ProtectionHandler.
Parameters:
unprotectedLength: Size (in bytes) of unprotected content
includesFinalBlock: Describes if the unprotected content in question includes the final block or not. For example, in CBC4k encryption mode, non-final protected blocks are the same size as unprotected blocks, but final protected blocks are larger than their unprotected counterparts.
Returns: Size (in bytes) of protected content
GetBlockSize function
Gets the block size (in bytes) for the cipher mode used by this ProtectionHandler.
Returns: Block size (in bytes)
GetRights function
Gets the rights granted to the user/identity associated with this ProtectionHandler.
Returns: Rights granted to the user
AccessCheck function
Checks if protection handler grants user access to the specified right.
Parameters:
- right: Right to check
Returns: If protection handler grants user access to the specified right or not
GetIssuedTo function
Gets user associated with the protection handler.
Returns: User associated with protection handler
GetOwner function
Gets email address of content owner.
Returns: Email address of content owner
IsIssuedToOwner function
Gets if the current user is the content owner or not.
Returns: If the current user is the content owner or not
GetProtectionDescriptor function
Gets protection details.
Returns: Protection details
GetContentId function
Gets unique identifier for the document/content.
Returns: Unique content identifier Publishing licenses will have this identifier surrounded by curly braces "{}". Those braces are removed from the value returned here
DoesUseDeprecatedAlgorithms function
Gets if protection handler uses deprecated crypto algorithms (ECB) for backward compatibility or not.
Returns: If protection handler uses deprecated crypto algorithms or not
UsesApplicationDefinedPadding function
Gets if protected content requires application-defined padding or if it is handled internally.
Returns: True, if application-defined padding is required, false if not.
IsAuditedExtractAllowed function
Gets if protection handler grants user 'audited extract' right or not.
Returns: If protection handler grants user 'audited extract' right or not
GetSerializedPublishingLicense function
Serialize ProtectionHandler into a publishing license (PL)
Returns: Serialized publishing license
GetSerializedPreLicense function
Get pre-license.
Parameters:
- format: Pre-license format
Returns: Serialized pre-license A pre-license allows a user to immediately consume content without making an additional HTTP call. The ProtectionHandler must have been created with a ProtectionHandler::PublishingSettings::SetPreLicenseUserEmail value or else this will return an empty vector.
GetCipherMode function
Gets the cipher mode of the protection handler.
Returns: The cipher mode
PreLicenseFormat enum
Values | Descriptions |
---|---|
Xml | Legacy XML/SOAP format used by MSIPC |
Json | JSON/REST format used by MIP SDK and RMS SDK |
Pre-license format.