java.lang.Object
javax.net.ssl.SSLEngineResult
SSLEngine I/O 调用产生的结果状态的封装。
SSLEngine 提供了一种在两个对等点之间建立安全通信会话的方法。 SSLEngine 操作通常从输入缓冲区消耗字节并在输出缓冲区中产生字节。此类提供描述 SSLEngine 状态的操作结果值,包括指示完成正在进行的握手所需的操作。最后,它报告此操作消耗和生成的字节数。
- 自从:
- 1.5
- 参见:
-
内部类总结
内部类修饰符和类型类描述static enum描述此SSLEngine当前握手状态的SSLEngineResult枚举。static enum描述SSLEngine操作的总体结果的SSLEngineResult枚举。 -
构造方法总结
构造方法构造方法描述SSLEngineResult(SSLEngineResult.Status status, SSLEngineResult.HandshakeStatus handshakeStatus, int bytesConsumed, int bytesProduced) 初始化此类的新实例。SSLEngineResult(SSLEngineResult.Status status, SSLEngineResult.HandshakeStatus handshakeStatus, int bytesConsumed, int bytesProduced, long sequenceNumber) 初始化此类的新实例。 -
方法总结
修饰符和类型方法描述final int返回从输入缓冲区消耗的字节数。final int返回写入输出缓冲区的字节数。获取此SSLEngine操作的握手状态。final SSLEngineResult.Status获取此SSLEngine操作的返回值。final long返回生成或使用的 SSL/TLS/DTLS 记录的序列号(可选操作)。toString()返回此对象的字符串表示形式。
-
构造方法详细信息
-
SSLEngineResult
public SSLEngineResult(SSLEngineResult.Status status, SSLEngineResult.HandshakeStatus handshakeStatus, int bytesConsumed, int bytesProduced) 初始化此类的新实例。- 参数:
status- 操作的返回值。handshakeStatus- 当前的握手状态。bytesConsumed- 从源 ByteBuffer 消耗的字节数bytesProduced- 放入目标 ByteBuffer 的字节数- 抛出:
IllegalArgumentException- 如果status或handshakeStatus参数为空,或者如果bytesConsumed或bytesProduced为负数。
-
SSLEngineResult
public SSLEngineResult(SSLEngineResult.Status status, SSLEngineResult.HandshakeStatus handshakeStatus, int bytesConsumed, int bytesProduced, long sequenceNumber) 初始化此类的新实例。- 参数:
status- 操作的返回值。handshakeStatus- 当前的握手状态。bytesConsumed- 从源 ByteBuffer 消耗的字节数bytesProduced- 放入目标 ByteBuffer 的字节数sequenceNumber- 生成或使用的 SSL/TLS/DTLS 记录的序列号(unsigned long),如果没有记录生成或使用,则为-1L- 抛出:
IllegalArgumentException- 如果status或handshakeStatus参数为空,或者如果bytesConsumed或bytesProduced为负- 自从:
- 9
-
-
方法详情
-
getStatus
获取此SSLEngine操作的返回值。- 返回:
- 返回值
-
getHandshakeStatus
获取此SSLEngine操作的握手状态。- 返回:
- 握手状态
-
bytesConsumed
public final int bytesConsumed()返回从输入缓冲区消耗的字节数。- 返回:
- 消耗的字节数。
-
bytesProduced
public final int bytesProduced()返回写入输出缓冲区的字节数。- 返回:
- 产生的字节数
-
sequenceNumber
public final long sequenceNumber()返回生成或使用的 SSL/TLS/DTLS 记录的序列号(可选操作)。- API 注意:
-
请注意,序列号是一个无符号长整数,不能超过
-1L。需要使用 unsigned long 比较模式来比较 unsigned long 值(另请参见Long.compareUnsigned())。对于 DTLS 协议,序列号的前 16 位是计数器值(纪元),每次密码状态更改时都会递增。 sequence number 右边剩余的 48 bits 代表记录的序列,每个 epoch 单独维护。
- 实现注意事项:
-
建议提供商绝不允许序列号增加到
-1L。如果序列号接近环绕,则应请求重新协商,否则应立即关闭连接。这应该由底层实现自动进行。 - 返回:
-
生成或使用的 SSL/TLS/DTLS 记录的序列号;或
-1L如果没有记录被生产或消费,或者底层提供者不支持此操作 - 自从:
- 9
- 参见:
-
toString
返回此对象的字符串表示形式。
-