Files
fn_registry/functions/cybersecurity/verify_ed25519.md
T
2026-06-04 23:44:39 +02:00

52 lines
1.8 KiB
Markdown

---
name: verify_ed25519
kind: function
lang: go
domain: cybersecurity
version: "1.0.0"
purity: pure
signature: "func VerifyEd25519(pub, msg, sig []byte) bool"
description: "Verifica una firma Ed25519 sobre un mensaje usando la clave pública del firmante. Devuelve true solo si la firma es auténtica. Sin efectos secundarios ni I/O."
tags: [messaging, e2e-crypto, crypto, ed25519, signing, pure, e2e-messaging]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: ""
imports:
- crypto/ed25519
params:
- name: pub
desc: "Clave pública Ed25519 de 32 bytes del firmante. Viene del campo SignPub de su Identity."
- name: msg
desc: "Mensaje original que fue firmado. Debe ser idéntico al pasado a SignEd25519."
- name: sig
desc: "Firma de 64 bytes producida por SignEd25519."
output: "true si la firma es válida para (pub, msg). false en cualquier otro caso: firma incorrecta, pub equivocada, msg alterado, o sig corrupta."
tested: true
tests:
- "firma y verificacion exitosa"
- "firma es determinista (misma entrada, misma firma)"
- "falla con mensaje modificado"
- "falla con clave publica incorrecta"
- "falla con firma corrupta"
test_file_path: "functions/cybersecurity/e2e_messaging_crypto_test.go"
file_path: "functions/cybersecurity/verify_ed25519.go"
---
## Ejemplo
```go
// Receptor verifica autoría antes de descifrar
if !cybersecurity.VerifyEd25519(sender.SignPub, ciphertext, sig) {
log.Println("firma inválida: mensaje descartado")
return
}
// Solo si la firma es válida, descifrar con OpenAEAD
plaintext, err := cybersecurity.OpenAEAD(roomKey, nonce, ciphertext, aad)
```
## Cuando usarla
Al recibir un mensaje del bus: verifica la firma del remitente sobre el ciphertext antes de intentar descifrar. Devuelve false para cualquier fallo de autenticación — nunca procesar un mensaje con firma inválida.