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

返回結果:


setClientCert

設定缺省客戶端證書

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

調用參數:

  • crt: X509Cert, 證書,用於發送給服務器驗證客戶端
  • key: PKey, 私鑰,用於與客戶端會話

loadClientCertFile

從文件中加載缺省客戶端證書

1 2 3
static ssl.loadClientCertFile(String crtFile, String keyFile, String password = "");

調用參數:

  • crtFile: String, 證書文件,用於客戶端驗證服務器
  • keyFile: String, 私鑰文件,用於與客戶端會話
  • password: String, 解密密碼

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;

min_version

Integer, 設定最低版本支持,缺省ssl3

1
static Integer ssl.min_version;

max_version

Integer, 設定最高版本支持,缺省tls1_1

1
static Integer ssl.max_version;

常量

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;

ssl3

ssl 協議版本ssl 3.0

1
const ssl.ssl3 = 0;

tls1

ssl 協議版本tls 1.0

1
const ssl.tls1 = 1;

tls1_1

ssl 協議版本tls 1.1

1
const ssl.tls1_1 = 2;

tls1_2

ssl 協議版本tls 1.2

1
const ssl.tls1_2 = 3;