bea ホーム | 製品 | dev2dev | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > Tuxedo > Tuxedo C リファレンス > セクション 3c - C 関数 |
Tuxedo C リファレンス
|
名前
tpenvelope()−型付きメッセージ・バッファに関連付けられているデジタル署名と暗号化情報へのアクセス
形式
#include <atmi.h>
int tpenvelope(char *data, long len, int occurrence, TPKEY *outputkey, long *status, char *timestamp, long flags)
機能説明
tpenvelope() は、型付きメッセージ・バッファに関連付けられている以下のデジタル署名と暗号化情報へのアクセスを提供します。
送信プロセスがメッセージ・バッファのデジタル署名要求を登録する場合は、tpsign() を呼び出して明示的に登録するか、TPKEY_AUTOSIGN フラグを指定した tpkey_open() を呼び出して暗黙的に登録します。
メッセージ・バッファが送信される直前に、各暗号化登録要求に対して、公開鍵ソフトウェアがデジタル署名を生成し、メッセージ・バッファにアタッチします。デジタル署名によって、受信プロセスはメッセージの署名者 (発信元) を確認することができます。
送信プロセスがメッセージ・バッファの暗号化 (封印) 要求を登録する場合、tpseal() を呼び出して明示的に登録するか、TPKEY_AUTOENCRYPT フラグを指定した tpkey_open() を呼び出して暗黙的に登録します。
公開鍵ソフトウェアは、メッセージ・バッファが送信される直前に、各暗号化登録要求に対して、メッセージの内容を暗号化し、暗号化エンベロープをメッセージ・バッファに添付します。暗号化エンベロープにより、受信プロセスはメッセージを解読することができます。
署名および暗号化の情報は、送信プロセスと受信プロセスのどちらからも利用できます。送信プロセスでは、デジタル署名と暗号化の情報は普通は保留状態にあり、メッセージが送信されるまで待機しています。受信プロセスでは、デジタル署名が確認され、暗号化と解読も既に行われています。解読または署名の確認に失敗した場合、メッセージの配信が行われない可能性があります。この場合、受信プロセスはメッセージ・バッファを受け取ることができないため、メッセージ・バッファの情報が伝わりません。
data は、(1) 以前 tpalloc() を呼び出すプロセスによって割り当てられたメッセージ・バッファ、または (2) システムによって受信プロセスに渡されたメッセージ・バッファのうち、いずれかの有効な型付きメッセージ・バッファを指している必要があります。メッセージ・バッファが自己記述型の場合、len は無視されます (0 でかまいません)。それ以外の場合、len には data 内のデータの長さが格納されている必要があります。
デジタル署名登録要求、デジタル署名、暗号化登録要求、およびメッセージ・バッファに関連付けられている暗号化エンベロープの複数のオカレンスが同時に存在することがあります。これらのオカレンスは順番に格納され、最初の項目が 0 位置に、以降の項目は 0 に続く連続する位置に格納されます。occurrence 入力パラメータは、要求された項目を示します。occurrence の値が最後の項目の位置を過ぎると、tpenvelope() は TPENOENT エラー状態で異常終了します。TPENOENT が返されるまで、tpenvelope() を繰り返し呼び出してすべての項目を調べることができます。
デジタル署名登録要求、暗号化登録要求、または暗号化エンベロープに関連付けられたキーのハンドルは、outputkey を介して返されます。返されたキー・ハンドルは、tpkey_open() を呼び出してオープンされた元のキーの個別コピーです。PRINCIPAL 属性パラメータなどのキーのプロパティは、tpkey_getinfo() を呼び出して取得します。キー・ハンドル outputkey は、呼び出し元が tpkey_close() を呼び出して解放します。
注記 outputkey が NULL の場合、キー・ハンドルは返されません。
status 出力パラメータは、デジタル署名登録要求、デジタル署名、暗号化登録要求、または暗号化エンベロープの状態を報告します。ステータスの値が NULL でない場合、次のいずれかの状態に設定されます。
timestamp 出力パラメータには、デジタル署名が生成されたマシンのローカル・クロックに従ったタイムスタンプが含まれています。この値の整合性は、関連付けられているデジタル署名によって保護されています。timestamp によって示されるメモリ位置は、YYYYMMDDHHMMSS 形式の NULL で終了する署名時間です。ここで YYYY は年、MM は月、DD は日、HH は時間、MM は分、SS は秒を表します。timestamp は NULL でもかまいませんが、この場合値は返されません。暗号化 (封印) にはタイムスタンプは含まれず、timestamp によって示されるメモリ位置は変わりません。
flags パラメータは、次のいずれかの値に設定できます。
戻り値
異常終了すると、この関数は -1 を返し、tperrno を設定してエラー条件を示します。
エラー
関連項目
tpkey_close(3c)、tpkey_getinfo(3c)、tpkey_open(3c)、tpseal(3c)、tpsign(3c)
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |