Files
git.stella-ops.org/src/__Libraries/__Tests/StellaOps.Cryptography.Tests/BouncyCastleSignVerifyRoundtripTests.Helpers.cs

39 lines
1.2 KiB
C#

using StellaOps.Cryptography;
using StellaOps.Cryptography.Plugin.BouncyCastle;
namespace StellaOps.Cryptography.Tests;
public sealed partial class BouncyCastleSignVerifyRoundtripTests
{
private static BouncyCastleEd25519CryptoProvider CreateProvider()
=> new();
private static ICryptoSigner SetupSigner(
BouncyCastleEd25519CryptoProvider provider,
string keyId,
int? seed = null)
{
var privateKeyBytes = seed.HasValue
? Enumerable.Range(seed.Value, 32).Select(i => (byte)(i % 256)).ToArray()
: Enumerable.Range(0, 32).Select(i => (byte)i).ToArray();
var keyReference = new CryptoKeyReference(keyId, provider.Name);
var signingKey = new CryptoSigningKey(
keyReference,
SignatureAlgorithms.Ed25519,
privateKeyBytes,
createdAt: FixedNow);
provider.UpsertSigningKey(signingKey);
return provider.GetSigner(SignatureAlgorithms.Ed25519, keyReference);
}
private static byte[] CreateLargeMessage()
{
var message = new byte[1_000_000];
for (var i = 0; i < message.Length; i++)
{
message[i] = (byte)(i % 256);
}
return message;
}
}