11 Oracle Key VaultクライアントSDKのKMIPおよびバッチAPI
SDKのKMIP APIには、キーの作成、キーのアクティブ化、キーへの属性の追加、キーの破棄などの操作に対応する関数が用意されています。そうしたアクティビティは、バッチAPIによってバッチ操作で実行できます。
- Oracle Key VaultクライアントSDKのKMIP API
この項では、KMIP操作のためのOracle Key Vault関数に対応するインタフェースについて説明します。 - Oracle Key VaultクライアントSDKのバッチAPI
この項では、Oracle Key Vault KMIPバッチ関数に対応するインタフェースについて説明します。
11.1 Oracle Key VaultクライアントSDKのKMIP API
この項では、KMIP操作のためのOracle Key Vault関数に対応するインタフェースについて説明します。
- Oracle Key VaultクライアントSDKのKMIP APIについて
Oracle Key Vault KMIP APIを使用すると、キーおよびシークレット・データの管理などの作業を実行できます。 - okvActivate
okvActivateでは、KMIPアクティブ化操作を実装します。 - okvAddAttribute
okvAddAttributeにより、KMIPの属性追加操作を実装します。 - okvCreateKey
okvCreateKeyでは、KMIP対称キー・オブジェクトのKMIP作成操作を実装します。 - okvDeleteAttribute
okvDeleteAttributeにより、KMIPの属性削除操作を実装します。 - okvDestroy
okvDestroyにより、KMIPの破棄操作を実装します。 - okvGetAttributeList
okvGetAttributeListにより、KMIPの属性リスト取得操作を実装します。 - okvGetAttributes
okvGetAttributesにより、KMIPの属性取得操作を実装します。 - okvGetCertificate
okvGetCertificateにより、KMIPの、証明書オブジェクトの取得の操作を実装します。 - okvGetCertificateRequest
okvGetCertificateRequestにより、KMIPの、証明書リクエスト・オブジェクトの取得の操作を実装します。 - okvGetKey
okvGetKeyにより、KMIPの、KMIP対称キー・オブジェクトの取得の操作を実装します。 - okvGetOpaqueData
okvGetOpaqueDataにより、KMIPの、KMIP不透明データ・オブジェクトの取得の操作を実装します。 - okvGetPrivateKey
okvGetPrivateKeyにより、KMIPの、KMIP秘密キー・オブジェクトの取得の操作を実装します。 - okvGetPublicKey
okvGetPublicKeyにより、KMIPの、KMIP公開キー・オブジェクトの取得の操作を実装します。 - okvGetSecretData
okvGetSecretDataにより、KMIPの、KMIPシークレット・データ・オブジェクトの取得の操作を実装します。 - okvGetTemplate
okvGetTemplateでは、KMIPテンプレート・オブジェクトのKMIP取得操作を実装します。 - okvLocate
okvLocateにより、KMIPの検索操作を実装します。 - okvModifyAttribute
okvModifyAttributeにより、KMIPの属性変更操作を実装します。 - okvQueryCapability
okvQueryCapabilityにより、KMIPの問合せ操作を実装します。 - okvRegCertificate
okvRegCertificateにより、KMIPの、KMIP証明書オブジェクトの登録の操作を実装します。 - okvRegCertificateRequest
okvRegCertificateRequestにより、KMIPの、証明書リクエスト・オブジェクトの登録の操作を実装します。 - okvRegKey
okvRegKeyにより、KMIPの、KMIP対称キー・オブジェクトの登録の操作を実装します。 - okvRegOpaqueData
okvRegOpaqueDataにより、KMIPの、KMIP不透明データ・オブジェクトの登録の操作を実装します。 - okvRegPrivateKey
okvRegPrivateKeyにより、KMIPの、KMIP秘密キー・オブジェクトの登録の操作を実装します。 - okvRegPublicKey
okvRegPublicKeyにより、KMIPの、KMIP公開キー・オブジェクトの登録の操作を実装します。 - okvRegSecretData
okvRegSecretDataでは、KMIPシークレット・データ・オブジェクトのKMIP登録操作を実装します。 - okvRegTemplate
okvRegTemplateでは、KMIPテンプレート・オブジェクトのKMIP登録操作を実装します。 - okvRekey
okvRekeyにより、KMIPのキー更新操作を実装します。 - okvRevoke
okvRevokeにより、KMIPの失効操作を実装します。
11.1.1 Oracle Key VaultクライアントSDKのKMIP APIについて
Oracle Key Vault KMIP APIを使用すると、キーおよびシークレット・データの管理などの作業を実行できます。
こうした関数の多くは、入力引数として一意識別子を受け取ります。KMIP v1.1によると、KMIPサーバーが以前のコマンドから単一の一意識別子を判別できる場合は、コマンドがバッチ化されているときの一意識別子はオプションになります。そのため、以前のコマンド(検索など)で、考えられるユースケースに対して1つのみの一意識別子が返されたときに、その後のコマンドでこの一意識別子に対する操作を続ける場合、それ以降のコマンドの一意識別子は省略できます。
一意識別子とその長さがは、KMIP API関数から返されます。一意識別子は、エンドポイント・プログラムでNULL終端する必要があります。
エンドポイント・プログラムでは一意識別子を大きめのバッファで渡すことができるため、大きなバッファ内にある一意識別子の実際のビット数を判断するために長さが使用されます。
11.1.2 okvActivate
okvActivateでは、KMIPアクティブ化操作を実装します。
カテゴリ
KMIP API
用途
okvActivateでは、KMIPアクティブ化操作を実装します。一意識別子で特定されたKMIPオブジェクトをアクティブ化します。
構文
OKVErrNo okvActivate(OKVEnv *env, oratext *uid);
パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
IN |
Oracle Key Vault環境ハンドル。 |
uid |
|
一意識別子(バッチ処理の場合は |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
なし。
例
/* Create the KMIP object, say Key for example and get its unique
identifier as part of its creation in ‘uid’ and then activate
it as below
*/
okvActivate(env, &uid[0]);
if (okvErrGetNum(env))
{
printf("Error while activating the object\n");
}
関連項目
11.1.3 okvAddAttribute
okvAddAttributeにより、KMIPの属性追加操作を実装します。
カテゴリ
KMIP API
用途
okvAddAttributeにより、KMIPの属性追加操作を実装します。一意識別子で指定したKMIPオブジェクトに属性を追加します。
構文
OKVErrNo okvAddAttribute(OKVEnv *env, oratext *uid,
OKVTTLV **attr);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
IN |
Oracle Key Vault環境ハンドル。 |
uid |
IN |
一意識別子(バッチ処理の場合は |
attr |
IN |
KMIPオブジェクトに追加する属性。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
- このAPIを使用して不透明オブジェクトまたはテンプレート・オブジェクトに属性を追加すると、Oracle Key Vaultサーバーで一般的な失敗エラーが発生して、その属性はKMIPオブジェクトに追加されなくなります。回避策として、APIの
okvRegOpaqueDataおよびokvRegTemplateを使用することで、その属性を登録時に追加できます。 - このAPIを使用してオブジェクトに単一インスタンス属性を追加したときに、そのオブジェクトがすでに属性のインスタンスを保持している場合、その属性が上書きされることはありませんが、一般的な失敗エラーがスローされます。属性値の変更には、
okvModifyAttributeAPIを使用してください。 - リクエストTTLVで非アクティブ化日より後の保護停止日が渡された場合は、サーバーでエラーが発生することはなく、登録済KMIPオブジェクトに保護停止日が追加されます。
- このAPIを使用してプロセス開始日を追加すると、サーバーで権限拒否エラーが発生します。回避策として、APIの
okvRegKey、okvRegSecretData、okvRegOpaqueDataおよびokvRegTemplateを使用することで、その属性を登録時に追加できます。
例
/* Create the KMIP object, say Key for example and get its unique
identifier as part of its creation in ‘uid’, we can add an attribute
to it as shown below */
OKVTTLV *attr_in = (OKVTTLV *)NULL;
OKVTTLV *req = (OKVTTLV *)NULL;
oratext *name_value = (oratext *)"attribute_name";
ub4 name_valuel = strlen("attribute_name");
req = okvEnvGetOpRequestObj(env);
attr_in = okvAddAttributeObject(env, req, OKVAttrName, (ub4) 0);
okvAttrAddName(env, attr_in, name_value, name_valuel, 1);
okvAddAttribute(env, &uid[0], &attr_in);
if (okvErrGetNum(env))
{
printf("Error while adding Name attribute to the object\n");
}関連項目
11.1.4 okvCreateKey
okvCreateKeyでは、KMIP対称キー・オブジェクトのKMIP作成操作を実装します。
カテゴリ
KMIP API
用途
okvCreateKeyでは、KMIP対称キー・オブジェクトのKMIP作成操作を実装します。Oracle Key Vaultサーバーによって生成された対称キー・オブジェクトの一意識別子は、ouidとして返されます。Oracle Key Vault SDKの一意IDの最大長は、OKV_UNIQUE_ID_MAXLENで定義されます。
構文
OKVErrNo okvCreateKey(OKVEnv *env,
OKVType alg, ub4 len, ub4 mask,
OKVTTLV *template_names_attrs,
oratext *wallet_name, ub4 wallet_namel,
oratext *ouid, ub4 *ouidl);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
|
|
|
Oracle Key Vault環境ハンドル。 |
|
|
|
対称キー・アルゴリズム。 |
|
|
|
対称キーのキー長。 |
|
|
|
対称キーの暗号化使用方法マスク。 |
|
|
IN |
テンプレート-属性を形成するテンプレート名または属性。 |
|
|
IN |
ウォレット名の値。 |
|
|
IN |
ウォレット名の値の長さ。 |
|
|
|
生成されたキーの一意識別子。 |
|
|
|
生成されたキーの一意識別子の長さ。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
対称キー・オブジェクトにはKMIP名前属性を追加して、そのオブジェクトが今後識別しやすくなるようにすることをお薦めします。
呼出し側は、この関数から返される一意識別子用にメモリーを割り当てる必要があります。割り当てるメモリーの長さは、一意識別子の長さの引数ouidlで渡されます。返される一意識別子を格納するための十分なメモリーを割り当てる必要があります。
指定したアルゴリズムと特定の用途(暗号化使用方法マスク)に応じて指定した長さの対称キーは、ウォレットwallet_nameが指定されている場合、そのウォレット内に生成されます。指定されていない場合は、デフォルト・ウォレットに生成されます(そのウォレットがエンドポイントに存在する場合)。
例
/* Parameters to create symmetric key */
OKVType algo = CRYPTO_ALG_AES;
/* Key length 128, because AES keys are 128, 192 or 256 bits in length*/
ub4 key_len = 128;
ub4 usage_mask = CRYPTO_MASK_ENCRYPT | CRYPTO_MASK_DECRYPT;
oratext uid[OKV_UNIQUE_ID_MAXLEN + 1];
ub4 uidl = sizeof(uid);
OKVTTLV *template = (OKVTTLV *)NULL;
OKVTTLV *attr_in = (OKVTTLV *)NULL;
/* Set up the environment handle 'env' and also the memory and connection
management as shown in previous sections */
memset(uid, 0, uidl);
template = okvEnvGetOpRequestObj(env);
/* Add name attribute object to template attribute */
attr_in = okvAddAttributeObject(env, template, OKVAttrName, (ub4) 0);
okvAttrAddName(env, attr_in, (oratext *)"My New Key", strlen("My New Key"), 1);
printf("\tCreating a Symmetric key\n");
okvCreateKey(env, algo, key_len, usage_mask, template,
(oratext *)NULL, (ub4)0, &uid[0], uidl);
if (okvErrGetNum(env))
{
printf("Error while creating the key\n");
}関連項目
11.1.5 okvDeleteAttribute
okvDeleteAttributeにより、KMIPの属性削除操作を実装します。
カテゴリ
KMIP API
用途
okvDeleteAttributeにより、KMIPの属性削除操作を実装します。一意識別子で指定したKMIPオブジェクトから属性名と属性索引で指定した属性を削除します。
構文
OKVErrNo okvDeleteAttribute(OKVEnv *env, oratext *uid,
oratext *attr_name,
ub4 attr_index,
OKVTTLV **attr);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
IN |
Oracle Key Vault環境ハンドル。 |
uid |
IN |
一意識別子(バッチ処理の場合はNULLも可)。
|
attr_name |
IN |
削除する属性の名前。 |
attr_index |
IN |
削除する属性の索引。 |
attr |
OUT |
KMIPオブジェクトから削除する属性。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
なし。
例
/* Create the KMIP object, say Key for example and get its unique identifier
as part of its creation in 'uid'. Add contact information attribute and
to delete it, it can done as shown below */
OKVTTLV *attr_del = (OKVTTLV *) NULL;
oratext *attr_name = okvGetTextForAttributeNum(OKVAttrContactInfo);
/* Passing Contact Info attribute to be deleted at attribute index 0 */
okvDeleteAttribute(env, &uid[0], attr_name, (ub4)0, &attr_del);
if (okvErrGetNum(env))
{
printf("Error while deleting the contact info attribute of the object\n");
}関連項目
11.1.6 okvDestroy
okvDestroyにより、KMIPの破棄操作を実装します。
カテゴリ
KMIP API
用途
okvDestroyにより、KMIPの破棄操作を実装します。一意識別子で識別されるKMIPオブジェクトを破棄します。
構文
OKVErrNo okvDestroy(OKVEnv *env, oratext *uid);
パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
IN |
Oracle Key Vault環境ハンドル。 |
uid |
IN |
一意識別子(バッチ処理の場合は |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
なし。
例
/* Create the KMIP object, say Key for example and get its unique
identifier as part of its creation in 'uid', activate it,
revoke it and then you can destroy it as below */
okvDestroy(env, &uid[0]);
if (okvErrGetNum(env))
{
printf("Error while destroying the object\n");
}関連項目
11.1.7 okvGetAttributeList
okvGetAttributeListにより、KMIPの属性リスト取得操作を実装します。
カテゴリ
KMIP API
用途
okvGetAttributeListにより、KMIPの属性リスト取得操作を実装します。一意識別子で指定したKMIPオブジェクトの通常属性およびカスタム属性の名前を取得します。
attr_names_countでは、attr_namesに収容できるattr_namesの数を指定します。okvGetAttributeList()は、その数の属性名のみをコピーします。それより多くの属性がある場合は、返されるリクエストでattr_names_countが実際の属性数を格納するように変更されます。
構文
OKVErrNo okvGetAttributeList(OKVEnv *env, oratext *uid,
ub4 *attr_names_count, oratext **attr_names); パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
IN |
Oracle Key Vaultインタフェース環境ハンドル。 |
uid |
IN |
一意識別子(バッチ処理の場合は |
attr_names_count |
IN/OUT |
属性の数。 |
attr_names |
OUT |
属性の名前。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
取得されたリストは順不同です。
例
/* Create the KMIP object, say Key for example and get its unique identifier
as part of its creation in 'uid'. Add attributes like say name, contact info
and then names of these attributes can be retrieved as below */
…
ub4 attr_list_count = 0;
oratext **attr_names = (oratext **)NULL;
printf("\tGetting the count of attributes associated with the key\n");
okvGetAttributeList(env, uid, &attr_list_count, (oratext **)NULL);
if (okvErrGetNum(env))
{
printf("Error while getting the attribute list count\n");
}
printf("\tGetting the attribute names associated with the key\n");
attr_names = (oratext **)calloc(attr_list_count, sizeof(oratext *));
for (i = 0; i < attr_list_count; i++)
{
/* Allocate memory to hold attribute names */
attr_names[i] = (oratext *)calloc(OKV_NAME_MAXLEN,
sizeof(oratext));
}
okvGetAttributeList(env, uid, &attr_list_count, (oratext **)attr_names);
if (okvErrGetNum(env))
{
printf("Error while getting the attribute list names\n");
}関連項目
11.1.8 okvGetAttributes
okvGetAttributesにより、KMIPの属性取得操作を実装します。
カテゴリ
KMIP API
用途
okvGetAttributesにより、KMIPの属性取得操作を実装します。一意識別子で指定した特定のKMIPオブジェクトについて、通常属性およびカスタム属性の指定したリストを取得します。
構文
OKVErrNo okvGetAttributes(OKVEnv *env, oratext *uid,
ub4 attr_names_count,
oratext **attr_names,
OKVTTLV **attrs);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
IN |
Oracle Key Vault環境ハンドル。 |
uid |
IN |
一意識別子(バッチ処理の場合は |
attr_names_count |
IN |
取得する属性の数。 |
attr_names |
IN |
取得する属性の名前。 |
attrs |
OUT |
取得された属性。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
取得されたリストは順不同です。
例
/* Create the KMIP object, say Key for example and get its unique
identifier as part of its creation in 'uid'. Add contact information
Name, Cryptographic Alogirthm, Cryptographic Length attributes to the
created key and then all of these attributes can be retrieved as below */
...
OKVTTLV *attrs = (OKVTTLV *) NULL;
oratext *attr_name_list[3];
attr_name_list[0] = okvGetTextForAttributeNum(OKVAttrName);
attr_name_list[1] = okvGetTextForAttributeNum(OKVAttrCryptoAlg);
attr_name_list[2] = okvGetTextForAttributeNum(OKVAttrCryptoLen);
okvGetAttributes(env, uid, 3, (oratext **) attr_name_list, &attrs);
if (okvErrGetNum(env))
{
printf("Error while getting the attributes of the object\n");
}関連項目
11.1.9 okvGetCertificate
okvGetCertificateにより、KMIPの、証明書オブジェクトの取得の操作を実装します。
カテゴリ
KMIP API
用途
okvGetCertificateにより、KMIPの、証明書オブジェクトの取得の操作を実装します。
指定した一意識別子の証明書について、証明書のタイプ、証明書の長さ、エンドポイント・プログラムで提供されるバッファ内の実際の証明書バイト数、および証明書の実際のバイト長が返されます。
提供された証明書バッファの長さがOracle Key Vaultサーバーから取得した実際の証明書の長さよりも短い場合、certificatelには実際の証明書の長さが移入されますが、certificateはNULLに設定されます。
構文
OKVErrNo okvGetCertificate(OKVEnv *env, oratext *uid,
ub4 *certificate_type,
ub1 *certificate, ub4 *certificatel);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
|
Oracle Key Vault環境ハンドル。 |
uid |
|
証明書の一意識別子(バッチ処理の場合はNULLも可)。 |
certificate_type |
|
証明書のタイプ。 |
certificate |
|
証明書。 |
certificatel |
|
証明書の長さ。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
サポートされているバージョン
Oracle Key Vault C SDKバージョン21.2.0.0.0以降。
コメント
なし。
例
/* Create a Certificate for example and get its unique
identifier as part of its creation in 'uid' */
...
ub1 *cert;
ub4 certl = 128001;
ub4 cert_type = 0;
cert = (ub1 *)malloc(certl * sizeof(ub1));
printf("\tGetting the certificate\n");
okvGetCertificate(env, uid, &cert_type, cert, &certl);
if (okvErrGetNum(env))
{
printf("Error while getting the certificate\n");
}
/* Free 'cert' */
関連項目
- okvActivate
- okvAddAttribute
- okvCreateKey
- okvDeleteAttribute
- okvDestroy
- okvGetAttributeList
- okvGetAttributes
- okvGetCertificateRequest
- okvGetKey
- okvGetOpaqueData
- okvGetPrivateKey
- okvGetPublicKey
- okvGetSecretData
- okvGetTemplate
- okvLocate
- okvModifyAttribute
- okvQueryCapability
- okvRegCertificate
- okvRegCertificateRequest
- okvRegKey
- okvRegOpaqueData
- okvRegPrivateKey
- okvRegPublicKey
- okvRegSecretData
- okvRegTemplate
- okvRevoke
11.1.10 okvGetCertificateRequest
okvGetCertificateRequestにより、KMIPの、証明書リクエスト・オブジェクトの取得の操作を実装します。
カテゴリ
KMIP API
用途
okvGetCertificateRequestにより、KMIPの、証明書リクエスト・オブジェクトの取得の操作を実装します。
指定した一意識別子の証明書リクエストについて、証明書リクエストのタイプ、証明書リクエストの長さ、エンドポイント・プログラムで提供されるバッファ内の実際の証明書リクエスト・バイト数、および証明書リクエストの実際のバイト長が返されます。
提供された証明書リクエスト・バッファの長さがOracle Key Vaultサーバーから取得した実際の証明書リクエストの長さよりも短い場合、certificate_requestlには実際の証明書リクエストの長さが移入されますが、certificate_requestはNULLに設定されます。
構文
OKVErrNo okvGetCertificateRequest(OKVEnv *env, oratext *uid,
ub4 *certificate_request_type,
ub1 *certificate_request,
ub4 *certificate_requestl);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
|
Oracle Key Vault環境ハンドル。 |
uid |
|
証明書リクエストの一意識別子(バッチ処理の場合はNULLも可)。 |
certificate_request_type |
|
証明書リクエストのタイプ。 |
certificate_request |
|
証明書リクエスト。 |
certificate_requestl |
|
証明書リクエストの長さ。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
サポートされているバージョン
Oracle Key Vault C SDKバージョン21.2.0.0.0以降。
コメント
なし。
例
/* Create a Certificate Request for example and get its unique
identifier as part of its creation in 'uid' */
...
ub1 *cert_req;
ub4 cert_reql = 128001;
ub4 cert_req_type = 0;
cert_req = (ub1 *)malloc(cert_reql * sizeof(ub1));
printf("\tGetting the certificate request\n");
okvGetCertificateRequest(env, uid, &cert_req_type, cert_req,
&cert_reql);
if (okvErrGetNum(env))
{
printf("Error while getting the certificate request\n");
}
/* Free 'cert_req' */
関連項目
- okvActivate
- okvAddAttribute
- okvCreateKey
- okvDeleteAttribute
- okvDestroy
- okvGetAttributeList
- okvGetAttributes
- okvGetCertificate
- okvGetKey
- okvGetOpaqueData
- okvGetPrivateKey
- okvGetPublicKey
- okvGetSecretData
- okvGetTemplate
- okvLocate
- okvModifyAttribute
- okvQueryCapability
- okvRegCertificate
- okvRegCertificateRequest
- okvRegKey
- okvRegOpaqueData
- okvRegPrivateKey
- okvRegPublicKey
- okvRegSecretData
- okvRegTemplate
- okvRevoke
11.1.11 okvGetKey
okvGetKeyにより、KMIPの、KMIP対称キー・オブジェクトの取得の操作を実装します。
カテゴリ
KMIP API
用途
okvGetKeyにより、KMIPの、KMIP対称キー・オブジェクトの取得の操作を実装します。
指定した一意識別子の対称キーについて、キー長、キー・アルゴリズム、エンドポイント・プログラムが提供するバッファ内の実際のキー・バイト数およびキー・バイトの実際の長さが返されます。
提供されたキー・バッファの長さがOracle Key Vaultサーバーから取得した実際のキーの長さよりも小さい場合、keylには実際のキーの長さが移入されますが、キーはNULLに設定されます。
構文
OKVErrNo okvGetKey(OKVEnv *env, oratext *uid,
ub4 *key_alg, ub4 *key_len,
ub1 *key, ub4 *keyl);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
|
Oracle Key Vault環境ハンドル。 |
uid |
|
キーの一意識別子(バッチ処理の場合は |
key_alg |
|
対称キー・アルゴリズム。 |
key_len |
|
作成時に指定した対称キーのキー長。 |
key |
|
対称キー。 |
keyl |
|
対称キーの長さ。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
なし。
例
/* Create a Symmetric Key for example and get its unique
identifier as part of its creation in 'uid' */
...
ub1 *key;
ub4 keyl = 128001;
ub4 key_algo = 0;
ub4 key_len = 0;
key = (ub1 *)malloc(keyl * sizeof(ub1));
printf("\tGetting the key\n");
okvGetKey(env, uid, &key_algo, &key_len, key, &keyl);
key[keyl] = 0;
if (okvErrGetNum(env))
{
printf("Error while getting the key\n");
}
/* Free ‘key’ */関連項目
11.1.12 okvGetOpaqueData
okvGetOpaqueDataにより、KMIPの、KMIP不透明データ・オブジェクトの取得の操作を実装します。
カテゴリ
KMIP API
用途
okvGetOpaqueDataにより、KMIPの、KMIP不透明データ・オブジェクトの取得の操作を実装します。
指定した一意識別子の不透明データについて、不透明データのタイプ、不透明データの長さ、エンドポイント・プログラムが提供するバッファ内の不透明データのバイト数が返されます。
提供された不透明データ・バッファの長さがOracle Key Vaultサーバーから取得した実際の不透明データの長さよりも小さい場合、opaque_datalには実際の不透明データの長さが移入されますが、opaque_dataはNULLに設定されます。
構文
OKVErrNo okvGetOpaqueData(OKVEnv *env, oratext *uid,
ub4 *opaque_data_type,
ub1 *opaque_data, ub4 *opaque_datal);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
|
|
|
Oracle Key Vault環境ハンドル。 |
|
|
|
不透明データの一意識別子(バッチ処理の場合は |
|
|
|
不透明オブジェクトのタイプ。 |
|
|
|
不透明オブジェクト。 |
|
|
|
不透明オブジェクトの長さ。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
なし。
例
/* Create an opaque data for example and get its unique
identifier as part of its creation in 'uid' */
...
ub1 *opaque_data;
ub4 opaque_data_len = 128001;
ub4 opaque_data_type = 0;
opaque_data = (ub1 *)malloc(opaque_data_len*sizeof(ub1));
okvGetOpaqueData(env, &uid[0], &opaque_data_type, &opaque_data[0], &opaque_data_len);
if (okvErrGetNum(env))
{
printf("Error while getting the opaque data\n");
}
/* Free "opaque_data" */関連項目
11.1.13 okvGetPrivateKey
okvGetPrivateKeyにより、KMIPの、KMIP秘密キー・オブジェクトの取得の操作を実装します。
カテゴリ
KMIP API
用途
okvGetPrivateKeyにより、KMIPの、KMIP秘密キー・オブジェクトの取得の操作を実装します。
指定した一意識別子の秘密キーについて、秘密キーの長さ、秘密キーのアルゴリズム、エンドポイント・プログラムで提供されるバッファ内の実際の秘密キー・バイト数、および秘密キーの実際のバイト長が返されます。
提供された秘密キー・バッファの長さがOracle Key Vaultサーバーから取得した実際の秘密キーの長さよりも短い場合、private_keylには実際の秘密キーの長さが移入されますが、private_keyはNULLに設定されます。
構文
OKVErrNo okvGetPrivateKey(OKVEnv *env, oratext *uid,
ub4 *private_key_alg, ub4 *private_key_len,
ub1 *private_key, ub4 *private_keyl);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
|
Oracle Key Vault環境ハンドル。 |
uid |
|
秘密キーの一意識別子(バッチ処理の場合はNULLも可)。 |
private_key_alg |
|
秘密キー・アルゴリズム。 |
private_key_len |
|
作成時に指定した秘密キーのキー長。 |
private_key |
|
秘密キー。 |
private_keyl |
|
秘密キーの長さ。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
サポートされているバージョン
Oracle Key Vault C SDKバージョン21.2.0.0.0以降。
コメント
なし。
例
/* Create a Private Key for example and get its unique
identifier as part of its creation in 'uid' */
...
ub1 *private_key;
ub4 private_keyl = 128001;
ub4 private_key_algo = 0;
ub4 private_key_len = 0;
private_key = (ub1 *)malloc(private_keyl * sizeof(ub1));
printf("\tGetting the private key\n");
okvGetPrivateKey(env, uid, &private_key_algo, &private_key_len,
private_key, &private_keyl);
private_key[private_keyl] = 0;
if (okvErrGetNum(env))
{
printf("Error while getting the private key\n");
}
/* Free 'private_key' */
関連項目
- okvActivate
- okvAddAttribute
- okvCreateKey
- okvDeleteAttribute
- okvDestroy
- okvGetAttributeList
- okvGetAttributes
- okvGetCertificate
- okvGetCertificateRequest
- okvGetKey
- okvGetOpaqueData
- okvGetPublicKey
- okvGetSecretData
- okvGetTemplate
- okvLocate
- okvModifyAttribute
- okvQueryCapability
- okvRegCertificate
- okvRegCertificateRequest
- okvRegKey
- okvRegOpaqueData
- okvRegPrivateKey
- okvRegPublicKey
- okvRegSecretData
- okvRegTemplate
- okvRevoke
11.1.14 okvGetPublicKey
okvGetPublicKeyにより、KMIPの、KMIP公開キー・オブジェクトの取得の操作を実装します。
カテゴリ
KMIP API
用途
okvGetPublicKeyにより、KMIPの、KMIP公開キー・オブジェクトの取得の操作を実装します。
指定した一意識別子の公開キーについて、公開キーの長さ、公開キーのアルゴリズム、エンドポイント・プログラムで提供されるバッファ内の実際の公開キー・バイト数、および公開キーの実際のバイト長が返されます。
提供された公開キー・バッファの長さがOracle Key Vaultサーバーから取得した実際の公開キーの長さよりも短い場合、public_keylには実際の公開キーの長さが移入されますが、public_keyはNULLに設定されます。
構文
OKVErrNo okvGetPublicKey(OKVEnv *env, oratext *uid,
ub4 *public_key_alg, ub4 *public_key_len,
ub1 *public_key, ub4 *public_keyl);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
|
Oracle Key Vault環境ハンドル。 |
uid |
|
公開キーの一意識別子(バッチ処理の場合はNULLも可)。 |
public_key_alg |
|
公開キー・アルゴリズム。 |
public_key_len |
|
作成時に指定した公開キーのキー長。 |
public_key |
|
公開キー。 |
public_keyl |
|
公開キーの長さ。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
サポートされているバージョン
Oracle Key Vault C SDKバージョン21.2.0.0.0以降。
コメント
なし。
例
/* Create a Public Key for example and get its unique
identifier as part of its creation in 'uid' */
...
ub1 *public_key;
ub4 public_keyl = 128001;
ub4 public_key_algo = 0;
ub4 public_key_len = 0;
public_key = (ub1 *)malloc(public_keyl * sizeof(ub1));
printf("\tGetting the public key\n");
okvGetPublicKey(env, uid, &public_key_algo, &public_key_len,
public_key, &public_keyl);
public_key[public_keyl] = 0;
if (okvErrGetNum(env))
{
printf("Error while getting the public key\n");
}
/* Free 'public_key' */
関連項目
- okvActivate
- okvAddAttribute
- okvCreateKey
- okvDeleteAttribute
- okvDestroy
- okvGetAttributeList
- okvGetAttributes
- okvGetCertificate
- okvGetCertificateRequest
- okvGetKey
- okvGetOpaqueData
- okvGetPrivateKey
- okvGetSecretData
- okvGetTemplate
- okvLocate
- okvModifyAttribute
- okvQueryCapability
- okvRegCertificate
- okvRegCertificateRequest
- okvRegKey
- okvRegOpaqueData
- okvRegPrivateKey
- okvRegPublicKey
- okvRegSecretData
- okvRegTemplate
- okvRevoke
11.1.15 okvGetSecretData
okvGetSecretDataにより、KMIPの、KMIPシークレット・データ・オブジェクトの取得の操作を実装します。
カテゴリ
KMIP API
用途
okvGetSecretDataにより、KMIPの、KMIPシークレット・データ・オブジェクトの取得の操作を実装します。
指定した一意識別子のシークレット・データについて、シークレット・データのタイプ、シークレット・データの長さ、エンドポイント・プログラムが提供するバッファ内のシークレット・データのバイト数が返されます。
提供されたシークレット・データ・バッファの長さがOracle Key Vaultサーバーから取得した実際のシークレット・データの長さよりも小さい場合、secret_datalには実際のシークレット・データの長さが移入されますが、secret_dataはNULLに設定されます。
構文
OKVErrNo okvGetSecretData(OKVEnv *env, oratext *uid,
ub4 *secret_data_type,
ub1 *secret_data, ub4 *secret_datal);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
|
|
|
Oracle Key Vault環境ハンドル。 |
|
|
|
シークレット・データの一意識別子(バッチ処理の場合は |
|
|
|
シークレット・データのタイプ。 |
|
|
|
シークレット・データ。 |
|
|
|
シークレット・データの長さ。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
なし。
例
/* Create a secret data for example and get its unique
identifier as part of its creation in 'uid' */
...
ub1 *secret_data;
ub4 secret_data_len = 128001;
ub4 secret_data_type = 0;
secret_data = (ub1 *)malloc(secret_data_len*sizeof(ub1));
okvGetSecretData(env, &uid[0], &secret_data_type, &secret_data[0], &secret_data_len);
if (okvErrGetNum(env))
{
printf("Error while getting the secret data\n");
}
/* Free "secret_data" */関連項目
11.1.16 okvGetTemplate
okvGetTemplateでは、KMIPテンプレート・オブジェクトのKMIP取得操作を実装します。
カテゴリ
KMIP API
用途
okvGetTemplateでは、KMIPテンプレート・オブジェクトのKMIP取得操作を実装します。
テンプレートは属性のリストであり、Oracle Key VaultユーティリティまたはOracle Key Vault KMIP拡張関数を使用すると解釈できます。指定した一意識別子のテンプレートについて、テンプレート・オブジェクトの属性が返されます。
構文
OKVErrNo okvGetTemplate(OKVEnv *env, oratext *uid,
OKVTTLV **attrs_template);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
|
|
|
Oracle Key Vault環境ハンドル。 |
|
|
|
テンプレートの一意識別子(バッチ処理の場合はNULLも可)。 |
|
|
|
テンプレートの属性。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
プロセス開始日と保護停止日を含むテンプレートを登録した場合、このAPIは、それらの属性が含まれているテンプレートを取得するときに一般的な失敗エラーをスローします。
テンプレート・オブジェクトの取得済属性を使用する作成操作または登録操作ごとに、その操作の前にokvGetTemplateを使用する必要があります。
例
/* Create a template for example and get its unique
identifier as part of its creation in 'uid' */
...
OKVTTLV *template = (OKVTTLV *) NULL;
okvGetTemplate(env, uid, &template);
if (okvErrGetNum(env))
{
printf("Error while getting the template\n");
}関連項目
11.1.17 okvLocate
okvLocateにより、KMIPの検索操作を実装します。
カテゴリ
KMIP API
用途
okvLocateにより、KMIPの検索操作を実装します。
検索操作では、locate_attrsで指定した属性に一致するOracle Key Vault内のすべてのオブジェクトが検索されます。
uid_cntは、一意識別子文字列の実際の数を示します。
uidsは、locate_attrsで指定した属性に一致するオブジェクトのUIDSです。
構文
OKVErrNo okvLocate(OKVEnv *env,
ub4 uid_max, ub4 storage_status, OKVTTLV *locate_attrs,
ub4 *uid_cnt, oratext **uids);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
|
|
|
Oracle Key Vault環境ハンドル。 |
|
|
|
予期される一意識別子の最大数。 |
|
|
|
アーカイブ済オブジェクトまたはオンライン・オブジェクトを検索します。 |
|
|
|
検索の場所を定義する属性。 |
|
|
|
サーバーから返された一意識別子の数。 |
|
|
|
検索属性と記憶域ステータスの基準に一致する一意識別子。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
呼出し側は、この関数から返される一意識別子uids用に十分なメモリーを割り当てる必要があります。唯一の例外は、uid_max値に関係なく、locate_attrsで指定した属性に一致するすべてのUIDがOracle Key Vaultサーバーによって返されることです。
例
/* Set up the environment handle 'env' and also the memory and connection
management as shown in previous sections. Create a key with a name
attribute value "MyNewKey" for example and get its unique
identifier as part of its creation in 'uid'. Locate operation can be done as
shown below. */
...
ub4 locate_count = 0;
ub4 uid_max = 1;
OKVTTLV *loc_attrs = (OKVTTLV *)NULL;
OKVTTLV *attr_in = (OKVTTLV *)NULL;
oratext **locate_uids = (oratext **) malloc(uid_max * sizeof(oratext *));
ub4 itr = 0;
for (itr = 0; itr < uid_max; itr++)
{
locate_uids[itr] = (oratext *) malloc(OKV_UNIQUE_ID_MAXLEN * sizeof(oratext));
}
loc_attrs = okvEnvGetOpRequestObj(env);
attr_in = okvAddAttributeObject(env, loc_attrs, OKVAttrName, (ub4) 0);
/* Add name attribute value to name attribute object */
okvAttrAddName(env, attr_in, (oratext *) "MyNewKey", strlen("MyNewKey"), 1);
okvLocate(env, uid_max, 1, loc_attrs, &locate_count, locate_uids);
if (okvErrGetNum(env))
{
printf("Error while Locating the Key: MyNewKey\n");
}関連項目
11.1.18 okvModifyAttribute
okvModifyAttributeにより、KMIPの属性変更操作を実装します。
カテゴリ
KMIP API
用途
okvModifyAttributeにより、KMIPの属性変更操作を実装します。一意識別子で指定したKMIPオブジェクトの属性を変更します。
構文
OKVErrNo okvModifyAttribute(OKVEnv *env, oratext *uid,
OKVTTLV **attr);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
IN |
Oracle Key Vault環境ハンドル。 |
uid |
IN |
一意識別子(バッチ処理の場合は |
attr |
IN |
変更する必要があるKMIPオブジェクトの属性。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
なし。
例
/* Create the KMIP object, say Key for example and get its unique identifier
as part of its creation in 'uid', we can add an attribute and modify it
as shown shown below */
OKVTTLV *templ = (OKVTTLV *) NULL;
OKVTTLV *req = (OKVTTLV *) NULL;
OKVTTLV *attr_temp = (OKVTTLV *) NULL;
OKVTTLV *attr_in = (OKVTTLV *) NULL;
oratext *contact = (oratext *)"9123456789";
ub4 contactl = strlen((char *) contact);
oratext *new_contact = (oratext *)"abc.xyz@com";
ub4 new_contactl = strlen((char *) new_contact);
templ = okvEnvGetOpRequestObj(env);
attr_temp = okvAddAttributeObject(env, templ, OKVAttrContactInfo, (ub4) 0);
okvAttrAddContactInfo(env, attr_temp, contact, contactl);
okvAddAttribute(env, &uid[0], &attr_temp);
/* Now let's modify the contact info attribute */
req = okvEnvGetOpRequestObj(env);
attr_in = okvAddAttributeObject(env, req, OKVAttrContactInfo, (ub4) 0);
okvAttrAddContactInfo(env, attr_in, new_contact, new_contactl);
okvModifyAttribute(env, &uid[0], &attr_in);
if (okvErrGetNum(env))
{
printf("Error while modifying the contact info attribute of the object\n");
}関連項目
11.1.19 okvQueryCapability
okvQueryCapabilityにより、KMIPの問合せ操作を実装します。
カテゴリ
KMIP API
用途
okvQueryCapabilityにより、KMIPの問合せ操作を実装します。
OKVDEF_QUERY_OPERATIONSOKVDEF_QUERY_OBJECTSOKVDEF_QUERY_SERVER_INFO
問合せ関数でリクエストしていない項目の数はゼロになります。サーバー情報をリクエストしない場合は、server_informationをNULLにすることもできます。
構文
OKVErrNo okvQueryCapability(OKVEnv *env,
ub4 query_function_cnt, ub4 *query_function,
ub4 *operation_cnt, OKVOpsNo *operation,
ub4 *object_type_cnt, OKVObjNo *object_type,
OKVServerInformation *server_information);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
|
|
|
Oracle Key Vault環境ハンドル。 |
|
|
|
リクエストされるKMIP関数の数。 |
|
|
|
リクエストされるKMIP関数。 |
|
|
|
サポートされているKMIP操作の数。 |
|
|
|
サポートされているKMIP操作。 |
|
|
|
サポートされているKMIP管理対象オブジェクトの数。 |
|
|
|
サポートされているKMIP管理対象オブジェクト。 |
|
|
|
Oracle Key Vaultサーバー固有の情報。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
なし。
例
/* Set up the environment handle 'env' and also the memory and
connection management as shown in previous sections. */
...
OKVServerInformation s;
ub4 query_function[1];
ub4 operation_cnt = 30;
OKVOpsNo operation[30];
ub4 object_type_cnt = 30;
OKVObjNo object_type[30];
query_function[0] = 3;
okvQueryCapability(env,1, query_function, &operation_cnt, operation,
&object_type_cnt, object_type, &s);
if (okvErrGetNum(env))
{
printf("Error while executing okvQueryCapability");
}関連項目
11.1.20 okvRegCertificate
okvRegCertificateにより、KMIPの、KMIP証明書オブジェクトの登録の操作を実装します。
カテゴリ
KMIP API
用途
okvRegCertificateにより、KMIPの、KMIP証明書オブジェクトの登録の操作を実装します。
特定のタイプの証明書がOracle Key Vaultサーバーに登録されています。Oracle Key Vaultサーバーによって生成された証明書オブジェクトの一意識別子は、ouidとして返されます。
Oracle Key Vault SDKの一意IDの最大長は、OKV_UNIQUE_ID_MAXLENで定義されます。
新しく登録する証明書には、属性のヘルプ、またはテンプレート名とともに指定して、さらに属性を採用できます。この属性とテンプレート名(指定されている場合)は、KMIP登録操作に追加されるテンプレート属性になります。
構文
OKVErrNo okvRegCertificate(OKVEnv *env,
ub4 certificate_type, ub4 certificate_subtype,
ub1 *certificate, ub4 certificatel,
ub4 mask, OKVTTLV *template_names_attrs,
oratext *private_key_uid,
ub4 private_key_uidl,
oratext *wallet_name, ub4 wallet_namel,
oratext *ouid, ub4 *ouidl);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
|
Oracle Key Vault環境ハンドル。 |
certificate_type |
|
証明書のタイプ。 |
certificate_subtype |
|
証明書のサブタイプ。 |
certificate |
|
証明書。 |
certificatel |
|
証明書の長さ。 |
mask |
|
証明書の暗号化使用方法マスク。 |
template_names_attrs |
|
テンプレート-属性を形成するテンプレート名または属性。 |
private_key_uid |
|
証明書に関連付けられている秘密キーの一意識別子(オプション)。 |
private_key_uidl |
|
証明書に関連付けられている秘密キーの一意識別子の長さ(オプション)。 |
wallet_name |
|
ウォレット名の値。 |
wallet_namel |
|
ウォレット名の値の長さ。 |
ouid |
|
登録済証明書の一意識別子。 |
ouidl |
|
登録済証明書の一意識別子の長さ。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
サポートされているバージョン
Oracle Key Vault C SDKバージョン21.2.0.0.0以降。
コメント
証明書オブジェクトにはKMIP名前属性を追加して、そのオブジェクトを今後識別しやすくなるようにすることをお薦めします。
呼出し側は、この関数から返される一意識別子用にメモリーを割り当てる必要があります。割り当てるメモリーの長さは、一意識別子の長さの引数ouidlで渡されます。返される一意識別子を格納するための十分なメモリーを割り当てる必要があります。
登録する証明書は、オプションで、秘密キーのUID (private_key_uid)を指定することで秘密キーに関連付けることができます。private_key_uidについては、このAPIに引数として渡す前に、検索操作を実行することで(okvLocate APIを使用)、それが存在することを検証します。
certificate_subtype引数に指定可能な値:
OKV_CERT_SUBTYPE_USER_CERT: ユーザー証明書を表します。OKV_CERT_SUBTYPE_TRUSTPOINT: トラストポイントを表します。
証明書は、ウォレット(wallet_name)が指定されている場合、そのウォレットでOracle Key Vaultサーバーに登録されます。指定されていない場合は、デフォルト・ウォレットで登録されます(このウォレットがエンドポイントに存在している場合)。
例
/* X.509 Certificate type */
ub4 cert_type = OKVDEF_CERT_TYPE_X509;
/* Certificate Subtype */
ub4 cert_subtype = OKV_CERT_SUBTYPE_USER_CERT;
/* Usage mask */
ub4 cert_mask = CRYPTO_MASK_ENCRYPT;
ub1 cert[] = "-----BEGIN CERTIFICATE-----
MIIEvQIBADANBgkqhkiG9w0BAQE………………………………….
-----END CERTIFICATE-----";
ub4 certl = strlen((const char *)cert);
oratext uid[OKV_UNIQUE_ID_MAXLEN + 1];
ub4 uidl = sizeof(uid);
OKVTTLV *template = (OKVTTLV *)NULL;
OKVTTLV *attr_in = (OKVTTLV *)NULL;
/* Set up the environment handle 'env' and also the memory and
connection management as shown in previous sections */
memset(uid, 0, uidl);
template = okvEnvGetOpRequestObj(env);
/* Add name attribute object to request handle */
attr_in = okvAddAttributeObject(env, template, OKVAttrName, (ub4) 0);
/* Add name attribute value to name attribute object */
okvAttrAddName(env, attr_in, (oratext *)"My Certificate for Register operation",
strlen("My Certificate for Register operation"), 1);
okvRegCertificate(env, cert_type, cert_subtype,
cert, certl,
cert_mask , template,
(oratext *)NULL, (ub4)0,
OKV_NO_WALLET, OKV_NO_WALLET_LEN,
uid, &uidl);
uid[*uidl] = '\0';
if (okvErrGetNum(env))
{
printf("Error while registering the certificate\n");
}
関連項目
- okvActivate
- okvAddAttribute
- okvCreateKey
- okvDeleteAttribute
- okvDestroy
- okvGetAttributeList
- okvGetAttributes
- okvGetCertificate
- okvGetCertificateRequest
- okvGetKey
- okvGetOpaqueData
- okvGetPrivateKey
- okvGetPublicKey
- okvGetSecretData
- okvGetTemplate
- okvLocate
- okvModifyAttribute
- okvQueryCapability
- okvRegCertificateRequest
- okvRegKey
- okvRegOpaqueData
- okvRegPrivateKey
- okvRegPublicKey
- okvRegSecretData
- okvRegTemplate
- okvRevoke
11.1.21 okvRegCertificateRequest
okvRegCertificateRequestにより、KMIPの、証明書リクエスト・オブジェクトの登録の操作を実装します。
カテゴリ
KMIP API
用途
okvRegCertificateRequestにより、KMIPの、証明書リクエスト・オブジェクトの登録の操作を実装します。
証明書リクエスト・オブジェクトは、不透明オブジェクトとしてOracle Key Vaultサーバーに登録されます。Oracle Key Vaultサーバーによって生成された証明書リクエスト・オブジェクトの一意識別子は、ouidとして返されます。
Oracle Key Vault SDKの一意IDの最大長は、OKV_UNIQUE_ID_MAXLENで定義されます。
新しく登録する証明書リクエストには、属性のヘルプ、またはテンプレート名とともに指定して、さらに属性を採用できます。この属性とテンプレート名(指定されている場合)は、KMIP登録操作に追加されるテンプレート属性になります。
構文
OKVErrNo okvRegCertificateRequest(OKVEnv *env,
ub4 certificate_request_type,
ub1 *certificate_request,
ub4 certificate_requestl,
OKVTTLV *template_names_attrs,
oratext *private_key_uid,
ub4 private_key_uidl,
oratext *wallet_name, ub4 wallet_namel,
oratext *ouid, ub4 *ouidl);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
|
Oracle Key Vault環境ハンドル。 |
certificate_request_type |
|
証明書リクエストのタイプ。 |
certificate_request |
|
証明書リクエスト。 |
certificate_requestl |
|
証明書リクエストの長さ。 |
template_names_attrs |
|
テンプレート-属性を形成するテンプレート名または属性。 |
private_key_uid |
|
証明書リクエストに関連付けられている秘密キーの一意識別子(必須)。 |
private_key_uidl |
|
証明書リクエストに関連付けられている秘密キーの一意識別子の長さ(必須)。 |
wallet_name |
|
ウォレット名の値。 |
wallet_namel |
|
ウォレット名の値の長さ。 |
ouid |
|
登録済証明書リクエストの一意識別子。 |
ouidl |
|
登録済証明書リクエストの一意識別子の長さ。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
サポートされているバージョン
Oracle Key Vault C SDKバージョン21.2.0.0.0以降。
コメント
証明書リクエスト・オブジェクトにはKMIP名前属性を追加して、そのオブジェクトを今後識別しやすくなるようにすることをお薦めします。
呼出し側は、この関数から返される一意識別子用にメモリーを割り当てる必要があります。割り当てるメモリーの長さは、一意識別子の長さの引数ouidlで渡されます。返される一意識別子を格納するための十分なメモリーを割り当てる必要があります。
登録する証明書リクエストは、秘密キーのUID (private_key_uid)を指定することで秘密キーに関連付ける必要があります。private_key_uidについては、このAPIに引数として渡す前に、検索操作を実行することで(okvLocate APIを使用)、それが存在することを検証します。
証明書リクエストは、ウォレット(wallet_name)が指定されている場合、そのウォレットでOracle Key Vaultサーバーに登録されます。指定されていない場合は、デフォルト・ウォレットで登録されます(このウォレットがエンドポイントに存在している場合)。
例
/* Certificate Request type */
ub4 cert_req_type = OKVDEF_CERT_REQ_TYPE_PEM;
ub1 cert_req[] = "-----BEGIN CERTIFICATE REQUEST-----
MIIEvQIBADANBgkqhkiG9w0BAQE………………………………….
-----END CERTIFICATE REQUEST-----";
ub4 cert_reql = strlen((const char *)cert_req);
oratext uid[OKV_UNIQUE_ID_MAXLEN + 1];
ub4 uidl = sizeof(uid);
OKVTTLV *template = (OKVTTLV *)NULL;
OKVTTLV *attr_in = (OKVTTLV *)NULL;
/* Please make sure to pass a valid Private Key UID */
oratext *private_key_uid = "64281937-768D-4F78-BF39-EBD5985BFAB2";
ub4 private_key_uidl = strlen((const char *)private_key_uid);
/* Set up the environment handle ‘env’ and also the memory and
connection management as shown in previous sections */
memset(uid, 0, uidl);
template = okvEnvGetOpRequestObj(env);
/* Add name attribute object to request handle */
attr_in = okvAddAttributeObject(env, template, OKVAttrName, (ub4) 0);
/* Add name attribute value to name attribute object */
okvAttrAddName(env, attr_in, (oratext *)"My Certificate Request for Register operation",
strlen("My Certificate Request for Register operation"), 1);
okvRegCertificateRequest(env, cert_req_type,
cert_req, cert_reql, template,
private_key_uid, private_key_uidl,
OKV_NO_WALLET, OKV_NO_WALLET_LEN,
uid, &uidl);
uid[*uidl] = '\0';
if (okvErrGetNum(env))
{
printf("Error while registering the certificate request\n");
}
関連項目
- okvActivate
- okvAddAttribute
- okvCreateKey
- okvDeleteAttribute
- okvDestroy
- okvGetAttributeList
- okvGetAttributes
- okvGetCertificate
- okvGetCertificateRequest
- okvGetKey
- okvGetOpaqueData
- okvGetPrivateKey
- okvGetPublicKey
- okvGetSecretData
- okvGetTemplate
- okvLocate
- okvModifyAttribute
- okvQueryCapability
- okvRegCertificate
- okvRegKey
- okvRegOpaqueData
- okvRegPrivateKey
- okvRegPublicKey
- okvRegSecretData
- okvRegTemplate
- okvRevoke
11.1.22 okvRegKey
okvRegKeyにより、KMIPの、KMIP対称キー・オブジェクトの登録の操作を実装します。
カテゴリ
KMIP API
用途
okvRegKeyにより、KMIPの、KMIP対称キー・オブジェクトの登録の操作を実装します。
Oracle Key Vaultサーバーによって作成された対称キー・オブジェクトの一意識別子は、ouidとして返されます。
Oracle Key Vault SDKの一意IDの最大長は、OKV_UNIQUE_ID_MAXLENで定義されます。
新しく作成されるキーには、属性のヘルプまたはテンプレート名を使用して指定する追加の属性を採用できます。この属性とテンプレート名(指定されている場合)は、KMIP登録操作に追加されるテンプレート属性になります。
構文
OKVErrNo okvRegKey(OKVEnv *env,
OKVType key_alg, ub4 key_len, ub1 *key, ub4 keyl,
ub4 mask, OKVTTLV *template_names_attrs,
oratext *wallet_name, ub4 wallet_namel,
oratext *ouid, ub4 *ouidl);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
|
Oracle Key Vault環境ハンドル。 |
key_alg |
|
対称キー・アルゴリズム。 |
key_len |
|
対称キーのキー長。 |
key |
|
対称キー。 |
keyl |
|
対称キーの長さ。 |
mask |
|
対称キーの暗号化使用方法マスク。 |
template_names_attrs |
|
テンプレート-属性を形成するテンプレート名または属性。 |
|
|
IN |
ウォレット名の値。 |
|
|
IN |
ウォレット名の値の長さ。 |
ouid |
|
登録済キーの一意識別子。 |
ouidl |
|
登録済キーの一意識別子の長さ。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
対称キー・オブジェクトにはKMIP名前属性を追加して、そのオブジェクトが今後識別しやすくなるようにすることをお薦めします。
呼出し側は、この関数から返される一意識別子用にメモリーを割り当てる必要があります。割り当てるメモリーの長さは、一意識別子の長さの引数ouidlで渡されます。返される一意識別子を格納するための十分なメモリーを割り当てる必要があります。
指定したアルゴリズムと使用方法(暗号化使用方法マスク)に応じて指定した長さの対称キーは、ウォレットwallet_nameが指定されている場合、そのウォレットでOracle Key Vaultサーバーに登録されます。指定されていない場合は、デフォルト・ウォレットで登録されます(このウォレットがエンドポイントに存在している場合)。
例
/* Tag for Cryptographic Algortihm AES */
OKVType algo = CRYPTO_ALG_AES;
/* Key length 128, because AES keys are 128, 192 or 256 bits in length*/
ub4 key_len = 128;
ub4 usage_mask = CRYPTO_MASK_ENCRYPT | CRYPTO_MASK_DECRYPT;
/* Key */
ub1 key[] = "770A8A65DA156D24";
/* Length of symmetric key */
ub4 keyl = strlen((const char *)key);
oratext uid[OKV_UNIQUE_ID_MAXLEN + 1];
ub4 uidl = sizeof(uid);
OKVTTLV *template = (OKVTTLV *)NULL;
OKVTTLV *attr_in = (OKVTTLV *)NULL;
/* Set up the environment handle 'env' and also the memory
and connection management as shown in previous sections */
memset(uid, 0, uidl);
template = okvEnvGetOpRequestObj(env);
/* Add name attribute object to request handle */
attr_in = okvAddAttributeObject(env, template, OKVAttrName, (ub4) 0);
/* Add name attribute value to name attribute object */
okvAttrAddName(env, attr_in, (oratext *)"My Key for Register operation",
strlen("My Key for Register operation"), 1);
okvRegKey(env, algo, key_len, &key[0], keyl, usage_mask, template,
(oratext *)NULL, (ub4)0, uid, &uidl);
if (okvErrGetNum(env))
{
printf("Error while registering the key\n");
}関連項目
11.1.23 okvRegOpaqueData
okvRegOpaqueDataにより、KMIPの、KMIP不透明データ・オブジェクトの登録の操作を実装します。
カテゴリ
KMIP API
用途
okvRegOpaqueDataでは、KMIP不透明データ・オブジェクトのKMIP登録操作を実装します。
不透明データはバイト列です。テキスト・ファイル、テキスト文字列、バイナリ・ファイルまたはキーも不透明データとしてアップロードできます。
登録済の不透明データに対してOracle Key Vaultサーバーで作成された不透明データ・オブジェクトの一意識別子は、ouidとして返されます。
Oracle Key Vault SDKの一意IDの最大長は、OKV_UNIQUE_ID_MAXLENで定義されます。
新しく作成される不透明データには、属性のヘルプまたはテンプレート名を使用して指定する追加の属性を採用できます。この属性とテンプレート名(指定されている場合)は、KMIP登録操作に追加されるテンプレート属性になります。
構文
OKVErrNo okvRegOpaqueData(OKVEnv *env,
ub4 opaque_data_type, ub1 *opaque_data,
ub4 opaque_datal,
OKVTTLV *template_names_attrs,
oratext *wallet_name, ub4 wallet_namel,
oratext *ouid, ub4 *ouidl); パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
IN |
Oracle Key Vault環境ハンドル。 |
opaque_data_type |
IN |
登録する不透明オブジェクトのタイプ。 |
opaque_data |
IN |
登録する不透明オブジェクト。 |
opaque_data1 |
IN |
登録する不透明オブジェクトの長さ。 |
template_names_attrs |
IN |
テンプレート-属性を形成するテンプレート名または属性。 |
|
|
IN |
ウォレット名の値。 |
|
|
IN |
ウォレット名の値の長さ。 |
ouid |
OUT |
登録済不透明オブジェクトの一意識別子。 |
ouid1 |
OUT |
登録済不透明オブジェクトの一意識別子の長さ。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
不透明データ・オブジェクトにはKMIP名前属性を追加して、そのオブジェクトを今後識別しやすくなるようにすることをお薦めします。
呼出し側は、この関数から返される一意識別子用にメモリーを割り当てる必要があります。割り当てるメモリーの長さは、一意識別子の長さの引数ouidlで渡されます。返される一意識別子を格納するための十分なメモリーを割り当てる必要があります。
指定のタイプの不透明データは、ウォレットwallet_nameが指定されている場合、そのウォレットでOracle Key Vaultサーバーに登録されます。指定されていない場合は、デフォルト・ウォレットで登録されます(このウォレットがエンドポイントに存在している場合)。不透明データのサイズは、Oracle Key Vaultサーバーによって処理されるオブジェクトの最大サイズに制限されます。
例外として、不透明オブジェクトでは、リース期間、非アクティブ化日、破棄日、危殆化発生日、危殆化日および失効理由の各属性はサポートされていません。
例
oratext *opaque_data = (oratext *)"MyNewData";
ub4 opaque_datal = strlen("MyNewData");
oratext uid[OKV_UNIQUE_ID_MAXLEN + 1];
ub4 uidl = sizeof(uid);
/* Set up the environment handle 'env' and also the memory and
connection management as shown in previous sections */
memset(uid, 0, uidl);
/* Register Opaque Data */
printf("\tRegistering opaque data\n");
okvRegOpaqueData(env, OKVDEF_TAG_OPAQUE_DATA_TYPE,
opaque_data, opaque_datal,
(OKVTTLV *)NULL, (oratext *)NULL, (ub4)0,
&uid[0], uidl);
if (okvErrGetNum(env))
{
printf("Error while registering the opaque data\n");
}関連項目
11.1.24 okvRegPrivateKey
okvRegPrivateKeyにより、KMIPの、KMIP秘密キー・オブジェクトの登録の操作を実装します。
カテゴリ
KMIP API
用途
okvRegPrivateKeyにより、KMIPの、KMIP秘密キー・オブジェクトの登録の操作を実装します。
Oracle Key Vaultサーバーによって登録された秘密キー・オブジェクトの一意識別子は、ouidとして返されます。Oracle Key Vault SDKの一意IDの最大長は、OKV_UNIQUE_ID_MAXLENで定義されます。
新しく登録する秘密キーには、属性のヘルプ、またはテンプレート名とともに指定して、さらに属性を採用できます。この属性とテンプレート名(指定されている場合)は、KMIP登録操作に追加されるテンプレート属性になります。
構文
OKVErrNo okvRegPrivateKey(OKVEnv *env,
OKVType private_key_alg, ub4 private_key_len,
ub1 *private_key, ub4 private_keyl,
ub4 mask, OKVTTLV *template_names_attrs,
oratext *wallet_name, ub4 wallet_namel,
oratext *ouid, ub4 *ouidl);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
IN |
Oracle Key Vault環境ハンドル。 |
private_key_alg |
IN |
秘密キー・アルゴリズム。 |
private_key_len |
IN |
秘密キーのキー長。 |
private_key |
IN |
秘密キー。 |
private_keyl |
IN |
秘密キーの長さ。 |
mask |
IN |
秘密キーの暗号化使用方法マスク。 |
template_names_attrs |
IN |
テンプレート-属性を形成するテンプレート名または属性。 |
wallet_name |
IN |
ウォレット名の値。 |
wallet_namel |
IN |
ウォレット名の値の長さ。 |
ouid |
OUT |
登録済秘密キーの一意識別子。 |
ouidl |
OUT |
登録済秘密キーの一意識別子の長さ。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
サポートされているバージョン
Oracle Key Vault C SDKバージョン21.2.0.0.0以降。
コメント
秘密キー・オブジェクトにはKMIP名前属性を追加して、そのオブジェクトを今後識別しやすくなるようにすることをお薦めします。
呼出し側は、この関数から返される一意識別子用にメモリーを割り当てる必要があります。割り当てるメモリーの長さは、一意識別子の長さの引数ouidlで渡されます。返される一意識別子を格納するための十分なメモリーを割り当てる必要があります。
指定したアルゴリズムと使用方法(暗号化使用方法マスク)に応じて指定した長さの秘密キーは、ウォレットwallet_nameが指定されている場合、そのウォレットでOracle Key Vaultサーバーに登録されます。指定されていない場合は、デフォルト・ウォレットで登録されます(このウォレットがエンドポイントに存在している場合)。
例
/* Key Algorithm */
OKVType private_key_algo = CRYPTO_ALG_RSA;
/* Key Size */
ub4 private_key_len = 2048;
ub1 private_key[] = "45687942323587........";
ub4 private_keyl = strlen((const char *)private_key);
/* Usage mask */
ub4 private_key_mask = CRYPTO_MASK_DECRYPT;
oratext uid[OKV_UNIQUE_ID_MAXLEN + 1];
ub4 uidl = sizeof(uid);
OKVTTLV *template = (OKVTTLV *)NULL;
OKVTTLV *attr_in = (OKVTTLV *)NULL;
/* Set up the environment handle 'env' and also the memory and
connection management as shown in previous sections */
memset(uid, 0, uidl);
template = okvEnvGetOpRequestObj(env);
/* Add name attribute object to request handle */
attr_in = okvAddAttributeObject(env, template, OKVAttrName, (ub4) 0);
/* Add name attribute value to name attribute object */
okvAttrAddName(env, attr_in, (oratext *)"My Private Key for Register operation",
strlen("My Private Key for Register operation"), 1);
okvRegPrivateKey(env, private_key_algo, private_key_len,
private_key, private_keyl,
private_key_mask, template,
OKV_NO_WALLET, OKV_NO_WALLET_LEN,
uid, &uidl);
uid[*uidl] = '\0';
if (okvErrGetNum(env))
{
printf("Error while registering the private key\n");
}
関連項目
- okvActivate
- okvAddAttribute
- okvCreateKey
- okvDeleteAttribute
- okvDestroy
- okvGetAttributeList
- okvGetAttributes
- okvGetCertificate
- okvGetCertificateRequest
- okvGetKey
- okvGetOpaqueData
- okvGetPrivateKey
- okvGetPublicKey
- okvGetSecretData
- okvGetTemplate
- okvLocate
- okvModifyAttribute
- okvQueryCapability
- okvRegCertificate
- okvRegCertificateRequest
- okvRegKey
- okvRegOpaqueData
- okvRegPublicKey
- okvRegSecretData
- okvRegTemplate
- okvRevoke
11.1.25 okvRegPublicKey
okvRegPublicKeyにより、KMIPの、KMIP公開キー・オブジェクトの登録の操作を実装します。
カテゴリ
KMIP API
用途
okvRegPublicKeyにより、KMIPの、KMIP公開キー・オブジェクトの登録の操作を実装します。
Oracle Key Vaultサーバーによって登録された公開キー・オブジェクトの一意識別子は、ouidとして返されます。
Oracle Key Vault SDKの一意IDの最大長は、OKV_UNIQUE_ID_MAXLENで定義されます。
新しく登録する公開キーには、属性のヘルプ、またはテンプレート名とともに指定して、さらに属性を採用できます。この属性とテンプレート名(指定されている場合)は、KMIP登録操作に追加されるテンプレート属性になります。
構文
OKVErrNo okvRegPublicKey(OKVEnv *env,
OKVType public_key_alg, ub4 public_key_len,
ub1 *public_key, ub4 public_keyl,
ub4 mask, OKVTTLV *template_names_attrs,
oratext *private_key_uid, ub4 private_key_uidl,
oratext *wallet_name, ub4 wallet_namel,
oratext *ouid, ub4 *ouidl);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
IN |
Oracle Key Vault環境ハンドル。 |
public_key_alg |
IN |
公開キー・アルゴリズム。 |
public_key_len |
IN |
公開キーのキー長。 |
public_key |
IN |
公開キー。 |
public_keyl |
IN |
公開キーの長さ。 |
mask |
IN |
公開キーの暗号化使用方法マスク。 |
template_names_attrs |
IN |
テンプレート-属性を形成するテンプレート名または属性。 |
private_key_uid |
IN |
公開キーに関連付けられている秘密キーの一意識別子(オプション)。 |
private_key_uidl |
IN |
公開キーに関連付けられている秘密キーの一意識別子の長さ(オプション)。 |
wallet_name |
IN |
ウォレット名の値。 |
wallet_namel |
IN |
ウォレット名の値の長さ。 |
ouid |
OUT |
登録済公開キーの一意識別子。 |
ouidl |
OUT |
登録済公開キーの一意識別子の長さ。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
サポートされているバージョン
Oracle Key Vault C SDKバージョン21.2.0.0.0以降。
コメント
公開キー・オブジェクトにはKMIP名前属性を追加して、そのオブジェクトを今後識別しやすくなるようにすることをお薦めします。
呼出し側は、この関数から返される一意識別子用にメモリーを割り当てる必要があります。割り当てるメモリーの長さは、一意識別子の長さの引数ouidlで渡されます。返される一意識別子を格納するための十分なメモリーを割り当てる必要があります。
指定したアルゴリズムと使用方法(暗号化使用方法マスク)に応じて指定した長さの公開キーは、ウォレットwallet_nameが指定されている場合、そのウォレットでOracle Key Vaultサーバーに登録されます。指定されていない場合は、デフォルト・ウォレットで登録されます(このウォレットがエンドポイントに存在している場合)。
登録する公開キーは、オプションで、秘密キーのUID (private_key_uid)を指定することで秘密キーに関連付けることができます。private_key_uidについては、このAPIに引数として渡す前に、検索操作を実行することで(okvLocate APIを使用)、それが存在することを検証します。
例
/* Key Algorithm */
OKVType public_key_algo = CRYPTO_ALG_RSA;
/* Key Size */
ub4 public_key_len = 2048;
ub1 public_key[] = "7698767245345566789823428...........";
ub4 public_keyl = strlen((const char *)public_key);
/* Usage mask */
ub4 public_key_mask = CRYPTO_MASK_ENCRYPT;
oratext uid[OKV_UNIQUE_ID_MAXLEN + 1];
ub4 uidl = sizeof(uid);
OKVTTLV *template = (OKVTTLV *)NULL;
OKVTTLV *attr_in = (OKVTTLV *)NULL;
/* Set up the environment handle ‘env’ and also the memory and
connection management as shown in previous sections */
memset(uid, 0, uidl);
template = okvEnvGetOpRequestObj(env);
/* Add name attribute object to request handle */
attr_in = okvAddAttributeObject(env, template, OKVAttrName, (ub4) 0);
/* Add name attribute value to name attribute object */
okvAttrAddName(env, attr_in, (oratext *)"My Public Key for Register operation",
strlen("My Public Key for Register operation"), 1);
okvRegPublicKey(env, public_key_algo, public_key_len,
public_key, public_keyl,
public_key_mask, template,
(oratext *)NULL, (ub4)0,
OKV_NO_WALLET, OKV_NO_WALLET_LEN,
uid, &uidl);
uid[*uidl] = '\0';
if (okvErrGetNum(env))
{
printf("Error while registering the public key\n");
}
関連項目
- okvActivate
- okvAddAttribute
- okvCreateKey
- okvDeleteAttribute
- okvDestroy
- okvGetAttributeList
- okvGetAttributes
- okvGetCertificate
- okvGetCertificateRequest
- okvGetKey
- okvGetOpaqueData
- okvGetPrivateKey
- okvGetPublicKey
- okvGetSecretData
- okvGetTemplate
- okvLocate
- okvModifyAttribute
- okvQueryCapability
- okvRegCertificate
- okvRegCertificateRequest
- okvRegKey
- okvRegOpaqueData
- okvRegPrivateKey
- okvRegSecretData
- okvRegTemplate
- okvRevoke
11.1.26 okvRegSecretData
okvRegSecretDataでは、KMIPシークレット・データ・オブジェクトのKMIP登録操作を実装します。
カテゴリ
KMIP API
用途
okvRegSecretDataでは、KMIPシークレット・データ・オブジェクトのKMIP登録操作を実装します。
通常、シークレット・データはパスワードまたは文字列です。
登録済のシークレット・データに対してOracle Key Vaultサーバーで作成されたシークレット・データの一意識別子は、ouidとして返されます。
Oracle Key Vault SDKの一意IDの最大長は、OKV_UNIQUE_ID_MAXLENで定義されます。
新しく作成されるシークレット・データには、属性のヘルプまたはテンプレート名を使用して指定する追加の属性を採用できます。この属性とテンプレート名(指定されている場合)は、KMIP登録操作に追加されるテンプレート属性になります。
構文
OKVErrNo okvRegSecretData(OKVEnv *env,
ub4 secret_data_type, ub1 *secret_data,
ub4 secret_datal, ub4 mask,
OKVTTLV *template_names_attrs,
oratext *wallet_name, ub4 wallet_namel,
oratext *ouid, ub4 *ouidl);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
|
Oracle Key Vault環境ハンドル。 |
secret_data_type |
|
登録されるシークレット・データのタイプ。 |
secret_data |
|
登録されるシークレット・データ。 |
secret_datal |
|
登録されるシークレット・データの長さ。 |
mask |
IN |
シークレットの暗号化使用方法マスク。 |
template_names_attrs |
|
テンプレート-属性を形成するテンプレート名または属性。 |
|
|
IN |
ウォレット名の値。 |
|
|
IN |
ウォレット名の値の長さ。 |
ouid |
|
登録済シークレット・データの一意識別子。 |
ouidl |
|
登録済シークレット・データの一意識別子の長さ。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
シークレット・データ・オブジェクトにはKMIP名前属性を追加して、そのオブジェクトが今後識別しやすくなるようにすることをお薦めします。
呼出し側は、この関数から返される一意識別子用にメモリーを割り当てる必要があります。割り当てるメモリーの長さは、一意識別子の長さ(ouidl)の引数によって渡されます。返される一意識別子を格納するための十分なメモリーを割り当てる必要があります。
指定のタイプのシークレット・データは、ウォレット(wallet_name)が指定されている場合、そのウォレットでOracle Key Vaultサーバーに登録されます。指定されていない場合は、デフォルト・ウォレットで登録されます(このウォレットがエンドポイントに存在している場合)。
シークレット・データのサイズは、Oracle Key Vaultサーバーによって処理されるオブジェクトの最大サイズに制限されます。
例
/* Parameters for registering secret data */
/* Tag for secret data type */
OKVType type = OKVDEF_SECRET_DATA_TYPE_PASSWORD;
ub4 usage_mask = CRYPTO_MASK_ENCRYPT | CRYPTO_MASK_DECRYPT;
oratext *secret = (oratext *)"MyNewSecret";
ub4 secretl = strlen("MyNewSecret");
oratext uid[OKV_UNIQUE_ID_MAXLEN + 1];
ub4 uidl = sizeof(uid);
/* Set up the environment handle 'env' and also the memory and
connection management as shown in previous sections */
memset(uid, 0, uidl);
/* Register Secret data */
printf("\tRegistering the secret data\n");
okvRegSecretData(env, type, secret, secretl,
usage_mask, (OKVTTLV *)NULL,
(oratext *)NULL, (ub4)0,
&uid[0], uidl);
if (okvErrGetNum(env))
{
printf("Error while registering the secret data\n");
}関連項目
11.1.27 okvRegTemplate
okvRegTemplateでは、KMIPテンプレート・オブジェクトのKMIP登録操作を実装します。
カテゴリ
KMIP API
用途
okvRegTemplateでは、KMIPテンプレート・オブジェクトのKMIP登録操作を実装します(KMIPテンプレート-属性オブジェクトと混同しないでください)。
テンプレート・オブジェクトは、属性のコレクションです。
Oracle Key Vaultで登録済テンプレートに対して指定の属性によって作成されたテンプレート・オブジェクトの一意識別子は、ouidとして返されます。
Oracle Key Vault SDKの一意識別子の最大長は、OKV_UNIQUE_ID_MAXLENで定義されます。
構文
OKVErrNo okvRegTemplate(OKVEnv *env,
OKVTTLV *attrs_template,
oratext *wallet_name, ub4 wallet_namel,
oratext *ouid, ub4 *ouidl);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
IN |
Oracle Key Vault環境ハンドル。 |
attrs_template |
IN |
テンプレートの属性。 |
|
|
IN |
ウォレット名の値。 |
|
|
IN |
ウォレット名の値の長さ。 |
ouid |
OUT |
登録済テンプレートの一意識別子。 |
ouid1 |
OUT |
登録済テンプレートの一意識別子の長さ。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
呼出し側は、この関数から返される一意識別子用にメモリーを割り当てる必要があります。割り当てたメモリーの長さは、一意識別子の長さ(ouidl)の引数によって渡されます。返される一意識別子を格納するための十分なメモリーを割り当てる必要があります。
テンプレートは、wallet_name引数で指定したウォレットに登録されます。それ以外の場合は、エンドポイントに関連付けられたデフォルト・ウォレットに登録されます(デフォルト・ウォレットが存在する場合)。
例
oratext uid[OKV_UNIQUE_ID_MAXLEN + 1];
ub4 uidl = sizeof(uid);
/* Set up the environment handle 'env' also the memory and connection
management as shown in previous sections */
memset(uid, 0, uidl);
okvRegTemplate(env, (OKVTTLV *)NULL, (oratext *)NULL, (ub4)0, &uid[0], &uidl);
if (okvErrGetNum(env))
{
printf("Error while registering the Template\n");
}関連項目
11.1.28 okvRekey
okvRekeyにより、KMIPのキー更新操作を実装します。
カテゴリ
KMIP API
用途
okvRekeyにより、KMIPのキー更新操作を実装します。
キー更新操作には、キー更新が必要になる対称キーの一意識別子が必須です。ほとんどの属性が、古いキーから引き継がれます。一部の属性は、KMIP定義の規則に従って変更されます。
Oracle Key Vaultサーバーによって生成された新しい対称キー・オブジェクトの一意識別子は、ouidとして返されます。
Oracle Key Vault SDKの一意IDの最大長は、OKV_UNIQUE_ID_MAXLENで定義されます。
構文
OKVErrNo okvRekey(OKVEnv *env, oratext *uid,
ub4 offset, OKVTTLV *template_names_attrs,
oratext *ouid, ub4 *ouidl);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
|
|
|
Oracle Key Vault環境ハンドル。 |
|
|
|
キー更新するキーの一意識別子(バッチ処理の場合はNULLも可)。 |
|
|
|
初期化(作成)日とアクティブ化日の間の時間間隔。 |
|
|
|
キー更新のテンプレート-属性を形成するテンプレート名または属性。 |
|
|
|
新しく生成された対称キーの一意識別子。 |
|
|
|
新しく生成された対称キーの一意識別子の長さ。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
呼出し側は、この関数から返される新しい対称キーの一意識別子用にメモリーを割り当てる必要があります。割り当てたメモリーの長さは、一意識別子の長さ(ouidl)の引数によって渡されます。
- サーバーは、キーのキー更新可能回数に制限を課しません。たとえば、キーK1がキー更新され、新しいキーK2が作成された場合、サーバーは再度のキーK1のキー更新を許可して、キーK3が作成されます。
- キー更新に対してテンプレートが渡された場合、そのテンプレート属性は新しいキーに追加されません。回避策として、キー更新後に
okvAddAttributeを使用することで、これを追加できます。
例
/* Set up the environment handle 'env' and also the memory and
connection management as shown in previous sections. Create
a key for example and get its unique identifier as part of
its creation in 'uid'. Rekey can done as shown below */
…
oratext rekey_uid[OKV_UNIQUE_ID_MAXLEN + 1];
ub4 rekey_uidl = sizeof(rekey_uid);
memset(rekey_uid, 0, rekey_uidl);
okvRekey(env, uid, (ub4)0, (OKVTTLV *)NULL, &rekey_uid[0], &rekey_uidl);
if (okvErrGetNum(env))
{
printf("Error while Re-Keying the Key\n");
}関連項目
11.1.29 okvRevoke
okvRevokeにより、KMIPの失効操作を実装します。
カテゴリ
KMIP API
用途
okvRevokeにより、KMIPの失効操作を実装します。失効理由とオブジェクトが危殆化した日付とともに、一意識別子で指定したKMIPオブジェクトを失効させます。
構文
OKVErrNo okvRevoke(OKVEnv *env, oratext *uid,
ub4 revocation_reason,
oratext *revocation_msg,
ub8 comp_occurrence_date);パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
IN |
Oracle Key Vault環境ハンドル。 |
uid |
IN |
一意識別子(バッチ処理の場合はNULLも可)。 |
revocation_reason |
IN |
KMIPオブジェクトの失効処理についての失効理由。 |
revocation_msg |
IN |
KMIPオブジェクトの失効処理についての失効メッセージ。 |
comp_occurrence_date |
IN |
KMIPオブジェクトの危殆化が発生した日付。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
なし。
例
/* Create the KMIP object, say Key for example and get its unique identifier
as part of its creation in 'uid', activate it and then revoke it as below */
okvRevoke(env, &uid[0], (ub4)1, (oratext *)"Retiring the key",
(ub8)time((time_t *)NULL));
if (okvErrGetNum(env))
{
printf("Error while revoking the object\n");
}関連項目
11.2 Oracle Key VaultクライアントSDKのバッチAPI
この項では、Oracle Key Vault KMIPバッチ関数のインタフェースについて説明します。
- okvBatchCreate
okvBatchCreateでは、Oracle Key Vaultバッチ処理の開始を示します。 - okvBatchExecute
okvBatchExecuteでは、バッチ処理されるOracle Key Vault関数を実行します。 - okvBatchFree
okvBatchFreeでは、Oracle Key Vaultバッチ処理の終了を示します。 - okvGetBatchOperationCount
okvGetBatchOperationCountでは、バッチ処理されたOracle Key Vault操作の数を取得します。 - okvGetBatchOperationName
okvGetBatchOperationNameは、この関数で渡される個別のバッチ・ジョブ番号のKMIP操作名を返します。
11.2.1 okvBatchCreate
okvBatchCreateでは、Oracle Key Vaultバッチ処理の開始を示します。
カテゴリ
KMIPバッチAPI
用途
okvBatchCreateでは、Oracle Key Vaultバッチ処理の開始を示します。このコマンドの後のすべてのOracle Key Vault関数はバッチ処理されます。
構文
OKVErrNo okvBatchCreate(OKVEnv *env);
パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
|
|
|
Oracle Key Vault環境ハンドル。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
なし。
例
/* Set up the environment handle 'env' and also the memory and
connection management as shown in previous sections. */
printf("Start preparing batch operations\n");
okvBatchCreate(env);
if (okvErrGetNum(env))
{
printf("Error while initiating the Batch");
}
...
/* All Oracle Key Vault APIs from this point will be batched */11.2.2 okvBatchExecute
okvBatchExecuteでは、バッチ処理されるOracle Key Vault関数を実行します。
カテゴリ
KMIPバッチAPI
用途
okvBatchExecuteでは、バッチ処理されるOracle Key Vault関数を実行します。バッチ処理されるOracle Key Vault関数は、okvBatchCreateとokvBatchExecuteの間の関数です。エラーが発生した場合は、バッチ処理されたすべてのOracle Key Vault関数のエラーをチェックして、失敗した操作と成功した操作を確認する必要があります。
構文
OKVErrNo okvBatchExecute(OKVEnv *env);
パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
|
|
|
Oracle Key Vault環境ハンドル。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
実行後にバッチ内の個別の操作をチェックするために使用できるAPIは、okvErrGetNumForBatch、okvErrGetDepthForBatchおよびokvErrGetNumAtDepthForBatchです。個別のバッチ操作のエラーは、バッチ・コンテキストを解放する前(okvBatchFreeをコールする前)にのみチェックできます。
例
/* Set up the environment handle 'env' and also the memory and
connection management as shown in previous sections. */
printf("Start preparing batch operations\n");
okvBatchCreate(env);
...
/* All Oracle Key Vault KMIP APIs from this point will be batched */
...
printf("Executing batch operation\n");
okvBatchExecute(env);
if (okvErrGetNum(env))
{
printf("Error while executing the batch");
}11.2.3 okvBatchFree
okvBatchFreeでは、Oracle Key Vaultバッチ処理の終了を示します。
カテゴリ
KMIPバッチAPI
用途
okvBatchFreeでは、Oracle Key Vaultバッチ処理の終了を示します。基本的に、複合の引数に割り当てられたメモリーは解放されます。okvBatchCreateを再度コールしないかぎり、それ以降のOracle Key Vault関数はバッチ処理されません。
構文
OKVErrNo okvBatchFree(OKVEnv *env);
パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
|
|
|
Oracle Key Vault環境ハンドル。 |
戻り値
| 戻り値 | 説明 |
|---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
コメント
個別のバッチ操作のエラーは、バッチ・コンテキストを解放する前(okvBatchFreeをコールする前)にのみチェックできます。
例
/* Set up the environment handle 'env' and also the memory and
connection management as shown in previous sections. */
printf("Start preparing batch operations\n");
okvBatchCreate(env);
...
/* All Oracle Key Vault KMIP APIs from this point will be batched */
...
printf("Executing batch operation\n");
okvBatchExecute(env);
...
/* Check for Individual Batch Operation errors */
...
printf("Ending batch operations\n\n");
okvBatchFree(env);
if (okvErrGetNum(env))
{
printf("Error while ending the batch");
}11.2.4 okvGetBatchOperationCount
okvGetBatchOperationCountでは、バッチ処理されたOracle Key Vault操作の数を取得します。
カテゴリ
KMIPバッチAPI
用途
okvGetBatchOperationCountでは、バッチ処理されたOracle Key Vault操作の数を取得します。
構文
ub4 okvGetBatchOperationCount(OKVEnv *env);
パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
|
Oracle Key Vault環境ハンドル。 |
戻り値
| 戻り値 | 説明 |
|---|---|
ub4 |
バッチ処理された操作の数。 成功: ゼロ以外の有効な正の数値が返されます。 失敗: ゼロ。 |
コメント
この関数は、okvBatchFreeの呼出し前に呼び出す必要があります。それ以外の場合は、ゼロが返されます。
例
ub4 batch_cnt = 0;
/* Set up the environment handle 'env' and also the memory and
connection management as shown in previous sections. */
printf("\t\tStart preparing batch operations\n");
okvBatchCreate(env);
...
* All Oracle Key Vault KMIP APIs from this point will be batched */
...
printf("\t\tExecuting batch operation\n");
okvBatchExecute(env);
...
/* Check for Individual Batch Operation errors */
...
batch_cnt = okvGetBatchOperationCount(env);
printf("Count of the KMIP operations that are batched: %d", batch_cnt);11.2.5 okvGetBatchOperationName
okvGetBatchOperationNameは、この関数で渡される個別のバッチ・ジョブ番号のKMIP操作名を返します。
カテゴリ
KMIPバッチAPI
用途
okvGetBatchOperationNameは、この関数で渡される個別のバッチ・ジョブ番号のKMIP操作名を返します。
構文
oratext *okvGetBatchOperationName(OKVEnv *env, ub1 batchjobnum);
パラメータ
| パラメータ | IN/OUT | 説明 |
|---|---|---|
env |
|
Oracle Key Vault環境ハンドル。 |
batchjobnum |
IN |
バッチ・ジョブ番号。 |
戻り値
| 戻り値 | 説明 |
|---|---|
oratext * |
バッチ処理されたKMIP操作名。 成功: バッチ・ジョブ操作名へのポインタが返されます。 失敗: |
コメント
この関数は、okvBatchFreeの呼出し前に呼び出す必要があります。それ以外の場合は、NULLを指すポインタが返されます。
batchjobnumは、バッチ処理される操作の番号です。たとえば、ユーザーがキーを作成し、キーをアクティブ化して失効させてから破棄する場合、これらの操作はすべて同じ順序でバッチ処理されます。つまり、キーの作成のためのbatchjobnumは1、キーのアクティブ化のためのbatchjobnumは2、失効のためのbatchjobnumは3、破棄のためのbatchjobnumは4になります。
例
ub4 batch_cnt = 0;
ub4 batch_job_num = 0;
/* Set up the environment handle 'env' also the memory and
connection management as shown in previous sections. */
printf("\t\tStart preparing batch operations\n");
okvBatchCreate(env);
...
/* All Oracle Key Vault KMIP APIs from this point will be batched */
...
printf("\t\tExecuting batch operation\n");
okvBatchExecute(env);
...
/* Check for Individual Batch Operation errors */
...
batch_cnt = okvGetBatchOperationCount(env);
printf("Batch Operations count is: %d\n", batch_cnt);
if (batch_cnt)
{
for(batch_job_num=1; batch_job_num<=batch_cnt; batch_job_num++)
{
printf("\t\t\t%d: %s\n", batch_job_num, okvGetBatchOperationName(env, batch_job_num));
}
}