Package org.drasyl.node.handler.crypto
Class PFSArmHandler
- java.lang.Object
-
- io.netty.channel.ChannelHandlerAdapter
-
- io.netty.channel.ChannelInboundHandlerAdapter
-
- io.netty.channel.ChannelDuplexHandler
-
- io.netty.handler.codec.MessageToMessageCodec<ArmHeader,io.netty.buffer.ByteBuf>
-
- org.drasyl.node.handler.crypto.AbstractArmHandler
-
- org.drasyl.node.handler.crypto.PFSArmHandler
-
- All Implemented Interfaces:
io.netty.channel.ChannelHandler
,io.netty.channel.ChannelInboundHandler
,io.netty.channel.ChannelOutboundHandler
public class PFSArmHandler extends AbstractArmHandler
Arms (encrypt) outbound and disarms (decrypt) inbound messages. Messages that could not be (dis-)armed are dropped. Does key-exchange with ephemeral keys to achieve PFS.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
PFSArmHandler.State
-
Field Summary
-
Fields inherited from class org.drasyl.node.handler.crypto.AbstractArmHandler
crypto, identity, peerIdentity, session
-
-
Constructor Summary
Constructors Modifier Constructor Description PFSArmHandler(Crypto crypto, Duration expireAfter, Duration retryInterval, int maxAgreements, Identity identity, IdentityPublicKey peerIdentity)
protected
PFSArmHandler(Crypto crypto, Identity identity, IdentityPublicKey peerIdentity, Session session, LongSupplier expireProvider, Duration retryInterval, PFSArmHandler.State state)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
decode(io.netty.channel.ChannelHandlerContext ctx, ArmHeader msg, List<Object> out)
protected void
encode(io.netty.channel.ChannelHandlerContext ctx, io.netty.buffer.ByteBuf msg, List<Object> out)
protected Agreement
getAgreement(AgreementId agreementId)
protected void
inboundArmMessage(io.netty.channel.ChannelHandlerContext ctx, Object msg)
protected void
onNonAgreement(io.netty.channel.ChannelHandlerContext ctx)
protected void
removeStaleAgreement(io.netty.channel.ChannelHandlerContext ctx, Agreement agreement)
-
Methods inherited from class org.drasyl.node.handler.crypto.AbstractArmHandler
arm, unarm
-
Methods inherited from class io.netty.handler.codec.MessageToMessageCodec
acceptInboundMessage, acceptOutboundMessage, channelRead, write
-
Methods inherited from class io.netty.channel.ChannelDuplexHandler
bind, close, connect, deregister, disconnect, flush, read
-
Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelInactive, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggered
-
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, handlerRemoved, isSharable
-
-
-
-
Constructor Detail
-
PFSArmHandler
protected PFSArmHandler(Crypto crypto, Identity identity, IdentityPublicKey peerIdentity, Session session, LongSupplier expireProvider, Duration retryInterval, PFSArmHandler.State state)
-
PFSArmHandler
public PFSArmHandler(Crypto crypto, Duration expireAfter, Duration retryInterval, int maxAgreements, Identity identity, IdentityPublicKey peerIdentity) throws CryptoException
- Throws:
CryptoException
-
-
Method Detail
-
encode
protected void encode(io.netty.channel.ChannelHandlerContext ctx, io.netty.buffer.ByteBuf msg, List<Object> out) throws Exception
- Overrides:
encode
in classAbstractArmHandler
- Throws:
Exception
-
decode
protected void decode(io.netty.channel.ChannelHandlerContext ctx, ArmHeader msg, List<Object> out) throws Exception
- Overrides:
decode
in classAbstractArmHandler
- Throws:
Exception
-
inboundArmMessage
protected void inboundArmMessage(io.netty.channel.ChannelHandlerContext ctx, Object msg)
- Specified by:
inboundArmMessage
in classAbstractArmHandler
-
onNonAgreement
protected void onNonAgreement(io.netty.channel.ChannelHandlerContext ctx)
- Specified by:
onNonAgreement
in classAbstractArmHandler
-
removeStaleAgreement
protected void removeStaleAgreement(io.netty.channel.ChannelHandlerContext ctx, Agreement agreement)
- Specified by:
removeStaleAgreement
in classAbstractArmHandler
-
getAgreement
protected Agreement getAgreement(AgreementId agreementId)
- Specified by:
getAgreement
in classAbstractArmHandler
-
-