Package io.grpc.alts.internal
Class TsiHandshakeHandler
java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelInboundHandlerAdapter
io.netty.handler.codec.ByteToMessageDecoder
io.grpc.alts.internal.TsiHandshakeHandler
- All Implemented Interfaces:
io.netty.channel.ChannelHandler
,io.netty.channel.ChannelInboundHandler
public final class TsiHandshakeHandler
extends io.netty.handler.codec.ByteToMessageDecoder
Performs The TSI Handshake.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Validates a Tsi Peer object.Nested classes/interfaces inherited from class io.netty.handler.codec.ByteToMessageDecoder
io.netty.handler.codec.ByteToMessageDecoder.Cumulator
Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
io.netty.channel.ChannelHandler.Sharable
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final int
private final NettyTsiHandshaker
private final TsiHandshakeHandler.HandshakeValidator
private final io.grpc.ChannelLogger
private final io.netty.channel.ChannelHandler
private io.grpc.netty.ProtocolNegotiationEvent
private final AsyncSemaphore
private boolean
Fields inherited from class io.netty.handler.codec.ByteToMessageDecoder
COMPOSITE_CUMULATOR, MERGE_CUMULATOR
-
Constructor Summary
ConstructorsConstructorDescriptionTsiHandshakeHandler
(io.netty.channel.ChannelHandler next, NettyTsiHandshaker handshaker, TsiHandshakeHandler.HandshakeValidator handshakeValidator, AsyncSemaphore semaphore, io.grpc.ChannelLogger negotiationLogger) Constructs a TsHandshakeHandler.TsiHandshakeHandler
(io.netty.channel.ChannelHandler next, NettyTsiHandshaker handshaker, TsiHandshakeHandler.HandshakeValidator handshakeValidator, io.grpc.ChannelLogger negotiationLogger) Constructs a TsiHandshakeHandler. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
protected void
decodeLast
(io.netty.channel.ChannelHandlerContext ctx, io.netty.buffer.ByteBuf in, List<Object> out) private void
fireProtocolNegotiationEvent
(io.netty.channel.ChannelHandlerContext ctx, TsiPeer peer, Object authContext, TsiHandshakeHandler.HandshakeValidator.SecurityDetails details) protected void
handlerRemoved0
(io.netty.channel.ChannelHandlerContext ctx) private io.netty.channel.ChannelFuture
semaphoreAcquire
(io.netty.channel.ChannelHandlerContext ctx) private void
private void
sendHandshake
(io.netty.channel.ChannelHandlerContext ctx) Sends as many bytes as are available from the handshaker to the remote peer.void
userEventTriggered
(io.netty.channel.ChannelHandlerContext ctx, Object evt) Methods inherited from class io.netty.handler.codec.ByteToMessageDecoder
actualReadableBytes, callDecode, channelInactive, channelRead, channelReadComplete, discardSomeReadBytes, handlerRemoved, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecode
Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, isSharable
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.netty.channel.ChannelHandler
handlerAdded
-
Field Details
-
HANDSHAKE_FRAME_SIZE
private static final int HANDSHAKE_FRAME_SIZE- See Also:
-
handshaker
-
handshakeValidator
-
next
private final io.netty.channel.ChannelHandler next -
semaphore
-
pne
private io.grpc.netty.ProtocolNegotiationEvent pne -
semaphoreAcquired
private boolean semaphoreAcquired -
negotiationLogger
private final io.grpc.ChannelLogger negotiationLogger
-
-
Constructor Details
-
TsiHandshakeHandler
public TsiHandshakeHandler(io.netty.channel.ChannelHandler next, NettyTsiHandshaker handshaker, TsiHandshakeHandler.HandshakeValidator handshakeValidator, io.grpc.ChannelLogger negotiationLogger) Constructs a TsiHandshakeHandler. -
TsiHandshakeHandler
public TsiHandshakeHandler(io.netty.channel.ChannelHandler next, NettyTsiHandshaker handshaker, TsiHandshakeHandler.HandshakeValidator handshakeValidator, AsyncSemaphore semaphore, io.grpc.ChannelLogger negotiationLogger) Constructs a TsHandshakeHandler. If a semaphore is provided, a permit from the semaphore is required to start the handshake and is returned when the handshake ends.
-
-
Method Details
-
decodeLast
protected void decodeLast(io.netty.channel.ChannelHandlerContext ctx, io.netty.buffer.ByteBuf in, List<Object> out) throws Exception - Overrides:
decodeLast
in classio.netty.handler.codec.ByteToMessageDecoder
- Throws:
Exception
-
decode
protected void decode(io.netty.channel.ChannelHandlerContext ctx, io.netty.buffer.ByteBuf in, List<Object> out) throws Exception - Specified by:
decode
in classio.netty.handler.codec.ByteToMessageDecoder
- Throws:
Exception
-
userEventTriggered
public void userEventTriggered(io.netty.channel.ChannelHandlerContext ctx, Object evt) throws Exception - Specified by:
userEventTriggered
in interfaceio.netty.channel.ChannelInboundHandler
- Overrides:
userEventTriggered
in classio.netty.handler.codec.ByteToMessageDecoder
- Throws:
Exception
-
fireProtocolNegotiationEvent
private void fireProtocolNegotiationEvent(io.netty.channel.ChannelHandlerContext ctx, TsiPeer peer, Object authContext, TsiHandshakeHandler.HandshakeValidator.SecurityDetails details) -
sendHandshake
private void sendHandshake(io.netty.channel.ChannelHandlerContext ctx) throws GeneralSecurityException Sends as many bytes as are available from the handshaker to the remote peer.- Throws:
GeneralSecurityException
-
handlerRemoved0
- Overrides:
handlerRemoved0
in classio.netty.handler.codec.ByteToMessageDecoder
- Throws:
Exception
-
semaphoreAcquire
private io.netty.channel.ChannelFuture semaphoreAcquire(io.netty.channel.ChannelHandlerContext ctx) -
semaphoreRelease
private void semaphoreRelease()
-