which has some variation of writing in Japanese, as well as some typos. Submitted by: kano@na.rim.or.jp Approved by: kuriyama (mentor/implicitly)
159 lines
5.9 KiB
Groff
159 lines
5.9 KiB
Groff
.\" Copyright (c) 1996
|
|
.\" David L. Nugent. All Rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY DAVID L. NUGENT AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL DAVID L. NUGENT OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" %FreeBSD: src/lib/libskey/Attic/skey.3,v 1.8.2.2 2000/04/23 17:48:11 phantom Exp %
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.Dd December 22, 1996
|
|
.Dt SKEY 3
|
|
.Os
|
|
.Sh 名称
|
|
.Nm skeylookup ,
|
|
.Nm skeyverify ,
|
|
.Nm skeychallenge ,
|
|
.Nm skeyinfo ,
|
|
.Nm skeyaccess ,
|
|
.Nm skey_getpass ,
|
|
.Nm skey_crypt
|
|
.Nd S/Key パスワード制御テーブルアクセス用のライブラリルーチン
|
|
.Sh ライブラリ
|
|
.Lb libskey
|
|
.Sh 書式
|
|
.Fd #include <stdio.h>
|
|
.Fd #include <skey.h>
|
|
.Ft int
|
|
.Fn skeylookup "struct skey *mp" "const char *name"
|
|
.Ft int
|
|
.Fn skeyverify "struct skey *mp" "char *response"
|
|
.Ft int
|
|
.Fn skeychallenge "struct skey *mp" "const char *name" "char *challenge"
|
|
.Ft int
|
|
.Fn skeyinfo "struct skey *mp" "const char *name" "char *ss"
|
|
.Ft int
|
|
.Fn skeyaccess "char *user" "const char *port" "const char *host" "const char *addr"
|
|
.Ft char *
|
|
.Fn skey_getpass "const char *prompt" "struct passwd *pwd" "int pwok"
|
|
.Ft char *
|
|
.Fn skey_crypt "char *pp" "char *salt" "struct passwd *pwd" "int pwok"
|
|
.Sh 解説
|
|
これらのルーチンは、コンピュータシステムへのアクセスに使用される
|
|
S/Key 一時パスワードシステムをサポートします。
|
|
S/Key システム自体についての詳細は、
|
|
.Xr skey 1
|
|
を参照してください。
|
|
.Pp
|
|
.Pp
|
|
.Fn skeylookup
|
|
は、一時のパスワードデータベースでエントリを検出します。
|
|
処理が成功すると(指定の名前に対応するエントリが検出されると)、
|
|
呼び出し元によって渡された skey 構造が埋められ 0 が返されます。
|
|
ファイルの読み取り/書き込みポインタは検出されたレコードの先頭に配置されます。
|
|
指定の名前に対応するエントリが見つからない場合は、
|
|
ファイルの読み取り/書き込みポインタがファイルの末尾に配置され、
|
|
ルーチンは 1 を返します。
|
|
データベースが開けない場合、またはアクセスエラーが発生する場合、
|
|
.Fn skeylookup
|
|
は -1 を返します。
|
|
.Pp
|
|
.Fn skeyinfo
|
|
関数は、ユーザ「名」用の skey 情報をルックアップします。
|
|
処理が成功すると、呼び出し元の skey 構造が埋められ、
|
|
.Fn skeyinfo
|
|
は 0 を返します。
|
|
オプションのチャレンジストリングバッファが与えられた場合は、それが更新されます。
|
|
処理が失敗すると(たとえば、名前が未知の場合、または
|
|
データベースにアクセスできない場合)、-1 が返されます。
|
|
.Pp
|
|
.Fn skeychallenge
|
|
は、「名前」についての skey チャレンジストリングを返します。
|
|
処理が成功すると、呼び出し元の skey 構造が埋められ、関数は 0 を
|
|
返します。ファイル読み取り/書き込みポインタは
|
|
レコードの先頭に残されます。
|
|
処理が成功しないと(すなわち、名前が見つからないと)、関数は
|
|
-1 を返し、データベースは閉じられます。
|
|
.Pp
|
|
.Fn skeyverify
|
|
は、s/key チャレンジへの応答を検証します。
|
|
この関数が 0 を返した場合、検証は成功であり、
|
|
データベースはアップデートされています。
|
|
1 が返された場合、検証は処理失敗し、データベースは変化しないままです。
|
|
-1 が返された場合、何らかの種類のエラーがデータベースについて発生しており、
|
|
データベースは変化しないままです。
|
|
s/key データベースは必ずこの呼び出しによって閉じられます。
|
|
.Pp
|
|
.Fn skey_getpass
|
|
関数を使用して、正規のパスワードまたは s/key パスワードを
|
|
読み取ることができます。
|
|
使用するプロンプトは、関数に渡されます。ユーザが
|
|
検証できる完全な(安全な) struct passwd と一緒にです。
|
|
.Fn skey_getpass
|
|
は、ユーザのパスワードを取り出そうとする最初の試みにおいて標準ライブラリ
|
|
getpass を使用し、それがブランクの場合、エコーバックして S/Key パスワード
|
|
を取り出します。
|
|
いずれの場合でも、入力したストリングは呼び出し元に
|
|
返されます。
|
|
.Pp
|
|
.Fn skey_crypt
|
|
は、標準ライブラリ
|
|
.Xr crypt 3
|
|
用のラッパ関数です。
|
|
これは、指定の s/key パスワードまたは正規のパスワードのどちらかが
|
|
OK の場合、暗号化された UNIX パスワードを返します。
|
|
.Fn skey_crypt
|
|
は、最初に skey 方式によって指定パスワードの確認を試み、
|
|
それが確認できる場合は、ユーザが正しい UNIX パスワードを実際に
|
|
入力したかのように、passwd 構造から暗号化されたパスワードを返します。
|
|
s/key
|
|
パスワード検証が機能しない場合、
|
|
パスワードは通常の方法で暗号化され、結果は呼び出し元に渡されます。
|
|
passwd 構造ポインタが NULL の場合、
|
|
.Fn skey_crypt
|
|
は、NULL でないストリングを返します。このストリングは有効な
|
|
UNIX パスワードとは言えません(すなわち、「:」の入ったストリングです)。
|
|
.Pp
|
|
.Fn skeyaccess
|
|
関数は、ユーザ名、グループメンバ、端末ポート、ホスト名、および
|
|
ネットワークの組み合わせについて、従来の UNIX (S/Key でない)
|
|
パスワードが使用できるかどうかを判定します。UNIX パスワードが使用できる場合、
|
|
.Fn skeyaccess
|
|
は、ゼロでない値を返します。UNIX パスワードが使用できない場合、
|
|
0 を返します。
|
|
この関数が使用する skey.access 構成ファイルのレイアウトと構造の詳細については、
|
|
.Xr skey.access 5
|
|
を参照してください。
|
|
.Sh 戻り値
|
|
上記を参照。
|
|
.Sh 関連項目
|
|
.Xr skey 1 ,
|
|
.Xr skey.access 5
|
|
.Sh バグ
|
|
複数のプロセスからの同時アクセスを防止するために
|
|
s/key データベースについては助言のロックは行われません。
|
|
これはファイル内でキーが追加または更新されるときは、通常、
|
|
問題ではありませんが、キーが除去されるときは問題がある可能性があります。
|
|
.Sh 作者
|
|
.An Phil Karn ,
|
|
.An Neil M. Haller ,
|
|
.An John S. Walden ,
|
|
.An Scott Chasin
|