]>
Commit | Line | Data |
---|---|---|
62f49b90 | 1 | /* |
a28d06f3 | 2 | * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. |
62f49b90 SL |
3 | * |
4 | * Licensed under the Apache License 2.0 (the "License"). You may not use | |
5 | * this file except in compliance with the License. You can obtain a copy | |
6 | * in the file LICENSE in the source distribution or at | |
7 | * https://www.openssl.org/source/license.html | |
8 | */ | |
9 | ||
80ce21fe F |
10 | #ifndef OSSL_CRYPTO_DH_H |
11 | # define OSSL_CRYPTO_DH_H | |
12 | # pragma once | |
13 | ||
14 | # include <openssl/core.h> | |
15 | # include <openssl/params.h> | |
16 | # include <openssl/dh.h> | |
17 | # include "internal/ffc.h" | |
62f49b90 | 18 | |
19dbb742 SL |
19 | DH *ossl_dh_new_by_nid_ex(OSSL_LIB_CTX *libctx, int nid); |
20 | DH *ossl_dh_new_ex(OSSL_LIB_CTX *libctx); | |
6963979f | 21 | void ossl_dh_set0_libctx(DH *d, OSSL_LIB_CTX *libctx); |
19dbb742 SL |
22 | int ossl_dh_generate_ffc_parameters(DH *dh, int type, int pbits, int qbits, |
23 | BN_GENCB *cb); | |
24 | int ossl_dh_generate_public_key(BN_CTX *ctx, const DH *dh, | |
25 | const BIGNUM *priv_key, BIGNUM *pub_key); | |
26 | int ossl_dh_get_named_group_uid_from_size(int pbits); | |
27 | const char *ossl_dh_gen_type_id2name(int id); | |
28 | int ossl_dh_gen_type_name2id(const char *name); | |
29 | void ossl_dh_cache_named_group(DH *dh); | |
4718326a | 30 | int ossl_dh_is_named_safe_prime_group(const DH *dh); |
f11f86f6 | 31 | |
19dbb742 SL |
32 | FFC_PARAMS *ossl_dh_get0_params(DH *dh); |
33 | int ossl_dh_get0_nid(const DH *dh); | |
34 | int ossl_dh_params_fromdata(DH *dh, const OSSL_PARAM params[]); | |
35 | int ossl_dh_key_fromdata(DH *dh, const OSSL_PARAM params[]); | |
36 | int ossl_dh_params_todata(DH *dh, OSSL_PARAM_BLD *bld, OSSL_PARAM params[]); | |
37 | int ossl_dh_key_todata(DH *dh, OSSL_PARAM_BLD *bld, OSSL_PARAM params[]); | |
38 | ||
39 | int ossl_dh_check_pub_key_partial(const DH *dh, const BIGNUM *pub_key, int *ret); | |
40 | int ossl_dh_check_priv_key(const DH *dh, const BIGNUM *priv_key, int *ret); | |
41 | int ossl_dh_check_pairwise(const DH *dh); | |
42 | ||
43 | const DH_METHOD *ossl_dh_get_method(const DH *dh); | |
44 | ||
45 | int ossl_dh_buf2key(DH *key, const unsigned char *buf, size_t len); | |
46 | size_t ossl_dh_key2buf(const DH *dh, unsigned char **pbuf, size_t size, | |
47 | int alloc); | |
48 | ||
49 | int ossl_dh_kdf_X9_42_asn1(unsigned char *out, size_t outlen, | |
50 | const unsigned char *Z, size_t Zlen, | |
51 | const char *cek_alg, | |
52 | const unsigned char *ukm, size_t ukmlen, | |
53 | const EVP_MD *md, | |
54 | OSSL_LIB_CTX *libctx, const char *propq); | |
80ce21fe F |
55 | |
56 | #endif /* OSSL_CRYPTO_DH_H */ |