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作成操作を実装します。 - okvDecrypt
okvDecrypt
では、KMIPオブジェクトを使用して、指定されたデータに対して復号化操作を実行します。 - okvDeleteAttribute
okvDeleteAttribute
により、KMIPの属性削除操作を実装します。 - okvDestroy
okvDestroy
により、KMIPの破棄操作を実装します。 - okvEncrypt
okvEncrypt
では、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を使用してオブジェクトに単一インスタンス属性を追加したときに、そのオブジェクトがすでに属性のインスタンスを保持している場合、その属性が上書きされることはありませんが、一般的な失敗エラーがスローされます。属性値の変更には、
okvModifyAttribute
APIを使用してください。 - リクエスト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 okvDecrypt
okvDecrypt
では、KMIPオブジェクトを使用して、指定されたデータに対して復号化操作を実行します。
カテゴリ
KMIP API
用途
okvDecrypt
では、KMIPオブジェクトを使用して、指定されたデータに対して復号化操作を実行します。
構文
OKVErrNo okvDecrypt(OKVEnv *env, oratext *uid, ub1 *data, ub4 datal, OKVCryptoContext *crypto_context, OKVDecryptResponse *decrypt_response);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
env |
|
Oracle Key Vault環境ハンドル。 |
uid |
|
一意識別子(バッチ処理の場合はNULLも可)。 |
data |
|
復号化するデータ。 |
datal |
|
復号化するデータの長さ。 |
crypto_context |
|
暗号化コンテキストには、暗号化パラメータやIVなどの復号化に必要なパラメータが含まれています。 |
decrypt_response |
|
復号化操作のレスポンスの詳細が含まれます。 |
戻り値
戻り値 | 説明 |
---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: OKV_SUCCESS (0)が返されます。 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
サポートされているバージョン
Oracle Key Vault C SDKリリース21.4.0.0.0以降。
コメント
crypto_context
は、okvCryptoContextCreate
およびokvCryptoContextFree
のヘルパーAPIを使用して作成および解放できます。これには、復号化に必要なパラメータが含まれており、ユーザーはokvCryptoContextSetBlockCipherMode
、okvCryptoContextSetPadding
、okvCryptoContextSetRandomIV
、okvCryptoContextSetIV
、okvCryptoContextSetAuthEncryptionAdditionalData
、okvCryptoContextSetAuthEncryptionTag
などのヘルパーAPIを使用して明示的にこれを設定する必要があります。ユーザーは、ヘルパーAPI okvCryptoContextGetBlockCipherMode
、okvCryptoContextGetPadding
、okvCryptoContextGetRandomIV
、okvCryptoContextGetIV
、okvCryptoContextGetAuthEncryptionAdditionalData
およびokvCryptoContextGetAuthEncryptionTag
を使用して、crypto_context
で設定された各パラメータ値を取得することもできます。
ヘルパーAPI okvDecryptResponseCreate
を使用してdecrypt_response
を明示的に割り当ててから、それをOUTパラメータとしてokvDecrypt
APIに渡す必要があります。復号化操作が完了したら、ヘルパーAPI okvCryptoResponseGetDecryptedData
を使用して、decrypt_response
から、復号化されたデータの詳細を取得できます。decrypt_response
は、okvDecryptResponseFree
ヘルパーAPIを使用して解放する必要があります。
例
/* Create a Symmetric Key for example and get its unique identifier as part of its creation in uid, we can use the 'uid' for decrypting the encrypted data as shown below */ OKVCryptoContext *crypto_context = (OKVCryptoContext *)NULL; OKVEncryptResponse *encrypt_response = (OKVEncryptResponse *)NULL; OKVDecryptResponse *decrypt_response = (OKVDecryptResponse *)NULL; ub1 data[] = "OKV crypto operations demo."; ub4 datal = strlen((const char *) data); ub1 iv[] = "5432109876543210"; ub4 ivl = strlen((const char *) iv); ub1 encrypted_data[100]; ub4 encrypted_datal = sizeof(encrypted_data); ub1 decrypted_data[100]; ub4 decrypted_datal = sizeof(decrypted_data); /* Encrypt */ crypto_context = okvCryptoContextCreate(env, OKVOpEncrypt); okvCryptoContextSetBlockCipherMode(env, crypto_context, BLK_CIPHER_CBC); okvCryptoContextSetPadding(env, crypto_context, PADDING_PKCS5); okvCryptoContextSetIV(env, crypto_context, iv, ivl); encrypt_response = okvEncryptResponseCreate(env); okvEncrypt(env, uid, data, datal, crypto_context, encrypt_response); if (okvErrGetNum(env)) { printf("Error while performing the encryption operation.\n"); } memset(encrypted_data, 0, encrypted_datal); okvCryptoResponseGetEncryptedData(env, encrypt_response, encrypted_data, &encrypted_datal); printf("Successfully encrypted the data\n"); printf("\tEncrypted Data Length: %d\n", encrypted_datal); printf("\tEncrypted Data: %s\n", encrypted_data); okvCryptoContextFree(env, &crypto_context); okvEncryptResponseFree(env, &encrypt_response); /*Decrypt */ crypto_context = okvCryptoContextCreate(env, OKVOpEncrypt); okvCryptoContextSetBlockCipherMode(env, crypto_context, BLK_CIPHER_CBC); okvCryptoContextSetPadding(env, crypto_context, PADDING_PKCS5); okvCryptoContextSetIV(env, crypto_context, iv, ivl); decrypt_response = okvDecryptResponseCreate(env); okvDecrypt(env, uid, encrypted_data, encrypted_datal, crypto_context, decrypt_response); if (okvErrGetNum(env)) { printf("Error while performing the decryption operation.\n"); } memset(decrypted_data, 0, decrypted_datal); okvCryptoResponseGetDecryptedData(env, decrypt_response, decrypted_data, &decrypted_datal); printf("Successfully decrypted the data\n"); printf("\tDecrypted Data Length: %d\n", decrypted_datal); printf("\tDecrypted Data: %s\n", decrypted_data); okvCryptoContextFree(env, &crypto_context); okvDecryptResponseFree(env, &decrypt_response);
関連項目
- okvCryptoContextCreate
- okvCryptoContextFree
- okvCryptoContextGetAuthEncryptionAdditionalData
- okvCryptoContextGetAuthEncryptionTag
- okvCryptoContextGetBlockCipherMode
- okvCryptoContextGetIV
- okvCryptoContextGetPadding
- okvCryptoContextGetRandomIV
- okvCryptoContextSetAuthEncryptionAdditionalData
- okvCryptoContextSetAuthEncryptionTag
- okvCryptoContextSetBlockCipherMode
- okvCryptoContextSetIV
- okvCryptoContextSetPadding
- okvCryptoContextSetRandomIV
- okvCryptoResponseGetDecryptedData
- okvDecryptResponseCreate
- okvDecryptResponseFree
- okvEncrypt
11.1.6 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.7 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.8 okvEncrypt
okvEncrypt
では、KMIPオブジェクトを使用して、指定されたデータに対して暗号化操作を実行します。
カテゴリ
KMIP API
用途
okvEncrypt
では、KMIPオブジェクトを使用して、指定されたデータに対して暗号化操作を実行します。
構文
OKVErrNo okvEncrypt(OKVEnv *env, oratext *uid, ub1 *data, ub4 datal, OKVCryptoContext *crypto_context, OKVEncryptResponse *encrypt_response);
パラメータ
パラメータ | IN/OUT | 説明 |
---|---|---|
env |
|
Oracle Key Vault環境ハンドル。 |
uid |
|
一意識別子(バッチ処理の場合はNULLも可)。 |
data |
|
暗号化するデータ |
datal |
|
暗号化するデータの長さ。 |
crypto_context |
|
暗号化コンテキストには、暗号化パラメータやIVなどの暗号化に必要なパラメータが含まれています。 |
encrypt_response |
|
暗号化操作のレスポンスの詳細が含まれます。 |
戻り値
戻り値 | 説明 |
---|---|
OKVErrNo |
Oracle Key Vaultエラー番号。 成功: OKV_SUCCESS (0)が返されます。 失敗: エラー・スタックの最上部にあるエラーの有効なエラー番号が返されます。 |
サポートされているバージョン
Oracle Key Vault C SDKリリース21.4.0.0.0以降。
コメント
crypto_context
は、okvCryptoContextCreate
およびokvCryptoContextFree
のヘルパーAPIを使用して作成および解放できます。これには、暗号化に必要なパラメータが含まれており、ユーザーはokvCryptoContextSetBlockCipherMode
、okvCryptoContextSetPadding
、okvCryptoContextSetRandomIV
、okvCryptoContextSetIV
、okvCryptoContextSetAuthEncryptionAdditionalData
、okvCryptoContextSetAuthEncryptionTag
などのヘルパーAPIを使用して明示的にこれを設定する必要があります。ユーザーは、ヘルパーAPI okvCryptoContextGetBlockCipherMode
、okvCryptoContextGetPadding
、okvCryptoContextGetRandomIV
、okvCryptoContextGetIV
、okvCryptoContextGetAuthEncryptionAdditionalData
およびokvCryptoContextGetAuthEncryptionTag
を使用して、crypto_context
で設定された各パラメータ値を取得することもできます。
ヘルパーAPI okvEncryptResponseCreate
を使用してencrypt_response
を明示的に割り当ててから、それをOUTパラメータとしてokvEncrypt API
に渡す必要があります。暗号化操作が完了したら、ヘルパーAPI okvCryptoResponseGetEncryptedData
、okvCryptoResponseGetIV
およびokvCryptoResponseGetAuthEncryptionTag
を使用して、encrypt_response
から、暗号化されたデータの詳細を取得できます。encrypt_response
は、okvEncryptResponseFree
ヘルパーAPIを使用して解放する必要があります。
例
/* Create a Symmetric Key for example and get its unique identifier as part of its creation in ‘uid’, we can use the 'uid' for encryption as shown below */ OKVCryptoContext *crypto_context = (OKVCryptoContext *)NULL; OKVEncryptResponse *encrypt_response = (OKVEncryptResponse *)NULL; ub1 data[] = "OKV crypto operations demo."; ub4 datal = strlen((const char *) data); ub1 iv[] = "5432109876543210"; ub4 ivl = strlen((const char *) iv); ub1 encrypted_data[100]; ub4 encrypted_datal = sizeof(encrypted_data); /* Encrypt */ crypto_context = okvCryptoContextCreate(env, OKVOpEncrypt); okvCryptoContextSetBlockCipherMode(env, crypto_context, BLK_CIPHER_CBC); okvCryptoContextSetPadding(env, crypto_context, PADDING_PKCS5); okvCryptoContextSetIV(env, crypto_context, iv, ivl); encrypt_response = okvEncryptResponseCreate(env); okvEncrypt(env, uid, data, datal, crypto_context, encrypt_response); if (okvErrGetNum(env)) { printf("Error while performing the encryption operation.\n"); } memset(encrypted_data, 0, encrypted_datal); okvCryptoResponseGetEncryptedData(env, encrypt_response, encrypted_data, &encrypted_datal); printf("Successfully encrypted the data\n"); printf("\tEncrypted Data Length: %d\n", encrypted_datal); printf("\tEncrypted Data: %s\n", encrypted_data); okvCryptoContextFree(env, &crypto_context); okvEncryptResponseFree(env, &encrypt_response);
関連項目
- okvCryptoContextCreate
- okvCryptoContextFree
- okvCryptoContextGetAuthEncryptionAdditionalData
- okvCryptoContextGetAuthEncryptionTag
- okvCryptoContextGetBlockCipherMode
- okvCryptoContextGetIV
- okvCryptoContextGetPadding
- okvCryptoContextGetRandomIV
- okvCryptoContextSetAuthEncryptionAdditionalData
- okvCryptoContextSetAuthEncryptionTag
- okvCryptoContextSetBlockCipherMode
- okvCryptoContextSetIV
- okvCryptoContextSetPadding
- okvCryptoContextSetRandomIV
- okvCryptoResponseGetAuthEncryptionTag
- okvCryptoResponseGetEncryptedData
- okvCryptoResponseGetIV
- okvDecrypt
- okvEncryptResponseCreate
- okvEncryptResponseFree
11.1.9 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.10 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.11 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.12 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.13 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.14 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.15 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.16 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.17 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.18 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.19 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.20 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.21 okvQueryCapability
okvQueryCapability
により、KMIPの問合せ操作を実装します。
カテゴリ
KMIP API
用途
okvQueryCapability
により、KMIPの問合せ操作を実装します。
OKVDEF_QUERY_OPERATIONS
OKVDEF_QUERY_OBJECTS
OKVDEF_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.22 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.23 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.24 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.25 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.26 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.27 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.28 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.29 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.30 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.31 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)); } }