xref: /freebsd/crypto/openssl/include/internal/param_build_set.h (revision b077aed33b7b6aefca7b17ddb250cf521f938613)
1*b077aed3SPierre Pronchery /*
2*b077aed3SPierre Pronchery  * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved.
3*b077aed3SPierre Pronchery  *
4*b077aed3SPierre Pronchery  * Licensed under the Apache License 2.0 (the "License").  You may not use
5*b077aed3SPierre Pronchery  * this file except in compliance with the License.  You can obtain a copy
6*b077aed3SPierre Pronchery  * in the file LICENSE in the source distribution or at
7*b077aed3SPierre Pronchery  * https://www.openssl.org/source/license.html
8*b077aed3SPierre Pronchery  */
9*b077aed3SPierre Pronchery 
10*b077aed3SPierre Pronchery #ifndef OSSL_INTERNAL_PARAM_BUILD_SET_H
11*b077aed3SPierre Pronchery # define OSSL_INTERNAL_PARAM_BUILD_SET_H
12*b077aed3SPierre Pronchery # pragma once
13*b077aed3SPierre Pronchery 
14*b077aed3SPierre Pronchery # include <openssl/safestack.h>
15*b077aed3SPierre Pronchery # include <openssl/param_build.h>
16*b077aed3SPierre Pronchery # include "internal/cryptlib.h"
17*b077aed3SPierre Pronchery 
18*b077aed3SPierre Pronchery typedef union {
19*b077aed3SPierre Pronchery     OSSL_UNION_ALIGN;
20*b077aed3SPierre Pronchery } OSSL_PARAM_ALIGNED_BLOCK;
21*b077aed3SPierre Pronchery 
22*b077aed3SPierre Pronchery # define OSSL_PARAM_ALIGN_SIZE  sizeof(OSSL_PARAM_ALIGNED_BLOCK)
23*b077aed3SPierre Pronchery 
24*b077aed3SPierre Pronchery size_t ossl_param_bytes_to_blocks(size_t bytes);
25*b077aed3SPierre Pronchery void ossl_param_set_secure_block(OSSL_PARAM *last, void *secure_buffer,
26*b077aed3SPierre Pronchery                                  size_t secure_buffer_sz);
27*b077aed3SPierre Pronchery 
28*b077aed3SPierre Pronchery int ossl_param_build_set_int(OSSL_PARAM_BLD *bld, OSSL_PARAM *p,
29*b077aed3SPierre Pronchery                              const char *key, int num);
30*b077aed3SPierre Pronchery int ossl_param_build_set_long(OSSL_PARAM_BLD *bld, OSSL_PARAM *p,
31*b077aed3SPierre Pronchery                               const char *key, long num);
32*b077aed3SPierre Pronchery int ossl_param_build_set_utf8_string(OSSL_PARAM_BLD *bld, OSSL_PARAM *p,
33*b077aed3SPierre Pronchery                                      const char *key, const char *buf);
34*b077aed3SPierre Pronchery int ossl_param_build_set_octet_string(OSSL_PARAM_BLD *bld, OSSL_PARAM *p,
35*b077aed3SPierre Pronchery                                       const char *key,
36*b077aed3SPierre Pronchery                                       const unsigned char *data,
37*b077aed3SPierre Pronchery                                       size_t data_len);
38*b077aed3SPierre Pronchery int ossl_param_build_set_bn(OSSL_PARAM_BLD *bld, OSSL_PARAM *p,
39*b077aed3SPierre Pronchery                             const char *key, const BIGNUM *bn);
40*b077aed3SPierre Pronchery int ossl_param_build_set_bn_pad(OSSL_PARAM_BLD *bld, OSSL_PARAM *p,
41*b077aed3SPierre Pronchery                                 const char *key, const BIGNUM *bn,  size_t sz);
42*b077aed3SPierre Pronchery int ossl_param_build_set_multi_key_bn(OSSL_PARAM_BLD *bld, OSSL_PARAM *p,
43*b077aed3SPierre Pronchery                                       const char *names[],
44*b077aed3SPierre Pronchery                                       STACK_OF(BIGNUM_const) *stk);
45*b077aed3SPierre Pronchery 
46*b077aed3SPierre Pronchery #endif  /* OSSL_INTERNAL_PARAM_BUILD_SET_H */
47