クラス ProtectionHandler

特定の保護構成に対する保護関連のアクションを管理します。

まとめ

メンバー 説明
public std::shared_ptr<Stream> CreateProtectedStream(const std::shared_ptr<Stream>& backingStream, int64_t contentStartPosition, int64_t contentSize) コンテンツの暗号化/復号化を可能にする保護されたストリームを作成します。
public int64_t EncryptBuffer(int64_t offsetFromStart, const uint8_t* inputBuffer, int64_t inputBufferSize, uint8_t* outputBuffer, int64_t outputBufferSize, bool isFinal) バッファーを暗号化します。
public int64_t DecryptBuffer(int64_t offsetFromStart, const uint8_t* inputBuffer, int64_t inputBufferSize, uint8_t* outputBuffer, int64_t outputBufferSize, bool isFinal) バッファーの暗号化を解除します。
public int64_t GetProtectedContentLength(int64_t unprotectedLength, bool includesFinalBlock) この ProtectionHandler で暗号化する場合は、コンテンツのサイズ (バイト単位) を計算します。
public int64_t GetBlockSize() この ProtectionHandler で使用される暗号モードのブロック サイズ (バイト単位) を取得します。
public std::vector<std::string> GetRights() const この ProtectionHandler に関連付けられているユーザー/ID に付与された権限を取得します。
public bool AccessCheck(const std::string& right) const 保護ハンドラーが、指定された権限へのユーザー アクセスを許可するかどうかを確認します。
public const std::string GetIssuedTo() 保護ハンドラーに関連付けられているユーザーを取得します。
public const std::string GetOwner() コンテンツ所有者のメール アドレスを取得します。
public bool IsIssuedToOwner() 現在のユーザーがコンテンツ所有者かどうかを取得します。
public std::shared_ptr<ProtectionDescriptor> GetProtectionDescriptor() 保護の詳細を取得します。
public const std::string GetContentId() ドキュメント/コンテンツの一意識別子を取得します。
public bool DoesUseDeprecatedAlgorithms() 保護ハンドラーが下位互換性のために非推奨の暗号化アルゴリズム (ECB) を使用するかどうかを取得します。
public bool UsesApplicationDefinedPadding() 保護されたコンテンツにアプリケーション定義のパディングが必要かどうか、または内部的に処理されるかどうかを取得します。
public bool IsAuditedExtractAllowed() 保護ハンドラーがユーザーに "監査された抽出" 権限を付与するかどうかを取得します。
public const std::vector<uint8_t>& GetSerializedPublishingLicense() const ProtectionHandler を発行ライセンス (PL) にシリアル化する
public const std::vector<uint8_t>& GetSerializedPreLicense(PreLicenseFormat format) const プレライセンスを取得します。
public CipherMode GetCipherMode() const 保護ハンドラーの暗号モードを取得します。
enum PreLicenseFormat プレライセンス形式。

メンバー

CreateProtectedStream 関数

コンテンツの暗号化/復号化を可能にする保護されたストリームを作成します。

パラメーター:

  • backingStream: 読み取り/書き込み元のバッキング ストリーム

  • contentStartPosition: 保護されたコンテンツが開始されるバッキング ストリーム内の開始位置 (バイト単位)

  • contentSize: バッキング ストリーム内の保護されたコンテンツのサイズ (バイト単位)

戻り値: 保護されたストリーム

EncryptBuffer 関数

バッファーを暗号化します。

パラメーター:

  • offsetFromStart: クリア テキスト コンテンツの先頭からの inputBuffer の相対位置

  • inputBuffer: 暗号化されるクリア テキスト コンテンツのバッファー

  • inputBufferSize: 入力バッファーのサイズ (バイト単位)

  • outputBuffer: 暗号化されたコンテンツのコピー先となるバッファー

  • outputBufferSize: 出力バッファーのサイズ (バイト単位)

  • isFinal: 入力バッファーに最終的なクリア テキスト バイトが含まれているかどうか

戻り値: 暗号化されたコンテンツの実際のサイズ (バイト単位)

DecryptBuffer 関数

バッファーの暗号化を解除します。

