ed25519.h
Go to the documentation of this file.
1 
42 int wc_ed25519_make_public(ed25519_key* key, unsigned char* pubKey,
43  word32 pubKeySz);
44 
80 int wc_ed25519_make_key(WC_RNG* rng, int keysize, ed25519_key* key);
81 
128 int wc_ed25519_sign_msg(const byte* in, word32 inlen, byte* out,
129  word32 *outlen, ed25519_key* key);
130 
182 int wc_ed25519ctx_sign_msg(const byte* in, word32 inlen, byte* out,
183  word32 *outlen, ed25519_key* key,
184  const byte* context, byte contextLen);
185 
239 int wc_ed25519ph_sign_hash(const byte* hash, word32 hashLen, byte* out,
240  word32 *outLen, ed25519_key* key,
241  const byte* context, byte contextLen);
242 
295 int wc_ed25519ph_sign_msg(const byte* in, word32 inlen, byte* out,
296  word32 *outlen, ed25519_key* key,
297  const byte* context, byte contextLen);
298 
345 int wc_ed25519_verify_msg(const byte* sig, word32 siglen, const byte* msg,
346  word32 msgLen, int* ret, ed25519_key* key);
347 
399 int wc_ed25519ctx_verify_msg(const byte* sig, word32 siglen, const byte* msg,
400  word32 msgLen, int* ret, ed25519_key* key,
401  const byte* context, byte contextLen);
402 
458 int wc_ed25519ph_verify_hash(const byte* sig, word32 siglen, const byte* hash,
459  word32 hashLen, int* ret, ed25519_key* key,
460  const byte* context, byte contextLen);
461 
514 int wc_ed25519ph_verify_msg(const byte* sig, word32 siglen, const byte* msg,
515  word32 msgLen, int* ret, ed25519_key* key,
516  const byte* context, byte contextLen);
517 
539 int wc_ed25519_init(ed25519_key* key);
540 
559 void wc_ed25519_free(ed25519_key* key);
560 
597 int wc_ed25519_import_public(const byte* in, word32 inLen, ed25519_key* key);
598 
636 int wc_ed25519_import_public_ex(const byte* in, word32 inLen, ed25519_key* key,
637  int trusted);
638 
674 int wc_ed25519_import_private_only(const byte* priv, word32 privSz,
675  ed25519_key* key);
676 
719 int wc_ed25519_import_private_key(const byte* priv, word32 privSz,
720  const byte* pub, word32 pubSz, ed25519_key* key);
721 
764 int wc_ed25519_import_private_key_ex(const byte* priv, word32 privSz,
765  const byte* pub, word32 pubSz, ed25519_key* key, int trusted);
766 
807 int wc_ed25519_export_public(ed25519_key* key, byte* out, word32* outLen);
808 
847 int wc_ed25519_export_private_only(ed25519_key* key, byte* out, word32* outLen);
848 
891 int wc_ed25519_export_private(ed25519_key* key, byte* out, word32* outLen);
892 
938 int wc_ed25519_export_key(ed25519_key* key,
939  byte* priv, word32 *privSz,
940  byte* pub, word32 *pubSz);
941 
975 int wc_ed25519_check_key(ed25519_key* key);
976 
1002 int wc_ed25519_size(ed25519_key* key);
1003 
1031 int wc_ed25519_priv_size(ed25519_key* key);
1032 
1059 int wc_ed25519_pub_size(ed25519_key* key);
1060 
1087 int wc_ed25519_sig_size(ed25519_key* key);
int wc_ed25519ph_sign_msg(const byte *in, word32 inlen, byte *out, word32 *outlen, ed25519_key *key, const byte *context, byte contextLen)
This function signs a message using an ed25519_key object to guarantee authenticity. The context is included as part of the data signed. The message is pre-hashed before signature calculation.
int wc_ed25519_check_key(ed25519_key *key)
This function checks the public key in ed25519_key structure matches the private key.
int wc_ed25519_import_public(const byte *in, word32 inLen, ed25519_key *key)
This function imports a public ed25519_key from a buffer containing the public key. This function will handle both compressed and uncompressed keys. The public key is checked that it matches the private key when one is present.
int wc_ed25519_verify_msg(const byte *sig, word32 siglen, const byte *msg, word32 msgLen, int *ret, ed25519_key *key)
This function verifies the Ed25519 signature of a message to ensure authenticity. It returns the answ...
int wc_ed25519_export_key(ed25519_key *key, byte *priv, word32 *privSz, byte *pub, word32 *pubSz)
This function exports the private and public key separately from an ed25519_key structure. It stores the private key in the buffer priv, and sets the bytes written to this buffer in privSz. It stores the public key in the buffer pub, and sets the bytes written to this buffer in pubSz.
int wc_ed25519_priv_size(ed25519_key *key)
This function returns the private key size (secret + public) in bytes.
int wc_ed25519_make_key(WC_RNG *rng, int keysize, ed25519_key *key)
This function generates a new Ed25519 key and stores it in key.
int wc_ed25519ctx_sign_msg(const byte *in, word32 inlen, byte *out, word32 *outlen, ed25519_key *key, const byte *context, byte contextLen)
This function signs a message using an ed25519_key object to guarantee authenticity. The context is part of the data signed.
int wc_ed25519_import_private_key(const byte *priv, word32 privSz, const byte *pub, word32 pubSz, ed25519_key *key)
This function imports a public/private Ed25519 key pair from a pair of buffers. This function will ha...
int wc_ed25519_import_private_key_ex(const byte *priv, word32 privSz, const byte *pub, word32 pubSz, ed25519_key *key, int trusted)
This function imports a public/private Ed25519 key pair from a pair of buffers. This function will ha...
int wc_ed25519_init(ed25519_key *key)
This function initializes an ed25519_key object for future use with message verification.
int wc_ed25519_make_public(ed25519_key *key, unsigned char *pubKey, word32 pubKeySz)
This function generates the Ed25519 public key from the private key, stored in the ed25519_key object...
int wc_ed25519_export_public(ed25519_key *key, byte *out, word32 *outLen)
This function exports the private key from an ed25519_key structure. It stores the public key in the ...
int wc_ed25519ph_verify_msg(const byte *sig, word32 siglen, const byte *msg, word32 msgLen, int *ret, ed25519_key *key, const byte *context, byte contextLen)
This function verifies the Ed25519 signature of a message to ensure authenticity. The context is incl...
int wc_ed25519_import_public_ex(const byte *in, word32 inLen, ed25519_key *key, int trusted)
This function imports a public ed25519_key from a buffer containing the public key. This function will handle both compressed and uncompressed keys. Check public key matches private key, when present, when not trusted.
int wc_ed25519ph_sign_hash(const byte *hash, word32 hashLen, byte *out, word32 *outLen, ed25519_key *key, const byte *context, byte contextLen)
This function signs a message digest using an ed25519_key object to guarantee authenticity. The context is included as part of the data signed. The message is pre-hashed before signature calculation.
int wc_ed25519_import_private_only(const byte *priv, word32 privSz, ed25519_key *key)
This function imports an Ed25519 private key only from a buffer.
int wc_ed25519_sign_msg(const byte *in, word32 inlen, byte *out, word32 *outlen, ed25519_key *key)
This function signs a message using an ed25519_key object to guarantee authenticity.
int wc_ed25519_size(ed25519_key *key)
This function returns the size of an Ed25519 - 32 bytes.
int wc_ed25519_sig_size(ed25519_key *key)
This function returns the size of an Ed25519 signature (64 in bytes).
int wc_ed25519_pub_size(ed25519_key *key)
This function returns the compressed key size in bytes (public key).
int wc_ed25519_export_private(ed25519_key *key, byte *out, word32 *outLen)
This function exports the key pair from an ed25519_key structure. It stores the key pair in the buffe...
int wc_ed25519ctx_verify_msg(const byte *sig, word32 siglen, const byte *msg, word32 msgLen, int *ret, ed25519_key *key, const byte *context, byte contextLen)
This function verifies the Ed25519 signature of a message to ensure authenticity. The context is incl...
int wc_ed25519ph_verify_hash(const byte *sig, word32 siglen, const byte *hash, word32 hashLen, int *ret, ed25519_key *key, const byte *context, byte contextLen)
This function verifies the Ed25519 signature of the digest of a message to ensure authenticity...
void wc_ed25519_free(ed25519_key *key)
This function frees an Ed25519 object after it has been used.
int wc_ed25519_export_private_only(ed25519_key *key, byte *out, word32 *outLen)
This function exports only the private key from an ed25519_key structure. It stores the private key i...