bea ホーム | 製品 | dev2dev | support | askBEA
BEA Logo Tuxedo
 ドキュメントのダウンロード   サイトマップ   用語集 
検索
0

Tuxedo C リファレンス

 Previous Next Contents View as PDF  

tpenvelope(3c)

名前

tpenvelope()−型付きメッセージ・バッファに関連付けられているデジタル署名と暗号化情報へのアクセス

形式

#include <atmi.h> 
int tpenvelope(char *data, long len, int occurrence, TPKEY *outputkey, long *status, char *timestamp, long flags)

機能説明

tpenvelope() は、型付きメッセージ・バッファに関連付けられている以下のデジタル署名と暗号化情報へのアクセスを提供します。

署名および暗号化の情報は、送信プロセスと受信プロセスのどちらからも利用できます。送信プロセスでは、デジタル署名と暗号化の情報は普通は保留状態にあり、メッセージが送信されるまで待機しています。受信プロセスでは、デジタル署名が確認され、暗号化と解読も既に行われています。解読または署名の確認に失敗した場合、メッセージの配信が行われない可能性があります。この場合、受信プロセスはメッセージ・バッファを受け取ることができないため、メッセージ・バッファの情報が伝わりません。

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 でない場合、次のいずれかの状態に設定されます。

TPSIGN_PENDING

対応する秘密鍵に関連付けられている署名者プリンシパルの代わりにデジタル署名が要求され、このプロセスからメッセージ・バッファが伝送される際にデジタル署名が生成されます。

TPSIGN_OK

デジタル署名が確認されました。

TPSIGN_TAMPERED_MESSAGE

メッセージ・バッファの内容が変更されたため、デジタル署名が無効です。

TPSIGN_TAMPERED_CERT

署名者のデジタル証明書が変更されたため、デジタル署名が無効です。

TPSIGN_REVOKED_CERT

署名者のデジタル証明書が取り消されたため、デジタル署名が無効です。

TPSIGN_POSTDATED

デジタル署名のタイムスタンプが極端に先であるため、デジタル署名が無効です。

TPSIGN_EXPIRED_CERT

署名者のデジタル証明書の期限が切れたため、デジタル署名が無効です。

TPSIGN_EXPIRED

デジタル署名のタイムスタンプが古すぎるため、デジタル署名が無効です。

TPSIGN_UNKNOWN

署名者のデジタル証明書を発行した認証局 (CA) で不明のため、デジタル署名が無効です。

TPSEAL_PENDING

対応する公開鍵に関連付けられている受信者プリンシパルに対して暗号化 (封印) が要求されており、このプロセスからメッセージ・バッファが伝送されるときに暗号化されます。

TPSEAL_OK

暗号化エンベロープが有効です。

TPSEAL_TAMPERED_CERT

受信者のデジタル証明書が変更されているため、暗号化エンベロープが無効です。

TPSEAL_REVOKED_CERT

受信者のデジタル証明書が取り消されたため、暗号化エンベロープが無効です。

TPSEAL_EXPIRED_CERT

受信者のデジタル証明書の期限が切れたため、暗号化エンベロープが無効です。

TPSEAL_UNKNOWN

受信者のデジタル証明書を発行した CA が不明のため、暗号化エンベロープが無効です。

timestamp 出力パラメータには、デジタル署名が生成されたマシンのローカル・クロックに従ったタイムスタンプが含まれています。この値の整合性は、関連付けられているデジタル署名によって保護されています。timestamp によって示されるメモリ位置は、YYYYMMDDHHMMSS 形式の NULL で終了する署名時間です。ここで YYYY は年、MM は月、DD は日、HH は時間、MM は分、SS は秒を表します。timestamp は NULL でもかまいませんが、この場合値は返されません。暗号化 (封印) にはタイムスタンプは含まれず、timestamp によって示されるメモリ位置は変わりません。

flags パラメータは、次のいずれかの値に設定できます。

戻り値

異常終了すると、この関数は -1 を返し、tperrno を設定してエラー条件を示します。

エラー

[TPEINVAL]

無効な引数が指定されました。たとえば、data の値が NULL になっているか、または flags に割り当てられた値が認識されません。

[TPENOENT]

この occurrence は存在しません。

[TPESYSTEM]

エラーが発生しました。詳細については、システムのエラー・ログ・ファイルを参照してください。

関連項目

tpkey_close(3c)tpkey_getinfo(3c)tpkey_open(3c)tpseal(3c)tpsign(3c)

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy