diff options
author | Pauli <paul.dale@oracle.com> | 2020-03-26 09:28:01 +1000 |
---|---|---|
committer | Pauli <paul.dale@oracle.com> | 2020-03-28 12:27:22 +1000 |
commit | 6d4e6009d27712a405e1e3a4c33fb8a8566f134a (patch) | |
tree | 09d94a8c8f8f6f493cc758b6fd704837be82cb8c /include | |
parent | be19d3caf0724b786ecc97ec4207c07cff63c745 (diff) |
Param build: make structures opaque.
Since this is public, it is best to make the underlying structure opaque.
This means converting from stack allocation to dynamic allocation for all
usages.
Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/11390)
Diffstat (limited to 'include')
-rw-r--r-- | include/openssl/param_build.h | 33 | ||||
-rw-r--r-- | include/openssl/types.h | 1 |
2 files changed, 4 insertions, 30 deletions
diff --git a/include/openssl/param_build.h b/include/openssl/param_build.h index 68b58e5768..edccd01758 100644 --- a/include/openssl/param_build.h +++ b/include/openssl/param_build.h @@ -11,37 +11,10 @@ #include <openssl/params.h> #include <openssl/types.h> -#define OSSL_PARAM_BLD_MAX 25 - -typedef struct { - const char *key; - int type; - int secure; - size_t size; - size_t alloc_blocks; - const BIGNUM *bn; - const void *string; - union { - /* - * These fields are never directly addressed, but their sizes are - * imporant so that all native types can be copied here without overrun. - */ - ossl_intmax_t i; - ossl_uintmax_t u; - double d; - } num; -} OSSL_PARAM_BLD_DEF; - -typedef struct { - size_t curr; - size_t total_blocks; - size_t secure_blocks; - OSSL_PARAM_BLD_DEF params[OSSL_PARAM_BLD_MAX]; -} OSSL_PARAM_BLD; - -void OSSL_PARAM_BLD_init(OSSL_PARAM_BLD *bld); +OSSL_PARAM_BLD *OSSL_PARAM_BLD_new(void); OSSL_PARAM *OSSL_PARAM_BLD_to_param(OSSL_PARAM_BLD *bld); -void OSSL_PARAM_BLD_free(OSSL_PARAM *params); +void OSSL_PARAM_BLD_free(OSSL_PARAM_BLD *bld); +void OSSL_PARAM_BLD_free_params(OSSL_PARAM *params); int OSSL_PARAM_BLD_push_int(OSSL_PARAM_BLD *bld, const char *key, int val); int OSSL_PARAM_BLD_push_uint(OSSL_PARAM_BLD *bld, const char *key, diff --git a/include/openssl/types.h b/include/openssl/types.h index e7078df6d0..6520fbfaf8 100644 --- a/include/openssl/types.h +++ b/include/openssl/types.h @@ -203,6 +203,7 @@ typedef struct ossl_dispatch_st OSSL_DISPATCH; typedef struct ossl_item_st OSSL_ITEM; typedef struct ossl_algorithm_st OSSL_ALGORITHM; typedef struct ossl_param_st OSSL_PARAM; +typedef struct ossl_param_bld_st OSSL_PARAM_BLD; typedef int pem_password_cb (char *buf, int size, int rwflag, void *userdata); |