public void ValidateCipherTest() { var cipher1 = new CipherStub("cipherStub1"); var cipher2 = new CipherStub("cipherStub2"); var cipher3 = new FernetCipher("Fernet cipher"); using var provider = new CryptoProvider(cipher1); provider.RegisterCipher(cipher2) .RegisterCipher(cipher3); var customEncryptionKey = new CustomEncryptionKey(1, Encoding.UTF8.GetBytes("Custom Encryption Key 32 symbols")); provider.ValidateCustomCiphers(new SecretsData(new List <Secret> { customEncryptionKey }, customEncryptionKey)); Assert.IsNotNull(provider); var encryptionSecret = new EncryptionSecret(2, Encoding.UTF8.GetBytes("EncryptionSecret")); provider.ValidateCustomCiphers(new SecretsData(new List <Secret> { customEncryptionKey, encryptionSecret }, encryptionSecret)); Assert.IsNotNull(provider); }
private static IStorage InitStorageWithCustomCipher() { var cipher = new FernetCipher("Fernet cipher demo"); using var provider = new CryptoProvider(cipher); var key = new CustomEncryptionKey(7, Encoding.UTF8.GetBytes("Custom Encryption Key 32 symbols")); var secretData = new SecretsData(new List <Secret> { key }, key); var config = CredentialsHelper.GetConfigWithOauth(); config.CryptoProvider = provider; config.SecretKeyAccessor = () => secretData; return(Storage.NewStorage(config)); }
public void EncryptWithCustomCipherTest() { var cipher = new FernetCipher("Fernet cipher"); using var provider = new CryptoProvider(cipher); const int version = 5; var key = new CustomEncryptionKey(version, Encoding.UTF8.GetBytes("Custom Encryption Key 32 symbols")); var secretData = new SecretsData(new List <Secret> { key }, key); var message = "{'private_data':'" + Guid.NewGuid() + "'}"; var cipheredData = provider.Encrypt(message, secretData); Assert.NotNull(cipheredData); Assert.AreEqual(version, cipheredData.KeyVersion); Assert.NotNull(cipheredData.Data); Assert.AreNotEqual(message, cipheredData.Data); Assert.IsTrue(cipheredData.Data.StartsWith("c", StringComparison.InvariantCulture)); var decryptedText = provider.Decrypt(cipheredData.Data, secretData, cipheredData.KeyVersion); Assert.AreEqual(message, decryptedText); }