]>
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> | |
cf333799 | 17 | # include <openssl/x509.h> |
80ce21fe | 18 | # include "internal/ffc.h" |
62f49b90 | 19 | |
19dbb742 SL |
20 | DH *ossl_dh_new_by_nid_ex(OSSL_LIB_CTX *libctx, int nid); |
21 | DH *ossl_dh_new_ex(OSSL_LIB_CTX *libctx); | |
6963979f | 22 | void ossl_dh_set0_libctx(DH *d, OSSL_LIB_CTX *libctx); |
19dbb742 SL |
23 | int ossl_dh_generate_ffc_parameters(DH *dh, int type, int pbits, int qbits, |
24 | BN_GENCB *cb); | |
25 | int ossl_dh_generate_public_key(BN_CTX *ctx, const DH *dh, | |
26 | const BIGNUM *priv_key, BIGNUM *pub_key); | |
27 | int ossl_dh_get_named_group_uid_from_size(int pbits); | |
28 | const char *ossl_dh_gen_type_id2name(int id); | |
29 | int ossl_dh_gen_type_name2id(const char *name); | |
30 | void ossl_dh_cache_named_group(DH *dh); | |
4718326a | 31 | int ossl_dh_is_named_safe_prime_group(const DH *dh); |
f11f86f6 | 32 | |
19dbb742 SL |
33 | FFC_PARAMS *ossl_dh_get0_params(DH *dh); |
34 | int ossl_dh_get0_nid(const DH *dh); | |
35 | int ossl_dh_params_fromdata(DH *dh, const OSSL_PARAM params[]); | |
36 | int ossl_dh_key_fromdata(DH *dh, const OSSL_PARAM params[]); | |
37 | int ossl_dh_params_todata(DH *dh, OSSL_PARAM_BLD *bld, OSSL_PARAM params[]); | |
38 | int ossl_dh_key_todata(DH *dh, OSSL_PARAM_BLD *bld, OSSL_PARAM params[]); | |
cf333799 RL |
39 | DH *ossl_dh_key_from_pkcs8(const PKCS8_PRIV_KEY_INFO *p8inf, |
40 | OSSL_LIB_CTX *libctx, const char *propq); | |
e454a393 | 41 | int ossl_dh_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh); |
19dbb742 SL |
42 | |
43 | int ossl_dh_check_pub_key_partial(const DH *dh, const BIGNUM *pub_key, int *ret); | |
44 | int ossl_dh_check_priv_key(const DH *dh, const BIGNUM *priv_key, int *ret); | |
45 | int ossl_dh_check_pairwise(const DH *dh); | |
46 | ||
47 | const DH_METHOD *ossl_dh_get_method(const DH *dh); | |
48 | ||
49 | int ossl_dh_buf2key(DH *key, const unsigned char *buf, size_t len); | |
50 | size_t ossl_dh_key2buf(const DH *dh, unsigned char **pbuf, size_t size, | |
51 | int alloc); | |
52 | ||
53 | int ossl_dh_kdf_X9_42_asn1(unsigned char *out, size_t outlen, | |
54 | const unsigned char *Z, size_t Zlen, | |
55 | const char *cek_alg, | |
56 | const unsigned char *ukm, size_t ukmlen, | |
57 | const EVP_MD *md, | |
58 | OSSL_LIB_CTX *libctx, const char *propq); | |
80ce21fe F |
59 | |
60 | #endif /* OSSL_CRYPTO_DH_H */ |