static EncryptorFactory() { var AEADMbedTLSEncryptorSupportedCiphers = AEADMbedTLSEncryptor.SupportedCiphers(); var AEADSodiumEncryptorSupportedCiphers = AEADSodiumEncryptor.SupportedCiphers(); var PlainEncryptorSupportedCiphers = PlainEncryptor.SupportedCiphers(); if (Sodium.AES256GCMAvailable) { // prefer to aes-256-gcm in libsodium AEADMbedTLSEncryptorSupportedCiphers.Remove("aes-256-gcm"); } else { AEADSodiumEncryptorSupportedCiphers.Remove("aes-256-gcm"); } foreach (string method in AEADOpenSSLEncryptor.SupportedCiphers()) { if (!_registeredEncryptors.ContainsKey(method)) { _registeredEncryptors.Add(method, typeof(AEADOpenSSLEncryptor)); } } foreach (string method in AEADSodiumEncryptorSupportedCiphers) { if (!_registeredEncryptors.ContainsKey(method)) { _registeredEncryptors.Add(method, typeof(AEADSodiumEncryptor)); } } foreach (string method in AEADMbedTLSEncryptorSupportedCiphers) { if (!_registeredEncryptors.ContainsKey(method)) { _registeredEncryptors.Add(method, typeof(AEADMbedTLSEncryptor)); } } foreach (string method in PlainEncryptorSupportedCiphers) { if (!_registeredEncryptors.ContainsKey(method)) { _registeredEncryptors.Add(method, typeof(PlainEncryptor)); } } }
private void RunSingleAEADOpenSSLEncryptionThread() { try { for (int i = 0; i < 100; i++) { IEncryptor encryptor1 = new AEADOpenSSLEncryptor("aes-256-gcm", "barfoo!"); IEncryptor decryptor1 = new AEADOpenSSLEncryptor("aes-256-gcm", "barfoo!"); encryptor1.AddrBufLength = abufLength; RunAEADEncryptionRound(encryptor1, decryptor1); } } catch { encryptionFailed = true; throw; } }
static EncryptorFactory() { var AEADMbedTLSEncryptorSupportedCiphers = AEADMbedTLSEncryptor.SupportedCiphers(); var AEADSodiumEncryptorSupportedCiphers = AEADSodiumEncryptor.SupportedCiphers(); if (Sodium.AES256GCMAvailable) { // prefer to aes-256-gcm in libsodium AEADMbedTLSEncryptorSupportedCiphers.Remove("aes-256-gcm"); } else { AEADSodiumEncryptorSupportedCiphers.Remove("aes-256-gcm"); } #if I_KNOW_STREAM_CIPHER_IS_UNSAFE // XXX: sequence matters, OpenSSL > Sodium > MbedTLS foreach (string method in StreamOpenSSLEncryptor.SupportedCiphers()) { if (!_registeredEncryptors.ContainsKey(method)) { _registeredEncryptors.Add(method, typeof(StreamOpenSSLEncryptor)); } } foreach (string method in StreamSodiumEncryptor.SupportedCiphers()) { if (!_registeredEncryptors.ContainsKey(method)) { _registeredEncryptors.Add(method, typeof(StreamSodiumEncryptor)); } } foreach (string method in StreamMbedTLSEncryptor.SupportedCiphers()) { if (!_registeredEncryptors.ContainsKey(method)) { _registeredEncryptors.Add(method, typeof(StreamMbedTLSEncryptor)); } } #endif foreach (string method in AEADOpenSSLEncryptor.SupportedCiphers()) { if (!_registeredEncryptors.ContainsKey(method)) { _registeredEncryptors.Add(method, typeof(AEADOpenSSLEncryptor)); } } foreach (string method in AEADSodiumEncryptorSupportedCiphers) { if (!_registeredEncryptors.ContainsKey(method)) { _registeredEncryptors.Add(method, typeof(AEADSodiumEncryptor)); } } foreach (string method in AEADMbedTLSEncryptorSupportedCiphers) { if (!_registeredEncryptors.ContainsKey(method)) { _registeredEncryptors.Add(method, typeof(AEADMbedTLSEncryptor)); } } }