| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- using BenchmarkDotNet.Attributes;
- using Renci.SshNet.Security;
- using Renci.SshNet.Security.Cryptography.Ciphers;
- namespace Renci.SshNet.Benchmarks.Security.Cryptography.Ciphers
- {
- [MemoryDiagnoser]
- public class RsaCipherBenchmarks
- {
- private readonly RsaKey _privateKey;
- private readonly RsaKey _publicKey;
- private readonly byte[] _data;
- public RsaCipherBenchmarks()
- {
- _data = new byte[128];
- Random random = new(Seed: 12345);
- random.NextBytes(_data);
- using (var s = typeof(RsaCipherBenchmarks).Assembly.GetManifestResourceStream("Renci.SshNet.Benchmarks.Data.Key.RSA.txt"))
- {
-
- _privateKey = (RsaKey)new PrivateKeyFile(s).Key;
-
- // The implementations of RsaCipher.Encrypt/Decrypt differ based on whether the supplied RsaKey has private key information
- // or only public. So we extract out the public key information to a separate variable.
- _publicKey = new RsaKey()
- {
- Public = _privateKey.Public
- };
- }
- }
- [Benchmark]
- public byte[] Encrypt()
- {
- return new RsaCipher(_publicKey).Encrypt(_data);
- }
- // RSA Decrypt does not work
- // [Benchmark]
- // public byte[] Decrypt()
- // {
- // return new RsaCipher(_privateKey).Decrypt(_data);
- // }
- }
- }
|