Package io.grpc.alts.internal
Class AltsTsiFrameProtector
- java.lang.Object
-
- io.grpc.alts.internal.AltsTsiFrameProtector
-
- All Implemented Interfaces:
TsiFrameProtector
public final class AltsTsiFrameProtector extends java.lang.Object implements TsiFrameProtector
Frame protector that uses the ALTS framing.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
AltsTsiFrameProtector.DeframerState
(package private) static class
AltsTsiFrameProtector.Protector
(package private) static class
AltsTsiFrameProtector.Unprotector
-
Nested classes/interfaces inherited from interface io.grpc.alts.internal.TsiFrameProtector
TsiFrameProtector.Consumer<T>
-
-
Field Summary
Fields Modifier and Type Field Description private static int
HEADER_BYTES
private static int
HEADER_LEN_FIELD_BYTES
private static int
HEADER_TYPE_DEFAULT
private static int
HEADER_TYPE_FIELD_BYTES
private static int
LIMIT_MAX_ALLOWED_FRAME_SIZE
private static int
MAX_FRAME_SIZE
private static int
MIN_FRAME_SIZE
private AltsTsiFrameProtector.Protector
protector
private AltsTsiFrameProtector.Unprotector
unprotector
-
Constructor Summary
Constructors Constructor Description AltsTsiFrameProtector(int maxProtectedFrameBytes, ChannelCrypterNetty crypter, io.netty.buffer.ByteBufAllocator alloc)
Create a new AltsTsiFrameProtector.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
destroy()
Must be called to release all associated resources (instance cannot be used afterwards).static int
getHeaderBytes()
(package private) static int
getHeaderLenFieldBytes()
(package private) static int
getHeaderTypeDefault()
(package private) static int
getHeaderTypeFieldBytes()
(package private) static int
getLimitMaxAllowedFrameSize()
static int
getMaxFrameSize()
static int
getMinFrameSize()
void
protectFlush(java.util.List<io.netty.buffer.ByteBuf> unprotectedBufs, TsiFrameProtector.Consumer<io.netty.buffer.ByteBuf> ctxWrite, io.netty.buffer.ByteBufAllocator alloc)
Protects the buffers by performing framing and encrypting/appending MACs.void
unprotect(io.netty.buffer.ByteBuf in, java.util.List<java.lang.Object> out, io.netty.buffer.ByteBufAllocator alloc)
Unprotects the buffers by removing the framing and decrypting/checking MACs.private static io.netty.buffer.ByteBuf
writeSlice(io.netty.buffer.ByteBuf in, int len)
-
-
-
Field Detail
-
HEADER_LEN_FIELD_BYTES
private static final int HEADER_LEN_FIELD_BYTES
- See Also:
- Constant Field Values
-
HEADER_TYPE_FIELD_BYTES
private static final int HEADER_TYPE_FIELD_BYTES
- See Also:
- Constant Field Values
-
HEADER_BYTES
private static final int HEADER_BYTES
- See Also:
- Constant Field Values
-
HEADER_TYPE_DEFAULT
private static final int HEADER_TYPE_DEFAULT
- See Also:
- Constant Field Values
-
LIMIT_MAX_ALLOWED_FRAME_SIZE
private static final int LIMIT_MAX_ALLOWED_FRAME_SIZE
- See Also:
- Constant Field Values
-
MIN_FRAME_SIZE
private static final int MIN_FRAME_SIZE
- See Also:
- Constant Field Values
-
MAX_FRAME_SIZE
private static final int MAX_FRAME_SIZE
- See Also:
- Constant Field Values
-
protector
private final AltsTsiFrameProtector.Protector protector
-
unprotector
private final AltsTsiFrameProtector.Unprotector unprotector
-
-
Constructor Detail
-
AltsTsiFrameProtector
public AltsTsiFrameProtector(int maxProtectedFrameBytes, ChannelCrypterNetty crypter, io.netty.buffer.ByteBufAllocator alloc)
Create a new AltsTsiFrameProtector.
-
-
Method Detail
-
getHeaderLenFieldBytes
static int getHeaderLenFieldBytes()
-
getHeaderTypeFieldBytes
static int getHeaderTypeFieldBytes()
-
getHeaderBytes
public static int getHeaderBytes()
-
getHeaderTypeDefault
static int getHeaderTypeDefault()
-
getLimitMaxAllowedFrameSize
static int getLimitMaxAllowedFrameSize()
-
getMinFrameSize
public static int getMinFrameSize()
-
getMaxFrameSize
public static int getMaxFrameSize()
-
protectFlush
public void protectFlush(java.util.List<io.netty.buffer.ByteBuf> unprotectedBufs, TsiFrameProtector.Consumer<io.netty.buffer.ByteBuf> ctxWrite, io.netty.buffer.ByteBufAllocator alloc) throws java.security.GeneralSecurityException
Description copied from interface:TsiFrameProtector
Protects the buffers by performing framing and encrypting/appending MACs.- Specified by:
protectFlush
in interfaceTsiFrameProtector
- Parameters:
unprotectedBufs
- contain the payload that will be protectedctxWrite
- is called with buffers containing protected frames and must release the given buffersalloc
- is used to allocate new buffers for the protected frames- Throws:
java.security.GeneralSecurityException
-
unprotect
public void unprotect(io.netty.buffer.ByteBuf in, java.util.List<java.lang.Object> out, io.netty.buffer.ByteBufAllocator alloc) throws java.security.GeneralSecurityException
Description copied from interface:TsiFrameProtector
Unprotects the buffers by removing the framing and decrypting/checking MACs.- Specified by:
unprotect
in interfaceTsiFrameProtector
- Parameters:
in
- contains (partial) protected framesout
- is only used to append unprotected payload buffersalloc
- is used to allocate new buffers for the unprotected frames- Throws:
java.security.GeneralSecurityException
-
destroy
public void destroy()
Description copied from interface:TsiFrameProtector
Must be called to release all associated resources (instance cannot be used afterwards).- Specified by:
destroy
in interfaceTsiFrameProtector
-
writeSlice
private static io.netty.buffer.ByteBuf writeSlice(io.netty.buffer.ByteBuf in, int len)
-
-