diff options
author | Peter Dettman <peter.dettman@bouncycastle.org> | 2023-02-15 18:13:17 +0700 |
---|---|---|
committer | Peter Dettman <peter.dettman@bouncycastle.org> | 2023-02-15 18:13:17 +0700 |
commit | 9ebb5d67badc33b6acae4ee428345df97c43049d (patch) | |
tree | 95b749a0c1d271cc674ad87cbbdab0e457c01d62 /crypto/test | |
parent | ChaCha20Poly1305: improve OutputSize methods (diff) | |
download | BouncyCastle.NET-ed25519-9ebb5d67badc33b6acae4ee428345df97c43049d.tar.xz |
Rework AsconEngine
- efficient buffering - AeadParameters support - underflow check for decryption improved OutputSize methods
Diffstat (limited to 'crypto/test')
-rw-r--r-- | crypto/test/src/crypto/test/AsconTest.cs | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/crypto/test/src/crypto/test/AsconTest.cs b/crypto/test/src/crypto/test/AsconTest.cs index 59e5aaa6d..5e426bbfe 100644 --- a/crypto/test/src/crypto/test/AsconTest.cs +++ b/crypto/test/src/crypto/test/AsconTest.cs @@ -19,6 +19,60 @@ namespace Org.BouncyCastle.Crypto.Tests { public override string Name => "ASCON"; + [Test, Explicit] + public void BenchAuth80pq() + { + var parameters = new AeadParameters(new KeyParameter(new byte[20]), 128, new byte[16], null); + var engine = new AsconEngine(AsconEngine.AsconParameters.ascon80pq); + engine.Init(false, parameters); + + byte[] data = new byte[1024]; + for (int i = 0; i < 1024 * 1024; ++i) + { +#if NET6_0_OR_GREATER + engine.ProcessAadBytes(data.AsSpan(0, 1024)); +#else + engine.ProcessAadBytes(data, 0, 1024); +#endif + } + } + + [Test, Explicit] + public void BenchDecrypt80pq() + { + var parameters = new AeadParameters(new KeyParameter(new byte[20]), 128, new byte[16], null); + var engine = new AsconEngine(AsconEngine.AsconParameters.ascon80pq); + engine.Init(false, parameters); + + byte[] data = new byte[1024]; + for (int i = 0; i < 1024 * 1024; ++i) + { +#if NET6_0_OR_GREATER + engine.ProcessBytes(data.AsSpan(0, 1024), data); +#else + engine.ProcessBytes(data, 0, 1024, data, 0); +#endif + } + } + + [Test, Explicit] + public void BenchEncrypt80pq() + { + var parameters = new AeadParameters(new KeyParameter(new byte[20]), 128, new byte[16], null); + var engine = new AsconEngine(AsconEngine.AsconParameters.ascon80pq); + engine.Init(true, parameters); + + byte[] data = new byte[engine.GetUpdateOutputSize(1024)]; + for (int i = 0; i < 1024 * 1024; ++i) + { +#if NET6_0_OR_GREATER + engine.ProcessBytes(data.AsSpan(0, 1024), data); +#else + engine.ProcessBytes(data, 0, 1024, data, 0); +#endif + } + } + [Test] public override void PerformTest() { |