次の表に、いくつかの SASL インタフェースについての簡単な説明を示します。
表 E–1 クライアントとサーバーに共通する SASL 関数
機能 |
説明 |
---|---|
sasl_version |
SASL ライブラリのバージョン情報を取得します。 |
sasl_done |
SASL のすべての広域的状態を解放します。 |
sasl_dispose |
接続が完了したときに sasl_conn_t を破棄します。 |
sasl_getprop |
プロパティー (ユーザー名、セキュリティー層に関する情報など) を取得します。 |
sasl_setprop |
SASL プロパティーを設定します。 |
sasl_errdetail |
接続に関する最新のエラーから文字列を生成します。 |
sasl_errstring |
SASL エラーコードを文字列に変換します。 |
sasl_encode |
セキュリティー層を使用して送信するデータを符号化します。 |
sasl_encodev |
セキュリティー層を介して伝送するデータブロックを符号化します。入力パラメータとして iovec * を使用します。 |
sasl_listmech |
使用できる機構のリストを作成します。 |
sasl_global_listmech |
考えられるすべての機構の配列を戻します。このインタフェースは現在使用されていません。 |
sasl_seterror |
sasl_errdetail() によって戻されるエラー文字列を設定します。 |
sasl_idle |
アイドル期間中またはネットワークの往復中に計算を行うように saslib を設定します。 |
sasl_decode |
セキュリティー層を使用して受信したデータを復号化します。 |
表 E–2 クライアント専用の基本的な SASL 関数
機能 |
説明 |
---|---|
sasl_client_init |
クライアントプラグインをロードおよび初期化するために最初に 1 度だけ呼び出されます。 |
sasl_client_new |
クライアント接続を初期化します。sasl_conn_t コンテキストを設定します。 |
sasl_client_start |
接続に使用する機構を選択します。 |
sasl_client_step |
認証ステップを実行します。 |
表 E–3 サーバーの基本的な SASL 関数 (クライアントでは任意)
機能 |
説明 |
---|---|
sasl_server_init |
サーバープラグインをロードおよび初期化するために最初に 1 度だけ呼び出されます。 |
sasl_server_new |
サーバー接続を初期化します。sasl_conn_t コンテキストを設定します。 |
sasl_server_start |
認証の交換を開始します。 |
sasl_server_step |
認証交換ステップを実行します。 |
sasl_checkpass |
平文のパスフレーズを検査します。 |
sasl_checkapop |
APOP のチャレンジおよび応答を検査します。擬似 APOP 機構 (CRAM-MD5 機構に似ている) を使用します。省略可能。このインタフェースは現在使用されていません。 |
sasl_user_exists |
ユーザーが存在するかどうかを確認します。 |
sasl_setpass |
パスワードを変更します。ユーザーエントリを追加します (省略可能)。 |
sasl_auxprop_request |
補助プロパティーを要求します。 |
sasl_auxprop_getctx |
接続用の補助プロパティーコンテキストを取得します。 |
表 E–4 基本サービスを構成するための SASL 関数
機能 |
説明 |
---|---|
sasl_set_alloc |
記憶域割り当て関数を割り当てます。このインタフェースは現在使用されていません。 |
sasl_set_mutex |
相互排他関数を割り当てます。このインタフェースは現在使用されていません。 |
sasl_client_add_plugin |
クライアントプラグインを追加します。 |
sasl_server_add_plugin |
サーバープラグインを追加します。 |
sasl_canonuser_add_plugin |
ユーザーの正規化プラグインを追加します。 |
sasl_auxprop_add_plugin |
補助プロパティープラグインを追加します。 |
表 E–5 SASL ユーティリティー関数
機能 |
説明 |
---|---|
sasl_decode64 |
復号化に Base64 を使用します。 |
sasl_encode64 |
符号化に Base64 を使用します。 |
sasl_utf8verify |
文字列が有効な UTF-8 かどうかを確認します。 |
sasl_erasebuffer |
セキュリティーに気を配る必要があるバッファーまたはパスワードを消去します。実装では回復されにくい消去ロジックを使用することがあります。 |
表 E–6 SASL プロパティー関数
機能 |
説明 |
---|---|
prop_clear() |
値と要求をプロパティーコンテキストから消去します (要求は省略可能) |
prop_dispose() |
プロパティーコンテキストを破棄します |
prop_dup() |
既存の propctx の内容を複製して新しい propctx を作成します |
prop_erase() |
プロパティーの値を消去します |
prop_format() |
要求されたプロパティー名を文字列に書式設定します |
prop_get() |
コンテキストから propval 構造体の配列を戻します |
prop_getnames() |
プロパティー名のリストを指定して、struct propval の配列を埋めます |
prop_new() |
プロパティーコンテキストを作成します |
prop_request() |
プロパティー名を要求に追加します |
prop_set() |
プロパティー値をコンテキストに追加します |
prop_setvals() |
プロパティーの値を設定します |
sasl_auxprop_getctx() |
接続用の補助プロパティーコンテキストを取得します |
sasl_auxprop_request() |
補助プロパティーを要求します |
表 E–7 コールバックデータ型
コールバック |
説明 |
---|---|
sasl_getopt_t |
オプション値を取得します。クライアントでもサーバーでも使用されます。 |
sasl_log_t |
メッセージハンドラをロギングします。クライアントでもサーバーでも使用されます。 |
sasl_getpath_t |
機構を探すためのパスを取得します。クライアントでもサーバーでも使用されます。 |
sasl_verifyfile_t |
ファイルが SASL によって使用されるかどうかを確認します。クライアントでもサーバーでも使用されます。 |
sasl_canon_user_t |
ユーザー名の正規化関数。クライアントでもサーバーでも使用されます。 |
sasl_getsimple_t |
ユーザーと言語のリストを取得します。クライアントでのみ使用されます。 |
sasl_getsecret_t |
認証シークレットを取得します。クライアントでのみ使用されます。 |
sasl_chalprompt_t |
チャレンジを表示し、応答を入力するよう求めます。クライアントでのみ使用されます。 |
sasl_getrealm_t |
認証レルムを取得します。クライアントでのみ使用されます。 |
sasl_authorize_t |
ポリシーのコールバックを承認します。サーバーでのみ使用されます。 |
sasl_server_userdb_checkpass_t |
平文のパスワードを検証します。サーバーでのみ使用されます。 |
sasl_server_userdb_setpass_t |
平文のパスワードを設定します。サーバーでのみ使用されます。 |
表 E–8 SASL インクルードファイル
インクルードファイル |
コメント |
---|---|
sasl/saslplug.h | |
sasl/sasl.h |
プラグインの開発に必要です |
sasl/saslutil.h | |
sasl/prop.h |
表 E–9 SASL 戻りコード: 一般
戻りコード |
説明 |
---|---|
SASL_BADMAC |
整合性検査が失敗しました |
SASL_BADVERS |
機構のバージョンが一致しません |
SASL_BADPARAM |
指定されたパラメータが無効です |
SASL_BADPROT |
プロトコルが正しくありません。操作を取り消します |
SASL_BUFOVER |
バッファーがオーバーフローしました |
SASL_CONTINUE |
認証には別の手順が必要です |
SASL_FAIL |
一般的なエラー |
SASL_NOMECH |
機構がサポートされていません |
SASL_NOMEM |
メモリー不足のため、操作を完了できません |
SASL_NOTDONE |
交換の後期になるまで情報を要求できません |
SASL_NOTINIT |
SASL ライブラリが初期化されていません |
SASL_OK |
結果が正常です |
SASL_TRYAGAIN |
一時的に発生する障害 (弱い鍵など) |
表 E–10 SASL 戻りコード: クライアント専用
機能 |
説明 |
---|---|
SASL_BADSERV |
サーバーが相互認証ステップに失敗しました |
SASL_INTERACT |
ユーザーの操作が必要です |
SASL_WRONGMECH |
要求された機能が機構でサポートされていません |
表 E–11 SASL 戻りコード: サーバー専用
機能 |
説明 |
---|---|
SASL_BADAUTH |
認証エラー |
SASL_BADVERS |
バージョンがプラグインと一致していません |
SASL_DISABLED |
アカウントが無効です |
SASL_ENCRYPT |
機構を使用するには暗号化が必要です |
SASL_EXPIRED |
パスフレーズの有効期限が切れているため、リセットする必要があります |
SASL_NOAUTHZ |
承認エラー |
SASL_NOUSER |
ユーザーが見つかりません |
SASL_NOVERIFY |
ユーザーは存在するが、検査方法がありません |
SASL_TOOWEAK |
このユーザーに対して機構が弱すぎます |
SASL_TRANS |
使い捨て平文パスワードで、ユーザーに要求された機構が使用できるようになります |
SASL_UNAVAIL |
リモート認証サーバーが使用できません |
表 E–12 SASL 戻りコード – パスワード操作
機能 |
説明 |
---|---|
SASL_NOCHANGE |
指定された変更は必要ありません |
SASL_NOUSERPASS |
ユーザーが指定したパスワードは許可されていません |
SASL_PWLOCK |
パスフレーズがロックされています |
SASL_WEAKPASS |
セキュリティーポリシーに対してパスフレーズが弱すぎます |