Ed25519Sign

Criptografia, assinaturas digitais

Descrição

Produz uma assinatura PureEdDSA em edwards25519 (RFC 8032)

Sintaxe

Delphi

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

Valores retornados

FalseA semente não tem 32 bytes e Signature é definido como uma string vazia
TrueSignature contém a codificação R||S de 64 bytes

Observações

O segredo é expandido como h = SHA-512(seed); o escalar secreto s é a primeira metade limitada de h e o prefixo de nonce é a segunda metade. O nonce r = SHA-512(prefix||M) é reduzido módulo a ordem do grupo L, R = r*B, o desafio k = SHA-512(R||A||M) é reduzido módulo L e S = (r + k*s) mod L, de modo que a assinatura é R seguido de S, com 32 bytes cada. A verificação está disponível por meio de Ed25519Verify; o hash é SHA-512 sem prefixo de separação de domínio e com um contexto vazio

Exemplo

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

Veja também

Ed25519Verify, Ed25519PublicKeyFromSeed, Ed448Sign, SetSignProcessEd25519Identity