public override PipeFilterResult AfterReading(PipeFilterContext filterContext) { PipeFilterResult r = new PipeFilterResult(this.Client, null, false); if (null != _aead) { if (!filterContext.Memory.IsEmpty) { var cipher = _aead.DecryptTcp(filterContext.Memory.Slice(0, filterContext.MemoryLength)); if (null != cipher && cipher.SignificantLength > 0) { r = new PipeFilterResult(this.Client, cipher, true); } else { _logger?.LogError($"AeadCipherTcpFilter AfterReading no cipher data."); } } else { _logger?.LogError($"AeadCipherTcpFilter AfterReading filterContext.Memory.IsEmpty"); } } return(r); }
public override PipeFilterResult BeforeWriting(PipeFilterContext filterContext) { PipeFilterResult r = new PipeFilterResult(this.Client, null, false); if (null != _aead) { if (!filterContext.Memory.IsEmpty) { var cipher = _aead.EncryptTcp(filterContext.Memory.Slice(0, filterContext.MemoryLength)); r = new PipeFilterResult(this.Client, cipher, true); } else { _logger?.LogError($"AeadCipherTcpFilter BeforeWriting filterContext.Memory.IsEmpty"); } } return(r); }
public override PipeFilterResult BeforeWriting(PipeFilterContext ctx) { PipeFilterResult r = new PipeFilterResult(this.Client, null, false); if (null != _cipher) { if (!ctx.Memory.IsEmpty) { var bufferCipher = _cipher.EncryptTcp(ctx.Memory); r = new PipeFilterResult(this.Client, bufferCipher, true); } else { _logger?.LogError($"AeadCipherTcpFilter BeforeWriting filterContext.Memory.IsEmpty"); } } return(r); }