39 lines
1.2 KiB
C#
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;
|
|
}
|
|
}
|