mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 22:11:48 +08:00
Added a factory class for instantiating crypto providers
This commit is contained in:
106
mRemoteNGTests/Security/CryptographyProviderFactoryTests.cs
Normal file
106
mRemoteNGTests/Security/CryptographyProviderFactoryTests.cs
Normal file
@@ -0,0 +1,106 @@
|
||||
using mRemoteNG.Security;
|
||||
using NUnit.Framework;
|
||||
using Org.BouncyCastle.Crypto.Engines;
|
||||
using Org.BouncyCastle.Crypto.Modes;
|
||||
|
||||
namespace mRemoteNGTests.Security
|
||||
{
|
||||
[TestFixture]
|
||||
public class CryptographyProviderFactoryTests
|
||||
{
|
||||
private CryptographyProviderFactory _cryptographyProviderFactory;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
_cryptographyProviderFactory = new CryptographyProviderFactory();
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void TearDown()
|
||||
{
|
||||
_cryptographyProviderFactory = null;
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CanCreateAesGcm()
|
||||
{
|
||||
var engine = BlockCipherEngines.AES;
|
||||
var mode = BlockCipherModes.GCM;
|
||||
var cryptoProvider = _cryptographyProviderFactory.CreateAeadCryptographyProvider(engine, mode);
|
||||
Assert.That(cryptoProvider.CipherEngine, Is.EqualTo($"{engine}/{mode}"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CanCreateAesCcm()
|
||||
{
|
||||
var engine = BlockCipherEngines.AES;
|
||||
var mode = BlockCipherModes.CCM;
|
||||
var cryptoProvider = _cryptographyProviderFactory.CreateAeadCryptographyProvider(engine, mode);
|
||||
Assert.That(cryptoProvider.CipherEngine, Is.EqualTo($"{engine}/{mode}"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CanCreateAesEax()
|
||||
{
|
||||
var engine = BlockCipherEngines.AES;
|
||||
var mode = BlockCipherModes.EAX;
|
||||
var cryptoProvider = _cryptographyProviderFactory.CreateAeadCryptographyProvider(engine, mode);
|
||||
Assert.That(cryptoProvider.CipherEngine, Is.EqualTo($"{engine}/{mode}"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CanCreateSerpentGcm()
|
||||
{
|
||||
var engine = BlockCipherEngines.Serpent;
|
||||
var mode = BlockCipherModes.GCM;
|
||||
var cryptoProvider = _cryptographyProviderFactory.CreateAeadCryptographyProvider(engine, mode);
|
||||
Assert.That(cryptoProvider.CipherEngine, Is.EqualTo($"{engine}/{mode}"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CanCreateSerpentCcm()
|
||||
{
|
||||
var engine = BlockCipherEngines.Serpent;
|
||||
var mode = BlockCipherModes.CCM;
|
||||
var cryptoProvider = _cryptographyProviderFactory.CreateAeadCryptographyProvider(engine, mode);
|
||||
Assert.That(cryptoProvider.CipherEngine, Is.EqualTo($"{engine}/{mode}"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CanCreateSerpentEax()
|
||||
{
|
||||
var engine = BlockCipherEngines.Serpent;
|
||||
var mode = BlockCipherModes.EAX;
|
||||
var cryptoProvider = _cryptographyProviderFactory.CreateAeadCryptographyProvider(engine, mode);
|
||||
Assert.That(cryptoProvider.CipherEngine, Is.EqualTo($"{engine}/{mode}"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CanCreateTwofishCcm()
|
||||
{
|
||||
var engine = BlockCipherEngines.Twofish;
|
||||
var mode = BlockCipherModes.CCM;
|
||||
var cryptoProvider = _cryptographyProviderFactory.CreateAeadCryptographyProvider(engine, mode);
|
||||
Assert.That(cryptoProvider.CipherEngine, Is.EqualTo($"{engine}/{mode}"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CanCreateTwofishEax()
|
||||
{
|
||||
var engine = BlockCipherEngines.Twofish;
|
||||
var mode = BlockCipherModes.EAX;
|
||||
var cryptoProvider = _cryptographyProviderFactory.CreateAeadCryptographyProvider(engine, mode);
|
||||
Assert.That(cryptoProvider.CipherEngine, Is.EqualTo($"{engine}/{mode}"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CanCreateTwofishGcm()
|
||||
{
|
||||
var engine = BlockCipherEngines.Twofish;
|
||||
var mode = BlockCipherModes.GCM;
|
||||
var cryptoProvider = _cryptographyProviderFactory.CreateAeadCryptographyProvider(engine, mode);
|
||||
Assert.That(cryptoProvider.CipherEngine, Is.EqualTo($"{engine}/{mode}"));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user