示例#1
0
        public async void Sanity_Decryption()
        {
            var kvUri        = "http://dummyKvUri";
            var rawData      = "Some data !!!";
            var kvInfo       = new DatabaseMock(kvUri);
            var secretsMgmnt = new KeyVaultCryptoActions(
                new CertificateInfo(c_encKeyName, string.Empty),
                new CertificateInfo(c_decKeyName, string.Empty),
                new CertificateInfo(c_signKeyName, string.Empty),
                new CertificateInfo(c_verifyKeyName, string.Empty),
                kvInfo,
                kvInfo);
            await secretsMgmnt.InitializeAsync();

            // Encrypt
            var encryptedData = secretsMgmnt.Encrypt(Communication.Utils.ToByteArray(rawData));

            // Decrypt
            var decryptedData = secretsMgmnt.Decrypt(encryptedData);

            // Verify the process ended successfully and the data is plain text
            Assert.IsType <byte[]>(encryptedData);
            Assert.Equal(256, encryptedData.Length);
            Assert.Equal(decryptedData, Communication.Utils.ToByteArray(rawData));
        }
示例#2
0
        public async Task Test_AzureImpl_Enqueue_Dequeue()
        {
            // Init
            var queueMock         = new CloudQueueClientWrapperMock();
            var keyVaultMock      = new DatabaseMock("url");
            var encryptionManager = new KeyVaultCryptoActions(
                new CertificateInfo("emc", string.Empty),
                new CertificateInfo("emc", string.Empty),
                new CertificateInfo("emc", string.Empty),
                new CertificateInfo("emc", string.Empty),
                keyVaultMock,
                keyVaultMock);
            await encryptionManager.InitializeAsync();

            var queueName  = "queueName";
            var azureQueue = new AzureQueue(queueName, queueMock, encryptionManager, true);
            await azureQueue.InitializeAsync();

            // Enqueue Message
            var msg = "new message";
            await azureQueue.EnqueueAsync(Communication.Utils.ToByteArray(msg));

            var task = azureQueue.DequeueAsync(decrypted =>
            {
                // Verify that the decrypted message equals to the original
                Assert.Equal(msg, Communication.Utils.FromByteArray <string>(decrypted));
            }, (message) => { Console.WriteLine("Verification failure, doing nothing"); },
                                               TimeSpan.FromMilliseconds(1));

            Thread.Sleep(10000);
            azureQueue.CancelListeningOnQueue();

            await task;
        }
示例#3
0
        public async Task Test_Enqueue_Message_Happy_flow()
        {
            // Init
            var queueMock         = new CloudQueueClientWrapperMock();
            var keyVaultMock      = new DatabaseMock("url");
            var encryptionManager = new KeyVaultCryptoActions(
                new CertificateInfo("emc", string.Empty),
                new CertificateInfo("emc", string.Empty),
                new CertificateInfo("emc", string.Empty),
                new CertificateInfo("emc", string.Empty),
                keyVaultMock,
                keyVaultMock);
            await encryptionManager.InitializeAsync();

            var queueName  = "queueName";
            var azureQueue = new AzureQueue(queueName, queueMock, encryptionManager, true);
            await azureQueue.InitializeAsync();

            // Enqueue message
            var msg = "new message";
            await azureQueue.EnqueueAsync(Communication.Utils.ToByteArray(msg));

            var queueRefernce = queueMock.GetQueueReference(queueName);

            var result = await queueRefernce.GetMessageAsync(TimeSpan.FromSeconds(10),
                                                             new QueueRequestOptions(), new OperationContext());

            var encryptedMessage = Communication.Utils.FromByteArray <Message>(result.AsBytes);

            // String is encrypted, check it value
            Assert.Equal(256, encryptedMessage.Data.Length);
        }
        public async void Sanity_Get_Balance()
        {
            var kvInfo          = new DatabaseMock("http://dummyKvUri");
            var ethereumWallet  = new EthereumAccount(kvInfo, "https://rinkeby.infura.io/fIF86MY6m3PHewhhJ0yE");
            var transactionHash = await ethereumWallet.GetCurrentBalance(TestConstants.publicKey);

            Assert.IsType <decimal>(transactionHash);
        }
        public async void Test_SendTransaction()
        {
            var kvInfo          = new DatabaseMock("http://dummyKvUri");
            var ethereumWallet  = new EthereumAccount(kvInfo, "https://rinkeby.infura.io/fIF86MY6m3PHewhhJ0yE");
            var transactionHash = await
                                  ethereumWallet.SignTransactionAsync("sender", TestConstants.publicKey, 100);

            var transactionResult = await ethereumWallet.SendRawTransactionAsync(transactionHash);

            Assert.StartsWith("0x", transactionResult);
            Assert.Equal(66, transactionResult.Length);
        }
示例#6
0
        public void Sanity_VerifyCanBeCreated()
        {
            var kvInfo       = new DatabaseMock("http://dummyKvUri");
            var secretsMgmnt = new KeyVaultCryptoActions(
                new CertificateInfo(c_encKeyName, string.Empty),
                new CertificateInfo(c_decKeyName, string.Empty),
                new CertificateInfo(c_signKeyName, string.Empty),
                new CertificateInfo(c_verifyKeyName, string.Empty),
                kvInfo,
                kvInfo);

            secretsMgmnt.InitializeAsync().Wait();
        }
示例#7
0
        public async void Sanity_Verify()
        {
            var kvUri        = "http://dummyKvUri";
            var rawData      = "Some data !!!";
            var kvInfo       = new DatabaseMock(kvUri);
            var secretsMgmnt = new KeyVaultCryptoActions(
                new CertificateInfo(c_encKeyName, string.Empty),
                new CertificateInfo(c_decKeyName, string.Empty),
                new CertificateInfo(c_signKeyName, string.Empty),
                new CertificateInfo(c_verifyKeyName, string.Empty),
                kvInfo,
                kvInfo);
            await secretsMgmnt.InitializeAsync();

            // Sign the data
            var signature = secretsMgmnt.Sign(Communication.Utils.ToByteArray(rawData));

            Assert.True(secretsMgmnt.Verify(Communication.Utils.ToByteArray(rawData), signature));
        }
示例#8
0
        public async void Sanity_Encryption()
        {
            var kvUri        = "http://dummyKvUri";
            var rawData      = "Some data !!!";
            var kvInfo       = new DatabaseMock(kvUri);
            var secretsMgmnt = new KeyVaultCryptoActions(
                new CertificateInfo(c_encKeyName, string.Empty),
                new CertificateInfo(c_decKeyName, string.Empty),
                new CertificateInfo(c_signKeyName, string.Empty),
                new CertificateInfo(c_verifyKeyName, string.Empty),
                kvInfo,
                kvInfo);
            await secretsMgmnt.InitializeAsync();

            var encryptedData = secretsMgmnt.Encrypt(Communication.Utils.ToByteArray(rawData));


            Assert.IsType <byte[]>(encryptedData);
        }