JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 开发者安全性指南     Oracle Solaris 10 8/11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  面向开发者的 Oracle Solaris 安全(概述)

2.  开发特权应用程序

3.  编写 PAM 应用程序和服务

4.  编写使用 GSS-API 的应用程序

5.  GSS-API 客户机示例

6.  GSS-API 服务器示例

7.  编写使用 SASL 的应用程序

8.  Oracle Solaris 加密框架介绍

9.  编写用户级加密应用程序和提供者

10.  使用智能卡框架

A.  基于 C 的 GSS-API 样例程序

B.  GSS-API 参考

C.  指定 OID

D.  SASL 示例的源代码

E.  SASL 参考表

SASL 接口摘要

F.  打包和签署加密提供者

词汇表

索引

SASL 接口摘要

下表提供了一些 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
最初调用一次,以装入和初始化客户机插件。
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
对于安全策略而言,口令短语太弱