#include <stdio.h>
#include <OpenSOAP/Envelope.h>
マクロ定義 | |
#define | OPENSOAP_HA_MD2 (1) /* MD2 */ |
MD2ハッシュアルゴリズム定義. | |
#define | OPENSOAP_HA_MD4 (2) /* MD4 */ |
MD4ハッシュアルゴリズム定義. | |
#define | OPENSOAP_HA_MD5 (3) /* MD5 */ |
MD5ハッシュアルゴリズム定義. | |
#define | OPENSOAP_HA_MDC2 (4) /* MDC2 */ |
MDC2ハッシュアルゴリズム定義. | |
#define | OPENSOAP_HA_RIPEMD (5) /* RIPEMD */ |
RIPEMD160ハッシュアルゴリズム定義. | |
#define | OPENSOAP_HA_SHA (6) /* SHA */ |
SHAハッシュアルゴリズム定義. | |
#define | OPENSOAP_CA_OWNER_LEN (1024) |
認証局データベースにおける所有者名の最大長さ. | |
#define | OPENSOAP_CERT_DATE_LEN (14) |
電子証明書の長さ. | |
型定義 | |
typedef tagOpenSOAPSecCert | OpenSOAPSecCert |
OpenSOAPSecCert 構造体型定義. | |
typedef OpenSOAPSecCert * | OpenSOAPSecCertPtr |
OpenSOAPSecCert ポインタ型定義. | |
typedef tagOpenSOAPCARec | OpenSOAPCARec |
OpenSOAPCARec 構造体型定義. | |
typedef OpenSOAPCARec * | OpenSOAPCARecPtr |
OpenSOAPCARec ポインタ型定義. | |
関数 | |
int | OpenSOAPSecGenerateRSAKeys (const unsigned char *szSeedPhrase, FILE *fpPrivKey, FILE *fpPubKey) |
秘密鍵と公開鍵のペアを作成し、秘密鍵を fpPrivKey に、公開鍵を fpPubKey に書き込みます。. | |
int | OpenSOAPSecGenerateRSAKeysToFile (const unsigned char *szSeedPhrase, const char *szPrivKeyFileName, const char *szPubKeyFileName) |
秘密鍵と公開鍵のペアを作成し、秘密鍵を szPrivKeyFileNameに, 公開鍵を szPubKeyFileName で示すファイルに書き込みます。. | |
int | OpenSOAPSecEncWithStream (OpenSOAPEnvelopePtr env, FILE *fpPubKey) |
Body内の下記条件に該当する属性を持つ要素全てに対し、その値をfpPubKeyにて与えられるRSA公開鍵を用いて暗号化します。. | |
int | OpenSOAPSecEncWithFile (OpenSOAPEnvelopePtr env, const char *szPubKName) |
公開鍵の指定を szPubKName で示されるファイル名とする点を除いて OpenSOAPSecEncWithStream() と同様です。 | |
int | OpenSOAPSecDecWithStream (OpenSOAPEnvelopePtr env, FILE *fpPrivKey) |
Body内の下記条件に該当する属性を持つ要素全てに対し、その値をfpPrivKeyにて与えられるRSA秘密鍵を用いて復号化します。. | |
int | OpenSOAPSecDecWithFile (OpenSOAPEnvelopePtr env, const char *szPrivKName) |
秘密鍵の指定を szPrivKName で示されるファイル名とする点を除いて OpenSOAPSecDecWithStream() と同様です。. | |
int | OpenSOAPSecAddSignWithStream (OpenSOAPEnvelopePtr env, int iType, FILE *fpPrivKey, OpenSOAPStringPtr name) |
Body部全体に対するRSA電子署名を作成し、ヘッダ部に付加します。署名作成に当たっては、fpPrivKey で与えれる秘密鍵を利用します。. | |
int | OpenSOAPSecAddSignWithFile (OpenSOAPEnvelopePtr env, int iType, const char *szPrivKName, OpenSOAPStringPtr name) |
秘密鍵の指定を szPrivKName で示されるファイル名とする点を除いて OpenSOAPSecAddSignWithStream() と同様です。. | |
int | OpenSOAPSecCntSign (const OpenSOAPEnvelopePtr env, int *pnSig) |
envにて与えられるエンベロープに対し、現在付加されている署名の数を取得し、pnSigが指す領域に格納します。 | |
int | OpenSOAPSecGetSignedByList (OpenSOAPEnvelopePtr env, int nCntMax, OpenSOAPStringPtr list[], int *pnCntPacked) |
署名者リストを取得します。呼出側がnCntMax 個だけ list で示す結果格納領域を準備します。pnCntPackedで示した領域に取得した個数が格納されます。(最大で nCntMax 個) | |
int | OpenSOAPSecVerifySignWithStream (OpenSOAPEnvelopePtr env, FILE *fpPubKey) |
Body部全体に対するRSA電子署名を検証します。. | |
int | OpenSOAPSecVerifySignWithFile (OpenSOAPEnvelopePtr env, const char *szPubKName) |
公開鍵の指定を szPubKName で示されるファイル名とする点を除いて OpenSOAPSecVerifySignWithStream() と同様です。 | |
int | OpenSOAPSecCertCreateWithStream (const char *szPublish, FILE *fpPrivKey, int iHashType, const OpenSOAPCARecPtr pRec, FILE *fpCert) |
電子証明書を作成する。. | |
int | OpenSOAPSecCertCreateWithFile (const char *szPublish, const char *szPrivKeyFile, int iHashType, const OpenSOAPCARecPtr pRec, const char *szCertName) |
秘密鍵と電子証明書をそれぞれファイル名指定とする(szPrivKeyFile, szCertName)点を除いてOpenSOAPSecCertCreateWithStream() と同様です。. | |
int | OpenSOAPSecCertLoadFromMem (size_t sizArea, const unsigned char *pucArea, OpenSOAPSecCertPtr *ppCert) |
pucArea で示された sizArea の領域から電子証明書をロードし、ppCert の指す領域に格納します。 | |
int | OpenSOAPSecCertLoad (const char *szName, OpenSOAPSecCertPtr *ppCert) |
ロード元が szName で示される領域である点を除いて、 OpenSOAPSecCertLoadFromMem() と同様です。 | |
int | OpenSOAPSecCertFree (OpenSOAPSecCertPtr ppCert) |
pCertで与えられた電子証明書の領域を開放します。 | |
int | OpenSOAPSecCertVerifyWithStream (FILE *fpCert, FILE *fpPubKey) |
指定された公開鍵を利用して、電子証明書の署名を検証します。 | |
int | OpenSOAPSecCertVerifyWithFile (const char *szCertName, const char *szPubKeyName) |
指定された公開鍵を利用して、電子証明書の署名を検証します。 | |
int | OpenSOAPSecCertGetPublisherName (OpenSOAPSecCertPtr pCert, char **pszName) |
発行者名を pszName が指す領域に設定します。. | |
int | OpenSOAPSecCertGetSerialNo (OpenSOAPSecCertPtr pCert, unsigned long *pulSerial) |
シリアル番号を pulSerial が指す領域に格納します。 | |
int | OpenSOAPSecCertGetOwnerName (OpenSOAPSecCertPtr pCert, char **pszName) |
所有者の名前を取得します。 | |
int | OpenSOAPSecCertGetEndDate (OpenSOAPSecCertPtr pCert, char **pszDate) |
証明書の有効期限を、年月日時分秒の順に、年のみ4桁、その他2桁とした文字列で pszDate が示す領域に設定します。 | |
int | OpenSOAPSecCertGetPubKey (OpenSOAPSecCertPtr pCert, const char *szSaveName) |
電子証明書内の公開鍵を取得し、 szSaveName で示すファイルに格納します。. | |
int | OpenSOAPSecDecodeKeyFile (FILE *fp, unsigned long *pulLenOut, unsigned char **ppucDecode) |
fpにて与えられる鍵ファイルをバイナリ化します。 | |
int | OpenSOAPSecCABrowseRec (const OpenSOAPCARecPtr pRec, FILE *fpOut) |
OpenSOAPSecCABrowse()を、対象を1レコードとしたものです。. | |
int | OpenSOAPSecCABrowse (FILE *fpOut) |
現在のCA-DBの全内容をfpOutに対しブラウズ出力します。1行に対し、1レコード分出力します。 | |
int | OpenSOAPSecCARegist (const char *szNameOwner, const char *szTermDate, size_t sizPubkey, const unsigned char *szPubKey, unsigned long *pulSerialNo) |
公開鍵を登録します。以下に示す値を設定します。 | |
int | OpenSOAPSecCAInvalidate (const char *szNameOwner, unsigned long ulSerial) |
所有者名が szNameOwner で、シリアル番号が ulSerial であるレコードを失効とします。 | |
int | OpenSOAPSecCASearchRecords (const char *szNameOwner, int *pnRec, long **pplIdxs) |
szNameOwner で指定した所有者名に該当する全てのレコードを検索し、その数を pnRec が指す領域に格納します。 | |
int | OpenSOAPSecCASearchOneRecord (const char *szNameOwner, OpenSOAPCARecPtr *ppRec) |
szNameOwner で指定した所有者名に該当するレコードを1個検索し、 ppRec が指す領域に格納します。 | |
int | OpenSOAPSecCAGetRecord (long lIdx, OpenSOAPCARecPtr *ppRec) |
lIdxで示したレコードを取得し、 ppRec が指す領域に格納します。 | |
int | OpenSOAPSecCAFreeRecord (OpenSOAPCARecPtr pRec) |
pRecで与えられたレコードの領域を開放する。 | |
int | OpenSOAPSecCARemoveRecord (unsigned long ulSerial) |
シリアル番号 ulSerial を持つレコードをデータベースから完全に削除します。 |
|
認証局データベースにおける所有者名の最大長さ. (1024) |
|
電子証明書の長さ. (14) |
|
MD2ハッシュアルゴリズム定義. (1) |
|
MD4ハッシュアルゴリズム定義. (2) |
|
MD5ハッシュアルゴリズム定義. (3) |
|
MDC2ハッシュアルゴリズム定義. (4) |
|
RIPEMD160ハッシュアルゴリズム定義. (5) |
|
SHAハッシュアルゴリズム定義. (6) |
|
秘密鍵の指定を szPrivKName で示されるファイル名とする点を除いて OpenSOAPSecAddSignWithStream() と同様です。.
|
|
Body部全体に対するRSA電子署名を作成し、ヘッダ部に付加します。署名作成に当たっては、fpPrivKey で与えれる秘密鍵を利用します。.
|
|
現在のCA-DBの全内容をfpOutに対しブラウズ出力します。1行に対し、1レコード分出力します。
1行には次の情報群が順に出力されます。
|
|
OpenSOAPSecCABrowse()を、対象を1レコードとしたものです。.
|
|
pRecで与えられたレコードの領域を開放する。
|
|
lIdxで示したレコードを取得し、 ppRec が指す領域に格納します。
|
|
所有者名が szNameOwner で、シリアル番号が ulSerial であるレコードを失効とします。 本処理では、レコードの削除までは行わず、失効されたレコード自体はデータベースに残ります。
|
|
公開鍵を登録します。以下に示す値を設定します。
(a)szNameOwner
|
|
シリアル番号 ulSerial を持つレコードをデータベースから完全に削除します。 本関数は、レコード自体は残される OpenSOAPSecCAInvalidate() とは異なることに注意のこと。
|
|
szNameOwner で指定した所有者名に該当するレコードを1個検索し、 ppRec が指す領域に格納します。 同一所有者のレコードが複数存在する場合は、最も有効期限が遅いレコードを取得します。
|
|
szNameOwner で指定した所有者名に該当する全てのレコードを検索し、その数を pnRec が指す領域に格納します。
また、pplIdxs が指す領域には、その数分のインデックス群(シリアル番号ではない)を格納する領域を確保し、
|
|
秘密鍵と電子証明書をそれぞれファイル名指定とする(szPrivKeyFile, szCertName)点を除いてOpenSOAPSecCertCreateWithStream() と同様です。.
|
|
電子証明書を作成する。.
以下のデータを受けて電子証明書を fpCert に書き込む。
|
|
pCertで与えられた電子証明書の領域を開放します。
|
|
証明書の有効期限を、年月日時分秒の順に、年のみ4桁、その他2桁とした文字列で pszDate が示す領域に設定します。
(例:"20020211120000") この領域は電子証明書内の領域を指すので開放しないこと。
|
|
所有者の名前を取得します。
|
|
電子証明書内の公開鍵を取得し、 szSaveName で示すファイルに格納します。. この公開鍵はASCII化されたものであって、本ライブラリで通常利用する公開鍵と同一の書式です。
|
|
発行者名を pszName が指す領域に設定します。. この領域は電子証明書内の領域を指すので開放しないこと。
|
|
シリアル番号を pulSerial が指す領域に格納します。
|
|
ロード元が szName で示される領域である点を除いて、 OpenSOAPSecCertLoadFromMem() と同様です。
|
|
pucArea で示された sizArea の領域から電子証明書をロードし、ppCert の指す領域に格納します。
|
|
指定された公開鍵を利用して、電子証明書の署名を検証します。 電子証明書、公開鍵にそれぞれ szCertName, szPubKeyName で示されるファイル名を与えます。
|
|
指定された公開鍵を利用して、電子証明書の署名を検証します。 電子証明書、公開鍵にそれぞれ fpCert, fpPubKey で示されるファイルポインタを与えます。
|
|
envにて与えられるエンベロープに対し、現在付加されている署名の数を取得し、pnSigが指す領域に格納します。
|
|
fpにて与えられる鍵ファイルをバイナリ化します。 バイナリ化後のデータサイズは pulLenOutの指す領域に書き込まれます。
|
|
秘密鍵の指定を szPrivKName で示されるファイル名とする点を除いて OpenSOAPSecDecWithStream() と同様です。.
|
|
Body内の下記条件に該当する属性を持つ要素全てに対し、その値をfpPrivKeyにて与えられるRSA秘密鍵を用いて復号化します。.
・属性名 : encrypt
|
|
公開鍵の指定を szPubKName で示されるファイル名とする点を除いて OpenSOAPSecEncWithStream() と同様です。
|
|
Body内の下記条件に該当する属性を持つ要素全てに対し、その値をfpPubKeyにて与えられるRSA公開鍵を用いて暗号化します。.
・属性名 : encrypt
|
|
秘密鍵と公開鍵のペアを作成し、秘密鍵を fpPrivKey に、公開鍵を fpPubKey に書き込みます。.
|
|
秘密鍵と公開鍵のペアを作成し、秘密鍵を szPrivKeyFileNameに, 公開鍵を szPubKeyFileName で示すファイルに書き込みます。.
|
|
署名者リストを取得します。呼出側がnCntMax 個だけ list で示す結果格納領域を準備します。pnCntPackedで示した領域に取得した個数が格納されます。(最大で nCntMax 個)
|
|
公開鍵の指定を szPubKName で示されるファイル名とする点を除いて OpenSOAPSecVerifySignWithStream() と同様です。
|
|
Body部全体に対するRSA電子署名を検証します。. 署名検証に当たっては、 fpPubKey で与えられる公開鍵を利用します。署名が複数ある場合は、最低1個が検証OKとなればOKとしています。
|