メインページ | ファイル一覧 | ファイルメンバ

Security.h

OpenSOAP API セキュリティ処理. [詳細]

#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 OpenSOAPSecCertOpenSOAPSecCertPtr
 OpenSOAPSecCert ポインタ型定義.

typedef tagOpenSOAPCARec OpenSOAPCARec
 OpenSOAPCARec 構造体型定義.

typedef OpenSOAPCARecOpenSOAPCARecPtr
 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 を持つレコードをデータベースから完全に削除します。


説明

OpenSOAP API セキュリティ処理.

作者:
OpenSOAP Development Team

マクロ定義

#define OPENSOAP_CA_OWNER_LEN   (1024)
 

認証局データベースにおける所有者名の最大長さ.

(1024)

#define OPENSOAP_CERT_DATE_LEN   (14)
 

電子証明書の長さ.

(14)

#define OPENSOAP_HA_MD2   (1) /* MD2 */
 

MD2ハッシュアルゴリズム定義.

(1)

#define OPENSOAP_HA_MD4   (2) /* MD4 */
 

MD4ハッシュアルゴリズム定義.

(2)

#define OPENSOAP_HA_MD5   (3) /* MD5 */
 

MD5ハッシュアルゴリズム定義.

(3)

#define OPENSOAP_HA_MDC2   (4) /* MDC2 */
 

MDC2ハッシュアルゴリズム定義.

(4)

#define OPENSOAP_HA_RIPEMD   (5) /* RIPEMD */
 

RIPEMD160ハッシュアルゴリズム定義.

(5)

#define OPENSOAP_HA_SHA   (6) /* SHA */
 

SHAハッシュアルゴリズム定義.

(6)


関数

int OpenSOAPSecAddSignWithFile OpenSOAPEnvelopePtr  env,
int  iType,
const char *  szPrivKName,
OpenSOAPStringPtr  name
 

秘密鍵の指定を szPrivKName で示されるファイル名とする点を除いて OpenSOAPSecAddSignWithStream() と同様です。.

引数:
env OpenSOAPEnvelopePtr [in, out] ((|env|)) Envelope
iType int [in] ((|iType|)) ハッシュアルゴリズム (OPENSOAP_HA_*)
szPrivKName const char * [in] ((|szPrivKName|)) 秘密鍵 File Name
name OpenSOAPStringPtr [in] ((|name|)) 署名
戻り値:
エラーコード

int OpenSOAPSecAddSignWithStream OpenSOAPEnvelopePtr  env,
int  iType,
FILE *  fpPrivKey,
OpenSOAPStringPtr  name
 

Body部全体に対するRSA電子署名を作成し、ヘッダ部に付加します。署名作成に当たっては、fpPrivKey で与えれる秘密鍵を利用します。.

引数:
env OpenSOAPEnvelopePtr [in, out] ((|env|)) Envelope
iType int [in] ((|iType|)) ハッシュアルゴリズム (OPENSOAP_HA_*)
fpPrivKey FILE * [in] ((|fpPrivKey|)) 秘密鍵 File Stream
name OpenSOAPStringPtr [in] ((|name|)) 署名
戻り値:
エラーコード

int OpenSOAPSecCABrowse FILE *  fpOut  ) 
 

現在のCA-DBの全内容をfpOutに対しブラウズ出力します。1行に対し、1レコード分出力します。

1行には次の情報群が順に出力されます。
(a)シリアル番号
10進数10桁で表示される。シリアル番号はDB内でユニークな数値であり、一旦登録されると以降変更されることは無い。
(b)失効情報
そのレコードが失効している場合は、文字'*'が出力され、そうでない場合はスペースが出力される。
(c)所有者名称
括弧("[]")で囲まれた文字列として出力される。
(d)有効期限
年月日時分秒の順に、年のみ4桁、その他2桁で出力される。

<失効データの例>
0000000002*[Juventus] 20020211120000
<通常データの例>
0000000003 [A.C.Milan] 20020201120000

引数:
fpOut FILE * [in] ((|fpOut|)) Output Stream
戻り値:
エラーコード

int OpenSOAPSecCABrowseRec const OpenSOAPCARecPtr  pRec,
FILE *  fpOut
 

OpenSOAPSecCABrowse()を、対象を1レコードとしたものです。.

引数:
pRec const OpenSOAPCARecPtr [in] ((|pRec|)) レコード
fpOut FILE * [in] ((|fpOut|)) Output Stream
戻り値:
エラーコード

int OpenSOAPSecCAFreeRecord OpenSOAPCARecPtr  pRec  ) 
 

