模块  java.base
软件包  javax.net.ssl

Class SSLEngineResult


  • public class SSLEngineResultextends Object
    SSLEngine I / O调用生成的结果状态的封装。

    SSLEngine提供了用于在两个对等体之间建立安全通信会话的手段。 SSLEngine操作通常从输入缓冲区消耗字节并在输出缓冲区中产生字节。 此类提供描述SSLEngine状态的操作结果值,包括完成正在进行的握手所需操作的指示。 最后,它报告由此操作消耗和生成的字节数。

    从以下版本开始:
    1.5
    另请参见:
    SSLEngineSSLEngine.wrap(ByteBuffer, ByteBuffer)SSLEngine.unwrap(ByteBuffer, ByteBuffer)
    • 构造方法详细信息

      • SSLEngineResult

        public SSLEngineResult​(SSLEngineResult.Status status,                       SSLEngineResult.HandshakeStatus handshakeStatus,                       int bytesConsumed,                       int bytesProduced)
        初始化此类的新实例。
        参数
        status - 操作的返回值。
        handshakeStatus - 当前的握手状态。
        bytesConsumed - 源ByteBuffer消耗的字节数
        bytesProduced - 放入目标ByteBuffer的字节数
        异常
        IllegalArgumentException - 如果 statushandshakeStatus参数为空,或者 bytesConsumedbytesProduced为负数。
      • 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 - 如果 statushandshakeStatus参数为空,或者如果 bytesConsumedbytesProduced为负数
        从以下版本开始:
        9
    • 方法详细信息

      • getStatus

        public final SSLEngineResult.Status getStatus()
        获取此 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)
      • toString

        public String toString()
        返回此对象的String表示形式。
        重写:
        toString在类 Object
        结果
        对象的字符串表示形式。