Encrypts plaintext using ECIES with XOR encryption, standard Diffie-Hellman, ANSI X9.42/X9.63 KDF with SHA-1 and HMAC-SHA-1 primitives.
#include "huecc.h"
int hu_ECIESEncrypt(sb_Params eccParams, sb_PublicKey publicKey, size_t addInfoKDFLen, const unsigned char *addInfoKDF, size_t addInfoHMACLen, const unsigned char *addInfoHMAC, size_t plaintextLen, const unsigned char *plaintext, size_t *ciphertextLen, unsigned char *ciphertext, sb_GlobalCtx sbCtx)
BlackBerry 10.0.0
An ECC parameters object.
An ECC public key object.
The length (in bytes) of additional information for KDF. (Optional)
Additional information for KDF. (Optional - set to NULL if not used.)
The length (in bytes) of additional information for HMAC. (Optional)
Additional information for HMAC. (Optional - set to NULL if not used.)
The length (in bytes) of the plaintext.
The plaintext.
The length (in bytes) of the ciphertext.
The ciphertext.
A global context.
A MAC tag forms part of the ciphertext and is used to verify integrity during decryption.
The ECC parameter object must have been created with an RNG context.
If the length of the ciphertext is known, a pointer to a buffer large enough to hold the ciphertext should be passed in ciphertext and its length in ciphertextLen. This function will copy the ciphertext into ciphertext and set the actual length of the ciphertext in ciphertextLen.
If ciphertext is NULL, or ciphertext is not NULL but ciphertextLen is too small, this function will set the correct length of the ciphertext in ciphertextLen.
The eccParams object is NULL.
The tag for the params object is not of the expected type.
No RNG context was found in the parameters object.
The publicKey object is NULL.
The publicKey object is invalid.
Plaintext buffer is NULL.
The length of the plaintext buffer is invalid.
The ciphertext buffer is NULL.
The length of the ciphertext buffer is invalid.
Memory allocation failure.
Success.