Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 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 };
 }
Esempio n. 4
0
 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;
 }
Esempio n. 5
0
        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
            });
        }
Esempio n. 6
0
 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 };
 }
Esempio n. 7
0
 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;
 }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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
            });
        }
Esempio n. 11
0
 public FilterResult Out(MessageHeader header, IMessageDataContainer container)
 {
     return(result);
 }
Esempio n. 12
0
 public FilterResult In(IMessageDataContainer container)
 {
     return(result);
 }
Esempio n. 13
0
 public FilterResult Out(MessageHeader header, IMessageDataContainer container)
 {
     return result;
 }
Esempio n. 14
0
 public FilterResult In(IMessageDataContainer container)
 {
     return result;
 }