SASL 参考信息表
本附录提供了 SASL(Simple Authentication and Security Layer,简单验证和安全层)的参考信息。
SASL 接口摘要
下表提供了一些 SASL 接口的简要说明。
表 F-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
| 对使用安全层接收的数据进行解码。
|
|
表 F-2 仅限于客户机的基本 SASL 函数
| |
sasl_client_init
| 最初调用一次,以装入和初始化客户机插件。
|
sasl_client_new
| 初始化客户机连接。设置 sasl_conn_t 上下文。
|
sasl_client_start
| 选择连接机制。
|
sasl_client_step
| 执行一个验证步骤。
|
|
表 F-3 基本的 SASL 服务器函数(客户机可选的)
| |
sasl_server_init
| 最初调用一次,以装入和初始化服务器插件。
|
sasl_server_new
| 初始化服务器连接。设置 sasl_conn_t 上下文。
|
sasl_server_start
| 开始验证交换。
|
sasl_server_step
| 执行一个验证交换步骤。
|
sasl_checkpass
| 检查纯文本口令短语。
|
sasl_checkapop
| 检查 APOP 质询/响应。使用类似于 CRAM-MD5 机制的伪 APOP 机制(可选的)。请注意,此接口已过时。
|
sasl_user_exists
| 检查用户是否存在。
|
sasl_setpass
| 更改口令。(可选)添加用户项。
|
sasl_auxprop_request
| 请求辅助属性。
|
sasl_auxprop_getctx
| 获取连接的辅助属性上下文。
|
|
表 F-4 用于配置基本服务的 SASL 函数
| |
sasl_set_alloc
| 指定内存分配函数。请注意,此接口已过时。
|
sasl_set_mutex
| 指定互斥函数。请注意,此接口已过时。
|
sasl_client_add_plugin
| 添加客户机插件。
|
sasl_server_add_plugin
| 添加服务器插件。
|
sasl_canonuser_add_plugin
| 添加用户标准化插件。
|
sasl_auxprop_add_plugin
| 添加辅助属性插件。
|
|
表 F-5 SASL 实用程序函数
| |
sasl_decode64
| 使用 base64 解码。
|
sasl_encode64
| 使用 base64 编码。
|
sasl_utf8verify
| 验证字符串是否为有效的 UTF-8。
|
sasl_erasebuffer
| 删除与安全性相关的缓冲区或口令。实现可能会使用阻止恢复的删除逻辑。
|
|
表 F-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()
| 请求辅助属性
|
|
表 F-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
| 设置纯文本口令。仅由服务器使用。
|
|
表 F-8 SASL 包含文件
| |
sasl/saslplug.h
|
|
sasl/sasl.h
| 开发插件时需要此文件
|
sasl/saslutil.h
|
|
sasl/prop.h
|
|
|
表 F-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
| 瞬态失败,例如弱密钥
|
|
表 F-10 SASL 返回码:仅限客户机
| |
SASL_BADSERV
| 服务器无法执行相互验证步骤
|
SASL_INTERACT
| 需要用户交互
|
SASL_WRONGMECH
| 机制不支持请求的功能
|
|
表 F-11 SASL 返回码:仅限服务器
| |
SASL_BADAUTH
| 验证失败
|
SASL_BADVERS
| 版本与插件不匹配
|
SASL_DISABLED
| 帐户已被禁用
|
SASL_ENCRYPT
| 使用机制时需要加密
|
SASL_EXPIRED
| 口令短语已到期,需要重置
|
SASL_NOAUTHZ
| 授权失败
|
SASL_NOUSER
| 找不到用户
|
SASL_NOVERIFY
| 用户存在,但没有检验器
|
SASL_TOOWEAK
| 对于此用户而言,机制太弱
|
SASL_TRANS
| 一次性使用纯文本口令即可为用户启用请求的机制
|
SASL_UNAVAIL
| 远程验证服务器不可用
|
|
表 F-12 SASL 返回码-口令操作
| |
SASL_NOCHANGE
| 请求的更改不需要
|
SASL_NOUSERPASS
| 不允许用户提供的口令
|
SASL_PWLOCK
| 口令短语已锁定
|
SASL_WEAKPASS
| 对于安全策略而言,口令短语太弱
|
|