diff options
Diffstat (limited to 'src/lib/libcrypto/evp/e_des.c')
-rw-r--r-- | src/lib/libcrypto/evp/e_des.c | 56 |
1 files changed, 24 insertions, 32 deletions
diff --git a/src/lib/libcrypto/evp/e_des.c b/src/lib/libcrypto/evp/e_des.c index 1064c0b7cc..bf037591be 100644 --- a/src/lib/libcrypto/evp/e_des.c +++ b/src/lib/libcrypto/evp/e_des.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: e_des.c,v 1.16 2022/09/04 08:18:07 jsing Exp $ */ | 1 | /* $OpenBSD: e_des.c,v 1.17 2022/09/04 13:17:18 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -68,9 +68,29 @@ | |||
68 | 68 | ||
69 | #include "evp_locl.h" | 69 | #include "evp_locl.h" |
70 | 70 | ||
71 | static int des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, | 71 | static int |
72 | const unsigned char *iv, int enc); | 72 | des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, |
73 | static int des_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr); | 73 | const unsigned char *iv, int enc) |
74 | { | ||
75 | DES_cblock *deskey = (DES_cblock *)key; | ||
76 | |||
77 | DES_set_key_unchecked(deskey, ctx->cipher_data); | ||
78 | return 1; | ||
79 | } | ||
80 | |||
81 | static int | ||
82 | des_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr) | ||
83 | { | ||
84 | switch (type) { | ||
85 | case EVP_CTRL_RAND_KEY: | ||
86 | if (DES_random_key((DES_cblock *)ptr) == 0) | ||
87 | return 0; | ||
88 | return 1; | ||
89 | |||
90 | default: | ||
91 | return -1; | ||
92 | } | ||
93 | } | ||
74 | 94 | ||
75 | static int | 95 | static int |
76 | des_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, | 96 | des_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, |
@@ -278,7 +298,6 @@ EVP_des_ecb(void) | |||
278 | return &des_ecb; | 298 | return &des_ecb; |
279 | } | 299 | } |
280 | 300 | ||
281 | |||
282 | static const EVP_CIPHER des_cfb1 = { | 301 | static const EVP_CIPHER des_cfb1 = { |
283 | .nid = NID_des_cfb1, | 302 | .nid = NID_des_cfb1, |
284 | .block_size = 1, | 303 | .block_size = 1, |
@@ -301,7 +320,6 @@ EVP_des_cfb1(void) | |||
301 | return &des_cfb1; | 320 | return &des_cfb1; |
302 | } | 321 | } |
303 | 322 | ||
304 | |||
305 | static const EVP_CIPHER des_cfb8 = { | 323 | static const EVP_CIPHER des_cfb8 = { |
306 | .nid = NID_des_cfb8, | 324 | .nid = NID_des_cfb8, |
307 | .block_size = 1, | 325 | .block_size = 1, |
@@ -323,30 +341,4 @@ EVP_des_cfb8(void) | |||
323 | { | 341 | { |
324 | return &des_cfb8; | 342 | return &des_cfb8; |
325 | } | 343 | } |
326 | |||
327 | |||
328 | static int | ||
329 | des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, | ||
330 | const unsigned char *iv, int enc) | ||
331 | { | ||
332 | DES_cblock *deskey = (DES_cblock *)key; | ||
333 | |||
334 | DES_set_key_unchecked(deskey, ctx->cipher_data); | ||
335 | return 1; | ||
336 | } | ||
337 | |||
338 | static int | ||
339 | des_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr) | ||
340 | { | ||
341 | switch (type) { | ||
342 | case EVP_CTRL_RAND_KEY: | ||
343 | if (DES_random_key((DES_cblock *)ptr) == 0) | ||
344 | return 0; | ||
345 | return 1; | ||
346 | |||
347 | default: | ||
348 | return -1; | ||
349 | } | ||
350 | } | ||
351 | |||
352 | #endif | 344 | #endif |