|
|
tpkey_open(3c)
名前
tpkey_open()-デジタル署名の生成、メッセージの暗号化、またはメッセージの解読のためのキー・ハンドルのオープン
形式
#include <atmi.h>
int tpkey_open(TPKEY *hKey, char *principal_name, char *location,
char *identity_proof, long proof_len, long flags)
機能説明
tpkey_open() は、呼び出し側のプロセスからキー・ハンドルを使用できるようにします。キー・ハンドルは、特定のプリンシパルのキーとその関連情報を表します。
キーは、以下のうち 1 つまたは複数の目的に使用できます。
プリンシパル名と TPKEY_SIGNATURE または TPKEY_AUTOSIGN フラグを設定して tpkey_open() を呼び出すと、そのプリンシパルの秘密鍵とデジタル証明書に対するハンドルが返されます。
署名の検証には tpkey_open() を呼び出す必要はありません。この検証プロセスでは、デジタル署名付きメッセージが添付されたデジタル証明書に指定されている公開鍵を使用して署名が検証されます。
プリンシパル名と TPKEY_ENCRYPT または TPKEY_AUTOENCRYPT フラグを設定して tpkey_open() を呼び出すと、プリンシパルのデジタル証明書を介して、プリンシパルの公開鍵に対するハンドルが返されます。
プリンシパルの名前と TPKEY_DECRYPT フラグを使って tpkey_open() を呼び出すと、プリンシパルの秘密鍵とデジタル証明書に対するハンドルが返されます。
tpkey_open() によって返されたキー・ハンドルは *hKey に格納されますが、値にヌルを使用することはできません。
principal_name 入力パラメータは、キーの所有者の ID を指定します。principal_name の値がヌル・ポインタまたは空の文字列の場合、デフォルト ID が使用されます。デフォルト ID は、現在のログイン・セッション、現在のオペレーティング・システムのアカウント、またはローカル・ハードウェア・デバイスなど別の属性に基づいています。
キーのファイル位置は、location パラメータに渡されます。基本となるキー管理プロバイダが位置を示すパラメータを必要としない場合、このパラメータの値はヌルを使用できます。
principal_name の ID を認証するには、パスワードやパス・フレーズなどの証明資料が必要になります。証明資料が必要な場合は、identity_proof によって資料を参照する必要があります。証明資料が不要な場合、このパラメータの値はヌルでかまいません。
証明資料の長さ (バイト) は、proof_len で指定します。proof_len が 0 の場合identity_proof はヌルで終了する文字列と見なされます。
キーの操作モードに必要なキー・アクセスのタイプは、flags パラメータで指定します。
これらのフラグは 1 つまたは複数を組み合わせて使用することができます。キーを暗号化のみに使用する場合 (TPKEY_ENCRYPT)、identity_proof は必要ないのでヌルに設定できます。
戻り値
正常終了すると、*hKey はこのキーを表す値に設定され、tpsign() や tpseal() などの関数で使用できるようになります。
異常終了すると、この関数は -1 を返し、tperrno() を設定してエラー条件を示します。
エラー
関連項目
tpkey_close(3c)、tpkey_getinfo(3c)、tpkey_setinfo(3c)
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|