summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGES12
-rw-r--r--crypto/evp/e_cbc_3d.c15
-rw-r--r--crypto/evp/e_cbc_bf.c10
-rw-r--r--crypto/evp/e_cbc_c.c10
-rw-r--r--crypto/evp/e_cbc_d.c10
-rw-r--r--crypto/evp/e_cbc_i.c10
-rw-r--r--crypto/evp/e_cbc_r2.c10
-rw-r--r--crypto/evp/e_cbc_r5.c10
-rw-r--r--crypto/evp/e_cfb_3d.c15
-rw-r--r--crypto/evp/e_cfb_bf.c10
-rw-r--r--crypto/evp/e_cfb_c.c10
-rw-r--r--crypto/evp/e_cfb_d.c10
-rw-r--r--crypto/evp/e_cfb_i.c10
-rw-r--r--crypto/evp/e_cfb_r2.c10
-rw-r--r--crypto/evp/e_cfb_r5.c10
-rw-r--r--crypto/evp/e_ecb_3d.c17
-rw-r--r--crypto/evp/e_ecb_bf.c12
-rw-r--r--crypto/evp/e_ecb_c.c12
-rw-r--r--crypto/evp/e_ecb_d.c12
-rw-r--r--crypto/evp/e_ecb_i.c12
-rw-r--r--crypto/evp/e_ecb_r2.c12
-rw-r--r--crypto/evp/e_ecb_r5.c12
-rw-r--r--crypto/evp/e_null.c10
-rw-r--r--crypto/evp/e_ofb_3d.c15
-rw-r--r--crypto/evp/e_ofb_bf.c10
-rw-r--r--crypto/evp/e_ofb_c.c10
-rw-r--r--crypto/evp/e_ofb_d.c10
-rw-r--r--crypto/evp/e_ofb_i.c10
-rw-r--r--crypto/evp/e_ofb_r2.c10
-rw-r--r--crypto/evp/e_ofb_r5.c10
-rw-r--r--crypto/evp/e_rc4.c10
-rw-r--r--crypto/evp/e_xcbc_d.c10
-rw-r--r--crypto/evp/evp.h22
-rw-r--r--crypto/evp/evp_enc.c65
34 files changed, 259 insertions, 184 deletions
diff --git a/CHANGES b/CHANGES
index 94876612c3..ad61f13440 100644
--- a/CHANGES
+++ b/CHANGES
@@ -9,9 +9,15 @@
support added for variable key length ciphers via the
EVP_CIPHER_CTX_set_key_length() function. Other cipher specific
parameters will be added later via the new catchall 'ctrl' function.
- New functionality allows removal of S/MIME code RC2 hack. Still needs
- support in other library functions, also need to add return codes to
- some EVP functions.
+ New functionality allows removal of S/MIME code RC2 hack.
+
+ Still needs support in other library functions, and allow parameter
+ setting for algorithms like RC2, RC5.
+
+ Change lots of functions like EVP_EncryptUpdate() to now return a
+ value: although software versions of the algorithms cannot fail
+ any installed hardware versions can.
+
[Steve Henson]
*) Implement SSL_OP_TLS_ROLLBACK_BUG: In ssl3_get_client_key_exchange, if
diff --git a/crypto/evp/e_cbc_3d.c b/crypto/evp/e_cbc_3d.c
index a458921583..7ee7851c55 100644
--- a/crypto/evp/e_cbc_3d.c
+++ b/crypto/evp/e_cbc_3d.c
@@ -62,11 +62,11 @@
#include <openssl/evp.h>
#include <openssl/objects.h>
-static void des_cbc_ede_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int des_cbc_ede_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv,int enc);
-static void des_cbc_ede3_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int des_cbc_ede3_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv,int enc);
-static void des_cbc_ede_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int des_cbc_ede_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl);
static EVP_CIPHER d_cbc_ede_cipher2=
{
@@ -108,7 +108,7 @@ EVP_CIPHER *EVP_des_ede3_cbc(void)
return(&d_cbc_ede_cipher3);
}
-static void des_cbc_ede_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int des_cbc_ede_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv, int enc)
{
des_cblock *deskey = (des_cblock *)key;
@@ -125,9 +125,10 @@ static void des_cbc_ede_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
(char *)ctx->c.des_ede.ks1,
sizeof(ctx->c.des_ede.ks1));
}
+ return 1;
}
-static void des_cbc_ede3_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int des_cbc_ede3_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv, int enc)
{
des_cblock *deskey = (des_cblock *)key;
@@ -142,14 +143,16 @@ static void des_cbc_ede3_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
des_set_key_unchecked(&deskey[1],ctx->c.des_ede.ks2);
des_set_key_unchecked(&deskey[2],ctx->c.des_ede.ks3);
}
+ return 1;
}
-static void des_cbc_ede_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int des_cbc_ede_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl)
{
des_ede3_cbc_encrypt(in,out,inl, ctx->c.des_ede.ks1,
ctx->c.des_ede.ks2,ctx->c.des_ede.ks3,
(des_cblock *) &(ctx->iv[0]),
ctx->encrypt);
+ return 1;
}
#endif
diff --git a/crypto/evp/e_cbc_bf.c b/crypto/evp/e_cbc_bf.c
index 489e63041d..feda9e7e02 100644
--- a/crypto/evp/e_cbc_bf.c
+++ b/crypto/evp/e_cbc_bf.c
@@ -62,9 +62,9 @@
#include <openssl/evp.h>
#include <openssl/objects.h>
-static void bf_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int bf_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv,int enc);
-static void bf_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int bf_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl);
static EVP_CIPHER bfish_cbc_cipher=
{
@@ -86,7 +86,7 @@ EVP_CIPHER *EVP_bf_cbc(void)
return(&bfish_cbc_cipher);
}
-static void bf_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int bf_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv, int enc)
{
if (iv != NULL)
@@ -94,15 +94,17 @@ static void bf_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
memcpy(&(ctx->iv[0]),&(ctx->oiv[0]),8);
if (key != NULL)
BF_set_key(&(ctx->c.bf_ks),EVP_CIPHER_CTX_key_length(ctx),key);
+ return 1;
}
-static void bf_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int bf_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl)
{
BF_cbc_encrypt(
in,out,(long)inl,
&(ctx->c.bf_ks),&(ctx->iv[0]),
ctx->encrypt);
+ return 1;
}
#endif
diff --git a/crypto/evp/e_cbc_c.c b/crypto/evp/e_cbc_c.c
index 4e8fda9e64..d910f67cc5 100644
--- a/crypto/evp/e_cbc_c.c
+++ b/crypto/evp/e_cbc_c.c
@@ -63,9 +63,9 @@
#include <openssl/evp.h>
#include <openssl/objects.h>
-static void cast_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int cast_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv,int enc);
-static void cast_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int cast_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl);
static EVP_CIPHER cast5_cbc_cipher=
{
@@ -87,7 +87,7 @@ EVP_CIPHER *EVP_cast5_cbc(void)
return(&cast5_cbc_cipher);
}
-static void cast_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int cast_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv, int enc)
{
if (iv != NULL)
@@ -95,15 +95,17 @@ static void cast_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
memcpy(&(ctx->iv[0]),&(ctx->oiv[0]),8);
if (key != NULL)
CAST_set_key(&(ctx->c.cast_ks),EVP_CIPHER_CTX_key_length(ctx),key);
+ return 1;
}
-static void cast_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int cast_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl)
{
CAST_cbc_encrypt(
in,out,(long)inl,
&(ctx->c.cast_ks),&(ctx->iv[0]),
ctx->encrypt);
+ return 1;
}
#endif
diff --git a/crypto/evp/e_cbc_d.c b/crypto/evp/e_cbc_d.c
index ae9d25aca1..817d354358 100644
--- a/crypto/evp/e_cbc_d.c
+++ b/crypto/evp/e_cbc_d.c
@@ -62,9 +62,9 @@
#include <openssl/evp.h>
#include <openssl/objects.h>
-static void des_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int des_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv,int enc);
-static void des_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int des_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl);
static EVP_CIPHER d_cbc_cipher=
{
@@ -86,7 +86,7 @@ EVP_CIPHER *EVP_des_cbc(void)
return(&d_cbc_cipher);
}
-static void des_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int des_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv, int enc)
{
des_cblock *deskey = (des_cblock *)key;
@@ -96,13 +96,15 @@ static void des_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
memcpy(&(ctx->iv[0]),&(ctx->oiv[0]),8);
if (deskey != NULL)
des_set_key_unchecked(deskey,ctx->c.des_ks);
+ return 1;
}
-static void des_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int des_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl)
{
des_ncbc_encrypt(in,out,inl,ctx->c.des_ks,
(des_cblock *)&(ctx->iv[0]),
ctx->encrypt);
+ return 1;
}
#endif
diff --git a/crypto/evp/e_cbc_i.c b/crypto/evp/e_cbc_i.c
index b74f280614..56869b577b 100644
--- a/crypto/evp/e_cbc_i.c
+++ b/crypto/evp/e_cbc_i.c
@@ -63,9 +63,9 @@
#include <openssl/evp.h>
#include <openssl/objects.h>
-static void idea_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int idea_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv,int enc);
-static void idea_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int idea_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl);
static EVP_CIPHER i_cbc_cipher=
{
@@ -87,7 +87,7 @@ EVP_CIPHER *EVP_idea_cbc(void)
return(&i_cbc_cipher);
}
-static void idea_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int idea_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv, int enc)
{
if (iv != NULL)
@@ -107,15 +107,17 @@ static void idea_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
sizeof(IDEA_KEY_SCHEDULE));
}
}
+ return 1;
}
-static void idea_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int idea_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl)
{
idea_cbc_encrypt(
in,out,(long)inl,
&(ctx->c.idea_ks),&(ctx->iv[0]),
ctx->encrypt);
+ return 1;
}
#endif
diff --git a/crypto/evp/e_cbc_r2.c b/crypto/evp/e_cbc_r2.c
index dc94b4fe1f..5e91c9d21e 100644
--- a/crypto/evp/e_cbc_r2.c
+++ b/crypto/evp/e_cbc_r2.c
@@ -63,9 +63,9 @@
#include <openssl/evp.h>
#include <openssl/objects.h>
-static void rc2_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int rc2_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv,int enc);
-static void rc2_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int rc2_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl);
static int rc2_meth_to_magic(const EVP_CIPHER *e);
static EVP_CIPHER *rc2_magic_to_meth(int i);
@@ -136,7 +136,7 @@ EVP_CIPHER *EVP_rc2_40_cbc(void)
return(&r2_40_cbc_cipher);
}
-static void rc2_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int rc2_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv, int enc)
{
if (iv != NULL)
@@ -145,15 +145,17 @@ static void rc2_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
if (key != NULL)
RC2_set_key(&(ctx->c.rc2_ks),EVP_CIPHER_CTX_key_length(ctx),
key,EVP_CIPHER_key_length(ctx->cipher)*8);
+ return 1;
}
-static void rc2_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int rc2_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl)
{
RC2_cbc_encrypt(
in,out,(long)inl,
&(ctx->c.rc2_ks),&(ctx->iv[0]),
ctx->encrypt);
+ return 1;
}
static int rc2_meth_to_magic(const EVP_CIPHER *e)
diff --git a/crypto/evp/e_cbc_r5.c b/crypto/evp/e_cbc_r5.c
index 4e71f46d02..1639a08cdd 100644
--- a/crypto/evp/e_cbc_r5.c
+++ b/crypto/evp/e_cbc_r5.c
@@ -63,9 +63,9 @@
#include <openssl/evp.h>
#include <openssl/objects.h>
-static void r_32_12_16_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int r_32_12_16_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv,int enc);
-static void r_32_12_16_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int r_32_12_16_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl);
static EVP_CIPHER rc5_32_12_16_cbc_cipher=
{
@@ -87,7 +87,7 @@ EVP_CIPHER *EVP_rc5_32_12_16_cbc(void)
return(&rc5_32_12_16_cbc_cipher);
}
-static void r_32_12_16_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int r_32_12_16_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv, int enc)
{
if (iv != NULL)
@@ -96,15 +96,17 @@ static void r_32_12_16_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
if (key != NULL)
RC5_32_set_key(&(ctx->c.rc5_ks),EVP_RC5_32_12_16_KEY_SIZE,
key,RC5_12_ROUNDS);
+ return 1;
}
-static void r_32_12_16_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int r_32_12_16_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl)
{
RC5_32_cbc_encrypt(
in,out,(long)inl,
&(ctx->c.rc5_ks),&(ctx->iv[0]),
ctx->encrypt);
+ return 1;
}
#endif
diff --git a/crypto/evp/e_cfb_3d.c b/crypto/evp/e_cfb_3d.c
index 73b989b3b6..b07d90a036 100644
--- a/crypto/evp/e_cfb_3d.c
+++ b/crypto/evp/e_cfb_3d.c
@@ -62,11 +62,11 @@
#include <openssl/evp.h>
#include <openssl/objects.h>
-static void des_ede_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int des_ede_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv,int enc);
-static void des_ede3_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int des_ede3_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv,int enc);
-static void des_ede_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int des_ede_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl);
static EVP_CIPHER d_ede_cfb_cipher2=
{
@@ -108,7 +108,7 @@ EVP_CIPHER *EVP_des_ede3_cfb(void)
return(&d_ede3_cfb_cipher3);
}
-static void des_ede_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int des_ede_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv, int enc)
{
des_cblock *deskey = (des_cblock *)key;
@@ -126,9 +126,10 @@ static void des_ede_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
(char *)ctx->c.des_ede.ks1,
sizeof(ctx->c.des_ede.ks1));
}
+ return 1;
}
-static void des_ede3_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int des_ede3_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv, int enc)
{
des_cblock *deskey = (des_cblock *)key;
@@ -144,9 +145,10 @@ static void des_ede3_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
des_set_key_unchecked(&deskey[1],ctx->c.des_ede.ks2);
des_set_key_unchecked(&deskey[2],ctx->c.des_ede.ks3);
}
+ return 1;
}
-static void des_ede_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int des_ede_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl)
{
des_ede3_cfb64_encrypt(in,out,(long)inl,
@@ -155,5 +157,6 @@ static void des_ede_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
ctx->c.des_ede.ks3,
(des_cblock*)&(ctx->iv[0]),
&ctx->num,ctx->encrypt);
+ return 1;
}
#endif
diff --git a/crypto/evp/e_cfb_bf.c b/crypto/evp/e_cfb_bf.c
index b09485531f..c1e7a7c935 100644
--- a/crypto/evp/e_cfb_bf.c
+++ b/crypto/evp/e_cfb_bf.c
@@ -62,9 +62,9 @@
#include <openssl/evp.h>
#include <openssl/objects.h>
-static void bf_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int bf_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv,int enc);
-static void bf_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int bf_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl);
static EVP_CIPHER bfish_cfb_cipher=
{
@@ -86,7 +86,7 @@ EVP_CIPHER *EVP_bf_cfb(void)
return(&bfish_cfb_cipher);
}
-static void bf_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int bf_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv, int enc)
{
ctx->num=0;
@@ -96,9 +96,10 @@ static void bf_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
memcpy(&(ctx->iv[0]),&(ctx->oiv[0]),8);
if (key != NULL)
BF_set_key(&(ctx->c.bf_ks),EVP_CIPHER_CTX_key_length(ctx),key);
+ return 1;
}
-static void bf_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int bf_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl)
{
BF_cfb64_encrypt(
@@ -106,5 +107,6 @@ static void bf_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
(long)inl, &(ctx->c.bf_ks),
&(ctx->iv[0]),
&ctx->num,ctx->encrypt);
+ return 1;
}
#endif
diff --git a/crypto/evp/e_cfb_c.c b/crypto/evp/e_cfb_c.c
index c4efb64bd2..d29e5948a4 100644
--- a/crypto/evp/e_cfb_c.c
+++ b/crypto/evp/e_cfb_c.c
@@ -63,9 +63,9 @@
#include <openssl/evp.h>
#include <openssl/objects.h>
-static void cast_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int cast_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv,int enc);
-static void cast_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int cast_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl);
static EVP_CIPHER cast5_cfb_cipher=
{
@@ -87,7 +87,7 @@ EVP_CIPHER *EVP_cast5_cfb(void)
return(&cast5_cfb_cipher);
}
-static void cast_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int cast_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv, int enc)
{
ctx->num=0;
@@ -97,9 +97,10 @@ static void cast_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
memcpy(&(ctx->iv[0]),&(ctx->oiv[0]),8);
if (key != NULL)
CAST_set_key(&(ctx->c.cast_ks),EVP_CIPHER_CTX_key_length(ctx),key);
+ return 1;
}
-static void cast_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int cast_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl)
{
CAST_cfb64_encrypt(
@@ -107,5 +108,6 @@ static void cast_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
(long)inl, &(ctx->c.cast_ks),
&(ctx->iv[0]),
&ctx->num,ctx->encrypt);
+ return 1;
}
#endif
diff --git a/crypto/evp/e_cfb_d.c b/crypto/evp/e_cfb_d.c
index 6817d78073..63d4dff681 100644
--- a/crypto/evp/e_cfb_d.c
+++ b/crypto/evp/e_cfb_d.c
@@ -62,9 +62,9 @@
#include <openssl/objects.h>
#ifndef NO_DES
-static void des_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int des_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv,int enc);
-static void des_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int des_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl);
static EVP_CIPHER d_cfb_cipher=
{
@@ -86,7 +86,7 @@ EVP_CIPHER *EVP_des_cfb(void)
return(&d_cfb_cipher);
}
-static void des_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int des_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv, int enc)
{
des_cblock *deskey = (des_cblock *)key;
@@ -98,9 +98,10 @@ static void des_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
memcpy(&(ctx->iv[0]),&(ctx->oiv[0]),8);
if (deskey != NULL)
des_set_key_unchecked(deskey,ctx->c.des_ks);
+ return 1;
}
-static void des_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int des_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl)
{
des_cfb64_encrypt(
@@ -108,5 +109,6 @@ static void des_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
(long)inl, ctx->c.des_ks,
(des_cblock *)&(ctx->iv[0]),
&ctx->num,ctx->encrypt);
+ return 1;
}
#endif
diff --git a/crypto/evp/e_cfb_i.c b/crypto/evp/e_cfb_i.c
index e228057fa1..d0da6e0382 100644
--- a/crypto/evp/e_cfb_i.c
+++ b/crypto/evp/e_cfb_i.c
@@ -63,9 +63,9 @@
#include <openssl/evp.h>
#include <openssl/objects.h>
-static void idea_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int idea_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv,int enc);
-static void idea_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int idea_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl);
static EVP_CIPHER i_cfb_cipher=
{
@@ -87,7 +87,7 @@ EVP_CIPHER *EVP_idea_cfb(void)
return(&i_cfb_cipher);
}
-static void idea_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int idea_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv, int enc)
{
ctx->num=0;
@@ -97,15 +97,17 @@ static void idea_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
memcpy(&(ctx->iv[0]),&(ctx->oiv[0]),8);
if (key != NULL)
idea_set_encrypt_key(key,&(ctx->c.idea_ks));
+ return 1;
}
-static void idea_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int idea_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl)
{
idea_cfb64_encrypt(
in,out,(long)inl,
&(ctx->c.idea_ks),&(ctx->iv[0]),
&ctx->num,ctx->encrypt);
+ return 1;
}
#endif
diff --git a/crypto/evp/e_cfb_r2.c b/crypto/evp/e_cfb_r2.c
index 6e5ee8dac6..2e0fd53763 100644
--- a/crypto/evp/e_cfb_r2.c
+++ b/crypto/evp/e_cfb_r2.c
@@ -63,9 +63,9 @@
#include <openssl/evp.h>
#include <openssl/objects.h>
-static void rc2_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int rc2_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv,int enc);
-static void rc2_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int rc2_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl);
static EVP_CIPHER r2_cfb_cipher=
{
@@ -87,7 +87,7 @@ EVP_CIPHER *EVP_rc2_cfb(void)
return(&r2_cfb_cipher);
}
-static void rc2_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int rc2_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv, int enc)
{
ctx->num=0;
@@ -98,9 +98,10 @@ static void rc2_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
if (key != NULL)
RC2_set_key(&(ctx->c.rc2_ks),EVP_CIPHER_CTX_key_length(ctx),
key,EVP_CIPHER_key_length(ctx->cipher)*8);
+ return 1;
}
-static void rc2_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int rc2_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl)
{
RC2_cfb64_encrypt(
@@ -108,5 +109,6 @@ static void rc2_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
(long)inl, &(ctx->c.rc2_ks),
&(ctx->iv[0]),
&ctx->num,ctx->encrypt);
+ return 1;
}
#endif
diff --git a/crypto/evp/e_cfb_r5.c b/crypto/evp/e_cfb_r5.c
index 25ec1193ca..bd092b4cd5 100644
--- a/crypto/evp/e_cfb_r5.c
+++ b/crypto/evp/e_cfb_r5.c
@@ -63,9 +63,9 @@
#include <openssl/evp.h>
#include <openssl/objects.h>
-static void rc5_32_12_16_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int rc5_32_12_16_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv,int enc);
-static void rc5_32_12_16_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int rc5_32_12_16_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl);
static EVP_CIPHER rc5_cfb_cipher=
{
@@ -87,7 +87,7 @@ EVP_CIPHER *EVP_rc5_32_12_16_cfb(void)
return(&rc5_cfb_cipher);
}
-static void rc5_32_12_16_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int rc5_32_12_16_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv, int enc)
{
ctx->num=0;
@@ -98,9 +98,10 @@ static void rc5_32_12_16_cfb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
if (key != NULL)
RC5_32_set_key(&(ctx->c.rc5_ks),EVP_RC5_32_12_16_KEY_SIZE,key,
RC5_12_ROUNDS);
+ return 1;
}
-static void rc5_32_12_16_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int rc5_32_12_16_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl)
{
RC5_32_cfb64_encrypt(
@@ -108,5 +109,6 @@ static void rc5_32_12_16_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
(long)inl, &(ctx->c.rc5_ks),
&(ctx->iv[0]),
&ctx->num,ctx->encrypt);
+ return 1;
}
#endif
diff --git a/crypto/evp/e_ecb_3d.c b/crypto/evp/e_ecb_3d.c
index 5308557ee4..157fb9e6a8 100644
--- a/crypto/evp/e_ecb_3d.c
+++ b/crypto/evp/e_ecb_3d.c
@@ -62,11 +62,11 @@
#include <openssl/evp.h>
#include <openssl/objects.h>
-static void des_ede_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int des_ede_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv,int enc);
-static void des_ede3_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv,int enc);
-static void des_ede_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int des_ede_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl);
static EVP_CIPHER d_ede_cipher2=
{
@@ -108,7 +108,7 @@ EVP_CIPHER *EVP_des_ede3(void)
return(&d_ede3_cipher3);
}
-static void des_ede_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int des_ede_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv, int enc)
{
des_cblock *deskey = (des_cblock *)key;
@@ -121,9 +121,10 @@ static void des_ede_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
(char *)ctx->c.des_ede.ks1,
sizeof(ctx->c.des_ede.ks1));
}
+ return 1;
}
-static void des_ede3_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv, int enc)
{
des_cblock *deskey = (des_cblock *)key;
@@ -134,16 +135,17 @@ static void des_ede3_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
des_set_key_unchecked(&deskey[1],ctx->c.des_ede.ks2);
des_set_key_unchecked(&deskey[2],ctx->c.des_ede.ks3);
}
+ return 1;
}
-static void des_ede_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int des_ede_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl)
{
unsigned int i;
des_cblock *output /* = (des_cblock *)out */;
des_cblock *input /* = (des_cblock *)in */;
- if (inl < 8) return;
+ if (inl < 8) return 1;
inl-=8;
for (i=0; i<=inl; i+=8)
{
@@ -159,5 +161,6 @@ static void des_ede_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
/* output++; */
/* input++; */
}
+ return 1;
}
#endif
diff --git a/crypto/evp/e_ecb_bf.c b/crypto/evp/e_ecb_bf.c
index 31aef248bf..c38e56d491 100644
--- a/crypto/evp/e_ecb_bf.c
+++ b/crypto/evp/e_ecb_bf.c
@@ -62,9 +62,9 @@
#include <openssl/evp.h>
#include <openssl/objects.h>
-static void bf_ecb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int bf_ecb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
unsigned char *iv,int enc);
-static void bf_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int bf_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
unsigned char *in, unsigned int inl);
static EVP_CIPHER bfish_ecb_cipher=
{
@@ -86,19 +86,20 @@ EVP_CIPHER *EVP_bf_ecb(void)
return(&bfish_ecb_cipher);
}
-static void bf_ecb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int bf_ecb_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,