summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2022-09-04 13:17:18 +0000
committerjsing <>2022-09-04 13:17:18 +0000
commite0a6d27109c842f87e3f1f5c368f7eaf24cfd6f7 (patch)
treecb92f37869e1b342783302b265164463a74d0a99
parent6f74aedf29c64cca6f4963750a513b61049d06d8 (diff)
downloadopenbsd-e0a6d27109c842f87e3f1f5c368f7eaf24cfd6f7.tar.gz
openbsd-e0a6d27109c842f87e3f1f5c368f7eaf24cfd6f7.tar.bz2
openbsd-e0a6d27109c842f87e3f1f5c368f7eaf24cfd6f7.zip
Rearrange some functions.
Pull the init_key and ctrl (if present) functions up to the top. This improves readability and allows for the removal of function prototypes. No functional change.
-rw-r--r--src/lib/libcrypto/evp/e_bf.c22
-rw-r--r--src/lib/libcrypto/evp/e_camellia.c38
-rw-r--r--src/lib/libcrypto/evp/e_cast.c21
-rw-r--r--src/lib/libcrypto/evp/e_des.c56
-rw-r--r--src/lib/libcrypto/evp/e_des3.c103
-rw-r--r--src/lib/libcrypto/evp/e_gost2814789.c22
-rw-r--r--src/lib/libcrypto/evp/e_idea.c53
-rw-r--r--src/lib/libcrypto/evp/e_sm4.c3
8 files changed, 141 insertions, 177 deletions
diff --git a/src/lib/libcrypto/evp/e_bf.c b/src/lib/libcrypto/evp/e_bf.c
index f4e0c4c093..745c4d3201 100644
--- a/src/lib/libcrypto/evp/e_bf.c
+++ b/src/lib/libcrypto/evp/e_bf.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_bf.c,v 1.9 2022/09/03 19:43:16 jsing Exp $ */ 1/* $OpenBSD: e_bf.c,v 1.10 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,6 @@
68 68
69#include "evp_locl.h" 69#include "evp_locl.h"
70 70
71static int bf_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
72 const unsigned char *iv, int enc);
73
74typedef struct { 71typedef struct {
75 BF_KEY ks; 72 BF_KEY ks;
76} EVP_BF_KEY; 73} EVP_BF_KEY;
@@ -78,6 +75,14 @@ typedef struct {
78#define data(ctx) ((EVP_BF_KEY *)(ctx)->cipher_data) 75#define data(ctx) ((EVP_BF_KEY *)(ctx)->cipher_data)
79 76
80static int 77static int
78bf_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
79 const unsigned char *iv, int enc)
80{
81 BF_set_key(&data(ctx)->ks, EVP_CIPHER_CTX_key_length(ctx), key);
82 return 1;
83}
84
85static int
81bf_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl) 86bf_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl)
82{ 87{
83 while (inl >= EVP_MAXCHUNK) { 88 while (inl >= EVP_MAXCHUNK) {
@@ -237,13 +242,4 @@ EVP_bf_ecb(void)
237{ 242{
238 return &bf_ecb; 243 return &bf_ecb;
239} 244}
240
241
242static int
243bf_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
244 const unsigned char *iv, int enc)
245{
246 BF_set_key(&data(ctx)->ks, EVP_CIPHER_CTX_key_length(ctx), key);
247 return 1;
248}
249#endif 245#endif
diff --git a/src/lib/libcrypto/evp/e_camellia.c b/src/lib/libcrypto/evp/e_camellia.c
index 42c036a7ab..2d7ab73627 100644
--- a/src/lib/libcrypto/evp/e_camellia.c
+++ b/src/lib/libcrypto/evp/e_camellia.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_camellia.c,v 1.11 2022/09/04 07:54:59 jsing Exp $ */ 1/* $OpenBSD: e_camellia.c,v 1.12 2022/09/04 13:17:18 jsing Exp $ */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 2006 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 2006 The OpenSSL Project. All rights reserved.
4 * 4 *
@@ -64,9 +64,6 @@
64 64
65#include "evp_locl.h" 65#include "evp_locl.h"
66 66
67static int camellia_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
68 const unsigned char *iv, int enc);
69
70/* Camellia subkey Structure */ 67/* Camellia subkey Structure */
71typedef struct { 68typedef struct {
72 CAMELLIA_KEY ks; 69 CAMELLIA_KEY ks;
@@ -76,6 +73,22 @@ typedef struct {
76#define data(ctx) ((EVP_CAMELLIA_KEY *)(ctx)->cipher_data) 73#define data(ctx) ((EVP_CAMELLIA_KEY *)(ctx)->cipher_data)
77 74
78static int 75static int
76camellia_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
77 const unsigned char *iv, int enc)
78{
79 int ret;
80
81 ret = Camellia_set_key(key, ctx->key_len * 8, ctx->cipher_data);
82
83 if (ret < 0) {
84 EVPerror(EVP_R_CAMELLIA_KEY_SETUP_FAILED);
85 return 0;
86 }
87
88 return 1;
89}
90
91static int
79camellia_128_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl) 92camellia_128_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl)
80{ 93{
81 while (inl >= EVP_MAXCHUNK) { 94 while (inl >= EVP_MAXCHUNK) {
@@ -828,21 +841,4 @@ EVP_camellia_256_cfb8(void)
828{ 841{
829 return &camellia_256_cfb8; 842 return &camellia_256_cfb8;
830} 843}
831
832/* The subkey for Camellia is generated. */
833static int
834camellia_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
835 const unsigned char *iv, int enc)
836{
837 int ret;
838
839 ret = Camellia_set_key(key, ctx->key_len * 8, ctx->cipher_data);
840
841 if (ret < 0) {
842 EVPerror(EVP_R_CAMELLIA_KEY_SETUP_FAILED);
843 return 0;
844 }
845
846 return 1;
847}
848#endif 844#endif
diff --git a/src/lib/libcrypto/evp/e_cast.c b/src/lib/libcrypto/evp/e_cast.c
index b23dfeef1c..32f86d86af 100644
--- a/src/lib/libcrypto/evp/e_cast.c
+++ b/src/lib/libcrypto/evp/e_cast.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_cast.c,v 1.8 2022/09/03 19:51:53 jsing Exp $ */ 1/* $OpenBSD: e_cast.c,v 1.9 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,6 @@
68 68
69#include "evp_locl.h" 69#include "evp_locl.h"
70 70
71static int cast_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
72 const unsigned char *iv, int enc);
73
74typedef struct { 71typedef struct {
75 CAST_KEY ks; 72 CAST_KEY ks;
76} EVP_CAST_KEY; 73} EVP_CAST_KEY;
@@ -78,6 +75,14 @@ typedef struct {
78#define data(ctx) ((EVP_CAST_KEY *)(ctx)->cipher_data) 75#define data(ctx) ((EVP_CAST_KEY *)(ctx)->cipher_data)
79 76
80static int 77static int
78cast_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
79 const unsigned char *iv, int enc)
80{
81 CAST_set_key(&data(ctx)->ks, EVP_CIPHER_CTX_key_length(ctx), key);
82 return 1;
83}
84
85static int
81cast5_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl) 86cast5_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl)
82{ 87{
83 while (inl >= EVP_MAXCHUNK) { 88 while (inl >= EVP_MAXCHUNK) {
@@ -237,12 +242,4 @@ EVP_cast5_ecb(void)
237{ 242{
238 return &cast5_ecb; 243 return &cast5_ecb;
239} 244}
240
241static int
242cast_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
243 const unsigned char *iv, int enc)
244{
245 CAST_set_key(&data(ctx)->ks, EVP_CIPHER_CTX_key_length(ctx), key);
246 return 1;
247}
248#endif 245#endif
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
71static int des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, 71static int
72 const unsigned char *iv, int enc); 72des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
73static 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
81static int
82des_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
75static int 95static int
76des_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, 96des_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
282static const EVP_CIPHER des_cfb1 = { 301static 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
305static const EVP_CIPHER des_cfb8 = { 323static 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
328static int
329des_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
338static int
339des_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
diff --git a/src/lib/libcrypto/evp/e_des3.c b/src/lib/libcrypto/evp/e_des3.c
index 1d843d9c84..e9d7f56809 100644
--- a/src/lib/libcrypto/evp/e_des3.c
+++ b/src/lib/libcrypto/evp/e_des3.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_des3.c,v 1.22 2022/09/04 08:54:16 jsing Exp $ */ 1/* $OpenBSD: e_des3.c,v 1.23 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 *
@@ -69,14 +69,6 @@
69 69
70#include "evp_locl.h" 70#include "evp_locl.h"
71 71
72static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
73 const unsigned char *iv, int enc);
74
75static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
76 const unsigned char *iv, int enc);
77
78static int des3_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr);
79
80typedef struct { 72typedef struct {
81 DES_key_schedule ks1;/* key schedule */ 73 DES_key_schedule ks1;/* key schedule */
82 DES_key_schedule ks2;/* key schedule (for ede) */ 74 DES_key_schedule ks2;/* key schedule (for ede) */
@@ -86,6 +78,52 @@ typedef struct {
86#define data(ctx) ((DES_EDE_KEY *)(ctx)->cipher_data) 78#define data(ctx) ((DES_EDE_KEY *)(ctx)->cipher_data)
87 79
88static int 80static int
81des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
82 const unsigned char *iv, int enc)
83{
84 DES_cblock *deskey = (DES_cblock *)key;
85
86 DES_set_key_unchecked(&deskey[0], &data(ctx)->ks1);
87 DES_set_key_unchecked(&deskey[1], &data(ctx)->ks2);
88 memcpy(&data(ctx)->ks3, &data(ctx)->ks1,
89 sizeof(data(ctx)->ks1));
90 return 1;
91}
92
93static int
94des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
95 const unsigned char *iv, int enc)
96{
97 DES_cblock *deskey = (DES_cblock *)key;
98
99
100 DES_set_key_unchecked(&deskey[0], &data(ctx)->ks1);
101 DES_set_key_unchecked(&deskey[1], &data(ctx)->ks2);
102 DES_set_key_unchecked(&deskey[2], &data(ctx)->ks3);
103 return 1;
104}
105
106static int
107des3_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
108{
109 DES_cblock *deskey = ptr;
110
111 switch (type) {
112 case EVP_CTRL_RAND_KEY:
113 if (DES_random_key(deskey) == 0)
114 return 0;
115 if (c->key_len >= 16 && DES_random_key(deskey + 1) == 0)
116 return 0;
117 if (c->key_len >= 24 && DES_random_key(deskey + 2) == 0)
118 return 0;
119 return 1;
120
121 default:
122 return -1;
123 }
124}
125
126static int
89des_ede_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, 127des_ede_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
90 const unsigned char *in, size_t inl) 128 const unsigned char *in, size_t inl)
91{ 129{
@@ -432,53 +470,6 @@ EVP_des_ede3_cfb8(void)
432 return &des_ede3_cfb8; 470 return &des_ede3_cfb8;
433} 471}
434 472
435
436static int
437des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
438 const unsigned char *iv, int enc)
439{
440 DES_cblock *deskey = (DES_cblock *)key;
441
442 DES_set_key_unchecked(&deskey[0], &data(ctx)->ks1);
443 DES_set_key_unchecked(&deskey[1], &data(ctx)->ks2);
444 memcpy(&data(ctx)->ks3, &data(ctx)->ks1,
445 sizeof(data(ctx)->ks1));
446 return 1;
447}
448
449static int
450des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
451 const unsigned char *iv, int enc)
452{
453 DES_cblock *deskey = (DES_cblock *)key;
454
455
456 DES_set_key_unchecked(&deskey[0], &data(ctx)->ks1);
457 DES_set_key_unchecked(&deskey[1], &data(ctx)->ks2);
458 DES_set_key_unchecked(&deskey[2], &data(ctx)->ks3);
459 return 1;
460}
461
462static int
463des3_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
464{
465 DES_cblock *deskey = ptr;
466
467 switch (type) {
468 case EVP_CTRL_RAND_KEY:
469 if (DES_random_key(deskey) == 0)
470 return 0;
471 if (c->key_len >= 16 && DES_random_key(deskey + 1) == 0)
472 return 0;
473 if (c->key_len >= 24 && DES_random_key(deskey + 2) == 0)
474 return 0;
475 return 1;
476
477 default:
478 return -1;
479 }
480}
481
482const EVP_CIPHER * 473const EVP_CIPHER *
483EVP_des_ede(void) 474EVP_des_ede(void)
484{ 475{
diff --git a/src/lib/libcrypto/evp/e_gost2814789.c b/src/lib/libcrypto/evp/e_gost2814789.c
index 11379be547..959610f16d 100644
--- a/src/lib/libcrypto/evp/e_gost2814789.c
+++ b/src/lib/libcrypto/evp/e_gost2814789.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_gost2814789.c,v 1.6 2022/09/04 09:48:23 jsing Exp $ */ 1/* $OpenBSD: e_gost2814789.c,v 1.7 2022/09/04 13:17:18 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> 3 * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
4 * Copyright (c) 2005-2006 Cryptocom LTD 4 * Copyright (c) 2005-2006 Cryptocom LTD
@@ -66,6 +66,15 @@ typedef struct {
66} EVP_GOST2814789_CTX; 66} EVP_GOST2814789_CTX;
67 67
68static int 68static int
69gost2814789_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
70 const unsigned char *iv, int enc)
71{
72 EVP_GOST2814789_CTX *c = ctx->cipher_data;
73
74 return Gost2814789_set_key(&c->ks, key, ctx->key_len * 8);
75}
76
77static int
69gost2814789_ctl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr) 78gost2814789_ctl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr)
70{ 79{
71 EVP_GOST2814789_CTX *c = ctx->cipher_data; 80 EVP_GOST2814789_CTX *c = ctx->cipher_data;
@@ -89,15 +98,6 @@ gost2814789_ctl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr)
89 } 98 }
90} 99}
91 100
92static int
93gost2814789_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
94 const unsigned char *iv, int enc)
95{
96 EVP_GOST2814789_CTX *c = ctx->cipher_data;
97
98 return Gost2814789_set_key(&c->ks, key, ctx->key_len * 8);
99}
100
101int 101int
102gost2814789_set_asn1_params(EVP_CIPHER_CTX *ctx, ASN1_TYPE *params) 102gost2814789_set_asn1_params(EVP_CIPHER_CTX *ctx, ASN1_TYPE *params)
103{ 103{
@@ -227,7 +227,6 @@ gost2814789_cfb64_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned
227 return 1; 227 return 1;
228} 228}
229 229
230
231static int 230static int
232gost2814789_cnt_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, 231gost2814789_cnt_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
233 const unsigned char *in, size_t inl) 232 const unsigned char *in, size_t inl)
@@ -316,5 +315,4 @@ EVP_gost2814789_cnt(void)
316{ 315{
317 return &gost2814789_cnt; 316 return &gost2814789_cnt;
318} 317}
319
320#endif 318#endif
diff --git a/src/lib/libcrypto/evp/e_idea.c b/src/lib/libcrypto/evp/e_idea.c
index d69f200423..819f52ba23 100644
--- a/src/lib/libcrypto/evp/e_idea.c
+++ b/src/lib/libcrypto/evp/e_idea.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_idea.c,v 1.12 2022/09/04 08:57:32 jsing Exp $ */ 1/* $OpenBSD: e_idea.c,v 1.13 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 *
@@ -69,14 +69,34 @@
69 69
70#include "evp_locl.h" 70#include "evp_locl.h"
71 71
72static int idea_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
73 const unsigned char *iv, int enc);
74
75/* NB idea_ecb_encrypt doesn't take an 'encrypt' argument so we treat it as a special 72/* NB idea_ecb_encrypt doesn't take an 'encrypt' argument so we treat it as a special
76 * case 73 * case
77 */ 74 */
78 75
79static int 76static int
77idea_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
78 const unsigned char *iv, int enc)
79{
80 if (!enc) {
81 if (EVP_CIPHER_CTX_mode(ctx) == EVP_CIPH_OFB_MODE)
82 enc = 1;
83 else if (EVP_CIPHER_CTX_mode(ctx) == EVP_CIPH_CFB_MODE)
84 enc = 1;
85 }
86 if (enc)
87 idea_set_encrypt_key(key, ctx->cipher_data);
88 else {
89 IDEA_KEY_SCHEDULE tmp;
90
91 idea_set_encrypt_key(key, &tmp);
92 idea_set_decrypt_key(&tmp, ctx->cipher_data);
93 explicit_bzero((unsigned char *)&tmp,
94 sizeof(IDEA_KEY_SCHEDULE));
95 }
96 return 1;
97}
98
99static int
80idea_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, 100idea_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
81 const unsigned char *in, size_t inl) 101 const unsigned char *in, size_t inl)
82{ 102{
@@ -241,29 +261,4 @@ EVP_idea_ecb(void)
241{ 261{
242 return &idea_ecb; 262 return &idea_ecb;
243} 263}
244
245
246static int
247idea_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
248 const unsigned char *iv, int enc)
249{
250 if (!enc) {
251 if (EVP_CIPHER_CTX_mode(ctx) == EVP_CIPH_OFB_MODE)
252 enc = 1;
253 else if (EVP_CIPHER_CTX_mode(ctx) == EVP_CIPH_CFB_MODE)
254 enc = 1;
255 }
256 if (enc)
257 idea_set_encrypt_key(key, ctx->cipher_data);
258 else {
259 IDEA_KEY_SCHEDULE tmp;
260
261 idea_set_encrypt_key(key, &tmp);
262 idea_set_decrypt_key(&tmp, ctx->cipher_data);
263 explicit_bzero((unsigned char *)&tmp,
264 sizeof(IDEA_KEY_SCHEDULE));
265 }
266 return 1;
267}
268
269#endif 264#endif
diff --git a/src/lib/libcrypto/evp/e_sm4.c b/src/lib/libcrypto/evp/e_sm4.c
index 9003abccc3..fd9a9d04f7 100644
--- a/src/lib/libcrypto/evp/e_sm4.c
+++ b/src/lib/libcrypto/evp/e_sm4.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_sm4.c,v 1.2 2022/09/03 20:02:17 jsing Exp $ */ 1/* $OpenBSD: e_sm4.c,v 1.3 2022/09/04 13:17:18 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2017, 2019 Ribose Inc 3 * Copyright (c) 2017, 2019 Ribose Inc
4 * 4 *
@@ -267,5 +267,4 @@ EVP_sm4_ctr(void)
267{ 267{
268 return &sm4_ctr_mode; 268 return &sm4_ctr_mode;
269} 269}
270
271#endif 270#endif