Esempio n. 1
0
 public async Task <AuthorizationToken> ParseAuthorizationToken(SerializedAuthorizationToken serializedAuthorizationToken)
 {
     return(_serializationService.DeserializeFromBytes <AuthorizationToken>(
                await _encryptThenMacService.ValidateAndDecrypt(
                    _serializationService.DeserializeFromBytes <EncryptThenMacData>(
                        Convert.FromBase64String(serializedAuthorizationToken.AuthorizationToken)
                        )
                    )
                ));
 }
Esempio n. 2
0
        public Task ProcessMessageAsCommand(byte[] messageBytes)
        {
            Message  message = _serializationService.DeserializeFromBytes <Message>(messageBytes);
            ICommand command = _commandMessageDeserializer.DeserializeCommandFromMessage(message);

            return(_commandDispatcher.DispatchAsync(command));
        }
Esempio n. 3
0
        public async Task <byte[]> ValidateAndDecrypt(EncryptThenMacData encryptThenMacData)
        {
            byte[] data = Convert.FromBase64String(encryptThenMacData.Data);
            byte[] hmac = Convert.FromBase64String(encryptThenMacData.Hmac);
            if (!await _hmacService.IsValid(hmac, data))
            {
                throw new Exception("HMAC is not valid.");
            }
            AesEncryptedData aesEncryptedData = _serializationService.DeserializeFromBytes <AesEncryptedData>(data);

            return(await _aesEncryptionService.Decrypt(aesEncryptedData));
        }