7 Oracle Key VaultクライアントSDKの管理API

Oracle Key VaultクライアントSDKの管理APIでは、Oracle Key Vaultインタフェースのプログラム環境を制御します。

7.1 okvEnvCreate

okvEnvCreateでは、Oracle Key Vault環境ハンドルを作成します。Oracle Key Vault SDKプログラムは、この関数へのコールの成功によって開始します。

カテゴリ

管理API

用途

okvEnvCreateは、Oracle Key Vault環境ハンドルを作成するために使用します。この環境ハンドルでは、エラー・ハンドルやトレース・コンテキスト、エンドポイント・プログラムに必要な様々なサービス・プロバイダ・インタフェースのハンドルを保持します。すべてのOracle Key Vault関数は、このハンドルの範囲内で実行されます。Oracle Key Vault環境は、この関数へのコールの成功によって開始します。

構文

OKVEnv *okvEnvCreate(OKVMemoryCtx *memctx);

パラメータ

パラメータ IN/OUT 説明

memctx

IN

Oracle Key Vaultメモリー管理コンテキスト。

戻り値

戻り値 説明
OKVEnv*

Oracle Key Vault環境ハンドル。

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

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

コメント

Oracle Key Vaultメモリー管理を使用するエンドポイントでは、okvEnvCreateOKV_MEMORY_FUNCTIONSを渡す必要があります。

Oracle Key VaultクライアントSDKは、クライアントに独自のメモリー管理コンテキストおよびメモリー管理関数を定義するためのオプションを提供します。

たとえば、クライアントではメモリー管理のためにclientMalloc()clientRealloc()、clientFree()およびclientCtxPを定義しているとします。このクライアントでは、これらの関数を使用できるようにするために、Oracle Key Vaultメモリー・コンテキスト構造体でOracle Key Vault環境ハンドルを初期化します。

...
OKVMemoryCtx clientMemory;
clientMemory.ctx = clientCtxP;
clientMemory.okvMalloc = &clientMalloc;
clientMemory.okvRealloc = &clientRealloc;
clientMemory.okvFree = &clientFree;
okvEnvCreate(&clientMemory);
...

OKVEnv  *env = (OKVEnv *) NULL;

/* Setup the Oracle Key Vault Environment handle */
printf("\nSetting up Oracle Key Vault Environment handle\n");
env = okvEnvCreate(OKV_MEMORY_FUNCTIONS);
if (!env)
{
   printf("\tCould not setup the Oracle Key Vault Environment handle\n");
   return 1;
}
else
{
   printf("\tSuccessfully setup Oracle Key Vault Environment handle\n\n");
}

7.2 okvEnvFree

okvEnvFreeでは、Oracle Key Vault環境ハンドルを解放します。これにより、Oracle Key Vault環境の終了を示します。

カテゴリ

管理API

用途

okvEnvFreeは、Oracle Key Vault環境ハンドルを解放するために使用します。これにより、Oracle Key Vault環境の終了を示します。

構文

void okvEnvFree(OKVEnv **env);

パラメータ

パラメータ IN/OUT 説明
env IN Oracle Key Vaultインタフェース環境ハンドル。

戻り値

値は返されません。

コメント

なし。

OKVEnv  *env = (OKVEnv *) NULL;

/* Setup the Oracle Key Vault Environment handle */
printf("\nSetting up Oracle Key Vault Environment handle\n");
env = okvEnvCreate(OKV_MEMORY_FUNCTIONS);

if (!env)
{
   printf("\tCould not setup the Oracle Key Vault Environment handle\n");
   return 1;
}
else
{
   printf("\tSuccessfully setup Oracle Key Vault Environment handle\n\n");
}
...
/* Do some KMIP operations */
...
/* Free the env handle */
printf("Releasing the Environment handle\n");
okvEnvFree(&env);
return 0;

7.3 okvEnvFreeResultObj

okvEnvFreeResultObjでは、Oracle Key Vaultの関数によって戻されたOKVTTLV結果記述子を解放します。

カテゴリ

管理API

用途

okvEnvFreeResultObjでは、Oracle Key Vaultの関数によって戻されたOKVTTLV結果記述子を解放します。

Oracle Key Vault KMIP関数は、OKVTTLV記述子を返すことがあります。この記述子は、Oracle Key Vaultヘルパー関数またはOracle Key Vault KMIP拡張関数を使用して詳しく調査する必要があります。結果記述子の親OKVTTLVは、Oracle Key Vault環境ハンドルに格納されますが、Oracle Key Vault関数の完了時には解放されません。

Oracle Key Vault関数の結果記述子は、解釈した後でokvEnvFreeResultObjを使用することで解放できます。

構文

void okvEnvFreeResultObj(OKVEnv *env);

パラメータ

パラメータ IN/OUT 説明
env IN Oracle Key Vaultインタフェース環境ハンドル。

戻り値

値は返されません。

コメント

Oracle Key Vault関数の結果記述子は、それ以降のOracle Key Vault関数コールによって解放されます。