pRecで与えられたレコードの領域を開放する。

引数:
pRec OpenSOAPCARecPtr [in] ((|pRec|)) レコード
戻り値:
エラーコード

int OpenSOAPSecCAGetRecord long  lIdx,
OpenSOAPCARecPtr ppRec
 

lIdxで示したレコードを取得し、 ppRec が指す領域に格納します。

引数:
lIdx long [in] ((|lIdx|)) Index
ppRec OpenSOAPCARecPtr * [out] ((|ppRec|)) レコード
覚え書き:
取得したレコードは、使用後 OpenSOAPSecCAFreeRecord() を用いて開放すること。
戻り値:
エラーコード

int OpenSOAPSecCAInvalidate const char *  szNameOwner,
unsigned long  ulSerial
 

所有者名が szNameOwner で、シリアル番号が ulSerial であるレコードを失効とします。

本処理では、レコードの削除までは行わず、失効されたレコード自体はデータベースに残ります。

引数:
szNameOwner const char * [in] ((|szNameOwner|)) 所有者名
ulSerial unsigned long [in] ((|ulSerial|)) シリアル番号
戻り値:
エラーコード

int OpenSOAPSecCARegist const char *  szNameOwner,
const char *  szTermDate,
size_t  sizPubkey,
const unsigned char *  szPubKey,
unsigned long *  pulSerialNo
 

公開鍵を登録します。以下に示す値を設定します。

(a)szNameOwner
鍵の所有者名称(文字列)。文字列長は、最大 OPENSOAP_CA_OWNER_LEN - 1 とすること。
(b)szTermDate
有効期限を、年月日時分秒の順に、年のみ4桁、その他2桁とした文字列で指定する(例:"20020211120000")。
文字列長は14桁固定、末尾はNULL文字で終了すること。
(c)sizPubKey
公開鍵のデータ長(バイト数)。OpenSOAPSecDecodeKeyFile()を用いて、バイナリ化した後のデータに対する値とする。
(d)szPubKey
公開鍵データ(バイナリ)。

本関数が成功すると、pulSerialNoで示す領域に登録されたシリアル番号が返される。

引数:
szNameOwner const char * [in] ((|szNameOwner|)) 所有者名
szTermDate const char * [in] ((|szTermDate|)) 有効期限 ("YYYYMMDDHHMMSS")
sizPubkey size_t [in] ((|sizPubkey|)) 公開鍵のサイズ
szPubKey const unsigned char * [in] ((|szPubKey|)) 公開鍵
pulSerialNo unsigned long * [out] ((pulSerialNo|)) シリアル番号
戻り値:
エラーコード

int OpenSOAPSecCARemoveRecord unsigned long  ulSerial  ) 
 

シリアル番号 ulSerial を持つレコードをデータベースから完全に削除します。

本関数は、レコード自体は残される OpenSOAPSecCAInvalidate() とは異なることに注意のこと。

引数:
ulSerial unsigned long [in] ((|ulSerial|)) シリアル番号
戻り値:
エラーコード

int OpenSOAPSecCASearchOneRecord const char *  szNameOwner,
OpenSOAPCARecPtr ppRec
 

szNameOwner で指定した所有者名に該当するレコードを1個検索し、 ppRec が指す領域に格納します。

同一所有者のレコードが複数存在する場合は、最も有効期限が遅いレコードを取得します。

引数:
szNameOwner const char * [in] ((|szNameOwner|)) 所有者名
ppRec OpenSOAPCARecPtr * [out] ((|ppRec|)) レコード
覚え書き:
取得したレコードは、使用後 OpenSOAPSecCAFreeRecord() を用いて開放すること。
戻り値:
エラーコード

int OpenSOAPSecCASearchRecords const char *  szNameOwner,
int *  pnRec,
long **  pplIdxs
 

szNameOwner で指定した所有者名に該当する全てのレコードを検索し、その数を pnRec が指す領域に格納します。

また、pplIdxs が指す領域には、その数分のインデックス群(シリアル番号ではない)を格納する領域を確保し、
インデックス群を格納します。このそれぞれのインデックスから、OpenSOAPSecCAGetRecord() を利用することによって
実際のレコードを取得することが可能となります。

引数:
szNameOwner const char * [in] ((|szNameOwner|)) 所有者名
pnRec int * [out] ((|pnRec|)) レコード数
pplIdxs lomg ** [out] ((|pplIdxs|)) インデックス番号
覚え書き:
インデックス群の領域は、利用後 free() によって開放すること。
戻り値:
エラーコード

