1 /* 2 * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. 3 * 4 * Licensed under the OpenSSL license (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 /* 11 * This file contains deprecated function(s) that are now wrappers to the new 12 * version(s). 13 */ 14 15 /* 16 * Parameter generation follows the updated Appendix 2.2 for FIPS PUB 186, 17 * also Appendix 2.2 of FIPS PUB 186-1 (i.e. use SHA as defined in FIPS PUB 18 * 180-1) 19 */ 20 #define xxxHASH EVP_sha1() 21 22 #include <openssl/opensslconf.h> 23 #if OPENSSL_API_COMPAT >= 0x00908000L 24 NON_EMPTY_TRANSLATION_UNIT 25 #else 26 27 # include <stdio.h> 28 # include <time.h> 29 # include "internal/cryptlib.h" 30 # include <openssl/evp.h> 31 # include <openssl/bn.h> 32 # include <openssl/dsa.h> 33 # include <openssl/sha.h> 34 35 DSA *DSA_generate_parameters(int bits, 36 unsigned char *seed_in, int seed_len, 37 int *counter_ret, unsigned long *h_ret, 38 void (*callback) (int, int, void *), 39 void *cb_arg) 40 { 41 BN_GENCB *cb; 42 DSA *ret; 43 44 if ((ret = DSA_new()) == NULL) 45 return NULL; 46 cb = BN_GENCB_new(); 47 if (cb == NULL) 48 goto err; 49 50 BN_GENCB_set_old(cb, callback, cb_arg); 51 52 if (DSA_generate_parameters_ex(ret, bits, seed_in, seed_len, 53 counter_ret, h_ret, cb)) { 54 BN_GENCB_free(cb); 55 return ret; 56 } 57 BN_GENCB_free(cb); 58 err: 59 DSA_free(ret); 60 return NULL; 61 } 62 #endif 63