パラメーター:

  • offsetFromStart: 暗号化されたコンテンツの先頭からの inputBuffer の相対位置

  • inputBuffer: 暗号化解除される暗号化されたコンテンツのバッファー

  • inputBufferSize: 入力バッファーのサイズ (バイト単位)

  • outputBuffer: 復号化されたコンテンツがコピーされるバッファー

  • outputBufferSize: 出力バッファーのサイズ (バイト単位)

  • isFinal: 入力バッファーに最終的な暗号化バイトが含まれているかどうか

戻り値: 復号化されたコンテンツの実際のサイズ (バイト単位)

GetProtectedContentLength 関数

この ProtectionHandler で暗号化する場合は、コンテンツのサイズ (バイト単位) を計算します。

パラメーター:

  • unprotectedLength: 保護されていないコンテンツのサイズ (バイト単位)

  • includesFinalBlock: 対象の保護されていないコンテンツに最終的なブロックが含まれているかどうかを示します。 たとえば、CBC4k 暗号化モードでは、非最終保護ブロックは保護されていないブロックと同じサイズですが、保護された最終的なブロックは、保護されていないブロックよりも大きくなります。

戻り値: 保護されたコンテンツのサイズ (バイト単位)

GetBlockSize 関数

この ProtectionHandler で使用される暗号モードのブロック サイズ (バイト単位) を取得します。

戻り値: ブロック サイズ (バイト単位)

GetRights 関数

この ProtectionHandler に関連付けられているユーザー/ID に付与された権限を取得します。

戻り値: ユーザーに付与された権限

AccessCheck 関数

保護ハンドラーが、指定された権限へのユーザー アクセスを許可するかどうかを確認します。

パラメーター:

  • right: チェックする権限

戻り値: 保護ハンドラーが、指定された権限へのユーザー アクセスを許可する場合

GetIssuedTo 関数

保護ハンドラーに関連付けられているユーザーを取得します。

戻り値: 保護ハンドラーに関連付けられているユーザー

GetOwner 関数

コンテンツ所有者のメール アドレスを取得します。

戻り値: コンテンツ所有者のメール アドレス

IsIssuedToOwner 関数

現在のユーザーがコンテンツ所有者かどうかを取得します。

戻り値: 現在のユーザーがコンテンツ所有者かどうか

GetProtectionDescriptor 関数

保護の詳細を取得します。

戻り値: 保護の詳細

GetContentId 関数

ドキュメント/コンテンツの一意識別子を取得します。

戻り値: 一意のコンテンツ識別子発行ライセンスでは、この識別子が中かっこ "{}" で囲まれます。 これらの中かっこは、ここで返される値から削除されます

DoesUseDeprecatedAlgorithms 関数

保護ハンドラーが下位互換性のために非推奨の暗号化アルゴリズム (ECB) を使用するかどうかを取得します。

戻り値: 保護ハンドラーが非推奨の暗号アルゴリズムを使用する場合、使用しない場合

UsesApplicationDefinedPadding 関数

保護されたコンテンツにアプリケーション定義のパディングが必要かどうか、または内部的に処理されるかどうかを取得します。

戻り値: アプリケーション定義の埋め込みが必要な場合は True、そうでない場合は false。

IsAuditedExtractAllowed 関数

保護ハンドラーがユーザーに "監査された抽出" 権限を付与するかどうかを取得します。

戻り値: 保護ハンドラーがユーザーに 'audited extract' 権限を付与するかどうかを指定する場合

GetSerializedPublishingLicense 関数

ProtectionHandler を発行ライセンス (PL) にシリアル化する

戻り値: シリアル化された発行ライセンス

GetSerializedPreLicense 関数

プレライセンスを取得します。

パラメーター:

  • format: プレライセンス形式

戻り値: シリアル化されたプレライセンス。プレライセンスを使用すると、ユーザーは追加の HTTP 呼び出しをせずにコンテンツをすぐに使用できます。 ProtectionHandler は ProtectionHandler::P ublishing設定::SetPreLicenseUserEmail 値を使用して作成されている必要があります。そうしないと、空のベクターが返されます。

GetCipherMode 関数

保護ハンドラーの暗号モードを取得します。

戻り値: 暗号モード

PreLicenseFormat 列挙型

説明
xml MSIPC で使用されるレガシ XML/SOAP 形式
JSON MIP SDK および RMS SDK で使用される JSON/REST 形式

プレライセンス形式。