int OpenSOAPSecCertCreateWithFile const char *  szPublish,
const char *  szPrivKeyFile,
int  iHashType,
const OpenSOAPCARecPtr  pRec,
const char *  szCertName
 

秘密鍵と電子証明書をそれぞれファイル名指定とする(szPrivKeyFile, szCertName)点を除いてOpenSOAPSecCertCreateWithStream() と同様です。.

引数:
szPublish const char * [in] ((|szPublish|)) 発行者名
szPrivKeyFile const char * [in] ((|szPrivKeyFile|)) 秘密鍵ファイル名(発行者)
iHashType int [in] ((|iHashType|)) ハッシュアルゴリズム (OPENSOAP_HA_*)
pRec const OpenSOAPCARecPtr [in] ((|pRec|)) 認証局レコード
szCertName const char * [in] ((|szCertName|)) 電子証明書ファイル名
戻り値:
エラーコード

int OpenSOAPSecCertCreateWithStream const char *  szPublish,
FILE *  fpPrivKey,
int  iHashType,
const OpenSOAPCARecPtr  pRec,
FILE *  fpCert
 

電子証明書を作成する。.

以下のデータを受けて電子証明書を fpCert に書き込む。

(a) szPublish : 発行者名
(b) fpPrivKey : 発行者の秘密鍵ファイルのストリーム
(c) iHashType : 署名の際のハッシュアルゴリズム。以下から選択する
OPENSOAP_HA_MD5 : MD5アルゴリズム
OPENSOAP_HA_RIPEMD : RIPEMD160アルゴリズム
OPENSOAP_HA_SHA : SHAアルゴリズム
(d) pRec : 認証局データベースのレコード

引数:
szPublish const char * [in] ((|szPublish|)) 発行者名
fpPrivKey FILE * [in] ((|fpPrivKey|)) 秘密鍵(発行者)
iHashType int [in] ((|iHashType|)) ハッシュアルゴリズム (OPENSOAP_HA_*)
pRec const OpenSOAPRecPtr [in] ((|pRec|)) 認証局レコード
fpCert FILE * [out] ((|fpCert|)) 電子証明書ファイル名
戻り値:
エラーコード

int OpenSOAPSecCertFree OpenSOAPSecCertPtr  ppCert  ) 
 

pCertで与えられた電子証明書の領域を開放します。

引数:
ppCert OpenSOAPSecCertPtr * [in] ((|ppCert|)) Certificate
戻り値:
エラーコード

int OpenSOAPSecCertGetEndDate OpenSOAPSecCertPtr  pCert,
char **  pszDate
 

証明書の有効期限を、年月日時分秒の順に、年のみ4桁、その他2桁とした文字列で pszDate が示す領域に設定します。

(例:"20020211120000") この領域は電子証明書内の領域を指すので開放しないこと。
またNULL文字で終了していないことに注意のこと(文字列長は14桁固定です)。

引数:
pCert OpenSOAPSecCertPtr [in] ((|pCert|)) 電子証明書
pszDate char ** [out] ((|pszDate|)) 日付 (内部領域)
戻り値:
エラーコード

int OpenSOAPSecCertGetOwnerName OpenSOAPSecCertPtr  pCert,
char **  pszName
 

所有者の名前を取得します。

引数:
pCert OpenSOAPSecCertPtr [in] ((|pCert|)) 電子証明書
pszName char ** [out] ((|pszName|)) 所有者名 (内部領域)
戻り値:
エラーコード

int OpenSOAPSecCertGetPubKey OpenSOAPSecCertPtr  pCert,
const char *  szSaveName
 

電子証明書内の公開鍵を取得し、 szSaveName で示すファイルに格納します。.

この公開鍵はASCII化されたものであって、本ライブラリで通常利用する公開鍵と同一の書式です。

引数:
pCert OpenSOAPSecCertPtr [in] ((|pCert|)) 電子証明書ポインタ
szSaveName const char * [in] ((|szSaveName|)) 公開鍵ファイル名
戻り値:
エラーコード

int OpenSOAPSecCertGetPublisherName OpenSOAPSecCertPtr  pCert,
char **  pszName
 

発行者名を pszName が指す領域に設定します。.

この領域は電子証明書内の領域を指すので開放しないこと。

引数:
pCert OpenSOAPSecCertPtr [in] ((|pCert|)) 電子証明書
pszName char ** [out] ((|pszName|)) 発行者名 (内部領域)
戻り値:
エラーコード

