- java.lang.Object
-
- javax.net.ssl.SSLEngineResult
-
public class SSLEngineResult extends Object
由SSLEngine
I / O调用产生的结果状态的封装。A
SSLEngine
提供了在两个对等体之间建立安全通信会话的手段。SSLEngine
操作通常从输入缓冲区消耗字节,并在输出缓冲区中产生字节。 该类提供描述SSLEngine
的状态的操作结果值,包括完成持续握手所需的操作的指示。 最后,它报告由于此操作而消耗和生成的字节数。- 从以下版本开始:
- 1.5
- 另请参见:
-
SSLEngine
,SSLEngine.wrap(ByteBuffer, ByteBuffer)
,SSLEngine.unwrap(ByteBuffer, ByteBuffer)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static class
SSLEngineResult.HandshakeStatus
一个SSLEngineResult
枚举描述了这个SSLEngine
的当前握手状态。static class
SSLEngineResult.Status
一个SSLEngineResult
枚举描述了SSLEngine
操作的整体结果。
-
构造方法摘要
构造方法 Constructor 描述 SSLEngineResult(SSLEngineResult.Status status, SSLEngineResult.HandshakeStatus handshakeStatus, int bytesConsumed, int bytesProduced)
初始化此类的新实例。SSLEngineResult(SSLEngineResult.Status status, SSLEngineResult.HandshakeStatus handshakeStatus, int bytesConsumed, int bytesProduced, long sequenceNumber)
初始化此类的新实例。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 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记录的序列号(unsigned long),如果没有产生或消耗的记录,则为$-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位是在每个密码状态改变时增加的计数器值(历元)。 序列号右侧剩余的48位表示记录的顺序,这是为每个历元分别维护的。
- Implementation Note:
-
建议提供者不要让序列号增加到
-1L
。 如果序列号接近包装,应重新协商,否则应立即关闭连接。 这应该由底层实现自动进行。 - 结果
-
生成或消费的SSL / TLS / DTLS记录的序列号;
或$
-1L
如果没有记录生产或消费,或该操作不支持底层提供商 - 从以下版本开始:
- 9
- 另请参见:
-
Long.compareUnsigned(long, long)
-
-