public FilterResult Out(MessageHeader header, IMessageDataContainer container) { var result = new FilterResult { OK = true }; try { using (var scope = ObjectHost.Host.BeginLifetimeScope()) { var plainText = container.Take(); var keyId = container.Take().ToHex(); var keyProvider = scope.Resolve<ICryptoKeyProvider>(); var pubKey = keyProvider.GetPublicKey(keyId); if (pubKey != null && pubKey.Length > 0) { container.Push(new RSACrypto().Encrypt(pubKey, plainText)); } else result = new FilterResult { Error = ErrorCode.CryptoKeyReadFailed }; } } catch (Exception ex) { result = new FilterResult { Error = ErrorCode.EncryptFailed }; Log.Error(result.Error.ToString(), ex); } return result; }
public FilterResult Out(MessageHeader header, IMessageDataContainer container) { var result = new FilterResult { OK = true }; try { using (var scope = ObjectHost.Host.BeginLifetimeScope()) { var plainText = container.Take(); var keyId = container.Take().ToHex(); var keyProvider = scope.Resolve <ICryptoKeyProvider>(); var pubKey = keyProvider.GetPublicKey(keyId); if (pubKey != null && pubKey.Length > 0) { container.Push(new RSACrypto().Encrypt(pubKey, plainText)); } else { result = new FilterResult { Error = ErrorCode.CryptoKeyReadFailed } }; } } catch (Exception ex) { result = new FilterResult { Error = ErrorCode.EncryptFailed }; Log.Error(result.Error.ToString(), ex); } return(result); }
public FilterResult Out(MessageHeader header, IMessageDataContainer container) { var headerBuffer = container.Take(); var bodyBuffer = container.Take(); var checkSum = BitConverter.GetBytes( Crc32.CalculateDigest(headerBuffer.Concat(bodyBuffer), (uint)0, (uint)(headerBuffer.Length + bodyBuffer.Length))); container.Push(checkSum); return new FilterResult { OK = true }; }
public FilterResult In(IMessageDataContainer container) { var result = new FilterResult { OK = true }; var checksum = BitConverter.ToUInt32(container.Take(), 0); var header = container.Take(); var content = container.Take(); var data = header.Concat(content); if (Crc32.VerifyDigest(checksum, header.Concat(content), (uint)0, (uint)data.Length)) { container.Push(content); } else result = new FilterResult { Error = ErrorCode.DataBroken }; return result; }
public FilterResult Out(MessageHeader header, IMessageDataContainer container) { var headerBuffer = container.Take(); var bodyBuffer = container.Take(); var checkSum = BitConverter.GetBytes( Crc32.CalculateDigest(headerBuffer.Concat(bodyBuffer), (uint)0, (uint)(headerBuffer.Length + bodyBuffer.Length))); container.Push(checkSum); return(new FilterResult { OK = true }); }
public FilterResult Out(MessageHeader header, IMessageDataContainer container) { var body = container.Take(); if (body.Length >= ZIPPING_SIZE) { container.Push(body.Zip()); header.FilterType |= MessageFilterType.Compression; } else { if (body.Length != 0) container.Push(body); if ((header.FilterType & MessageFilterType.Compression) == MessageFilterType.Compression) header.FilterType ^= MessageFilterType.Compression; } return new FilterResult { OK = true }; }
public FilterResult In(IMessageDataContainer container) { var result = new FilterResult { OK = true }; try { var data = container.Take(); if (data.Length > 0) container.Push(data.Unzip()); } catch (Exception ex) { result = new FilterResult { Error = ErrorCode.UnzipFailed }; Log.Error(result.Error.ToString(), ex); } return result; }
public FilterResult In(IMessageDataContainer container) { var result = new FilterResult { OK = true }; var checksum = BitConverter.ToUInt32(container.Take(), 0); var header = container.Take(); var content = container.Take(); var data = header.Concat(content); if (Crc32.VerifyDigest(checksum, header.Concat(content), (uint)0, (uint)data.Length)) { container.Push(content); } else { result = new FilterResult { Error = ErrorCode.DataBroken } }; return(result); }
public FilterResult In(IMessageDataContainer container) { var result = new FilterResult { OK = true }; try { var data = container.Take(); if (data.Length > 0) { container.Push(data.Unzip()); } } catch (Exception ex) { result = new FilterResult { Error = ErrorCode.UnzipFailed }; Log.Error(result.Error.ToString(), ex); } return(result); }
public FilterResult Out(MessageHeader header, IMessageDataContainer container) { var body = container.Take(); if (body.Length >= ZIPPING_SIZE) { container.Push(body.Zip()); header.FilterType |= MessageFilterType.Compression; } else { if (body.Length != 0) { container.Push(body); } if ((header.FilterType & MessageFilterType.Compression) == MessageFilterType.Compression) { header.FilterType ^= MessageFilterType.Compression; } } return(new FilterResult { OK = true }); }
public FilterResult Out(MessageHeader header, IMessageDataContainer container) { return(result); }
public FilterResult In(IMessageDataContainer container) { return(result); }
public FilterResult Out(MessageHeader header, IMessageDataContainer container) { return result; }
public FilterResult In(IMessageDataContainer container) { return result; }