OSSL_PARAM_dup.3ossl - Man Page

OSSL_PARAM_dup, OSSL_PARAM_merge, OSSL_PARAM_free ​- OSSL_PARAM array copy functions

Synopsis

​ #include <openssl/params.h>
​
​ OSSL_PARAM *OSSL_PARAM_dup(const OSSL_PARAM *params);
​ OSSL_PARAM *OSSL_PARAM_merge(const OSSL_PARAM *params, const OSSL_PARAM *params1);
​ void OSSL_PARAM_free(OSSL_PARAM *params);

Description

Algorithm parameters can be exported/imported from/to providers using arrays of ​OSSL_PARAM(3). The following utility functions allow the parameters to be duplicated and merged with other OSSL_PARAM(3) to assist in this process.

OSSL_PARAM_dup() duplicates the parameter array params. This function does a deep copy of the data.

OSSL_PARAM_merge() merges the parameter arrays params and params1 into a new parameter array. If params and params1 contain values with the same ​'key' then the value from params1 will replace the param value. This function does a shallow copy of the parameters. Either params or params1 may be NULL. The behaviour of the merge is unpredictable if params and ​params1 contain the same key, and there are multiple entries within either array that have the same key.

OSSL_PARAM_free() frees the parameter array params that was created using ​OSSL_PARAM_dup(), OSSL_PARAM_merge() or OSSL_PARAM_BLD_to_param(). If the argument to OSSL_PARAM_free() is NULL, nothing is done.

Return Values

The functions OSSL_PARAM_dup() and OSSL_PARAM_merge() return a newly allocated ​OSSL_PARAM(3) array, or NULL if there was an error. If both parameters are NULL
then NULL is returned.

See Also

OSSL_PARAM(3), OSSL_PARAM_BLD(3)

History

The functions were added in OpenSSL 3.0.

Referenced By

OSSL_PARAM.3ossl(3).

The man pages OSSL_PARAM_clear_free.3ossl(3), OSSL_PARAM_free.3ossl(3) and OSSL_PARAM_merge.3ossl(3) are aliases of OSSL_PARAM_dup.3ossl(3).

2026-08-25 3.5.8 OpenSSL