int OpenSOAPSecCertGetSerialNo OpenSOAPSecCertPtr  pCert,
unsigned long *  pulSerial
 

シリアル番号を pulSerial が指す領域に格納します。

引数:
pCert OpenSOAPSecCertPtr [in] ((|pCert|)) 電子証明書
pulSerial unsigned long * [out] ((|pulSerial|)) シリアル番号
戻り値:
エラーコード

int OpenSOAPSecCertLoad const char *  szName,
OpenSOAPSecCertPtr ppCert
 

ロード元が szName で示される領域である点を除いて、 OpenSOAPSecCertLoadFromMem() と同様です。

引数:
szName const char * [in] ((|szName|)) ファイル名
ppCert OpenSOAPSecCertPtr * [out] ((|ppCert|)) 電子証明書
戻り値:
エラーコード

int OpenSOAPSecCertLoadFromMem size_t  sizArea,
const unsigned char *  pucArea,
OpenSOAPSecCertPtr ppCert
 

pucArea で示された sizArea の領域から電子証明書をロードし、ppCert の指す領域に格納します。

引数:
sizArea size_t [in] ((|sizArea|)) Input 領域サイズ
pucArea const unsigned char * [in] ((|pucArea|)) Input 領域ポインタ
ppCert OpenSOAPSecCertPtr * [out] ((|ppCert|)) 電子証明書
戻り値:
エラーコード

int OpenSOAPSecCertVerifyWithFile const char *  szCertName,
const char *  szPubKeyName
 

指定された公開鍵を利用して、電子証明書の署名を検証します。

電子証明書、公開鍵にそれぞれ szCertName, szPubKeyName で示されるファイル名を与えます。

引数:
szCertName const char * [in] ((|szCertName|)) 電子証明書 File Name
szPubKeyName const char * [in] ((|szPubKeyName|)) 公開鍵 File Name
戻り値:
エラーコード

int OpenSOAPSecCertVerifyWithStream FILE *  fpCert,
FILE *  fpPubKey
 

指定された公開鍵を利用して、電子証明書の署名を検証します。

電子証明書、公開鍵にそれぞれ fpCert, fpPubKey で示されるファイルポインタを与えます。

引数:
fpCert FILE * [in] ((|fpCert|)) 電子証明書 File Stream
fpPubKey FILE * [in] ((|fpPubKey|)) 公開鍵 File Stream
戻り値:
エラーコード

int OpenSOAPSecCntSign const OpenSOAPEnvelopePtr  env,
int *  pnSig
 

envにて与えられるエンベロープに対し、現在付加されている署名の数を取得し、pnSigが指す領域に格納します。

引数:
env const OpenSOAPEnvelopePtr [in] ((|env|)) OpenSOAP Envelope
pnSig int * [out] ((|pnSig|)) 署名数
戻り値:
エラーコード

int OpenSOAPSecDecodeKeyFile FILE *  fp,
unsigned long *  pulLenOut,
unsigned char **  ppucDecode
 

fpにて与えられる鍵ファイルをバイナリ化します。

バイナリ化後のデータサイズは pulLenOutの指す領域に書き込まれます。

引数:
fp FILE * [in] ((|fp|)) File Stream
pulLenOut unsigned long * [out] ((|pulLenOut|)) 出力データの長さ
ppucDecode unsigned char ** [out] ((|ppucDecode|)) バイナリ化データ
覚え書き:
バイナリ化されたデータは ppucDecode の指す領域に書き込まれます。バイナリ化されたデータは、利用後 free()をコールして開放すること。
戻り値:
エラーコード

int OpenSOAPSecDecWithFile OpenSOAPEnvelopePtr  env,
const char *  szPrivKName
 

秘密鍵の指定を szPrivKName で示されるファイル名とする点を除いて OpenSOAPSecDecWithStream() と同様です。.

引数:
env OpenSOAPEnvelopePtr [in] ((|env|)) Envelope
szPrivKName const char * [in] ((|szPrivKName|)) 秘密鍵 File Name
戻り値:
エラーコード

int OpenSOAPSecDecWithStream OpenSOAPEnvelopePtr  env,
FILE *  fpPrivKey
 

Body内の下記条件に該当する属性を持つ要素全てに対し、その値をfpPrivKeyにて与えられるRSA秘密鍵を用いて復号化します。.

・属性名 : encrypt
・namespace: http://opensoap.jp/auth/
・値 : True (boolean)

引数:
env OpenSOAPEnvelopePtr [in] ((|env|)) Envelope
fpPrivKey FILE * [in] ((|fpPrivKey|)) 秘密鍵 File Stream
戻り値:
エラーコード

