Ejemplo n.º 1
0
        public override void Configure(Container container)
        {
            RequestConverters.Add((req, requestDto) => {
                var encRequest = requestDto as EncryptedMessage;
                if (encRequest == null)
                {
                    return(null);
                }

                var requestType   = Metadata.GetOperationType(encRequest.OperationName);
                var decryptedJson = CryptUtils.Decrypt(SecureConfig.PrivateKey, encRequest.EncryptedBody);
                var request       = JsonSerializer.DeserializeFromString(decryptedJson, requestType);

                req.Items["_encrypt"] = encRequest;

                return(request);
            });

            ResponseConverters.Add((req, response) => {
                if (!req.Items.ContainsKey("_encrypt"))
                {
                    return(null);
                }

                var encResponse = CryptUtils.Encrypt(SecureConfig.PublicKey, response.ToJson());
                return(new EncryptedMessageResponse
                {
                    OperationName = response.GetType().Name,
                    EncryptedBody = encResponse
                });
            });
        }
Ejemplo n.º 2
0
        public void Can_Encryt_and_Decrypt_String()
        {
            var request = new HelloSecure {
                Name = "World"
            };
            var requestJson = request.ToJson();
            var encRequest  = CryptUtils.Encrypt(SecureConfig.PublicKey, requestJson);

            var decJson = CryptUtils.Decrypt(SecureConfig.PrivateKey, encRequest);

            Assert.That(decJson, Is.EqualTo(requestJson));
        }
Ejemplo n.º 3
0
        public String GetDataByIndex(int index)
        {
            String decrypted = CryptUtils.Decrypt(this.data, this.key);

            try
            {
                return(decrypted.Split(':')[index]);
            }
            catch (Exception ex)
            {
                WriteUtils.writeError("GetDataByIndex returned null");
                return(null);
            }
        }
    EncryptedResponse Any(EncryptedRequest request)
    {
        var requestType = Type.GetType("{0}.{1}"
                                       .Fmt(typeof(EncryptedRequest).Namespace, request.Type));

        var json        = CryptUtils.Decrypt(PrivateKey, request.EncryptedBody);
        var requestDto  = JsonSerializer.DeserializeFromString(json, requestType);
        var responseDto = GetAppHost().Config.ServiceController
                          .Execute(requestDto, base.RequestContext);

        return(new EncryptedResponse {
            Type = responseDto.GetType().Name,
            EncryptedBody = CryptUtils.Encrypt(PublicKey, responseDto.ToJson()),
        });
    }
Ejemplo n.º 5
0
        public void Can_Send_Encrypted_Message()
        {
            var client = new JsonServiceClient(Config.AbsoluteBaseUri);

            var request = new HelloSecure {
                Name = "World"
            };
            var encRequest = CryptUtils.Encrypt(SecureConfig.PublicKey, request.ToJson());

            var encResponse = client.Post(new EncryptedMessage
            {
                OperationName = typeof(HelloSecure).Name,
                EncryptedBody = encRequest
            });

            var responseJson = CryptUtils.Decrypt(SecureConfig.PrivateKey, encResponse.EncryptedBody);
            var response     = responseJson.FromJson <HelloSecureResponse>();

            Assert.That(response.Result, Is.EqualTo("Hello, World!"));
        }
Ejemplo n.º 6
0
        // Decrypt a file
        private string DecryptString(string utf8String)
        {
            var openString = CryptUtils.Decrypt(PrivateXmlKey, utf8String);

            return(openString);
        }
Ejemplo n.º 7
0
        public String GetData()
        {
            String decrypted = CryptUtils.Decrypt(this.data, this.key);

            return(decrypted);
        }