- java.lang.Object
-
- javax.net.ssl.SSLEngineResult
-
public class SSLEngineResultextends Object
由SSLEngine
I / O调用生成的结果状态的封装。SSLEngine
提供了用于在两个对等体之间建立安全通信会话的手段。SSLEngine
操作通常从输入缓冲区消耗字节并在输出缓冲区中产生字节。 此类提供描述SSLEngine
状态的操作结果值,包括完成正在进行的握手所需操作的指示。 最后,它报告由此操作消耗和生成的字节数。- 从以下版本开始:
- 1.5
- 另请参见:
-
SSLEngine
,SSLEngine.wrap(ByteBuffer, ByteBuffer)
,SSLEngine.unwrap(ByteBuffer, ByteBuffer)
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 static class
SSLEngineResult.HandshakeStatus
SSLEngineResult
枚举描述了此SSLEngine
的当前握手状态。static class
SSLEngineResult.Status
SSLEngineResult
枚举描述了SSLEngine
操作的整体结果。
-
构造方法摘要
构造方法 构造器 描述 SSLEngineResult(SSLEngineResult.Status status, SSLEngineResult.HandshakeStatus handshakeStatus, int bytesConsumed, int bytesProduced)
初始化此类的新实例。SSLEngineResult(SSLEngineResult.Status status, SSLEngineResult.HandshakeStatus handshakeStatus, int bytesConsumed, int bytesProduced, long sequenceNumber)
初始化此类的新实例。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 int
bytesConsumed()
返回从输入缓冲区消耗的字节数。int
bytesProduced()
返回写入输出缓冲区的字节数。SSLEngineResult.HandshakeStatus
getHandshakeStatus()
获取此SSLEngine
操作的握手状态。SSLEngineResult.Status
getStatus()
获取此SSLEngine
操作的返回值。long
sequenceNumber()
返回生成或使用的SSL / TLS / DTLS记录的序列号(可选操作)。String
toString()
返回此对象的String表示形式。
-
-
-
构造方法详细信息
-
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记录的序列号(无符号长整数),如果没有生成或消耗的记录,-1L
- 异常
-
IllegalArgumentException
- 如果status
或handshakeStatus
参数为空,或者如果bytesConsumed
或bytesProduced
为负数 - 从以下版本开始:
- 9
-
-
方法详细信息
-
getStatus
public final SSLEngineResult.Status getStatus()
获取此SSLEngine
操作的返回值。- 结果
- 返回值
-
getHandshakeStatus
public final SSLEngineResult.HandshakeStatus getHandshakeStatus()
获取此SSLEngine
操作的握手状态。- 结果
- 握手状态
-
bytesConsumed
public final int bytesConsumed()
返回从输入缓冲区消耗的字节数。- 结果
- 消耗的字节数。
-
bytesProduced
public final int bytesProduced()
返回写入输出缓冲区的字节数。- 结果
- 生成的字节数
-
sequenceNumber
public final long sequenceNumber()
返回生成或使用的SSL / TLS / DTLS记录的序列号(可选操作)。- API Note:
- 请注意,序列号是无符号长,不能超过
-1L
。 希望使用无符号长比较模式来比较无符号长值(参见Long.compareUnsigned()
)。对于DTLS协议,序列号的前16位是计数器值(epoch),其在每个密码状态改变时递增。 序列号右侧的剩余48位表示记录的序列,对于每个时期单独维护。
- Implementation Note:
- 建议提供者永远不要允许序列号递增到
-1L
。 如果序列号接近包装,则应请求重新协商,否则应立即关闭连接。 这应该由底层实现自动执行。 - 结果
- 生产或消费的SSL / TLS / DTLS记录的序列号; 如果没有生成或使用记录,则为
-1L
,或者基础提供程序不支持此操作 - 从以下版本开始:
- 9
- 另请参见:
-
Long.compareUnsigned(long, long)
-
-