1 /* 2 * Copyright 2002-2020 The OpenSSL Project Authors. All Rights Reserved. 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 10 /* This file contains deprecated functions as wrappers to the new ones */ 11 12 /* 13 * DH low level APIs are deprecated for public use, but still ok for 14 * internal use. 15 */ 16 #include "internal/deprecated.h" 17 18 #include <openssl/opensslconf.h> 19 20 #include <stdio.h> 21 #include "internal/cryptlib.h" 22 #include <openssl/bn.h> 23 #include <openssl/dh.h> 24 25 DH *DH_generate_parameters(int prime_len, int generator, 26 void (*callback) (int, int, void *), void *cb_arg) 27 { 28 BN_GENCB *cb; 29 DH *ret = NULL; 30 31 if ((ret = DH_new()) == NULL) 32 return NULL; 33 cb = BN_GENCB_new(); 34 if (cb == NULL) { 35 DH_free(ret); 36 return NULL; 37 } 38 39 BN_GENCB_set_old(cb, callback, cb_arg); 40 41 if (DH_generate_parameters_ex(ret, prime_len, generator, cb)) { 42 BN_GENCB_free(cb); 43 return ret; 44 } 45 BN_GENCB_free(cb); 46 DH_free(ret); 47 return NULL; 48 } 49