Line data Source code
1 : /*
2 : * Copyright (c) 1995, 1996, 1997, 1999 Kungliga Tekniska Högskolan
3 : * (Royal Institute of Technology, Stockholm, Sweden).
4 : * All rights reserved.
5 : *
6 : * Redistribution and use in source and binary forms, with or without
7 : * modification, are permitted provided that the following conditions
8 : * are met:
9 : *
10 : * 1. Redistributions of source code must retain the above copyright
11 : * notice, this list of conditions and the following disclaimer.
12 : *
13 : * 2. Redistributions in binary form must reproduce the above copyright
14 : * notice, this list of conditions and the following disclaimer in the
15 : * documentation and/or other materials provided with the distribution.
16 : *
17 : * 3. Neither the name of the Institute nor the names of its contributors
18 : * may be used to endorse or promote products derived from this software
19 : * without specific prior written permission.
20 : *
21 : * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
22 : * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 : * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 : * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
25 : * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 : * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 : * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 : * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 : * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 : * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 : * SUCH DAMAGE.
32 : */
33 :
34 : #include <config.h>
35 : #include <roken.h>
36 :
37 : #define HC_DEPRECATED
38 :
39 : #ifdef KRB5
40 : #include <krb5-types.h>
41 : #endif
42 :
43 : #include <des.h>
44 : #include <rand.h>
45 :
46 : #undef __attribute__
47 : #define __attribute__(X)
48 :
49 : void HC_DEPRECATED
50 0 : DES_rand_data(void *outdata, int size)
51 : {
52 0 : RAND_bytes(outdata, size);
53 0 : }
54 :
55 : void HC_DEPRECATED
56 0 : DES_generate_random_block(DES_cblock *block)
57 : {
58 0 : RAND_bytes(block, sizeof(*block));
59 0 : }
60 :
61 : #define DES_rand_data_key hc_DES_rand_data_key
62 :
63 : void HC_DEPRECATED
64 : DES_rand_data_key(DES_cblock *key);
65 :
66 : /*
67 : * Generate a random DES key.
68 : */
69 :
70 : void HC_DEPRECATED
71 0 : DES_rand_data_key(DES_cblock *key)
72 : {
73 0 : DES_new_random_key(key);
74 0 : }
75 :
76 : void HC_DEPRECATED
77 0 : DES_set_sequence_number(void *ll)
78 : {
79 0 : }
80 :
81 : void HC_DEPRECATED
82 0 : DES_set_random_generator_seed(DES_cblock *seed)
83 : {
84 0 : RAND_seed(seed, sizeof(*seed));
85 0 : }
86 :
87 : /**
88 : * Generate a random des key using a random block, fixup parity and
89 : * skip weak keys.
90 : *
91 : * @param key is set to a random key.
92 : *
93 : * @return 0 on success, non zero on random number generator failure.
94 : *
95 : * @ingroup hcrypto_des
96 : */
97 :
98 : int HC_DEPRECATED
99 0 : DES_new_random_key(DES_cblock *key)
100 : {
101 0 : do {
102 0 : if (RAND_bytes(key, sizeof(*key)) != 1)
103 0 : return 1;
104 0 : DES_set_odd_parity(key);
105 0 : } while(DES_is_weak_key(key));
106 :
107 0 : return(0);
108 : }
109 :
110 : /**
111 : * Seed the random number generator. Deprecated, use @ref page_rand
112 : *
113 : * @param seed a seed to seed that random number generate with.
114 : *
115 : * @ingroup hcrypto_des
116 : */
117 :
118 : void HC_DEPRECATED
119 0 : DES_init_random_number_generator(DES_cblock *seed)
120 : {
121 0 : RAND_seed(seed, sizeof(*seed));
122 0 : }
123 :
124 : /**
125 : * Generate a random key, deprecated since it doesn't return an error
126 : * code, use DES_new_random_key().
127 : *
128 : * @param key is set to a random key.
129 : *
130 : * @ingroup hcrypto_des
131 : */
132 :
133 : void HC_DEPRECATED
134 0 : DES_random_key(DES_cblock *key)
135 : {
136 0 : if (DES_new_random_key(key))
137 0 : abort();
138 0 : }
|