diff options
author | Joel Sing <jsing@cvs.openbsd.org> | 2015-09-13 10:46:21 +0000 |
---|---|---|
committer | Joel Sing <jsing@cvs.openbsd.org> | 2015-09-13 10:46:21 +0000 |
commit | 696b25f8c701b947129ab86c32afd172f3e83287 (patch) | |
tree | 4ecd97edc07a1d5a46dec3965eedf5d83d22b5b0 /lib | |
parent | c43f23c07396cd1b59f7d09779149f9172711f8d (diff) |
Lob a style(9) grenade in here.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libcrypto/ecdh/ecdh.h | 17 | ||||
-rw-r--r-- | lib/libcrypto/ecdh/ech_err.c | 49 | ||||
-rw-r--r-- | lib/libcrypto/ecdh/ech_key.c | 11 | ||||
-rw-r--r-- | lib/libcrypto/ecdh/ech_lib.c | 133 | ||||
-rw-r--r-- | lib/libcrypto/ecdh/ech_locl.h | 11 | ||||
-rw-r--r-- | lib/libcrypto/ecdh/ech_ossl.c | 136 |
6 files changed, 176 insertions, 181 deletions
diff --git a/lib/libcrypto/ecdh/ecdh.h b/lib/libcrypto/ecdh/ecdh.h index c8c6920aa2e..3bcb8b045e2 100644 --- a/lib/libcrypto/ecdh/ecdh.h +++ b/lib/libcrypto/ecdh/ecdh.h @@ -1,4 +1,4 @@ -/* $OpenBSD: ecdh.h,v 1.2 2014/06/12 15:49:29 deraadt Exp $ */ +/* $OpenBSD: ecdh.h,v 1.3 2015/09/13 10:46:20 jsing Exp $ */ /* ==================================================================== * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. * @@ -21,7 +21,7 @@ * are met: * * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. + * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in @@ -87,15 +87,16 @@ extern "C" { const ECDH_METHOD *ECDH_OpenSSL(void); -void ECDH_set_default_method(const ECDH_METHOD *); +void ECDH_set_default_method(const ECDH_METHOD *); const ECDH_METHOD *ECDH_get_default_method(void); -int ECDH_set_method(EC_KEY *, const ECDH_METHOD *); +int ECDH_set_method(EC_KEY *, const ECDH_METHOD *); -int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, EC_KEY *ecdh, - void *(*KDF)(const void *in, size_t inlen, void *out, size_t *outlen)); +int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, + EC_KEY *ecdh, + void *(*KDF)(const void *in, size_t inlen, void *out, size_t *outlen)); -int ECDH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new - *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); +int ECDH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new +*new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); int ECDH_set_ex_data(EC_KEY *d, int idx, void *arg); void *ECDH_get_ex_data(EC_KEY *d, int idx); diff --git a/lib/libcrypto/ecdh/ech_err.c b/lib/libcrypto/ecdh/ech_err.c index 6b417a255d0..2899b573c34 100644 --- a/lib/libcrypto/ecdh/ech_err.c +++ b/lib/libcrypto/ecdh/ech_err.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ech_err.c,v 1.3 2014/07/10 22:45:57 jsing Exp $ */ +/* $OpenBSD: ech_err.c,v 1.4 2015/09/13 10:46:20 jsing Exp $ */ /* ==================================================================== * Copyright (c) 1999-2011 The OpenSSL Project. All rights reserved. * @@ -7,7 +7,7 @@ * are met: * * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. + * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in @@ -71,33 +71,30 @@ #define ERR_FUNC(func) ERR_PACK(ERR_LIB_ECDH,func,0) #define ERR_REASON(reason) ERR_PACK(ERR_LIB_ECDH,0,reason) -static ERR_STRING_DATA ECDH_str_functs[]= - { -{ERR_FUNC(ECDH_F_ECDH_CHECK), "ECDH_CHECK"}, -{ERR_FUNC(ECDH_F_ECDH_COMPUTE_KEY), "ECDH_compute_key"}, -{ERR_FUNC(ECDH_F_ECDH_DATA_NEW_METHOD), "ECDH_DATA_new_method"}, -{0,NULL} - }; +static ERR_STRING_DATA ECDH_str_functs[]= { + {ERR_FUNC(ECDH_F_ECDH_CHECK), "ECDH_CHECK"}, + {ERR_FUNC(ECDH_F_ECDH_COMPUTE_KEY), "ECDH_compute_key"}, + {ERR_FUNC(ECDH_F_ECDH_DATA_NEW_METHOD), "ECDH_DATA_new_method"}, + {0, NULL} +}; -static ERR_STRING_DATA ECDH_str_reasons[]= - { -{ERR_REASON(ECDH_R_KDF_FAILED) ,"KDF failed"}, -{ERR_REASON(ECDH_R_NON_FIPS_METHOD) ,"non fips method"}, -{ERR_REASON(ECDH_R_NO_PRIVATE_VALUE) ,"no private value"}, -{ERR_REASON(ECDH_R_POINT_ARITHMETIC_FAILURE),"point arithmetic failure"}, -{0,NULL} - }; +static ERR_STRING_DATA ECDH_str_reasons[]= { + {ERR_REASON(ECDH_R_KDF_FAILED) , "KDF failed"}, + {ERR_REASON(ECDH_R_NON_FIPS_METHOD) , "non fips method"}, + {ERR_REASON(ECDH_R_NO_PRIVATE_VALUE) , "no private value"}, + {ERR_REASON(ECDH_R_POINT_ARITHMETIC_FAILURE), "point arithmetic failure"}, + {0, NULL} +}; #endif -void ERR_load_ECDH_strings(void) - { +void +ERR_load_ECDH_strings(void) +{ #ifndef OPENSSL_NO_ERR - - if (ERR_func_error_string(ECDH_str_functs[0].error) == NULL) - { - ERR_load_strings(0,ECDH_str_functs); - ERR_load_strings(0,ECDH_str_reasons); - } -#endif + if (ERR_func_error_string(ECDH_str_functs[0].error) == NULL) { + ERR_load_strings(0, ECDH_str_functs); + ERR_load_strings(0, ECDH_str_reasons); } +#endif +} diff --git a/lib/libcrypto/ecdh/ech_key.c b/lib/libcrypto/ecdh/ech_key.c index b0bba7f8260..9a8091fe19f 100644 --- a/lib/libcrypto/ecdh/ech_key.c +++ b/lib/libcrypto/ecdh/ech_key.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ech_key.c,v 1.2 2014/06/12 15:49:29 deraadt Exp $ */ +/* $OpenBSD: ech_key.c,v 1.3 2015/09/13 10:46:20 jsing Exp $ */ /* ==================================================================== * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. * @@ -21,7 +21,7 @@ * are met: * * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. + * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in @@ -69,9 +69,10 @@ #include "ech_locl.h" -int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, - EC_KEY *eckey, - void *(*KDF)(const void *in, size_t inlen, void *out, size_t *outlen)) +int +ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, + EC_KEY *eckey, + void *(*KDF)(const void *in, size_t inlen, void *out, size_t *outlen)) { ECDH_DATA *ecdh = ecdh_check(eckey); if (ecdh == NULL) diff --git a/lib/libcrypto/ecdh/ech_lib.c b/lib/libcrypto/ecdh/ech_lib.c index 58dddf638f3..579dfc4b4f8 100644 --- a/lib/libcrypto/ecdh/ech_lib.c +++ b/lib/libcrypto/ecdh/ech_lib.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ech_lib.c,v 1.9 2015/09/10 15:56:25 jsing Exp $ */ +/* $OpenBSD: ech_lib.c,v 1.10 2015/09/13 10:46:20 jsing Exp $ */ /* ==================================================================== * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. * @@ -21,7 +21,7 @@ * are met: * * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. + * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in @@ -83,22 +83,24 @@ static void *ecdh_data_new(void); static void *ecdh_data_dup(void *); static void ecdh_data_free(void *); -void ECDH_set_default_method(const ECDH_METHOD *meth) - { +void +ECDH_set_default_method(const ECDH_METHOD *meth) +{ default_ECDH_method = meth; - } +} -const ECDH_METHOD *ECDH_get_default_method(void) - { - if(!default_ECDH_method) - { +const ECDH_METHOD * +ECDH_get_default_method(void) +{ + if (!default_ECDH_method) { default_ECDH_method = ECDH_OpenSSL(); - } - return default_ECDH_method; } + return default_ECDH_method; +} -int ECDH_set_method(EC_KEY *eckey, const ECDH_METHOD *meth) - { +int +ECDH_set_method(EC_KEY *eckey, const ECDH_METHOD *meth) +{ ECDH_DATA *ecdh; ecdh = ecdh_check(eckey); @@ -107,26 +109,25 @@ int ECDH_set_method(EC_KEY *eckey, const ECDH_METHOD *meth) return 0; #ifndef OPENSSL_NO_ENGINE - if (ecdh->engine) - { + if (ecdh->engine) { ENGINE_finish(ecdh->engine); ecdh->engine = NULL; - } -#endif - ecdh->meth = meth; - return 1; } +#endif + ecdh->meth = meth; + return 1; +} -static ECDH_DATA *ECDH_DATA_new_method(ENGINE *engine) - { +static ECDH_DATA * +ECDH_DATA_new_method(ENGINE *engine) +{ ECDH_DATA *ret; ret = malloc(sizeof(ECDH_DATA)); - if (ret == NULL) - { + if (ret == NULL) { ECDHerr(ECDH_F_ECDH_DATA_NEW_METHOD, ERR_R_MALLOC_FAILURE); - return(NULL); - } + return (NULL); + } ret->init = NULL; @@ -135,30 +136,30 @@ static ECDH_DATA *ECDH_DATA_new_method(ENGINE *engine) #ifndef OPENSSL_NO_ENGINE if (!ret->engine) ret->engine = ENGINE_get_default_ECDH(); - if (ret->engine) - { + if (ret->engine) { ret->meth = ENGINE_get_ECDH(ret->engine); - if (!ret->meth) - { + if (!ret->meth) { ECDHerr(ECDH_F_ECDH_DATA_NEW_METHOD, ERR_R_ENGINE_LIB); ENGINE_finish(ret->engine); free(ret); return NULL; - } } + } #endif ret->flags = ret->meth->flags; CRYPTO_new_ex_data(CRYPTO_EX_INDEX_ECDH, ret, &ret->ex_data); - return(ret); - } + return (ret); +} -static void *ecdh_data_new(void) - { +static void * +ecdh_data_new(void) +{ return (void *)ECDH_DATA_new_method(NULL); - } +} -static void *ecdh_data_dup(void *data) +static void * +ecdh_data_dup(void *data) { ECDH_DATA *r = (ECDH_DATA *)data; @@ -169,8 +170,9 @@ static void *ecdh_data_dup(void *data) return (void *)ecdh_data_new(); } -void ecdh_data_free(void *data) - { +void +ecdh_data_free(void *data) +{ ECDH_DATA *r = (ECDH_DATA *)data; #ifndef OPENSSL_NO_ENGINE @@ -183,56 +185,57 @@ void ecdh_data_free(void *data) explicit_bzero((void *)r, sizeof(ECDH_DATA)); free(r); - } +} -ECDH_DATA *ecdh_check(EC_KEY *key) - { +ECDH_DATA * +ecdh_check(EC_KEY *key) +{ ECDH_DATA *ecdh_data; - + void *data = EC_KEY_get_key_method_data(key, ecdh_data_dup, - ecdh_data_free, ecdh_data_free); - if (data == NULL) - { + ecdh_data_free, ecdh_data_free); + if (data == NULL) { ecdh_data = (ECDH_DATA *)ecdh_data_new(); if (ecdh_data == NULL) return NULL; data = EC_KEY_insert_key_method_data(key, (void *)ecdh_data, - ecdh_data_dup, ecdh_data_free, ecdh_data_free); - if (data != NULL) - { + ecdh_data_dup, ecdh_data_free, ecdh_data_free); + if (data != NULL) { /* Another thread raced us to install the key_method * data and won. */ ecdh_data_free(ecdh_data); ecdh_data = (ECDH_DATA *)data; - } - } - else + } + } else ecdh_data = (ECDH_DATA *)data; return ecdh_data; - } +} -int ECDH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func) - { +int +ECDH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func) +{ return CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_ECDH, argl, argp, - new_func, dup_func, free_func); - } + new_func, dup_func, free_func); +} -int ECDH_set_ex_data(EC_KEY *d, int idx, void *arg) - { +int +ECDH_set_ex_data(EC_KEY *d, int idx, void *arg) +{ ECDH_DATA *ecdh; ecdh = ecdh_check(d); if (ecdh == NULL) return 0; - return(CRYPTO_set_ex_data(&ecdh->ex_data,idx,arg)); - } + return (CRYPTO_set_ex_data(&ecdh->ex_data, idx, arg)); +} -void *ECDH_get_ex_data(EC_KEY *d, int idx) - { +void * +ECDH_get_ex_data(EC_KEY *d, int idx) +{ ECDH_DATA *ecdh; ecdh = ecdh_check(d); if (ecdh == NULL) return NULL; - return(CRYPTO_get_ex_data(&ecdh->ex_data,idx)); - } + return (CRYPTO_get_ex_data(&ecdh->ex_data, idx)); +} diff --git a/lib/libcrypto/ecdh/ech_locl.h b/lib/libcrypto/ecdh/ech_locl.h index 077c7dab95d..83380073933 100644 --- a/lib/libcrypto/ecdh/ech_locl.h +++ b/lib/libcrypto/ecdh/ech_locl.h @@ -1,4 +1,4 @@ -/* $OpenBSD: ech_locl.h,v 1.3 2015/02/07 13:19:15 doug Exp $ */ +/* $OpenBSD: ech_locl.h,v 1.4 2015/09/13 10:46:20 jsing Exp $ */ /* ==================================================================== * Copyright (c) 2000-2005 The OpenSSL Project. All rights reserved. * @@ -7,7 +7,7 @@ * are met: * * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. + * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in @@ -62,14 +62,13 @@ extern "C" { #endif -struct ecdh_method - { +struct ecdh_method { const char *name; int (*compute_key)(void *key, size_t outlen, const EC_POINT *pub_key, EC_KEY *ecdh, - void *(*KDF)(const void *in, size_t inlen, void *out, size_t *outlen)); + void *(*KDF)(const void *in, size_t inlen, void *out, size_t *outlen)); int flags; char *app_data; - }; +}; /* If this flag is set the ECDH method is FIPS compliant and can be used * in FIPS mode. This is set in the validated module method. If an diff --git a/lib/libcrypto/ecdh/ech_ossl.c b/lib/libcrypto/ecdh/ech_ossl.c index 4fae7cacfdb..f05db87f789 100644 --- a/lib/libcrypto/ecdh/ech_ossl.c +++ b/lib/libcrypto/ecdh/ech_ossl.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ech_ossl.c,v 1.9 2015/02/09 15:49:22 jsing Exp $ */ +/* $OpenBSD: ech_ossl.c,v 1.10 2015/09/13 10:46:20 jsing Exp $ */ /* ==================================================================== * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. * @@ -21,7 +21,7 @@ * are met: * * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. + * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in @@ -80,18 +80,19 @@ #include "ech_locl.h" static int ecdh_compute_key(void *out, size_t len, const EC_POINT *pub_key, - EC_KEY *ecdh, - void *(*KDF)(const void *in, size_t inlen, void *out, size_t *outlen)); + EC_KEY *ecdh, + void *(*KDF)(const void *in, size_t inlen, void *out, size_t *outlen)); static ECDH_METHOD openssl_ecdh_meth = { .name = "OpenSSL ECDH method", .compute_key = ecdh_compute_key }; -const ECDH_METHOD *ECDH_OpenSSL(void) - { +const ECDH_METHOD * +ECDH_OpenSSL(void) +{ return &openssl_ecdh_meth; - } +} /* This implementation is based on the following primitives in the IEEE 1363 standard: @@ -99,114 +100,107 @@ const ECDH_METHOD *ECDH_OpenSSL(void) * - ECSVDP-DH * Finally an optional KDF is applied. */ -static int ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, - EC_KEY *ecdh, - void *(*KDF)(const void *in, size_t inlen, void *out, size_t *outlen)) - { +static int +ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, + EC_KEY *ecdh, + void *(*KDF)(const void *in, size_t inlen, void *out, size_t *outlen)) +{ BN_CTX *ctx; - EC_POINT *tmp=NULL; - BIGNUM *x=NULL, *y=NULL; + EC_POINT *tmp = NULL; + BIGNUM *x = NULL, *y = NULL; const BIGNUM *priv_key; const EC_GROUP* group; - int ret= -1; + int ret = -1; size_t buflen, len; - unsigned char *buf=NULL; + unsigned char *buf = NULL; - if (outlen > INT_MAX) - { + if (outlen > INT_MAX) { ECDHerr(ECDH_F_ECDH_COMPUTE_KEY,ERR_R_MALLOC_FAILURE); /* sort of, anyway */ return -1; - } + } - if ((ctx = BN_CTX_new()) == NULL) goto err; + if ((ctx = BN_CTX_new()) == NULL) + goto err; BN_CTX_start(ctx); if ((x = BN_CTX_get(ctx)) == NULL) goto err; if ((y = BN_CTX_get(ctx)) == NULL) goto err; - + priv_key = EC_KEY_get0_private_key(ecdh); - if (priv_key == NULL) - { - ECDHerr(ECDH_F_ECDH_COMPUTE_KEY,ECDH_R_NO_PRIVATE_VALUE); + if (priv_key == NULL) { + ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ECDH_R_NO_PRIVATE_VALUE); goto err; - } + } group = EC_KEY_get0_group(ecdh); - if ((tmp=EC_POINT_new(group)) == NULL) - { - ECDHerr(ECDH_F_ECDH_COMPUTE_KEY,ERR_R_MALLOC_FAILURE); + if ((tmp = EC_POINT_new(group)) == NULL) { + ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ERR_R_MALLOC_FAILURE); goto err; - } + } - if (!EC_POINT_mul(group, tmp, NULL, pub_key, priv_key, ctx)) - { - ECDHerr(ECDH_F_ECDH_COMPUTE_KEY,ECDH_R_POINT_ARITHMETIC_FAILURE); + if (!EC_POINT_mul(group, tmp, NULL, pub_key, priv_key, ctx)) { + ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, + ECDH_R_POINT_ARITHMETIC_FAILURE); goto err; - } - - if (EC_METHOD_get_field_type(EC_GROUP_method_of(group)) == NID_X9_62_prime_field) - { - if (!EC_POINT_get_affine_coordinates_GFp(group, tmp, x, y, ctx)) - { - ECDHerr(ECDH_F_ECDH_COMPUTE_KEY,ECDH_R_POINT_ARITHMETIC_FAILURE); + } + + if (EC_METHOD_get_field_type(EC_GROUP_method_of(group)) == + NID_X9_62_prime_field) { + if (!EC_POINT_get_affine_coordinates_GFp(group, tmp, x, y, + ctx)) { + ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, + ECDH_R_POINT_ARITHMETIC_FAILURE); goto err; - } } + } #ifndef OPENSSL_NO_EC2M - else - { - if (!EC_POINT_get_affine_coordinates_GF2m(group, tmp, x, y, ctx)) - { - ECDHerr(ECDH_F_ECDH_COMPUTE_KEY,ECDH_R_POINT_ARITHMETIC_FAILURE); + else { + if (!EC_POINT_get_affine_coordinates_GF2m(group, tmp, x, y, + ctx)) { + ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, + ECDH_R_POINT_ARITHMETIC_FAILURE); goto err; - } } + } #endif buflen = (EC_GROUP_get_degree(group) + 7)/8; len = BN_num_bytes(x); - if (len > buflen) - { - ECDHerr(ECDH_F_ECDH_COMPUTE_KEY,ERR_R_INTERNAL_ERROR); + if (len > buflen) { + ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ERR_R_INTERNAL_ERROR); goto err; - } - if ((buf = malloc(buflen)) == NULL) - { - ECDHerr(ECDH_F_ECDH_COMPUTE_KEY,ERR_R_MALLOC_FAILURE); + } + if ((buf = malloc(buflen)) == NULL) { + ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ERR_R_MALLOC_FAILURE); goto err; - } - + } + memset(buf, 0, buflen - len); - if (len != (size_t)BN_bn2bin(x, buf + buflen - len)) - { - ECDHerr(ECDH_F_ECDH_COMPUTE_KEY,ERR_R_BN_LIB); + if (len != (size_t)BN_bn2bin(x, buf + buflen - len)) { + ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ERR_R_BN_LIB); goto err; - } + } - if (KDF != 0) - { - if (KDF(buf, buflen, out, &outlen) == NULL) - { - ECDHerr(ECDH_F_ECDH_COMPUTE_KEY,ECDH_R_KDF_FAILED); + if (KDF != 0) { + if (KDF(buf, buflen, out, &outlen) == NULL) { + ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ECDH_R_KDF_FAILED); goto err; - } - ret = outlen; } - else - { + ret = outlen; + } else { /* no KDF, just copy as much as we can */ if (outlen > buflen) outlen = buflen; memcpy(out, buf, outlen); ret = outlen; - } - + } + err: EC_POINT_free(tmp); if (ctx) BN_CTX_end(ctx); BN_CTX_free(ctx); free(buf); - return(ret); - } + return (ret); +} |