My Project
|
Go to the source code of this file.
Functions | |
int | wc_ecc_make_key (WC_RNG *rng, int keysize, ecc_key *key) |
This function generates a new ecc_key and stores it in key. More... | |
int | wc_ecc_make_key_ex (WC_RNG *rng, int keysize, ecc_key *key, int curve_id) |
This function generates a new ecc_key and stores it in key. More... | |
int | wc_ecc_check_key (ecc_key *key) |
Perform sanity checks on ecc key validity. More... | |
void | wc_ecc_key_free (ecc_key *key) |
This function frees an ecc_key key after it has been used. More... | |
int | wc_ecc_shared_secret (ecc_key *private_key, ecc_key *public_key, byte *out, word32 *outlen) |
This function generates a new secret key using a local private key and a received public key. It stores this shared secret key in the buffer out and updates outlen to hold the number of bytes written to the output buffer. More... | |
int | wc_ecc_shared_secret_ex (ecc_key *private_key, ecc_point *point, byte *out, word32 *outlen) |
Create an ECC shared secret between private key and public point. More... | |
int | wc_ecc_sign_hash (const byte *in, word32 inlen, byte *out, word32 *outlen, WC_RNG *rng, ecc_key *key) |
This function signs a message digest using an ecc_key object to guarantee authenticity. More... | |
int | wc_ecc_sign_hash_ex (const byte *in, word32 inlen, WC_RNG *rng, ecc_key *key, mp_int *r, mp_int *s) |
Sign a message digest. More... | |
int | wc_ecc_verify_hash (const byte *sig, word32 siglen, const byte *hash, word32 hashlen, int *stat, ecc_key *key) |
This function verifies the ECC signature of a hash to ensure authenticity. It returns the answer through stat, with 1 corresponding to a valid signature, and 0 corresponding to an invalid signature. More... | |
int | wc_ecc_verify_hash_ex (mp_int *r, mp_int *s, const byte *hash, word32 hashlen, int *stat, ecc_key *key) |
Verify an ECC signature. Result is written to stat. 1 is valid, 0 is invalid. Note: Do not use the return value to test for valid. Only use stat. More... | |
int | wc_ecc_init (ecc_key *key) |
This function initializes an ecc_key object for future use with message verification or key negotiation. More... | |
int | wc_ecc_init_ex (ecc_key *key, void *heap, int devId) |
This function initializes an ecc_key object for future use with message verification or key negotiation. More... | |
ecc_key * | wc_ecc_key_new (void *heap) |
This function uses a user defined heap and allocates space for the key structure. More... | |
int | wc_ecc_free (ecc_key *key) |
This function frees an ecc_key object after it has been used. More... | |
void | wc_ecc_fp_free (void) |
This function frees the fixed-point cache, which can be used with ecc to speed up computation times. To use this functionality, FP_ECC (fixed-point ecc), should be defined. Threaded applications should call this function before exiting the thread. More... | |
int | wc_ecc_is_valid_idx (int n) |
Checks if an ECC idx is valid. More... | |
ecc_point * | wc_ecc_new_point (void) |
Allocate a new ECC point. More... | |
void | wc_ecc_del_point (ecc_point *p) |
Free an ECC point from memory. More... | |
int | wc_ecc_copy_point (ecc_point *p, ecc_point *r) |
Copy the value of one point to another one. More... | |
int | wc_ecc_cmp_point (ecc_point *a, ecc_point *b) |
Compare the value of a point with another one. More... | |
int | wc_ecc_point_is_at_infinity (ecc_point *p) |
Checks if a point is at infinity. Returns 1 if point is at infinity, 0 if not, < 0 on error. More... | |
int | wc_ecc_mulmod (mp_int *k, ecc_point *G, ecc_point *R, mp_int *a, mp_int *modulus, int map) |
Perform ECC Fixed Point multiplication. More... | |
int | wc_ecc_export_x963 (ecc_key *key, byte *out, word32 *outLen) |
This function exports the ECC key from the ecc_key structure, storing the result in out. The key will be stored in ANSI X9.63 format. It stores the bytes written to the output buffer in outLen. More... | |
int | wc_ecc_export_x963_ex (ecc_key *key, byte *out, word32 *outLen, int compressed) |
This function exports the ECC key from the ecc_key structure, storing the result in out. The key will be stored in ANSI X9.63 format. It stores the bytes written to the output buffer in outLen. This function allows the additional option of compressing the certificate through the compressed parameter. When this parameter is true, the key will be stored in ANSI X9.63 compressed format. More... | |
int | wc_ecc_import_x963 (const byte *in, word32 inLen, ecc_key *key) |
This function imports a public ECC key from a buffer containing the key stored in ANSI X9.63 format. This function will handle both compressed and uncompressed keys, as long as compressed keys are enabled at compile time through the HAVE_COMP_KEY option. More... | |
int | wc_ecc_import_private_key (const byte *priv, word32 privSz, const byte *pub, word32 pubSz, ecc_key *key) |
This function imports a public/private ECC key pair from a buffer containing the raw private key, and a second buffer containing the ANSI X9.63 formatted public key. This function will handle both compressed and uncompressed keys, as long as compressed keys are enabled at compile time through the HAVE_COMP_KEY option. More... | |
int | wc_ecc_rs_to_sig (const char *r, const char *s, byte *out, word32 *outlen) |
This function converts the R and S portions of an ECC signature into a DER-encoded ECDSA signature. This function also stores the length written to the output buffer, out, in outlen. More... | |
int | wc_ecc_import_raw (ecc_key *key, const char *qx, const char *qy, const char *d, const char *curveName) |
This function fills an ecc_key structure with the raw components of an ECC signature. More... | |
int | wc_ecc_export_private_only (ecc_key *key, byte *out, word32 *outLen) |
This function exports only the private key from an ecc_key structure. It stores the private key in the buffer out, and sets the bytes written to this buffer in outLen. More... | |
int | wc_ecc_export_point_der (const int curve_idx, ecc_point *point, byte *out, word32 *outLen) |
Export point to der. More... | |
int | wc_ecc_import_point_der (byte *in, word32 inLen, const int curve_idx, ecc_point *point) |
Import point from der format. More... | |
int | wc_ecc_size (ecc_key *key) |
This function returns the key size of an ecc_key structure in octets. More... | |
int | wc_ecc_sig_size_calc (int sz) |
This function returns the worst case size for an ECC signature, given by: (keySz * 2) + SIG_HEADER_SZ + ECC_MAX_PAD_SZ. The actual signature size can be computed with wc_ecc_sign_hash. More... | |
int | wc_ecc_sig_size (ecc_key *key) |
This function returns the worst case size for an ECC signature, given by: (keySz * 2) + SIG_HEADER_SZ + ECC_MAX_PAD_SZ. The actual signature size can be computed with wc_ecc_sign_hash. More... | |
ecEncCtx * | wc_ecc_ctx_new (int flags, WC_RNG *rng) |
This function allocates and initializes space for a new ECC context object to allow secure message exchange with ECC. More... | |
void | wc_ecc_ctx_free (ecEncCtx *) |
This function frees the ecEncCtx object used for encrypting and decrypting messages. More... | |
int | wc_ecc_ctx_reset (ecEncCtx *ctx, WC_RNG *rng) |
This function resets an ecEncCtx structure to avoid having to free and allocate a new context object. More... | |
int | wc_ecc_ctx_set_algo (ecEncCtx *ctx, byte encAlgo, byte kdfAlgo, byte macAlgo) |
This function can optionally be called after wc_ecc_ctx_new. It sets the encryption, KDF, and MAC algorithms into an ecEncCtx object. More... | |
const byte * | wc_ecc_ctx_get_own_salt (ecEncCtx *) |
This function returns the salt of an ecEncCtx object. This function should only be called when the ecEncCtx's state is ecSRV_INIT or ecCLI_INIT. More... | |
int | wc_ecc_ctx_set_peer_salt (ecEncCtx *ctx, const byte *salt) |
This function sets the peer salt of an ecEncCtx object. More... | |
int | wc_ecc_ctx_set_kdf_salt (ecEncCtx *ctx, const byte *salt, word32 sz) |
This function sets the salt pointer and length to use with KDF into the ecEncCtx object. More... | |
int | wc_ecc_ctx_set_info (ecEncCtx *ctx, const byte *info, int sz) |
This function can optionally be called before or after wc_ecc_ctx_set_peer_salt. It sets optional information for an ecEncCtx object. More... | |
int | wc_ecc_encrypt (ecc_key *privKey, ecc_key *pubKey, const byte *msg, word32 msgSz, byte *out, word32 *outSz, ecEncCtx *ctx) |
This function encrypts the given input message from msg to out. This function takes an optional ctx object as parameter. When supplied, encryption proceeds based on the ecEncCtx's encAlgo, kdfAlgo, and macAlgo. If ctx is not supplied, processing completes with the default algorithms, ecAES_128_CBC, ecHKDF_SHA256 and ecHMAC_SHA256. This function requires that the messages are padded according to the encryption type specified by ctx. More... | |
int | wc_ecc_encrypt_ex (ecc_key *privKey, ecc_key *pubKey, const byte *msg, word32 msgSz, byte *out, word32 *outSz, ecEncCtx *ctx, int compressed) |
This function encrypts the given input message from msg to out. This function takes an optional ctx object as parameter. When supplied, encryption proceeds based on the ecEncCtx's encAlgo, kdfAlgo, and macAlgo. If ctx is not supplied, processing completes with the default algorithms, ecAES_128_CBC, ecHKDF_SHA256 and ecHMAC_SHA256. This function requires that the messages are padded according to the encryption type specified by ctx. More... | |
int | wc_ecc_decrypt (ecc_key *privKey, ecc_key *pubKey, const byte *msg, word32 msgSz, byte *out, word32 *outSz, ecEncCtx *ctx) |
This function decrypts the ciphertext from msg to out. This function takes an optional ctx object as parameter. When supplied, encryption proceeds based on the ecEncCtx's encAlgo, kdfAlgo, and macAlgo. If ctx is not supplied, processing completes with the default algorithms, ecAES_128_CBC, ecHKDF_SHA256 and ecHMAC_SHA256. This function requires that the messages are padded according to the encryption type specified by ctx. More... | |
int | wc_ecc_set_nonblock (ecc_key *key, ecc_nb_ctx_t *ctx) |
Enable ECC support for non-blocking operations. Supported for Single Precision (SP) math with the following build options: WOLFSSL_SP_NONBLOCK WOLFSSL_SP_SMALL WOLFSSL_SP_NO_MALLOC WC_ECC_NONBLOCK. More... | |
int | wc_ecc_set_curve (ecc_key *key, int keysize, int curve_id) |
Compare a curve which has larger key than specified size or the curve matched curve ID, set a curve with smaller key size to the key. More... | |