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