Ed25519Sign

Криптография, цифровые подписи

Описание

Создает подпись PureEdDSA на edwards25519 (RFC 8032)

Синтаксис

Delphi

Function Ed25519Sign(Const Message, Seed: AnsiString; Out Signature: AnsiString): Boolean;

Возвращаемые значения

FalseЗатравка не равна 32 байтам, а Signature устанавливается в пустую строку
TrueSignature содержит 64-байтовое кодирование R||S

Примечания

Секрет расширяется как h = SHA-512(seed); секретный скаляр s — это приведенная к допустимому виду первая половина h, а префикс одноразового значения — вторая половина. Одноразовое значение r = SHA-512(prefix||M) приводится по модулю порядка группы L, R = r*B, проверочное значение k = SHA-512(R||A||M) приводится по модулю L и S = (r + k*s) mod L, поэтому подпись — это R, за которым следует S, по 32 байта каждая. Проверка доступна через Ed25519Verify; хеш — SHA-512 без префикса разделения доменов и с пустым контекстом

Пример

Ed25519Sign(Msg, Seed, Sig);
OK:= Ed25519Verify(Msg, PubKey, Sig);

См. также

Ed25519Verify, Ed25519PublicKeyFromSeed, Ed448Sign, SetSignProcessEd25519Identity