13 Oracle Key VaultクライアントSDKの拡張操作管理API

Oracle Key VaultクライアントSDKには、カスタムKMIPリクエストの実行に使用する操作が用意されています。

13.1 Oracle Key VaultクライアントSDKの拡張操作管理APIについて

この項では、カスタムKMIPリクエストの実行に使用するOracle Key Vault操作のインタフェースについて説明します。

13.2 okvOpsCreate

okvOpsCreateでは、カスタムKMIP操作の実行に使用するためのOracle Key Vault操作ハンドルを作成します。

カテゴリ

KMIP拡張操作管理API

用途

okvOpsCreateでは、カスタムKMIP操作の実行に使用することになるOracle Key Vault操作ハンドルを作成します。

構文

OKVOps *okvOpsCreate(OKVEnv *env, OKVOpsNo ops); 

パラメータ

パラメータ IN/OUT 説明
env IN Oracle Key Vault環境ハンドル
ops IN KMIP操作

戻り値

戻り値 説明
OKVOps*

Oracle Key Vault操作ハンドル。

成功: Oracle Key Vault操作ハンドルへの有効なポインタが返されます。

失敗: NULLポインタが返されます。

コメント

Oracle Key Vault KMIP拡張APIを使用すると、KMIPレスポンス・パケットを取得するためにOracle Key Vaultサーバーに送信できるカスタムOKVTTLVリクエスト・パケットを作成できます。カスタムOKVTTLVリクエスト・パケットによる操作は、カスタムKMIP操作です。

Oracle Key Vault KMIP拡張APIでは、KMIPレスポンスを解析することもできます。操作が実行されると、Oracle Key Vault操作ハンドルはOracle Key VaultサーバーからのOKVTTLVレスポンス・パケットも保持します。

OKVTTLV *req = (OKVTTLV *) NULL;
OKVTTLV *attr_in = (OKVTTLV *)NULL;
...
OKVOps *op = okvOpsCreate(env, OKVOpAddAttribute);
req = okvTTLVGetRequest(env, op);
attr_in = okvAddAttributeObject(env, req, OKVAttrName, 0);
okvAttrAddName(env, attr_in, "XYZ", strlen("XYZ"), 1);
okvAddAttribute(env, uid, &attr_in);

13.3 okvOpsExecuteOp

okvOpsExecuteOpでは、1つ以上のカスタムKMIP操作を実行します。

カテゴリ

KMIP拡張操作管理API

用途

okvOpsExecuteOpは、1つ以上のカスタムKMIP操作を実行するために使用します。操作はバッチ処理されて実行されます。

構文

OKVErrNo okvOpsExecuteOp(OKVEnv *env, OKVOps **opsr, ub4 ops_cnt); 

パラメータ

パラメータ IN/OUT 説明
env IN

Oracle Key Vault環境ハンドル。

opsr IN

Oracle Key Vault操作ハンドル。

ops_cnt IN

Oracle Key Vault操作ハンドルの数。

戻り値

戻り値 説明
OKVErrNo

Oracle Key Vaultエラー番号

成功: OKV_SUCCESS (0)が返されます。

失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。

コメント

opsrは、バッチ処理されて実行される操作の配列です。ops_cntは、バッチ処理される操作の数です。

エラー・ハンドルには、Oracle Key Vaultサーバーから戻されたエラーが保持されます。ただし、このエラーは操作配列内のすべての操作に必要なわけではありません。エラーが発生した場合でも、Oracle Key Vault操作ハンドルでは有効なレスポンス・パケットを確認する必要があります。

操作配列を解釈する順序はありません。3番目の操作の結果が、最初の操作の結果の前に処理される可能性があります。

OKVTTLV *req = (OKVTTLV *) NULL;
OKVTTLV *attr_in = (OKVTTLV *)NULL;
OKVTTLV *template;
OKVOps *ops[2];
...
/* First Batch Operation */
ops[0]  = okvOpsCreate(env, OKVOpCreate);
req  = okvTTLVGetRequest(env, ops[0]);
okvAttrAddObjectType(env, req, OKVObjSymmetric);
template = okvTTLVAddToObject(env, req, OKVDEF_TAG_TEMPLATE_ATTR_ST,
                              OKVDEF_ITEM_TYPE_STRUCT, (void *) NULL,
                              (ub4) 0);
attr_in = okvAddAttributeObject(env, template, OKVAttrCryptoAlg, 0);
okvAttrAddCryptoAlgo(env, attr_in, (ub4) CRYPTO_ALG_AES);
attr_in = okvAddAttributeObject(env, template, OKVAttrCryptoLen, 0);
okvAttrAddCryptoLen(env, attr_in, (ub4) 128);
attr_in = okvAddAttributeObject(env, template, OKVAttrCryptoUsageMask, 0);
okvAttrAddCryptoUsageMask(env, attr_in, (ub4) 12);

/* Second Batch Operation */
ops[1]  = okvOpsCreate(env, OKVOpActivate);
req = okvTTLVGetRequest(env, ops[1]);

/* Execute Batch Operation */
okvOpsExecuteOp(env, ops, 2);

関連項目

13.4 okvOpsFree

okvOpsFreeでは、Oracle Key Vault操作ハンドルを解放します。

カテゴリ

KMIP拡張操作管理API

用途

okvOpsFreeは、Oracle Key Vault操作ハンドルを解放するために使用します。

構文

void okvOpsFree(OKVEnv *env, OKVOps **ops);

パラメータ

パラメータ IN/OUT 説明
env IN

Oracle Key Vault環境ハンドル

ops IN

Oracle Key Vault操作ハンドル

戻り値

なし。

コメント

なし。

OKVOps ops  = okvOpsCreate(env, OKVOpCreate);
...
okvOpsFree(env, &ops);