Interstage Application Server リファレンスマニュアル(API編) |
目次
索引
![]() ![]() |
第1章 C言語インタフェース | > 1.20 Smart Repositoryインタフェース | > 1.20.1 セションのオープンとクローズインタフェース |
ldapssl_init
#include "idldap.h" LDAP *ldapssl_init( const char *hostname, int portno, SSLENV *sslenv );
この関数は、SSLを使用して、LDAPのセションをオープンします。サーバとの通信を安全なものとすることができます。
これ以降に呼び出す関数は、ここで取得したセションハンドルをパラメタに指定します。セションハンドルは、そのセションをクローズするまで有効です。
認証はDNとパスワードを使用して行われます。簡易認証については、“リポジトリサーバとのユーザ認証インタフェース”を参照してください。
なお、この関数はスレッドアンセーフです。
【SSLENV構造体のメンバの説明】
使用するSSLプロトコルの種類を指定します。
省略時(0指定時)は、SSL V2プロトコルとみなされます。これ以外の値を指定した場合は、SSLを使用しないものとして処理されます(ldap_init()と同じ処理となります)。
証明書の検証を行うかどうかの指定を行います。
これ以外の値を指定した場合は、以下の値が指定されたものとみなされます。
SSLで使用する暗号化の方法を以下から選択して、暗号化アルゴリズムを示す文字列のアドレスで指定します。暗号化の方法を複数指定する場合には、“:”で区切って指定します。
通信相手となるSmart Repositoryサーバが使用するSSL定義と同じ設定としてください。
SSLプロトコルの種類(ssl_version)に“2”を指定した場合、以下の値が指定可能です。
暗号化アルゴリズム |
説明 |
---|---|
"DES-CBC3-MD5" |
168bitのトリプルDES暗号,MD5 MAC |
"RC4-MD5" |
128bitのRC4暗号,MD5 MAC |
"RC2-MD5" |
128bitのRC2暗号,MD5 MAC |
"DES-CBC-MD5" |
56bitのDES暗号,MD5 MAC |
"EXP-RC4-MD5" |
40bitのRC4暗号,MD5 MAC |
"EXP-RC2-MD5" |
40bitのRC2暗号,MD5 MAC |
SSLプロトコルの種類(ssl_version)に“3”を指定した場合、以下の値が指定可能です。
暗号化アルゴリズム |
説明 |
---|---|
"RSA-SC2000-256-SHA" |
256bitのSC2000暗号,SHA-1 MAC |
"RSA-AES-256-SHA" |
256bitのAES暗号,SHA-1 MAC |
"RSA-SC2000-128-SHA" |
128bitのSC2000暗号,SHA-1 MAC |
"RSA-AES-128-SHA" |
128bitのAES暗号,SHA-1 MAC |
"RSA-3DES-SHA" |
168bitのトリプルDES暗号,SHA-1 MAC |
"RSA-RC4-MD5" |
128bitのRC4暗号,MD5 MAC |
"RSA-RC4-SHA" |
128bitのRC4暗号,SHA-1 MAC |
"RSA-DES-SHA" |
56bitのDES暗号,SHA-1 MAC |
"RSA-EXPORT-RC4-MD5" |
40bitのRC4暗号,MD5 MAC |
"RSA-EXPORT-RC2-MD5" |
40bitのRC2暗号,MD5 MAC |
"RSA-NULL-MD5" |
暗号なし,SHA-1 MAC |
"RSA-NULL-SHA" |
暗号なし,MD5 MAC |
Interstage Application Serverでサポートしている暗号化方式の種類を以下に示します。
MACはメッセージ認証符号です。
省略(NULLを指定)した場合は、SSLプロトコルの種類(ssl_version)の指定により、以下の値が指定されたものと見なします。以下の説明では、表現上、暗号化の方法ごとに改行しています。
スロット情報ディレクトリのアドレスを指定します(ディレクトリのパス名をフルパスで指定します)。証明書/鍵管理環境の作成時に指定したスロット情報ディレクトリを指定してください。
トークンラベルのアドレスを指定します。証明書/鍵管理環境の作成時に指定したトークンラベルを指定してください。
ユーザPINのアドレスを指定します。証明書/鍵管理環境の作成時に指定したユーザPINを指定してください。
運用管理ディレクトリのアドレスを指定します(ディレクトリのパス名をフルパスで指定します)。証明書/鍵管理環境の作成時に指定した運用管理ディレクトリを指定してください。
ユーザ証明書ニックネームのアドレスを指定します。省略(NULLを指定)した場合は、証明書管理に登録されている自分の証明書がすべて指定されたものとみなします。ユーザ証明書の登録時に指定したユーザ証明書ニックネームを指定してください。
SSLエラーコードが設定されます。必ず0で初期化する必要があります。
SSLエラー詳細コードが設定されます。必ず0で初期化する必要があります。
SSLにおけるタイマー(秒単位)を設定します。0を指定した場合は、タイマーが3600秒となります。リポジトリサーバの応答に対する最大の待ち時間に使用されます。
SSLライブラリの保守コードが設定されます。
この関数は、復帰値として以下の値を返します。
正常終了の場合、セションハンドルには獲得したセションハンドルへのポインタが通知されます。
異常終了の場合、以下の原因が考えられます。
sslenvパラメタで指定するSSLENV構造体には、ldap_unbind/ldap_unbind_sで発生したSSLライブラリのエラーコードも設定されます。このため、セションハンドルの解放が完了するまでは、sslenvパラメタで指定した領域を解放しないでください。
ldapssl_init()で発生したSSLライブラリのエラーコードは、ldapssl_error()で参照することができません。そのため、SSLENV構造体のメンバ(ssl_errとssl_err_detail)の値でチェックする必要があります。
オープンした1つのセションを複数のスレッドで共有し、各スレッドからLDAP要求を行うことはできません。スレッドを使用しLDAP要求を行う場合、各スレッドでldapssl_init()で獲得したセションを使用し、それぞれのスレッドからLDAP要求をしてください。
ldapssl_init()はスレッドアンセーフ関数です。この関数を複数のスレッドから同時に呼び出す際は、アプリケーション側で各スレッド間の排他処理を行ってください。排他を行わない場合、動作の保証はできません。
同一プロセス内で異なる証明書/鍵管理環境を使用しないでください。
目次
索引
![]() ![]() |