aboutsummaryrefslogtreecommitdiffstats
path: root/lib/crypto
AgeCommit message (Collapse)Author
2019-01-08Revamp non-EVP hash_update_nif()Doug Hogan
* Add error handling for all OpenSSL calls.
2019-01-08Revamp non-EVP hash_init_nif()Doug Hogan
2019-01-08Revamp hash_final_nif()Doug Hogan
* Add error handling for all OpenSSL calls.
2019-01-08Revamp hash_update_nif()Doug Hogan
* Add error handling for all OpenSSL and Erlang calls.
2019-01-08Revamp hash_init_nif()Doug Hogan
2019-01-08Revamp hash_nif()Doug Hogan
2019-01-08Revamp evp_generate_key_nif()Doug Hogan
* Bug fix: Some EVP_PKEY_* calls return <= 0 on failure and 1 on success.
2019-01-08Revamp evp_compute_key_nif()Doug Hogan
* Bug fix: Some EVP_PKEY_* return <= 0 on failure and 1 on success. * Fix a possible memory leak where enif_alloc_binary() wasn't converted into a term or freed in all paths.
2019-01-08Revamp engine_get_all_methods_nif()Doug Hogan
2019-01-08Revamp get_engine_load_cmd_list()Doug Hogan
* Restructure the code so it exits early * Check for allocation failures and free on partial result
2019-01-08Revamp engine_get_name_nif()Doug Hogan
* Add error handling for all Erlang calls. * Change size from int to size_t.
2019-01-08Revamp engine_get_id_nif()Doug Hogan
* Add error handling for all Erlang calls. * Change size from int to size_t since it's assigned to sizeof().
2019-01-08Revamp engine_get_next_nif()Doug Hogan
* Add error handling for all Erlang calls.
2019-01-08Revamp engine_get_first_nif()Doug Hogan
* Add error handling for all Erlang calls.
2019-01-08Revamp engine_unregister_nif()Doug Hogan
2019-01-08Revamp engine_register_nif()Doug Hogan
2019-01-08Revamp engine_remove_nif()Doug Hogan
2019-01-08Revamp engine_add_nif()Doug Hogan
2019-01-08Revamp engine_ctrl_cmd_strings_nif()Doug Hogan
* Add bounds checks for allocation multiplication * Simplify the error handling by adding a flag for whether the strings were loaded.
2019-01-08Revamp engine_load_dynamic_nif()Doug Hogan
2019-01-08Revamp engine_finish_nif()Doug Hogan
2019-01-08Revamp engine_free_nif()Doug Hogan
* Add error handling for all OpenSSL calls.
2019-01-08Revamp engine_init_nif()Doug Hogan
2019-01-08Revamp engine_by_id_nif()Doug Hogan
* Add error handling for all Erlang calls.
2019-01-08Revamp zero_terminate()Doug Hogan
2019-01-08Revamp get_key_password()Doug Hogan
2019-01-08Revamp get_engine_and_key_id()Doug Hogan
2019-01-08Revamp initialize()Doug Hogan
* Add error handling for all OpenSSL calls. - However, disable custom crypto mem functions for LibreSSL since it has never supported it.
2019-01-08Revamp block_crypt_nif()Doug Hogan
* Simplify error checking. * Add bounds checking before casting. * Add error checking for all OpenSSL calls.
2019-01-08Revamp bn2term()Doug Hogan
* Add error handling for OpenSSL calls. * Change dlen to signed since BN_num_bytes() returns int. * Use enif_make_badarg() on error since it only returned undefined before in one type of error.
2019-01-08Revamp mod_exp_nif()Doug Hogan
* Add error checking for OpenSSL calls. * Change dlen from unsigned to signed since BN_num_bytes is int. * Add bounds checking before casting. * Consolidate all freeing to one location on error or success.
2019-01-08Revamp bin_from_bn()Doug Hogan
* Add error handling for all OpenSSL calls - There was nothing returned on error before so use enif_make_badarg(). * Add bounds checking before casting.
2019-01-08Revamp get_bn_from_bin()Doug Hogan
* Add bounds checking. * Add error checking for OpenSSL calls. * Only set *bnp on success.
2019-01-08Revamp get_bn_from_mpint()Doug Hogan
* Add bounds checking. * Add error checking for OpenSSL calls. * Only set argument *bnp on success.
2019-01-08Revamp rand_seed_nif()Doug Hogan
* Bounds check before casting.
2019-01-08Revamp rand_uniform_nif()Doug Hogan
* Add error handling for all OpenSSL calls.
2019-01-08Revamp strong_rand_range_nif()Doug Hogan
* Add error checking for all OpenSSL calls.
2019-01-08Revamp strong_rand_bytes_nif()Doug Hogan
* Add bounds check before casting.
2019-01-08Revamp info_lib()Doug Hogan
* Add error checking and use enif_make_badarg() on error. * Use size_t when using sizeof(). * Move initialization away from declaration so it's not as easy to miss.
2019-01-08Revamp change_basename()Doug Hogan
* Change the parameter from int to size_t. - Only caller doesn't need to change since it was already passing sizeof(). * Add unsigned wrapping checks.
2019-01-08Revamp get_dss_public_key()Doug Hogan
* Simplify logic by having incremental allocation and only free on error on one place. * Add error checking on all OpenSSL calls. * Make it explicit when you need to be careful with non-reference counted pointers. - set0 calls will use the pointer values without ref counting. - On success, set pointers to NULL to avoid double frees since the struct is now responsible for freeing the resources.
2019-01-08Revamp get_dss_private_key()Doug Hogan
* Simplify logic by having incremental allocation and only free on error in one place. * Add error checking on all OpenSSL calls. * Make it explicit when you need to be careful with non-ref counted pointers. - set0 calls will save the pointer without reference counting. - On success, set pointers to NULL to avoid double frees since the struct is now responsible for freeing the resources.
2019-01-08Revamp ecdh_compute_key_nif()Doug Hogan
* Bug fix: ECDH_compute_key was not being checked for failures - That function returns 0 on failure and never returns < 0. - Using <= 0 check because OpenSSL uses that internally and on their wiki. * Remove unnecessary variable i * Make the gotos always flow downward rather than jumping back.
2019-01-08Revamp chacha20_stream_crypt()Doug Hogan
* Check return values on all OpenSSL and Erlang calls. * Remove trailing semicolon after function definition.
2019-01-08Revamp chacha20_stream_init()Doug Hogan
* Check return values on all OpenSSL calls. * Remove trailing semicolon after function definition.
2019-01-08Revamp poly1305_nif()Doug Hogan
* Fix a possible memory leak where enif_alloc_binary() wasn't always converted into a term or freed in the error path.
2019-01-08Revamp rc4_set_key()Doug Hogan
* Bounds check key.size before casting.
2019-01-08Revamp get_eddsa_key()Doug Hogan
* pkey is only set on success.
2019-01-08Revamp do_exor()Doug Hogan
* Add additional error checking.
2019-01-08Revamp cmac_nif()Doug Hogan
* Add error checking on all OpenSSL and Erlang calls.