int OpenSOAPSecEncWithFile OpenSOAPEnvelopePtr  env,
const char *  szPubKName
 

公開鍵の指定を szPubKName で示されるファイル名とする点を除いて OpenSOAPSecEncWithStream() と同様です。

引数:
env OpenSOAPEnvelopePtr [in, out] ((|env|)) Envelope
szPubKName const char * [in] ((|szPubKName|)) 公開鍵 File Name
戻り値:
エラーコード

int OpenSOAPSecEncWithStream OpenSOAPEnvelopePtr  env,
FILE *  fpPubKey
 

Body内の下記条件に該当する属性を持つ要素全てに対し、その値をfpPubKeyにて与えられるRSA公開鍵を用いて暗号化します。.

・属性名 : encrypt
・namespace: http://opensoap.jp/auth/
・値 : True (boolean)

引数:
env OpenSOAPEnvelopePtr [in, out] ((|env|)) Envelope
fpPubKey FILE * [in] ((|fpPubKey|)) 公開鍵 File Stream
戻り値:
エラーコード

int OpenSOAPSecGenerateRSAKeys const unsigned char *  szSeedPhrase,
FILE *  fpPrivKey,
FILE *  fpPubKey
 

秘密鍵と公開鍵のペアを作成し、秘密鍵を fpPrivKey に、公開鍵を fpPubKey に書き込みます。.

引数:
szSeedPhrase const unsigned char * [in] ((|szSeedPhrase|)) 鍵生成の際に内部的にランダム値を生成利用するための文字列
fpPrivKey FILE * [in] ((|fpPrivKey|)) RSA 秘密鍵 File Stream
fpPubKey FILE * [in] ((|fpPubKey|)) RSA 公開鍵 File Stream
戻り値:
エラーコード

int OpenSOAPSecGenerateRSAKeysToFile const unsigned char *  szSeedPhrase,
const char *  szPrivKeyFileName,
const char *  szPubKeyFileName
 

秘密鍵と公開鍵のペアを作成し、秘密鍵を szPrivKeyFileNameに, 公開鍵を szPubKeyFileName で示すファイルに書き込みます。.

引数:
szSeedPhrase const unsigned char * [in] ((|szSeedPhrase|)) 鍵生成の際に内部的にランダム値を生成利用するための文字列
szPrivKeyFileName const char * [in] ((|szPrivKeyFileName\)) 秘密鍵 File Name
szPubKeyFileName const char * [in] ((|szPrivKeyFileName\)) 公開鍵 File Name
戻り値:
エラーコード

int OpenSOAPSecGetSignedByList OpenSOAPEnvelopePtr  env,
int  nCntMax,
OpenSOAPStringPtr  list[],
int *  pnCntPacked
 

署名者リストを取得します。呼出側がnCntMax 個だけ list で示す結果格納領域を準備します。pnCntPackedで示した領域に取得した個数が格納されます。(最大で nCntMax 個)

引数:
env OpenSOAPEnvelopePtr [in] ((|env|)) OpenSOAP Envelope
nCntMax int [in] ((|nCntMax|)) 最大数
list[] OpenSOAPStringPtr [in, out] ((|list[]|)) 署名者リスト格納バッファ
pnCntPacked int * [out] ((|pnCntPacked|)) 個数格納バッファ
戻り値:
エラーコード

int OpenSOAPSecVerifySignWithFile OpenSOAPEnvelopePtr  env,
const char *  szPubKName
 

公開鍵の指定を szPubKName で示されるファイル名とする点を除いて OpenSOAPSecVerifySignWithStream() と同様です。

引数:
env OpenSOAPEnvelopePtr [in, out] ((|env|)) OpenSOAP Envelope
szPubKName const char * [in] ((|szPubKName||) 公開鍵 File Name
戻り値:
エラーコード

int OpenSOAPSecVerifySignWithStream OpenSOAPEnvelopePtr  env,
FILE *  fpPubKey
 

Body部全体に対するRSA電子署名を検証します。.

署名検証に当たっては、 fpPubKey で与えられる公開鍵を利用します。署名が複数ある場合は、最低1個が検証OKとなればOKとしています。

引数:
env OpenSOAPEnvelopePtr [in, out] ((|env|)) OpenSOAP Envelope
fpPubKey FILE * [in] ((|fpPubKey|)) 公開鍵 File Stream
戻り値:
エラーコード


OpenSOAPに対してMon Oct 18 18:29:47 2004に生成されました。 doxygen 1.3.6