/* Setup the Oracle Key Vault Environment handle 'env' */
...
/* Do some KMIP operations */
...
okvEnvFreeResultObj(env);

7.4 okvEnvGetOpRequestObj

okvEnvGetOpRequestObjでは、Oracle Key Vault KMIP関数に対応するOKVTTLV記述子のルート(最上位の親)を取得します。

カテゴリ

管理API

用途

一部のKMIP関数は、OKVTTLV記述子の引数を使用してTTLVリクエストを作成します。okvEnvGetOpRequestObjは、Oracle Key Vault KMIP関数に対応するOKVTTLV記述子のルート(最上位の親)を取得する場合に使用します。

Oracle Key VaultのokvAttrAddUniqueIDなどの関数はOKVTTLV属性ディスクリプタを作成しますが、そうした関数には親OKVTTLV記述子が必要になります。okvEnvGetOpRequestObj()は、そのようなOracle Key Vault関数に対応する親OKVTTLV記述子を返します。

構文

OKVTTLV *okvEnvGetOpRequestObj(OKVEnv *env);

パラメータ

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

戻り値

戻り値 説明
OKVTTLV *

OKVTTLVオブジェクト。

成功: OKVTTLV記述子への有効なポインタが返されます。

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

コメント

なし。

OKVTTLV *request = (OKVTTLV *)NULL;
...
/* Setup the Oracle Key Vault Environment handle 'env' */
...
request = okvEnvGetOpRequestObj(env);

7.5 okvEnvSetConfig

okvEnvSetConfigでは、Oracle Key Vault接続構成コンテキストを設定します。

カテゴリ

管理API

用途

okvEnvSetConfigは、SSL接続ウォレットのパスワードを指定するために使用します。SSL接続ウォレットは、エンロール時に作成されます。この関数で使用されるパスワードは、エンドポイントのエンロール時に指定したものです。エンロール時にパスワードを指定していなかった場合は、パスワードとしてNULLを使用してください。

okvEnvSetConfigでは、接続構成の設定に使用する構成ファイルも指定します。このファイルは、Oracle Key Vaultサーバーとの接続の確立時に必要な詳細(サーバーのIPアドレスやサーバーのポート番号などの情報)を保持するためのものです。

構文

OKVErrNo okvEnvSetConfig(OKVEnv *env, oratext *conn_config_file,
                         oratext *conn_pwd);

パラメータ

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

Oracle Key Vault環境ハンドル。

conn_config_file

IN

Oracle Key Vault接続構成ファイル。

conn_pwd

IN

SSL接続ウォレットのパスワード。

戻り値

戻り値 説明
OKVErrNo

Oracle Key Vaultエラー番号。

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

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

コメント

接続構成ファイルは、okvclient.oraファイルです。このファイルはOracle Key Vaultエンドポイントのエンロール時に作成されます。

接続構成ファイルのフルパスを指定しないと、APIは$OKV_HOME/confから構成ファイルを検索しようとします。$OKV_HOMEには、エンドポイント・ソフトウェアをインストールしたディレクトリを設定してください。

oratext *pwd = (oratext *)NULL;
...
/* Setup the Oracle Key Vault Environment handle 'env' */
...
printf("Setting up Oracle Key Vault connection configuration\n");
okvEnvSetConfig(env, (oratext *)NULL, (oratext *)pwd);

7.6 okvEnvSetTrace

okvEnvSetTraceでは、Oracle Key Vaultトレース構成コンテキストを設定します。

カテゴリ

管理API

用途

okvEnvSetTraceは、トレース・ファイルの場所とトレース・レベルを指定するために使用します。トレース・ファイルには、エンドポイントSDKプログラムによって生成される内部トレースが記録されます。このファイルは、診断やデバッグに役立ちます。トレースのレベルによって、トレースの詳細化または簡略化の程度を決定します。デバッグ・レベルは次の値を取ります(昇順)。
  • OKV_TRACE_OFF - トレースなし
  • OKV_TRACE_FATAL - 致命的なレベルのみトレース
  • OKV_TRACE_ERROR - エラー・トレース
  • OKV_TRACE_WARN - 警告トレース
  • OKV_TRACE_INFO - 情報トレース
  • OKV_TRACE_DEBUG - デバッグ・トレース
  • OKV_TRACE_ALL - すべてトレース

構文

OKVErrNo okvEnvSetTrace(OKVEnv *env, oratext *trace_file, ub1 debug_level);

パラメータ

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

Oracle Key Vault環境ハンドル。

trace_file IN

クライアントSDKトレース・ファイルの場所。

debug_level IN

トレースのレベル。

戻り値

戻り値 説明
OKVErrNo

Oracle Key Vaultエラー番号。

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

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

コメント

なし。

oratext *trace_dir = (oratext *)NULL;
...
/* Setup the Oracle Key Vault Environment handle 'env' */
...
trace_dir = (oratext *)"/tmp";
printf("Setting up Tracing\n");
okvEnvSetTrace(env, (oratext *)trace_dir, OKV_TRACE_INFO);