Verify a cryptographic signature
Behaviour
Verify a cryptographic signature
- If the public key is prefixed with 0xEDthen 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. |