<PackageReference Include="SSH.NET" Version="2024.2.0" />

ED25519DigitalSignature

Implements ECDSA digital signature algorithm.
using Org.BouncyCastle.Math.EC.Rfc8032; using Renci.SshNet.Common; using System; namespace Renci.SshNet.Security.Cryptography { public class ED25519DigitalSignature : DigitalSignature, IDisposable { private readonly ED25519Key _key; private bool _isDisposed; public ED25519DigitalSignature(ED25519Key key) { ThrowHelper.ThrowIfNull(key, "key"); _key = key; } public override bool Verify(byte[] input, byte[] signature) { return Ed25519.Verify(signature, 0, _key.PublicKey, 0, input, 0, input.Length); } public override byte[] Sign(byte[] input) { byte[] array = new byte[Ed25519.SignatureSize]; Ed25519.Sign(_key.PrivateKey, 0, _key.PublicKey, 0, input, 0, input.Length, array, 0); return array; } public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { if (!_isDisposed && disposing) _isDisposed = true; } } }