Package com.yahoo.jrt

Class NullCryptoSocket

  • All Implemented Interfaces:
    CryptoSocket

    public class NullCryptoSocket
    extends java.lang.Object
    implements CryptoSocket
    A CryptoSocket with no encryption
    • Constructor Detail

      • NullCryptoSocket

        public NullCryptoSocket​(java.nio.channels.SocketChannel channel,
                                boolean isServer)
    • Method Detail

      • channel

        public java.nio.channels.SocketChannel channel()
        Description copied from interface: CryptoSocket
        Obtain the underlying socket channel used by this CryptoSocket.
        Specified by:
        channel in interface CryptoSocket
      • handshake

        public CryptoSocket.HandshakeResult handshake()
                                               throws java.io.IOException
        Description copied from interface: CryptoSocket
        Try to progress the initial connection handshake. Handshaking will be done once, before any normal reads or writes are performed. Re-negotiation at a later stage will not be permitted. This function will be called multiple times until the status is either DONE or an IOException is thrown. When NEED_READ or NEED_WRITE is returned, the handshake function will be called again when the appropriate io event has triggered. When NEED_WORK is returned, the CryptoSocket.doHandshakeWork() will be called (possibly in another thread) before this function is called again.
        Specified by:
        handshake in interface CryptoSocket
        Throws:
        java.io.IOException
      • getMinimumReadBufferSize

        public int getMinimumReadBufferSize()
        Description copied from interface: CryptoSocket
        This function should be called after handshaking has completed before calling the read function. It dictates the minimum size of the application read buffer presented to the read function. This is needed to support frame-based stateless decryption of incoming data.
        Specified by:
        getMinimumReadBufferSize in interface CryptoSocket
      • read

        public int read​(java.nio.ByteBuffer dst)
                 throws java.io.IOException
        Description copied from interface: CryptoSocket
        Called when the underlying socket has available data. Read through the entire input pipeline. The semantics are the same as with a normal socket read except it can also fail for cryptographic reasons.
        Specified by:
        read in interface CryptoSocket
        Throws:
        java.io.IOException
      • drain

        public int drain​(java.nio.ByteBuffer dst)
                  throws java.io.IOException
        Description copied from interface: CryptoSocket
        Similar to read, but this function is not allowed to read from the underlying socket. This is to enable the application to make sure that there is no more input data in the read pipeline that is independent of data not yet read from the actual socket. Draining data from the input pipeline is done to prevent masking read events.
        Specified by:
        drain in interface CryptoSocket
        Throws:
        java.io.IOException
      • write

        public int write​(java.nio.ByteBuffer src)
                  throws java.io.IOException
        Description copied from interface: CryptoSocket
        Called when the application has data it wants to write. Write through the entire output pipeline. The semantics are the same as with a normal socket write.
        Specified by:
        write in interface CryptoSocket
        Throws:
        java.io.IOException
      • flush

        public CryptoSocket.FlushResult flush()
                                       throws java.io.IOException
        Description copied from interface: CryptoSocket
        Try to flush data in the write pipeline that is not depenedent on data not yet written by the application into the underlying socket. This is to enable the application to identify pending work that may not be completed until the underlying socket is ready for writing more data. When NEED_WRITE is returned, either write or flush will be called again when the appropriate io event has triggered.
        Specified by:
        flush in interface CryptoSocket
        Throws:
        java.io.IOException