1 /*
2  * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved.
3  * Copyright (c) 2019, Oracle and/or its affiliates.  All rights reserved.
4  *
5  * Licensed under the Apache License 2.0 (the "License").  You may not use
6  * this file except in compliance with the License.  You can obtain a copy
7  * in the file LICENSE in the source distribution or at
8  * https://www.openssl.org/source/license.html
9  */
10 
11 #ifndef OPENSSL_PARAM_BUILD_H
12 # define OPENSSL_PARAM_BUILD_H
13 # pragma once
14 
15 # include <openssl/params.h>
16 # include <openssl/types.h>
17 
18 # ifdef __cplusplus
19 extern "C" {
20 # endif
21 
22 OSSL_PARAM_BLD *OSSL_PARAM_BLD_new(void);
23 OSSL_PARAM *OSSL_PARAM_BLD_to_param(OSSL_PARAM_BLD *bld);
24 void OSSL_PARAM_BLD_free(OSSL_PARAM_BLD *bld);
25 
26 int OSSL_PARAM_BLD_push_int(OSSL_PARAM_BLD *bld, const char *key, int val);
27 int OSSL_PARAM_BLD_push_uint(OSSL_PARAM_BLD *bld, const char *key,
28                              unsigned int val);
29 int OSSL_PARAM_BLD_push_long(OSSL_PARAM_BLD *bld, const char *key,
30                              long int val);
31 int OSSL_PARAM_BLD_push_ulong(OSSL_PARAM_BLD *bld, const char *key,
32                               unsigned long int val);
33 int OSSL_PARAM_BLD_push_int32(OSSL_PARAM_BLD *bld, const char *key,
34                               int32_t val);
35 int OSSL_PARAM_BLD_push_uint32(OSSL_PARAM_BLD *bld, const char *key,
36                                uint32_t val);
37 int OSSL_PARAM_BLD_push_int64(OSSL_PARAM_BLD *bld, const char *key,
38                               int64_t val);
39 int OSSL_PARAM_BLD_push_uint64(OSSL_PARAM_BLD *bld, const char *key,
40                                uint64_t val);
41 int OSSL_PARAM_BLD_push_size_t(OSSL_PARAM_BLD *bld, const char *key,
42                                size_t val);
43 int OSSL_PARAM_BLD_push_time_t(OSSL_PARAM_BLD *bld, const char *key,
44                                time_t val);
45 int OSSL_PARAM_BLD_push_double(OSSL_PARAM_BLD *bld, const char *key,
46                                double val);
47 int OSSL_PARAM_BLD_push_BN(OSSL_PARAM_BLD *bld, const char *key,
48                            const BIGNUM *bn);
49 int OSSL_PARAM_BLD_push_BN_pad(OSSL_PARAM_BLD *bld, const char *key,
50                                const BIGNUM *bn, size_t sz);
51 int OSSL_PARAM_BLD_push_utf8_string(OSSL_PARAM_BLD *bld, const char *key,
52                                     const char *buf, size_t bsize);
53 int OSSL_PARAM_BLD_push_utf8_ptr(OSSL_PARAM_BLD *bld, const char *key,
54                                  char *buf, size_t bsize);
55 int OSSL_PARAM_BLD_push_octet_string(OSSL_PARAM_BLD *bld, const char *key,
56                                      const void *buf, size_t bsize);
57 int OSSL_PARAM_BLD_push_octet_ptr(OSSL_PARAM_BLD *bld, const char *key,
58                                   void *buf, size_t bsize);
59 
60 # ifdef __cplusplus
61 }
62 # endif
63 #endif  /* OPENSSL_PARAM_BUILD_H */
64