结构体
struct CipherSuite
public struct CipherSuite <: ToString & Equatable<CipherSuite>
功能:TLS 中的密码套件。
static prop allSupported
public static prop allSupported: Array<CipherSuite>
功能:返回所有支持的密码套件。
返回值:存放密码套件的数组。
类型:Array<CipherSuite>
func toString()
public func toString(): String
功能:返回密码套件名称。
返回值:
- String - 密码套件名称。
operator func !=(CipherSuite)
public operator func !=(that: CipherSuite): Bool
功能:判断两个密码套件是否不等。
参数:
- that: CipherSuite - 被比较的密码套件对象。
返回值:
- Bool - 若不等,则返回
true
;反之,返回false
。
operator func ==(CipherSuite)
public operator func ==(that: CipherSuite): Bool
功能:判断两个密码套件是否相等。
参数:
- that: CipherSuite - 被比较的密码套件对象。
返回值:
- Bool - 若相等,则返回
true
;反之,返回false
。
struct TlsClientConfig
public struct TlsClientConfig
功能:客户端配置。
var keylogCallback
public var keylogCallback: ?(TlsSocket, String) -> Unit = None
功能:握手过程的回调函数,提供 TLS 初始秘钥数据,用于调试和解密记录使用。
类型:?(TlsSocket, String) -> Unit
var verifyMode
public var verifyMode: CertificateVerifyMode = CertificateVerifyMode.Default
功能:设置或获取证书认证模式,默认为 Default
。
prop alpnProtocolsList
public mut prop alpnProtocolsList: Array<String>
功能:要求的应用层协议名称。若列表为空,则客户将不协商应用层协议。
异常:
- IllegalArgumentException - 列表元素有 '\0' 字符时,抛出异常。
prop cipherSuitesV1_2
public mut prop cipherSuitesV1_2: ?Array<String>
功能:基于 TLS 1.2 协议下的加密套。
异常:
- IllegalArgumentException - 列表元素有 '\0' 字符时,抛出异常。
prop cipherSuitesV1_3
public mut prop cipherSuitesV1_3: ?Array<String>
功能:基于 TLS 1.3 协议下的加密套。
异常:
- IllegalArgumentException - 列表元素有 '\0' 字符时,抛出异常。
prop clientCertificate
public mut prop clientCertificate: ?(Array<X509Certificate>, PrivateKey)
功能:客户端证书和私钥。
类型:?(Array<X509Certificate>, PrivateKey)
prop domain
public mut prop domain: ?String
功能:读写要求的服务端主机地址 (SNI), None
表示不要求。
类型:?String
异常:
- IllegalArgumentException - 参数有 '\0' 字符时,抛出异常。
prop maxVersion
public mut prop maxVersion: TlsVersion
功能:支持的 TLS 最大的版本。
注意:
当仅设置
maxVersion
而未设置minVersion
,或设置的maxVersion
低于minVersion
,将会在握手阶段抛出 TlsException。
类型:TlsVersion
prop minVersion
public mut prop minVersion: TlsVersion
功能:支持的 TLS 最小的版本。
注意:
当仅设置
minVersion
而未设置maxVersion
,或设置的minVersion
高于maxVersion
,将会在握手阶段抛出 TlsException。
类型:TlsVersion
prop securityLevel
public mut prop securityLevel: Int32
功能:指定客户端的安全级别,默认值为2,可选参数值在 0-5 内,参数值含义参见 openssl-SSL_CTX_set_security_level 说明。
类型:Int32
prop signatureAlgorithms
public mut prop signatureAlgorithms: ?Array<SignatureAlgorithm>
功能:指定保序的签名和哈希算法。在值为 None
或者列表为空时,客户端会使用默认的列表。指定列表后,客户端可能不会发送不合适的签名算法。
参见 RFC5246 7.4.1.4.1 (TLS 1.2) 章节, RFC8446 4.2.3. (TLS 1.3) 章节。
类型:?Array<SignatureAlgorithm>
init()
public init()
功能:构造 TlsClientConfig。
struct TlsServerConfig
public struct TlsServerConfig
功能:服务端配置。
var clientIdentityRequired
public var clientIdentityRequired: TlsClientIdentificationMode = Disabled
功能:设置或获取服务端要求客户端的认证模式,默认不要求客户端认证服务端证书,也不要求客户端发送本端证书。
类型:TlsClientIdentificationMode
var keylogCallback
public var keylogCallback: ?(TlsSocket, String) -> Unit = None
功能:握手过程的回调函数,提供 TLS 初始秘钥数据,用于调试和解密记录使用。
类型:?(TlsSocket, String) -> Unit
var verifyMode
public var verifyMode: CertificateVerifyMode = CertificateVerifyMode.Default
功能:设置或获取认证模式,默认认证系统证书。
prop cipherSuitesV1_2
public mut prop cipherSuitesV1_2: Array<String>
功能:基于 TLS 1.2 协议下的加密套。
异常:
- IllegalArgumentException - 列表元素有 '\0' 字符时,抛出异常。
prop cipherSuitesV1_3
public mut prop cipherSuitesV1_3: Array<String>
功能:基于 TLS 1.3 协议下的加密套。
异常:
- IllegalArgumentException - 列表元素有 '\0' 字符时,抛出异常。
prop dhParameters
public mut prop dhParameters: ?DHParamters
功能:指定服务端的 DH 密钥参数,默认为 None
, 默认情况下使用 openssl 自动生成的参数值。
类型:?DHParamters
prop maxVersion
public mut prop maxVersion: TlsVersion
功能:支持的最大 TLS 版本。
注意:
当仅设置
maxVersion
而未设置minVersion
,或设置的maxVersion
低于minVersion
,将会在握手阶段抛出 TlsException。
类型:TlsVersion
prop minVersion
public mut prop minVersion: TlsVersion
功能:支持的最小 TLS 版本。
注意:
当仅设置
minVersion
而未设置maxVersion
,或设置的minVersion
高于maxVersion
,将会在握手阶段抛出 TlsException。
类型:TlsVersion
prop securityLevel
public mut prop securityLevel: Int32
功能:指定服务端的安全级别,默认值为2,可选参数值在 [0,5] 内,参数值含义参见 openssl-SSL_CTX_set_security_level 说明。 功能:指定服务端的安全级别,默认值为2,可选参数值在 0-5 内,参数值含义参见 openssl-SSL_CTX_set_security_level 说明。
类型:Int32
异常:
- IllegalArgumentException - 当配置值不在 0-5 范围内时,抛出异常。
prop serverCertificate(Array<X509Certificate>, PrivateKey)
public mut prop serverCertificate: (Array<X509Certificate>, PrivateKey)
功能:服务端证书和对应的私钥文件。
类型:(Array<X509Certificate>, PrivateKey)
prop supportedAlpnProtocols
public mut prop supportedAlpnProtocols: Array<String>
功能:应用层协商协议,若客户端尝试协商该协议,服务端将与选取其中相交的协议名称。若客户端未尝试协商协议,则该配置将被忽略。
异常:
- IllegalArgumentException - 列表元素有 '\0' 字符时,抛出异常。
init(Array<X509Certificate>, PrivateKey)
public init(certChain: Array<X509Certificate>, certKey: PrivateKey)
功能:构造 TlsServerConfig 对象。
参数:
- certChain: Array<X509Certificate> - 证书对象。
- certKey: PrivateKey - 私钥对象。
struct TlsSession
public struct TlsSession <: Equatable<TlsSession> & ToString & Hashable
功能:此结构体表示已建立的客户端会话。此结构体实例用户不可创建,其内部结构对用户不可见。
当客户端 TLS 握手成功后,将会生成一个会话,当连接因一些原因丢失后,客户端可以通过这个会话 id 复用此次会话,省略握手流程。
func hashCode()
public override func hashCode(): Int64
功能:生成会话 id 哈希值。
返回值:
- Int64 - 会话 id 哈希值。
func toString()
public override func toString(): String
功能:生成会话 id 字符串。
返回值:
- String - TlsSession(会话 id 字符串)。
operator func !=(TlsSession)
public override operator func !=(other: TlsSession)
功能:判断会话 id 是否不同。
参数:
- other: TlsSession - 被比较的会话对象。
返回值:
- Unit - 若会话对象不同,返回
true
;否则,返回false
。
operator func ==(TlsSession)
public override operator func ==(other: TlsSession)
功能:判断会话 id 是否相同。
参数:
- other: TlsSession - 被比较的会话对象。
返回值:
- Unit - 若会话对象相同,返回
true
;否则,返回false
。