1515
1616#ifdef LTC_MDSA
1717
18- /**
19- Create a DSA key
20- @param prng An active PRNG state
21- @param wprng The index of the PRNG desired
22- @param key [in/out] Where to store the created key
23- @return CRYPT_OK if successful.
24- */
25- int dsa_make_key_ex (prng_state * prng , int wprng , dsa_key * key )
26- {
27- int err ;
28-
29- LTC_ARGCHK (key != NULL );
30- LTC_ARGCHK (ltc_mp .name != NULL );
31-
32- /* so now we have our DH structure, generator g, order q, modulus p
33- Now we need a random exponent [mod q] and it's power g^x mod p
34- */
35- /* private key x should be from range: 1 <= x <= q-1 (see FIPS 186-4 B.1.2) */
36- if ((err = rand_bn_range (key -> x , key -> q , prng , wprng )) != CRYPT_OK ) { return err ; }
37- if ((err = mp_exptmod (key -> g , key -> x , key -> p , key -> y )) != CRYPT_OK ) { return err ; }
38- key -> type = PK_PRIVATE ;
39-
40- return CRYPT_OK ;
41- }
42-
4318/**
4419 Old-style creation of a DSA key
4520 @param prng An active PRNG state
@@ -54,7 +29,7 @@ int dsa_make_key(prng_state *prng, int wprng, int group_size, int modulus_size,
5429 int err ;
5530
5631 if ((err = dsa_generate_pqg (prng , wprng , group_size , modulus_size , key )) != CRYPT_OK ) { return err ; }
57- if ((err = dsa_make_key_ex (prng , wprng , key )) != CRYPT_OK ) { return err ; }
32+ if ((err = dsa_generate_key (prng , wprng , key )) != CRYPT_OK ) { return err ; }
5833
5934 return CRYPT_OK ;
6035}
0 commit comments