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; } }