]>
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 | |
b4250010 DMSP |
19 | DH *dh_new_by_nid_ex(OSSL_LIB_CTX *libctx, int nid); |
20 | DH *dh_new_ex(OSSL_LIB_CTX *libctx); | |
6963979f | 21 | void ossl_dh_set0_libctx(DH *d, OSSL_LIB_CTX *libctx); |
8083fd3a | 22 | |
4f2271d5 SL |
23 | int dh_generate_ffc_parameters(DH *dh, int type, int pbits, int qbits, |
24 | BN_GENCB *cb); | |
d1fb6b48 | 25 | int dh_generate_public_key(BN_CTX *ctx, const DH *dh, const BIGNUM *priv_key, |
8083fd3a | 26 | BIGNUM *pub_key); |
7165593c SL |
27 | int dh_get_named_group_uid_from_size(int pbits); |
28 | const char *dh_gen_type_id2name(int id); | |
c829c23b | 29 | int dh_gen_type_name2id(const char *name); |
738ee181 | 30 | void dh_cache_named_group(DH *dh); |
f11f86f6 | 31 | |
dc8de3e6 | 32 | FFC_PARAMS *dh_get0_params(DH *dh); |
ca2bf555 | 33 | int dh_get0_nid(const DH *dh); |
0ba71d6a | 34 | int dh_params_fromdata(DH *dh, const OSSL_PARAM params[]); |
0abae163 | 35 | int dh_key_fromdata(DH *dh, const OSSL_PARAM params[]); |
0ba71d6a RL |
36 | int dh_params_todata(DH *dh, OSSL_PARAM_BLD *bld, OSSL_PARAM params[]); |
37 | int dh_key_todata(DH *dh, OSSL_PARAM_BLD *bld, OSSL_PARAM params[]); | |
8083fd3a SL |
38 | |
39 | int dh_check_pub_key_partial(const DH *dh, const BIGNUM *pub_key, int *ret); | |
40 | int dh_check_priv_key(const DH *dh, const BIGNUM *priv_key, int *ret); | |
d1fb6b48 | 41 | int dh_check_pairwise(const DH *dh); |
c518117b RL |
42 | |
43 | const DH_METHOD *dh_get_method(const DH *dh); | |
6a9bd929 MC |
44 | |
45 | int dh_buf2key(DH *key, const unsigned char *buf, size_t len); | |
46 | size_t dh_key2buf(const DH *dh, unsigned char **pbuf, size_t size, int alloc); | |
116d2510 SL |
47 | |
48 | int dh_KDF_X9_42_asn1(unsigned char *out, size_t outlen, | |
49 | const unsigned char *Z, size_t Zlen, | |
50 | const char *cek_alg, | |
51 | const unsigned char *ukm, size_t ukmlen, const EVP_MD *md, | |
b4250010 | 52 | OSSL_LIB_CTX *libctx, const char *propq); |
80ce21fe F |
53 | |
54 | #endif /* OSSL_CRYPTO_DH_H */ |