public string Create(string plainText) { if (string.IsNullOrEmpty(plainText)) { throw new ArgumentException("Value cannot be null or empty.", nameof(plainText)); } var tokenStorageItem = new TokenStorageItem(); var salt = SaltUtil.GenerateSecureRandomSalt(); var encrypted = EncryptionProvider.Encrypt(plainText, KeyVaultUtil.GetSecureSecretFromVault(), salt); if (encrypted != null) { tokenStorageItem = new TokenStorageItem { Token = CreateTokenGuid(), SaltValue = salt, EcnryptedValue = encrypted, CreateDateTime = DateTime.UtcNow, UpdatedDateTime = DateTime.UtcNow }; } //write or append to json file WriteAppendDataItem(tokenStorageItem); return(tokenStorageItem.Token); }
public void EncryptDecrypt_WithSpecialChars_Test() { var passPhrase = KeyVaultUtil.GetSecureSecretFromVault(); var data = "Some secret user's data¡"; var salt = SaltUtil.GenerateSecureRandomSalt(); AesManagedProvider crypto = new AesManagedProvider(); string encrypted = crypto.Encrypt(data, passPhrase, salt); string decrypted = crypto.Decrypt(encrypted, passPhrase, salt); Assert.AreEqual(data, decrypted); }
public void Decrypt_FailSalt_Test() { var passPhrase = KeyVaultUtil.GetSecureSecretFromVault(); var data = "4111111111111111"; var salt = SaltUtil.GenerateSecureRandomSalt(); AesManagedProvider crypto = new AesManagedProvider(); string encrypted = crypto.Encrypt(data, passPhrase, salt); string decrypted = crypto.Decrypt(encrypted, passPhrase, "sldfjsdlksld"); Assert.IsNull(decrypted); }
public void EncryptDecrypt_CC_Number_Test() { var passPhrase = KeyVaultUtil.GetSecureSecretFromVault(); var data = "4111111111111111"; var salt = SaltUtil.GenerateSecureRandomSalt(); AesManagedProvider crypto = new AesManagedProvider(); string encrypted = crypto.Encrypt(data, passPhrase, salt); string decrypted = crypto.Decrypt(encrypted, passPhrase, salt); Assert.AreEqual(data, decrypted); }
public void EncryptDecrypt_LargeText__Test() { var passPhrase = KeyVaultUtil.GetSecureSecretFromVault(); var data = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. " + "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure " + "dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. " + "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."; var salt = SaltUtil.GenerateSecureRandomSalt(); AesManagedProvider crypto = new AesManagedProvider(); string encrypted = crypto.Encrypt(data, passPhrase, salt); string decrypted = crypto.Decrypt(encrypted, passPhrase, salt); Assert.AreEqual(data, decrypted); }