java.lang.Object
javax.net.ssl.SSLEngineResult
封装了
SSLEngine
I/O调用产生的结果状态。
SSLEngine
提供了一种在两个对等方之间建立安全通信会话的方式。SSLEngine
操作通常从输入缓冲区消耗字节并在输出缓冲区中产生字节。该类提供了描述SSLEngine
状态的操作结果值,包括指示需要完成正在进行的握手的操作。最后,它报告由于此操作而消耗和产生的字节数。
- 自版本:
- 1.5
- 参见:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
描述此SSLEngine
当前握手状态的SSLEngineResult
枚举。static enum
描述SSLEngine
操作的整体结果的SSLEngineResult
枚举。 -
Constructor Summary
ConstructorDescriptionSSLEngineResult
(SSLEngineResult.Status status, SSLEngineResult.HandshakeStatus handshakeStatus, int bytesConsumed, int bytesProduced) 初始化此类的新实例。SSLEngineResult
(SSLEngineResult.Status status, SSLEngineResult.HandshakeStatus handshakeStatus, int bytesConsumed, int bytesProduced, long sequenceNumber) 初始化此类的新实例。 -
Method Summary
Modifier and TypeMethodDescriptionfinal int
返回从输入缓冲区消耗的字节数。final int
返回写入输出缓冲区的字节数。获取此SSLEngine
操作的握手状态。final SSLEngineResult.Status
获取此SSLEngine
操作的返回值。final long
返回产生或消耗的SSL/TLS/DTLS记录的序列号(可选操作)。toString()
返回此对象的字符串表示形式。
-
Constructor Details
-
SSLEngineResult
public SSLEngineResult(SSLEngineResult.Status status, SSLEngineResult.HandshakeStatus handshakeStatus, int bytesConsumed, int bytesProduced) 初始化此类的新实例。- 参数:
-
status
- 操作的返回值。 -
handshakeStatus
- 当前握手状态。 -
bytesConsumed
- 从源ByteBuffer中消耗的字节数 -
bytesProduced
- 放入目标ByteBuffer中的字节数 - 抛出:
-
IllegalArgumentException
- 如果status
或handshakeStatus
参数为null,或者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记录的序列号(无符号长整型),如果没有记录产生或消耗,则为-1L
- 抛出:
-
IllegalArgumentException
- 如果status
或handshakeStatus
参数为null,或者bytesConsumed
或bytesProduced
为负数 - 自版本:
- 9
-
-
Method Details
-
getStatus
获取此SSLEngine
操作的返回值。- 返回:
- 返回值
-
getHandshakeStatus
获取此SSLEngine
操作的握手状态。- 返回:
- 握手状态
-
bytesConsumed
public final int bytesConsumed()返回从输入缓冲区消耗的字节数。- 返回:
- 消耗的字节数。
-
bytesProduced
public final int bytesProduced()返回写入输出缓冲区的字节数。- 返回:
- 产生的字节数
-
sequenceNumber
public final long sequenceNumber()返回产生或消耗的SSL/TLS/DTLS记录的序列号(可选操作)。- API注释:
-
请注意,序列号是无符号长整型,不能超过
-1L
。建议使用无符号长整型比较模式来比较无符号长整型值(另请参见Long.compareUnsigned()
)。对于DTLS协议,序列号的前16位是一个计数器值(时期),在每次密码状态更改时递增。序列号右侧的剩余48位表示记录的序列,对于每个时期都单独维护。
- 实现注释:
-
建议提供程序永远不要允许序列号增加到
-1L
。如果序列号接近包装,应请求重新协商,否则应立即关闭连接。这应该由底层实现自动执行。 - 返回:
-
产生或消耗的SSL/TLS/DTLS记录的序列号;如果没有记录产生或消耗,或者底层提供程序不支持此操作,则为
-1L
- 自版本:
- 9
- 参见:
-
toString
返回此对象的字符串表示形式。
-