函数 |
说明 |
---|---|
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 |
最初调用一次,以装入和初始化客户机插件。 |
sasl_client_new |
初始化客户机连接。设置 sasl_conn_t 上下文。 |
sasl_client_start |
选择连接机制。 |
sasl_client_step |
执行一个验证步骤。 |
表 E–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 |
获取连接的辅助属性上下文。 |
表 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 |
对于安全策略而言,口令短语太弱 |