Verify a cryptographic signature
Behaviour
Verify a cryptographic signature
- If the public key is prefixed with
0xED
then useED25519
- Otherwise assume
SECP256k1
Definition
int64_t util_verify (
uint32_t dread_ptr,
uint32_t dread_len,
uint32_t sread_ptr,
uint32_t sread_len,
uint32_t kread_ptr,
uint32_t kread_len
);
Example
if (!util_verify(payload_ptr, payload_len,
signature_ptr, signature_len,
publickey_ptr, publickey_len))
rollback("Invalid Signature", 17, 60);
Parameters
Name | Type | Description |
---|---|---|
dread_ptr | uint32_t | Pointer to the signed data |
dread_len | uint32_t | Length of the signed data |
sread_ptr | uint32_t | Pointer to the signature |
sread_len | uint32_t | Length of the signature |
kread_ptr | uint32_t | Pointer to the public key |
kread_len | uint32_t | Length of the public key |
Return Code
Type | Description |
---|---|
int64_t | 0 - validation failed, the signature is invalid.1 - validation succeeded, the signature is valid.If negative, an error: OUT_OF_BOUNDS - pointers/lengths specified outside of hook memory. |