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 
240 int wc_ed25519ph_sign_hash(const byte* hash, word32 hashLen, byte* out,
241  word32 *outLen, ed25519_key* key,
242  const byte* context, byte contextLen);
243 
296 int wc_ed25519ph_sign_msg(const byte* in, word32 inlen, byte* out,
297  word32 *outlen, ed25519_key* key,
298  const byte* context, byte contextLen);
299 
346 int wc_ed25519_verify_msg(const byte* sig, word32 siglen, const byte* msg,
347  word32 msgLen, int* ret, ed25519_key* key);
348 
400 int wc_ed25519ctx_verify_msg(const byte* sig, word32 siglen, const byte* msg,
401  word32 msgLen, int* ret, ed25519_key* key,
402  const byte* context, byte contextLen);
403 
459 int wc_ed25519ph_verify_hash(const byte* sig, word32 siglen, const byte* hash,
460  word32 hashLen, int* ret, ed25519_key* key,
461  const byte* context, byte contextLen);
462 
515 int wc_ed25519ph_verify_msg(const byte* sig, word32 siglen, const byte* msg,
516  word32 msgLen, int* ret, ed25519_key* key,
517  const byte* context, byte contextLen);
518 
540 int wc_ed25519_init(ed25519_key* key);
541 
560 void wc_ed25519_free(ed25519_key* key);
561 
598 int wc_ed25519_import_public(const byte* in, word32 inLen, ed25519_key* key);
599 
637 int wc_ed25519_import_public_ex(const byte* in, word32 inLen, ed25519_key* key,
638  int trusted);
639 
677 int wc_ed25519_import_private_only(const byte* priv, word32 privSz,
678  ed25519_key* key);
679 
722 int wc_ed25519_import_private_key(const byte* priv, word32 privSz,
723  const byte* pub, word32 pubSz, ed25519_key* key);
724 
767 int wc_ed25519_import_private_key_ex(const byte* priv, word32 privSz,
768  const byte* pub, word32 pubSz, ed25519_key* key, int trusted);
769 
810 int wc_ed25519_export_public(ed25519_key* key, byte* out, word32* outLen);
811 
850 int wc_ed25519_export_private_only(ed25519_key* key, byte* out, word32* outLen);
851 
894 int wc_ed25519_export_private(ed25519_key* key, byte* out, word32* outLen);
895 
941 int wc_ed25519_export_key(ed25519_key* key,
942  byte* priv, word32 *privSz,
943  byte* pub, word32 *pubSz);
944 
978 int wc_ed25519_check_key(ed25519_key* key);
979 
1005 int wc_ed25519_size(ed25519_key* key);
1006 
1034 int wc_ed25519_priv_size(ed25519_key* key);
1035 
1062 int wc_ed25519_pub_size(ed25519_key* key);
1063 
1090 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 pair from a buffer containing the public key...
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. It stores the public key in the ...
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 pair from a buffer containing the public key...
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. The hash algorithm used to create message digest must be SHAKE-256.
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...