.. _mbx_ed25519_verify_mb8:

mbx_ed25519_verify_mb8
======================


Verifies signature.


Syntax
------


mbx_status mbx_ed25519_verify_mb8(const ed25519_sign_component\* const
pa_sign_r[8], const ed25519_sign_component\* const pa_sign_s[8], const
int8u\* const pa_msg[8], const int32u msgLen[8], const
ed25519_public_key\* const pa_public_key[8]);


Include Files
-------------


``crypto_mb/ed25519.h``


Parameters
----------


.. list-table:: 
   :header-rows: 0

   * -     pa_sign_r   
     -  Array of pointers to the signature's r- components of 32 bytes length each.
   * -     pa_sign_s   
     -  Array of pointers to the signature's s- components of 32 bytes length each.
   * -     pa_msg   
     -  Array of pointers to the messages.
   * -     msgLen   
     -  Array of the message's lengths above in bytes.
   * -     pa_public_key   
     -  Array of pointers to the public keys of 32 bytes length each.




Description
-----------


The mbx_ed25519_verify_mb8 function verifies signatures specified by
pa_sign_r[i] and pa_sign_s[i] parameters. Other parameters pa_msg[],
msgLen[], and pa_public_key[] specify other input parameters for
verification.


.. note::


   mbx_ed25519_verify_mb8 is implementing so called PureEDDSA variant of
   EdDSA. For more information, see RFC 8032.


Return Values
-------------


The mbx\_ ed25519_public_key_mb8 function returns the status that
indicates whether the operation completed successfully or not. The
status value of 0 indicates that all operations completed successfully.
The error condition can be analyzed by the MBX_GET_STS() call. The
result of verification is returned as status too. The MBX_STATUS_OK
value means that signature is verified, else status contains
MBX_STATUS_SIGNATURE_ERR value.

