Module 基础模块

模块 ssl

ssl/tls 模块,模块别名:tls

对象

Socket

创建一个 SslSocket 对象,参见 SslSocket

1
SslSocket ssl.Socket;

Handler

创建一个 SslHandler 对象,参见 SslHandler

1
SslHandler ssl.Handler;

Server

创建一个 SslServer 对象,参见 SslServer

1
SslServer ssl.Server;

静态函数

connect

创建一个 SslSocket 对象并建立连接

1 2
static Stream ssl.connect(String url, Integer timeout = 0) async;

调用参数:

  • url: String, 指定连接的协议,可以是:ssl://host:port
  • timeout: Integer, 指定超时时间,单位是毫秒,默认为0

返回结果:


创建一个 SslSocket 对象并建立连接

1 2 3 4
static Stream ssl.connect(String url, X509Cert crt, PKey key, Integer timeout = 0) async;

调用参数:

  • url: String, 指定连接的协议,可以是:ssl://host:port
  • crt: X509Cert, 证书,用于发送给服务器验证客户端
  • key: PKey, 私钥,用于与客户端会话
  • timeout: Integer, 指定超时时间,单位是毫秒,默认为0

返回结果:


创建一个 SslSocket 对象并建立连接

1 2 3 4 5
static Stream ssl.connect(String url, Integer verification, X509Cert crt, PKey key, Integer timeout = 0) async;

调用参数:

  • url: String, 指定连接的协议,可以是:ssl://host:port
  • verification: Integer, 证书验证模式
  • crt: X509Cert, 证书,用于发送给服务器验证客户端
  • key: PKey, 私钥,用于与客户端会话
  • timeout: Integer, 指定超时时间,单位是毫秒,默认为0

返回结果:


setClientCert

设定缺省客户端证书

1 2
static ssl.setClientCert(X509Cert crt, PKey key);

调用参数:

  • crt: X509Cert, 证书,用于发送给服务器验证客户端
  • key: PKey, 私钥,用于与客户端会话

loadRootCerts

加载自带的缺省根证书,等同于 ssl.ca.loadRootCerts

1
static ssl.loadRootCerts();

此证书内容源自:http://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt

静态属性

ca

X509Cert, 全局证书,用于 ssl 客户端模式验证服务器证书

1
static readonly X509Cert ssl.ca;

verification

Integer, 设定证书验证模式,缺省为 VERIFY_REQUIRED

1
static Integer ssl.verification;

常量

VERIFY_NONE

证书验证模式,不验证

1
const ssl.VERIFY_NONE = 0;

VERIFY_OPTIONAL

证书验证模式,可选验证,允许验证不通过

1
const ssl.VERIFY_OPTIONAL = 1;

VERIFY_REQUIRED

证书验证模式,要求验证,验证不通过则中断

1
const ssl.VERIFY_REQUIRED = 2;

BADCERT_EXPIRED

证书验证结果,证书超时

1
const ssl.BADCERT_EXPIRED = 1;

BADCERT_REVOKED

证书验证结果,证书被撤销

1
const ssl.BADCERT_REVOKED = 2;

BADCERT_CN_MISMATCH

证书验证结果,证书名错误

1
const ssl.BADCERT_CN_MISMATCH = 4;

BADCERT_NOT_TRUSTED

证书验证结果,证书不可信

1
const ssl.BADCERT_NOT_TRUSTED = 8;