aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBodo Möller <bodo@openssl.org>2006-06-09 15:44:59 +0000
committerBodo Möller <bodo@openssl.org>2006-06-09 15:44:59 +0000
commitf3dea9a5958b576345bae710c0acd2e52ecde0c8 (patch)
tree795c13bb1a22819cac949744a3dd5cc428270187
parentfb7b3932786e4277eb3235adc239686806cd9610 (diff)
downloadopenssl-f3dea9a5958b576345bae710c0acd2e52ecde0c8.tar.gz
Camellia cipher, contributed by NTT
Submitted by: Masashi Fujita Reviewed by: Bodo Moeller
-rw-r--r--CHANGES13
-rw-r--r--Makefile.org2
-rw-r--r--apps/Makefile41
-rw-r--r--apps/dsa.c7
-rw-r--r--apps/gendsa.c12
-rw-r--r--apps/genrsa.c12
-rw-r--r--apps/openssl.c10
-rw-r--r--apps/pkcs12.c11
-rw-r--r--apps/progs.h18
-rw-r--r--apps/progs.pl4
-rw-r--r--apps/rsa.c7
-rw-r--r--apps/smime.c12
-rw-r--r--apps/speed.c113
-rwxr-xr-xconfig2
-rw-r--r--crypto/asn1/Makefile19
-rw-r--r--crypto/engine/Makefile4
-rw-r--r--crypto/evp/Makefile33
-rw-r--r--crypto/evp/c_allc.c27
-rw-r--r--crypto/evp/evp.h25
-rw-r--r--crypto/evp/evp_err.c2
-rw-r--r--crypto/evp/evp_test.c7
-rw-r--r--crypto/evp/evptests.txt129
-rw-r--r--crypto/objects/obj_dat.h100
-rw-r--r--crypto/objects/obj_mac.h88
-rw-r--r--crypto/objects/obj_mac.num18
-rw-r--r--crypto/objects/objects.txt38
-rw-r--r--crypto/pem/Makefile33
-rw-r--r--doc/apps/ciphers.pod22
-rw-r--r--doc/apps/smime.pod11
-rw-r--r--ssl/s3_lib.c168
-rw-r--r--ssl/ssl.h1
-rw-r--r--ssl/ssl_algs.c5
-rw-r--r--ssl/ssl_ciph.c29
-rw-r--r--ssl/ssl_locl.h10
-rw-r--r--ssl/tls1.h31
-rw-r--r--test/Makefile14
-rwxr-xr-xutil/libeay.num726
-rwxr-xr-xutil/mk1mf.pl9
-rwxr-xr-xutil/mkdef.pl7
-rwxr-xr-xutil/mkfiles.pl1
40 files changed, 1381 insertions, 440 deletions
diff --git a/CHANGES b/CHANGES
index b55eba36e3..33c91862fb 100644
--- a/CHANGES
+++ b/CHANGES
@@ -284,8 +284,21 @@
*) Add print and set support for Issuing Distribution Point CRL extension.
[Steve Henson]
+ *) Change 'Configure' script to enable Camellia by default.
+ [NTT]
+
Changes between 0.9.8b and 0.9.8c [xx XXX xxxx]
+ *) Add the symmetric cipher Camellia (128-bit, 192-bit, 256-bit key
+ versions), which is now available for royalty-free use
+ (see http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html).
+ Also, add Camellia TLS ciphersuites from RFC 4132.
+
+ To minimize changes between patchlevels in the OpenSSL 0.9.8
+ series, Camellia remains excluded from compilation unless OpenSSL
+ is configured with 'enable-camellia'.
+ [NTT]
+
*) Disable the padding bug check when compression is in use. The padding
bug check assumes the first packet is of even length, this is not
necessarily true if compresssion is enabled and can result in false
diff --git a/Makefile.org b/Makefile.org
index cf5df2f852..b55b6ba8ac 100644
--- a/Makefile.org
+++ b/Makefile.org
@@ -112,7 +112,7 @@ SHLIBDIRS= crypto ssl
SDIRS= \
objects \
md2 md4 md5 sha mdc2 hmac ripemd whrlpool \
- des aes rc2 rc4 rc5 idea bf cast \
+ des aes rc2 rc4 rc5 idea bf cast camellia \
bn ec rsa dsa ecdsa dh ecdh dso engine \
buffer bio stack lhash rand err \
evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 \
diff --git a/apps/Makefile b/apps/Makefile
index 7167fc54ad..90d45176f4 100644
--- a/apps/Makefile
+++ b/apps/Makefile
@@ -865,26 +865,27 @@ smime.o: ../include/openssl/x509v3.h apps.h smime.c
speed.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
speed.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
speed.o: ../include/openssl/bn.h ../include/openssl/buffer.h
-speed.o: ../include/openssl/cast.h ../include/openssl/conf.h
-speed.o: ../include/openssl/crypto.h ../include/openssl/des.h
-speed.o: ../include/openssl/des_old.h ../include/openssl/dsa.h
-speed.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
-speed.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
-speed.o: ../include/openssl/engine.h ../include/openssl/err.h
-speed.o: ../include/openssl/evp.h ../include/openssl/hmac.h
-speed.o: ../include/openssl/idea.h ../include/openssl/lhash.h
-speed.o: ../include/openssl/md2.h ../include/openssl/md4.h
-speed.o: ../include/openssl/md5.h ../include/openssl/obj_mac.h
-speed.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
-speed.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
-speed.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
-speed.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
-speed.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
-speed.o: ../include/openssl/safestack.h ../include/openssl/sha.h
-speed.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
-speed.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
-speed.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
-speed.o: ../include/openssl/x509_vfy.h apps.h speed.c testdsa.h testrsa.h
+speed.o: ../include/openssl/camellia.h ../include/openssl/cast.h
+speed.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+speed.o: ../include/openssl/des.h ../include/openssl/des_old.h
+speed.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
+speed.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
+speed.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+speed.o: ../include/openssl/err.h ../include/openssl/evp.h
+speed.o: ../include/openssl/hmac.h ../include/openssl/idea.h
+speed.o: ../include/openssl/lhash.h ../include/openssl/md2.h
+speed.o: ../include/openssl/md4.h ../include/openssl/md5.h
+speed.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+speed.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+speed.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
+speed.o: ../include/openssl/rand.h ../include/openssl/rc2.h
+speed.o: ../include/openssl/rc4.h ../include/openssl/ripemd.h
+speed.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+speed.o: ../include/openssl/sha.h ../include/openssl/stack.h
+speed.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+speed.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
+speed.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h speed.c
+speed.o: testdsa.h testrsa.h
spkac.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
spkac.o: ../include/openssl/buffer.h ../include/openssl/conf.h
spkac.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
diff --git a/apps/dsa.c b/apps/dsa.c
index 091f936571..ab258eb83c 100644
--- a/apps/dsa.c
+++ b/apps/dsa.c
@@ -84,6 +84,9 @@
* -aes128 - encrypt output if PEM format
* -aes192 - encrypt output if PEM format
* -aes256 - encrypt output if PEM format
+ * -camellia128 - encrypt output if PEM format
+ * -camellia192 - encrypt output if PEM format
+ * -camellia256 - encrypt output if PEM format
* -text - print a text version
* -modulus - print the DSA public key
*/
@@ -220,6 +223,10 @@ bad:
BIO_printf(bio_err," -aes128, -aes192, -aes256\n");
BIO_printf(bio_err," encrypt PEM output with cbc aes\n");
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ BIO_printf(bio_err," -camellia128, -camellia192, -camellia256\n");
+ BIO_printf(bio_err," encrypt PEM output with cbc camellia\n");
+#endif
BIO_printf(bio_err," -text print the key in text\n");
BIO_printf(bio_err," -noout don't print key out\n");
BIO_printf(bio_err," -modulus print the DSA public value\n");
diff --git a/apps/gendsa.c b/apps/gendsa.c
index 828e27f1c0..936a42b810 100644
--- a/apps/gendsa.c
+++ b/apps/gendsa.c
@@ -148,6 +148,14 @@ int MAIN(int argc, char **argv)
else if (strcmp(*argv,"-aes256") == 0)
enc=EVP_aes_256_cbc();
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ else if (strcmp(*argv,"-camellia128") == 0)
+ enc=EVP_camellia_128_cbc();
+ else if (strcmp(*argv,"-camellia192") == 0)
+ enc=EVP_camellia_192_cbc();
+ else if (strcmp(*argv,"-camellia256") == 0)
+ enc=EVP_camellia_256_cbc();
+#endif
else if (**argv != '-' && dsaparams == NULL)
{
dsaparams = *argv;
@@ -174,6 +182,10 @@ bad:
BIO_printf(bio_err," -aes128, -aes192, -aes256\n");
BIO_printf(bio_err," encrypt PEM output with cbc aes\n");
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ BIO_printf(bio_err," -camellia128, -camellia192, -camellia256\n");
+ BIO_printf(bio_err," encrypt PEM output with cbc camellia\n");
+#endif
#ifndef OPENSSL_NO_ENGINE
BIO_printf(bio_err," -engine e - use engine e, possibly a hardware device.\n");
#endif
diff --git a/apps/genrsa.c b/apps/genrsa.c
index 4f62cfd04f..d716a3cde3 100644
--- a/apps/genrsa.c
+++ b/apps/genrsa.c
@@ -168,6 +168,14 @@ int MAIN(int argc, char **argv)
else if (strcmp(*argv,"-aes256") == 0)
enc=EVP_aes_256_cbc();
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ else if (strcmp(*argv,"-camellia128") == 0)
+ enc=EVP_camellia_128_cbc();
+ else if (strcmp(*argv,"-camellia192") == 0)
+ enc=EVP_camellia_192_cbc();
+ else if (strcmp(*argv,"-camellia256") == 0)
+ enc=EVP_camellia_256_cbc();
+#endif
else if (strcmp(*argv,"-passout") == 0)
{
if (--argc < 1) goto bad;
@@ -191,6 +199,10 @@ bad:
BIO_printf(bio_err," -aes128, -aes192, -aes256\n");
BIO_printf(bio_err," encrypt PEM output with cbc aes\n");
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ BIO_printf(bio_err," -camellia128, -camellia192, -camellia256\n");
+ BIO_printf(bio_err," encrypt PEM output with cbc camellia\n");
+#endif
BIO_printf(bio_err," -out file output the key to 'file\n");
BIO_printf(bio_err," -passout arg output file pass phrase source\n");
BIO_printf(bio_err," -f4 use F4 (0x10001) for the E value\n");
diff --git a/apps/openssl.c b/apps/openssl.c
index a9f3df0955..f996bb3e18 100644
--- a/apps/openssl.c
+++ b/apps/openssl.c
@@ -56,7 +56,7 @@
* [including the GNU Public Licence.]
*/
/* ====================================================================
- * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved.
+ * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -459,7 +459,11 @@ static int do_cmd(LHASH *prog, int argc, char *argv[])
for (fp=functions; fp->name != NULL; fp++)
{
nl=0;
+#ifdef OPENSSL_NO_CAMELLIA
if (((i++) % 5) == 0)
+#else
+ if (((i++) % 4) == 0)
+#endif
{
BIO_printf(bio_err,"\n");
nl=1;
@@ -480,7 +484,11 @@ static int do_cmd(LHASH *prog, int argc, char *argv[])
BIO_printf(bio_err,"\nCipher commands (see the `enc' command for more details)\n");
}
}
+#ifdef OPENSSL_NO_CAMELLIA
BIO_printf(bio_err,"%-15s",fp->name);
+#else
+ BIO_printf(bio_err,"%-18s",fp->name);
+#endif
}
BIO_printf(bio_err,"\n\n");
ret=0;
diff --git a/apps/pkcs12.c b/apps/pkcs12.c
index 2e1c0e2c4a..9fa33f64dc 100644
--- a/apps/pkcs12.c
+++ b/apps/pkcs12.c
@@ -3,7 +3,7 @@
* project.
*/
/* ====================================================================
- * Copyright (c) 1999-2002 The OpenSSL Project. All rights reserved.
+ * Copyright (c) 1999-2006 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -164,6 +164,11 @@ int MAIN(int argc, char **argv)
else if (!strcmp(*args,"-aes192")) enc=EVP_aes_192_cbc();
else if (!strcmp(*args,"-aes256")) enc=EVP_aes_256_cbc();
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ else if (!strcmp(*args,"-camellia128")) enc=EVP_camellia_128_cbc();
+ else if (!strcmp(*args,"-camellia192")) enc=EVP_camellia_192_cbc();
+ else if (!strcmp(*args,"-camellia256")) enc=EVP_camellia_256_cbc();
+#endif
else if (!strcmp (*args, "-noiter")) iter = 1;
else if (!strcmp (*args, "-maciter"))
maciter = PKCS12_DEFAULT_ITER;
@@ -292,6 +297,10 @@ int MAIN(int argc, char **argv)
BIO_printf (bio_err, "-aes128, -aes192, -aes256\n");
BIO_printf (bio_err, " encrypt PEM output with cbc aes\n");
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ BIO_printf (bio_err, "-camellia128, -camellia192, -camellia256\n");
+ BIO_printf (bio_err, " encrypt PEM output with cbc camellia\n");
+#endif
BIO_printf (bio_err, "-nodes don't encrypt private keys\n");
BIO_printf (bio_err, "-noiter don't use encryption iteration\n");
BIO_printf (bio_err, "-maciter use MAC iteration\n");
diff --git a/apps/progs.h b/apps/progs.h
index 3458b11c16..a1a421ac40 100644
--- a/apps/progs.h
+++ b/apps/progs.h
@@ -177,6 +177,24 @@ FUNCTION functions[] = {
#ifndef OPENSSL_NO_AES
{FUNC_TYPE_CIPHER,"aes-256-ecb",enc_main},
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ {FUNC_TYPE_CIPHER,"camellia-128-cbc",enc_main},
+#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ {FUNC_TYPE_CIPHER,"camellia-128-ecb",enc_main},
+#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ {FUNC_TYPE_CIPHER,"camellia-192-cbc",enc_main},
+#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ {FUNC_TYPE_CIPHER,"camellia-192-ecb",enc_main},
+#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ {FUNC_TYPE_CIPHER,"camellia-256-cbc",enc_main},
+#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ {FUNC_TYPE_CIPHER,"camellia-256-ecb",enc_main},
+#endif
{FUNC_TYPE_CIPHER,"base64",enc_main},
#ifndef OPENSSL_NO_DES
{FUNC_TYPE_CIPHER,"des",enc_main},
diff --git a/apps/progs.pl b/apps/progs.pl
index aac86a3d9e..02381087ae 100644
--- a/apps/progs.pl
+++ b/apps/progs.pl
@@ -58,6 +58,9 @@ foreach (
"aes-128-cbc", "aes-128-ecb",
"aes-192-cbc", "aes-192-ecb",
"aes-256-cbc", "aes-256-ecb",
+ "camellia-128-cbc", "camellia-128-ecb",
+ "camellia-192-cbc", "camellia-192-ecb",
+ "camellia-256-cbc", "camellia-256-ecb",
"base64",
"des", "des3", "desx", "idea", "rc4", "rc4-40",
"rc2", "bf", "cast", "rc5",
@@ -76,6 +79,7 @@ foreach (
$t=sprintf("\t{FUNC_TYPE_CIPHER,\"%s\",enc_main},\n",$_);
if ($_ =~ /des/) { $t="#ifndef OPENSSL_NO_DES\n${t}#endif\n"; }
elsif ($_ =~ /aes/) { $t="#ifndef OPENSSL_NO_AES\n${t}#endif\n"; }
+ elsif ($_ =~ /camellia/) { $t="#ifndef OPENSSL_NO_CAMELLIA\n${t}#endif\n"; }
elsif ($_ =~ /idea/) { $t="#ifndef OPENSSL_NO_IDEA\n${t}#endif\n"; }
elsif ($_ =~ /rc4/) { $t="#ifndef OPENSSL_NO_RC4\n${t}#endif\n"; }
elsif ($_ =~ /rc2/) { $t="#ifndef OPENSSL_NO_RC2\n${t}#endif\n"; }
diff --git a/apps/rsa.c b/apps/rsa.c
index 3166c6ad72..f79f375742 100644
--- a/apps/rsa.c
+++ b/apps/rsa.c
@@ -84,6 +84,9 @@
* -aes128 - encrypt output if PEM format
* -aes192 - encrypt output if PEM format
* -aes256 - encrypt output if PEM format
+ * -camellia128 - encrypt output if PEM format
+ * -camellia192 - encrypt output if PEM format
+ * -camellia256 - encrypt output if PEM format
* -text - print a text version
* -modulus - print the RSA key modulus
* -check - verify key consistency
@@ -224,6 +227,10 @@ bad:
BIO_printf(bio_err," -aes128, -aes192, -aes256\n");
BIO_printf(bio_err," encrypt PEM output with cbc aes\n");
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ BIO_printf(bio_err," -camellia128, -camellia192, -camellia256\n");
+ BIO_printf(bio_err," encrypt PEM output with cbc camellia\n");
+#endif
BIO_printf(bio_err," -text print the key in text\n");
BIO_printf(bio_err," -noout don't print key out\n");
BIO_printf(bio_err," -modulus print the RSA key modulus\n");
diff --git a/apps/smime.c b/apps/smime.c
index c5453eafe2..69ce28039a 100644
--- a/apps/smime.c
+++ b/apps/smime.c
@@ -168,6 +168,14 @@ int MAIN(int argc, char **argv)
else if (!strcmp(*args,"-aes256"))
cipher = EVP_aes_256_cbc();
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ else if (!strcmp(*args,"-camellia128"))
+ cipher = EVP_camellia_128_cbc();
+ else if (!strcmp(*args,"-camellia192"))
+ cipher = EVP_camellia_192_cbc();
+ else if (!strcmp(*args,"-camellia256"))
+ cipher = EVP_camellia_256_cbc();
+#endif
else if (!strcmp (*args, "-text"))
flags |= PKCS7_TEXT;
else if (!strcmp (*args, "-nointern"))
@@ -430,6 +438,10 @@ int MAIN(int argc, char **argv)
BIO_printf (bio_err, "-aes128, -aes192, -aes256\n");
BIO_printf (bio_err, " encrypt PEM output with cbc aes\n");
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ BIO_printf (bio_err, "-camellia128, -camellia192, -camellia256\n");
+ BIO_printf (bio_err, " encrypt PEM output with cbc camellia\n");
+#endif
BIO_printf (bio_err, "-nointern don't search certificates in message for signer\n");
BIO_printf (bio_err, "-nosigs don't verify message signature\n");
BIO_printf (bio_err, "-noverify don't verify signers certificate\n");
diff --git a/apps/speed.c b/apps/speed.c
index 9b8365c44f..c53f815d47 100644
--- a/apps/speed.c
+++ b/apps/speed.c
@@ -119,6 +119,9 @@
#ifndef OPENSSL_NO_AES
#include <openssl/aes.h>
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+#include <openssl/camellia.h>
+#endif
#ifndef OPENSSL_NO_MD2
#include <openssl/md2.h>
#endif
@@ -195,7 +198,7 @@ static void print_result(int alg,int run_no,int count,double time_used);
static int do_multi(int multi);
#endif
-#define ALGOR_NUM 21
+#define ALGOR_NUM 24
#define SIZE_NUM 5
#define RSA_NUM 4
#define DSA_NUM 3
@@ -207,7 +210,9 @@ static const char *names[ALGOR_NUM]={
"md2","mdc2","md4","md5","hmac(md5)","sha1","rmd160","rc4",
"des cbc","des ede3","idea cbc",
"rc2 cbc","rc5-32/12 cbc","blowfish cbc","cast cbc",
- "aes-128 cbc","aes-192 cbc","aes-256 cbc","evp","sha256","sha512"};
+ "aes-128 cbc","aes-192 cbc","aes-256 cbc",
+ "camellia-128 cbc","camellia-192 cbc","camellia-256 cbc",
+ "evp","sha256","sha512"};
static double results[ALGOR_NUM][SIZE_NUM];
static int lengths[SIZE_NUM]={16,64,256,1024,8*1024};
static double rsa_results[RSA_NUM][2];
@@ -379,6 +384,17 @@ int MAIN(int argc, char **argv)
0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34,
0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34,0x56};
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ static const unsigned char ckey24[24]=
+ {0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,
+ 0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,
+ 0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34};
+ static const unsigned char ckey32[32]=
+ {0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,
+ 0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,
+ 0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34,
+ 0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34,0x56};
+#endif
#ifndef OPENSSL_NO_AES
#define MAX_BLOCK_SIZE 128
#else
@@ -398,6 +414,9 @@ int MAIN(int argc, char **argv)
#ifndef OPENSSL_NO_AES
AES_KEY aes_ks1, aes_ks2, aes_ks3;
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ CAMELLIA_KEY camellia_ks1, camellia_ks2, camellia_ks3;
+#endif
#define D_MD2 0
#define D_MDC2 1
#define D_MD4 2
@@ -416,9 +435,12 @@ int MAIN(int argc, char **argv)
#define D_CBC_128_AES 15
#define D_CBC_192_AES 16
#define D_CBC_256_AES 17
-#define D_EVP 18
-#define D_SHA256 19
-#define D_SHA512 20
+#define D_CBC_128_CML 18
+#define D_CBC_192_CML 19
+#define D_CBC_256_CML 20
+#define D_EVP 21
+#define D_SHA256 22
+#define D_SHA512 23
double d=0.0;
long c[ALGOR_NUM][SIZE_NUM];
#define R_DSA_512 0
@@ -761,6 +783,12 @@ int MAIN(int argc, char **argv)
else if (strcmp(*argv,"aes-256-cbc") == 0) doit[D_CBC_256_AES]=1;
else
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ if (strcmp(*argv,"camellia-128-cbc") == 0) doit[D_CBC_128_CML]=1;
+ else if (strcmp(*argv,"camellia-192-cbc") == 0) doit[D_CBC_192_CML]=1;
+ else if (strcmp(*argv,"camellia-256-cbc") == 0) doit[D_CBC_256_CML]=1;
+ else
+#endif
#ifndef OPENSSL_NO_RSA
#if 0 /* was: #ifdef RSAref */
if (strcmp(*argv,"rsaref") == 0)
@@ -831,6 +859,15 @@ int MAIN(int argc, char **argv)
}
else
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ if (strcmp(*argv,"camellia") == 0)
+ {
+ doit[D_CBC_128_CML]=1;
+ doit[D_CBC_192_CML]=1;
+ doit[D_CBC_256_CML]=1;
+ }
+ else
+#endif
#ifndef OPENSSL_NO_RSA
if (strcmp(*argv,"rsa") == 0)
{
@@ -957,6 +994,10 @@ int MAIN(int argc, char **argv)
#ifndef OPENSSL_NO_AES
BIO_printf(bio_err,"aes-128-cbc aes-192-cbc aes-256-cbc ");
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ BIO_printf(bio_err,"\n");
+ BIO_printf(bio_err,"camellia-128-cbc camellia-192-cbc camellia-256-cbc ");
+#endif
#ifndef OPENSSL_NO_RC4
BIO_printf(bio_err,"rc4");
#endif
@@ -994,6 +1035,9 @@ int MAIN(int argc, char **argv)
#ifndef OPENSSL_NO_AES
BIO_printf(bio_err,"aes ");
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ BIO_printf(bio_err,"camellia ");
+#endif
#ifndef OPENSSL_NO_RSA
BIO_printf(bio_err,"rsa ");
#endif
@@ -1002,7 +1046,8 @@ int MAIN(int argc, char **argv)
#endif
#if !defined(OPENSSL_NO_IDEA) || !defined(OPENSSL_NO_RC2) || \
!defined(OPENSSL_NO_DES) || !defined(OPENSSL_NO_RSA) || \
- !defined(OPENSSL_NO_BF) || !defined(OPENSSL_NO_AES)
+ !defined(OPENSSL_NO_BF) || !defined(OPENSSL_NO_AES) || \
+ !defined(OPENSSL_NO_CAMELLIA)
BIO_printf(bio_err,"\n");
#endif
@@ -1091,6 +1136,11 @@ int MAIN(int argc, char **argv)
AES_set_encrypt_key(key24,192,&aes_ks2);
AES_set_encrypt_key(key32,256,&aes_ks3);
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ Camellia_set_key(key16,128,&camellia_ks1);
+ Camellia_set_key(ckey24,192,&camellia_ks2);
+ Camellia_set_key(ckey32,256,&camellia_ks3);
+#endif
#ifndef OPENSSL_NO_IDEA
idea_set_encrypt_key(key16,&idea_ks);
#endif
@@ -1144,6 +1194,9 @@ int MAIN(int argc, char **argv)
c[D_CBC_128_AES][0]=count;
c[D_CBC_192_AES][0]=count;
c[D_CBC_256_AES][0]=count;
+ c[D_CBC_128_CML][0]=count;
+ c[D_CBC_192_CML][0]=count;
+ c[D_CBC_256_CML][0]=count;
c[D_SHA256][0]=count;
c[D_SHA512][0]=count;
@@ -1176,6 +1229,9 @@ int MAIN(int argc, char **argv)
c[D_CBC_128_AES][i]=c[D_CBC_128_AES][i-1]*l0/l1;
c[D_CBC_192_AES][i]=c[D_CBC_192_AES][i-1]*l0/l1;
c[D_CBC_256_AES][i]=c[D_CBC_256_AES][i-1]*l0/l1;
+ c[D_CBC_128_CML][i]=c[D_CBC_128_CML][i-1]*l0/l1;
+ c[D_CBC_192_CML][i]=c[D_CBC_192_CML][i-1]*l0/l1;
+ c[D_CBC_256_CML][i]=c[D_CBC_256_CML][i-1]*l0/l1;
}
#ifndef OPENSSL_NO_RSA
rsa_c[R_RSA_512][0]=count/2000;
@@ -1572,6 +1628,51 @@ int MAIN(int argc, char **argv)
}
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ if (doit[D_CBC_128_CML])
+ {
+ for (j=0; j<SIZE_NUM; j++)
+ {
+ print_message(names[D_CBC_128_CML],c[D_CBC_128_CML][j],lengths[j]);
+ Time_F(START);
+ for (count=0,run=1; COND(c[D_CBC_128_CML][j]); count++)
+ Camellia_cbc_encrypt(buf,buf,
+ (unsigned long)lengths[j],&camellia_ks1,
+ iv,CAMELLIA_ENCRYPT);
+ d=Time_F(STOP);
+ print_result(D_CBC_128_CML,j,count,d);
+ }
+ }
+ if (doit[D_CBC_192_CML])
+ {
+ for (j=0; j<SIZE_NUM; j++)
+ {
+ print_message(names[D_CBC_192_CML],c[D_CBC_192_CML][j],lengths[j]);
+ Time_F(START);
+ for (count=0,run=1; COND(c[D_CBC_192_CML][j]); count++)
+ Camellia_cbc_encrypt(buf,buf,
+ (unsigned long)lengths[j],&camellia_ks2,
+ iv,CAMELLIA_ENCRYPT);
+ d=Time_F(STOP);
+ print_result(D_CBC_192_CML,j,count,d);
+ }
+ }
+ if (doit[D_CBC_256_CML])
+ {
+ for (j=0; j<SIZE_NUM; j++)
+ {
+ print_message(names[D_CBC_256_CML],c[D_CBC_256_CML][j],lengths[j]);
+ Time_F(START);
+ for (count=0,run=1; COND(c[D_CBC_256_CML][j]); count++)
+ Camellia_cbc_encrypt(buf,buf,
+ (unsigned long)lengths[j],&camellia_ks3,
+ iv,CAMELLIA_ENCRYPT);
+ d=Time_F(STOP);
+ print_result(D_CBC_256_CML,j,count,d);
+ }
+ }
+
+#endif
#ifndef OPENSSL_NO_IDEA
if (doit[D_CBC_IDEA])
{
diff --git a/config b/config
index a0a7767d53..1d5fd91e8c 100755
--- a/config
+++ b/config
@@ -803,7 +803,7 @@ case "$GUESSOS" in
i386-*) options="$options 386" ;;
esac
-for i in bf cast des dh dsa ec hmac idea md2 md5 mdc2 rc2 rc4 rc5 aes ripemd rsa sha
+for i in aes bf camellia cast des dh dsa ec hmac idea md2 md5 mdc2 rc2 rc4 rc5 ripemd rsa sha
do
if [ ! -d crypto/$i ]
then
diff --git a/crypto/asn1/Makefile b/crypto/asn1/Makefile
index 7691d71a76..c8bfc1dab5 100644
--- a/crypto/asn1/Makefile
+++ b/crypto/asn1/Makefile
@@ -318,9 +318,9 @@ ameth_lib.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
ameth_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
ameth_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
ameth_lib.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
-ameth_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-ameth_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
-ameth_lib.o: ../../include/openssl/objects.h
+ameth_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+ameth_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+ameth_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
ameth_lib.o: ../../include/openssl/opensslconf.h
ameth_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
ameth_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
@@ -391,12 +391,13 @@ asn_pack.o: ../../include/openssl/symhacks.h ../cryptlib.h asn_pack.c
d2i_pr.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
d2i_pr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
d2i_pr.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
-d2i_pr.o: ../../include/openssl/err.h ../../include/openssl/evp.h
-d2i_pr.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
-d2i_pr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
-d2i_pr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
-d2i_pr.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
-d2i_pr.o: ../../include/openssl/symhacks.h ../cryptlib.h asn1_locl.h d2i_pr.c
+d2i_pr.o: ../../include/openssl/engine.h ../../include/openssl/err.h
+d2i_pr.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+d2i_pr.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+d2i_pr.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
+d2i_pr.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
+d2i_pr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+d2i_pr.o: ../cryptlib.h asn1_locl.h d2i_pr.c
d2i_pu.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
d2i_pu.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
d2i_pu.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
diff --git a/crypto/engine/Makefile b/crypto/engine/Makefile
index f3d18ac19c..a292122e81 100644
--- a/crypto/engine/Makefile
+++ b/crypto/engine/Makefile
@@ -219,8 +219,8 @@ tb_asnmth.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
tb_asnmth.o: ../../include/openssl/opensslconf.h
tb_asnmth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
tb_asnmth.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
-tb_asnmth.o: ../../include/openssl/symhacks.h ../cryptlib.h eng_int.h
-tb_asnmth.o: tb_asnmth.c
+tb_asnmth.o: ../../include/openssl/symhacks.h ../asn1/asn1_locl.h ../cryptlib.h
+tb_asnmth.o: eng_int.h tb_asnmth.c
tb_cipher.o: ../../e_os.h ../../include/openssl/bio.h
tb_cipher.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
tb_cipher.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
diff --git a/crypto/evp/Makefile b/crypto/evp/Makefile
index dae46eb851..89e2eeee8e 100644
--- a/crypto/evp/Makefile
+++ b/crypto/evp/Makefile
@@ -19,7 +19,7 @@ APPS=
LIB=$(TOP)/libcrypto.a
LIBSRC= encode.c digest.c evp_enc.c evp_key.c evp_acnf.c \
- e_des.c e_bf.c e_idea.c e_des3.c \
+ e_des.c e_bf.c e_idea.c e_des3.c e_camellia.c\
e_rc4.c e_aes.c names.c \
e_xcbc_d.c e_rc2.c e_cast.c e_rc5.c \
m_null.c m_md2.c m_md4.c m_md5.c m_sha.c m_sha1.c m_wp.c \
@@ -31,7 +31,7 @@ LIBSRC= encode.c digest.c evp_enc.c evp_key.c evp_acnf.c \
e_old.c pmeth_lib.c pmeth_fn.c pmeth_gn.c m_sigver.c
LIBOBJ= encode.o digest.o evp_enc.o evp_key.o evp_acnf.o \
- e_des.o e_bf.o e_idea.o e_des3.o \
+ e_des.o e_bf.o e_idea.o e_des3.o e_camellia.o\
e_rc4.o e_aes.o names.o \
e_xcbc_d.o e_rc2.o e_cast.o e_rc5.o \
m_null.o m_md2.o m_md4.o m_md5.o m_sha.o m_sha1.o m_wp.o \
@@ -195,6 +195,15 @@ e_bf.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
e_bf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
e_bf.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
e_bf.o: ../../include/openssl/symhacks.h ../cryptlib.h e_bf.c evp_locl.h
+e_camellia.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
+e_camellia.o: ../../include/openssl/camellia.h ../../include/openssl/crypto.h
+e_camellia.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
+e_camellia.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
+e_camellia.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
+e_camellia.o: ../../include/openssl/opensslconf.h
+e_camellia.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+e_camellia.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
+e_camellia.o: ../../include/openssl/symhacks.h e_camellia.c evp_locl.h
e_cast.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
e_cast.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
e_cast.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
@@ -600,16 +609,16 @@ p_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
p_lib.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
p_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
p_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-p_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
-p_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
-p_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
-p_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
-p_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
-p_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
-p_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
-p_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
-p_lib.o: ../../include/openssl/x509_vfy.h ../asn1/asn1_locl.h ../cryptlib.h
-p_lib.o: p_lib.c
+p_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+p_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+p_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+p_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+p_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+p_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
+p_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
+p_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
+p_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
+p_lib.o: ../asn1/asn1_locl.h ../cryptlib.h p_lib.c
p_open.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
p_open.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
p_open.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
diff --git a/crypto/evp/c_allc.c b/crypto/evp/c_allc.c
index fc16432a05..68630dd7ea 100644
--- a/crypto/evp/c_allc.c
+++ b/crypto/evp/c_allc.c
@@ -183,4 +183,31 @@ void OpenSSL_add_all_ciphers(void)
EVP_add_cipher_alias(SN_aes_256_cbc,"AES256");
EVP_add_cipher_alias(SN_aes_256_cbc,"aes256");
#endif
+
+#ifndef OPENSSL_NO_CAMELLIA
+ EVP_add_cipher(EVP_camellia_128_ecb());
+ EVP_add_cipher(EVP_camellia_128_cbc());
+ EVP_add_cipher(EVP_camellia_128_cfb());
+ EVP_add_cipher(EVP_camellia_128_cfb1());
+ EVP_add_cipher(EVP_camellia_128_cfb8());
+ EVP_add_cipher(EVP_camellia_128_ofb());
+ EVP_add_cipher_alias(SN_camellia_128_cbc,"CAMELLIA128");
+ EVP_add_cipher_alias(SN_camellia_128_cbc,"camellia128");
+ EVP_add_cipher(EVP_camellia_192_ecb());
+ EVP_add_cipher(EVP_camellia_192_cbc());
+ EVP_add_cipher(EVP_camellia_192_cfb());
+ EVP_add_cipher(EVP_camellia_192_cfb1());
+ EVP_add_cipher(EVP_camellia_192_cfb8());
+ EVP_add_cipher(EVP_camellia_192_ofb());
+ EVP_add_cipher_alias(SN_camellia_192_cbc,"CAMELLIA192");
+ EVP_add_cipher_alias(SN_camellia_192_cbc,"camellia192");
+ EVP_add_cipher(EVP_camellia_256_ecb());
+ EVP_add_cipher(EVP_camellia_256_cbc());
+ EVP_add_cipher(EVP_camellia_256_cfb());
+ EVP_add_cipher(EVP_camellia_256_cfb1());
+ EVP_add_cipher(EVP_camellia_256_cfb8());
+ EVP_add_cipher(EVP_camellia_256_ofb());
+ EVP_add_cipher_alias(SN_camellia_256_cbc,"CAMELLIA256");
+ EVP_add_cipher_alias(SN_camellia_256_cbc,"camellia256");
+#endif
}
diff --git a/crypto/evp/evp.h b/crypto/evp/evp.h
index 32a1ebe9f6..59460fb277 100644
--- a/crypto/evp/evp.h
+++ b/crypto/evp/evp.h
@@ -734,6 +734,29 @@ const EVP_CIPHER *EVP_aes_256_ofb(void);
const EVP_CIPHER *EVP_aes_256_ctr(void);
#endif
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+const EVP_CIPHER *EVP_camellia_128_ecb(void);
+const EVP_CIPHER *EVP_camellia_128_cbc(void);
+const EVP_CIPHER *EVP_camellia_128_cfb1(void);
+const EVP_CIPHER *EVP_camellia_128_cfb8(void);
+const EVP_CIPHER *EVP_camellia_128_cfb128(void);
+# define EVP_camellia_128_cfb EVP_camellia_128_cfb128
+const EVP_CIPHER *EVP_camellia_128_ofb(void);
+const EVP_CIPHER *EVP_camellia_192_ecb(void);
+const EVP_CIPHER *EVP_camellia_192_cbc(void);
+const EVP_CIPHER *EVP_camellia_192_cfb1(void);
+const EVP_CIPHER *EVP_camellia_192_cfb8(void);
+const EVP_CIPHER *EVP_camellia_192_cfb128(void);
+# define EVP_camellia_192_cfb EVP_camellia_192_cfb128
+const EVP_CIPHER *EVP_camellia_192_ofb(void);
+const EVP_CIPHER *EVP_camellia_256_ecb(void);
+const EVP_CIPHER *EVP_camellia_256_cbc(void);
+const EVP_CIPHER *EVP_camellia_256_cfb1(void);
+const EVP_CIPHER *EVP_camellia_256_cfb8(void);
+const EVP_CIPHER *EVP_camellia_256_cfb128(void);
+# define EVP_camellia_256_cfb EVP_camellia_256_cfb128
+const EVP_CIPHER *EVP_camellia_256_ofb(void);
+#endif
void OPENSSL_add_all_algorithms_noconf(void);
void OPENSSL_add_all_algorithms_conf(void);
@@ -1091,6 +1114,7 @@ void ERR_load_EVP_strings(void);
/* Function codes. */
#define EVP_F_AES_INIT_KEY 133
+#define EVP_F_CAMELLIA_INIT_KEY 159
#define EVP_F_D2I_PKEY 100
#define EVP_F_DSAPKEY2PKCS8 134
#define EVP_F_DSA_PKEY2PKCS8 135
@@ -1158,6 +1182,7 @@ void ERR_load_EVP_strings(void);
#define EVP_R_BN_DECODE_ERROR 112
#define EVP_R_BN_PUBKEY_ERROR 113
#define EVP_R_BUFFER_TOO_SMALL 155
+#define EVP_R_CAMELLIA_KEY_SETUP_FAILED 157
#define EVP_R_CIPHER_PARAMETER_ERROR 122
#define EVP_R_COMMAND_NOT_SUPPORTED 147
#define EVP_R_CTRL_NOT_IMPLEMENTED 132
diff --git a/crypto/evp/evp_err.c b/crypto/evp/evp_err.c
index 150bfd0db9..448c9b853e 100644
--- a/crypto/evp/evp_err.c
+++ b/crypto/evp/evp_err.c
@@ -71,6 +71,7 @@
static ERR_STRING_DATA EVP_str_functs[]=
{
{ERR_FUNC(EVP_F_AES_INIT_KEY), "AES_INIT_KEY"},
+{ERR_FUNC(EVP_F_CAMELLIA_INIT_KEY), "CAMELLIA_INIT_KEY"},
{ERR_FUNC(EVP_F_D2I_PKEY), "D2I_PKEY"},
{ERR_FUNC(EVP_F_DSAPKEY2PKCS8), "DSAPKEY2PKCS8"},
{ERR_FUNC(EVP_F_DSA_PKEY2PKCS8), "DSA_PKEY2PKCS8"},
@@ -141,6 +142,7 @@ static ERR_STRING_DATA EVP_str_reasons[]=
{ERR_REASON(EVP_R_BN_DECODE_ERROR) ,"bn decode error"},
{ERR_REASON(EVP_R_BN_PUBKEY_ERROR) ,"bn pubkey error"},
{ERR_REASON(EVP_R_BUFFER_TOO_SMALL) ,"buffer too small"},
+{ERR_REASON(EVP_R_CAMELLIA_KEY_SETUP_FAILED),"camellia key setup failed"},
{ERR_REASON(EVP_R_CIPHER_PARAMETER_ERROR),"cipher parameter error"},
{ERR_REASON(EVP_R_COMMAND_NOT_SUPPORTED) ,"command not supported"},
{ERR_REASON(EVP_R_CTRL_NOT_IMPLEMENTED) ,"ctrl not implemented"},
diff --git a/crypto/evp/evp_test.c b/crypto/evp/evp_test.c
index 3bf8e9ab27..6ecbecce75 100644
--- a/crypto/evp/evp_test.c
+++ b/crypto/evp/evp_test.c
@@ -417,6 +417,13 @@ int main(int argc,char **argv)
continue;
}
#endif
+#ifdef OPENSSL_NO_CAMELLIA
+ if (strstr(cipher, "CAMELLIA") == cipher)
+ {
+ fprintf(stdout, "Cipher disabled, skipping %s\n", cipher);
+ continue;
+ }
+#endif
fprintf(stderr,"Can't find %s\n",cipher);
EXIT(3);
}
diff --git a/crypto/evp/evptests.txt b/crypto/evp/evptests.txt
index 80bd9c7765..193009f781 100644
--- a/crypto/evp/evptests.txt
+++ b/crypto/evp/evptests.txt
@@ -181,3 +181,132 @@ RC4:00000000000000000000000000000000::0000000000000000:de188941a3375d3a
RC4:ef012345ef012345ef012345ef012345::0000000000000000000000000000000000000000:d6a141a7ec3c38dfbd615a1162e1c7ba36b67858
RC4:0123456789abcdef0123456789abcdef::123456789ABCDEF0123456789ABCDEF0123456789ABCDEF012345678:66a0949f8af7d6891f7f832ba833c00c892ebe30143ce28740011ecf
RC4:ef012345ef012345ef012345ef012345::00000000000000000000:d6a141a7ec3c38dfbd61
+
+
+# Camellia tests from RFC3713
+# For all ECB encrypts and decrypts, the transformed sequence is
+# CAMELLIA-bits-ECB:key::plaintext:ciphertext:encdec
+CAMELLIA-128-ECB:0123456789abcdeffedcba9876543210::0123456789abcdeffedcba9876543210:67673138549669730857065648eabe43
+CAMELLIA-192-ECB:0123456789abcdeffedcba98765432100011223344556677::0123456789abcdeffedcba9876543210:b4993401b3e996f84ee5cee7d79b09b9
+CAMELLIA-256-ECB:0123456789abcdeffedcba987654321000112233445566778899aabbccddeeff::0123456789abcdeffedcba9876543210:9acc237dff16d76c20ef7c919e3a7509
+
+# ECB-CAMELLIA128.Encrypt
+CAMELLIA-128-ECB:000102030405060708090A0B0C0D0E0F::00112233445566778899AABBCCDDEEFF:77CF412067AF8270613529149919546F:1
+CAMELLIA-192-ECB:000102030405060708090A0B0C0D0E0F1011121314151617::00112233445566778899AABBCCDDEEFF:B22F3C36B72D31329EEE8ADDC2906C68:1
+CAMELLIA-256-ECB:000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F::00112233445566778899AABBCCDDEEFF:2EDF1F3418D53B88841FC8985FB1ECF2:1
+
+# ECB-CAMELLIA128.Encrypt and ECB-CAMELLIA128.Decrypt
+CAMELLIA-128-ECB:2B7E151628AED2A6ABF7158809CF4F3C::6BC1BEE22E409F96E93D7E117393172A:432FC5DCD628115B7C388D770B270C96
+CAMELLIA-128-ECB:2B7E151628AED2A6ABF7158809CF4F3C::AE2D8A571E03AC9C9EB76FAC45AF8E51:0BE1F14023782A22E8384C5ABB7FAB2B
+CAMELLIA-128-ECB:2B7E151628AED2A6ABF7158809CF4F3C::30C81C46A35CE411E5FBC1191A0A52EF:A0A1ABCD1893AB6FE0FE5B65DF5F8636
+CAMELLIA-128-ECB:2B7E151628AED2A6ABF7158809CF4F3C::F69F2445DF4F9B17AD2B417BE66C3710:E61925E0D5DFAA9BB29F815B3076E51A
+
+# ECB-CAMELLIA192.Encrypt and ECB-CAMELLIA192.Decrypt
+CAMELLIA-192-ECB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B::6BC1BEE22E409F96E93D7E117393172A:CCCC6C4E138B45848514D48D0D3439D3
+CAMELLIA-192-ECB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B::AE2D8A571E03AC9C9EB76FAC45AF8E51:5713C62C14B2EC0F8393B6AFD6F5785A
+CAMELLIA-192-ECB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B::30C81C46A35CE411E5FBC1191A0A52EF:B40ED2B60EB54D09D030CF511FEEF366
+CAMELLIA-192-ECB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B::F69F2445DF4F9B17AD2B417BE66C3710:909DBD95799096748CB27357E73E1D26
+
+# ECB-CAMELLIA256.Encrypt and ECB-CAMELLIA256.Decrypt
+CAMELLIA-256-ECB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4::6BC1BEE22E409F96E93D7E117393172A:BEFD219B112FA00098919CD101C9CCFA
+CAMELLIA-256-ECB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4::AE2D8A571E03AC9C9EB76FAC45AF8E51:C91D3A8F1AEA08A9386CF4B66C0169EA
+CAMELLIA-256-ECB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4::30C81C46A35CE411E5FBC1191A0A52EF:A623D711DC5F25A51BB8A80D56397D28
+CAMELLIA-256-ECB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4::F69F2445DF4F9B17AD2B417BE66C3710:7960109FB6DC42947FCFE59EA3C5EB6B
+
+# For all CBC encrypts and decrypts, the transformed sequence is
+# CAMELLIA-bits-CBC:key:IV/ciphertext':plaintext:ciphertext:encdec
+# CBC-CAMELLIA128.Encrypt and CBC-CAMELLIA128.Decrypt
+CAMELLIA-128-CBC:2B7E151628AED2A6ABF7158809CF4F3C:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:1607CF494B36BBF00DAEB0B503C831AB
+CAMELLIA-128-CBC:2B7E151628AED2A6ABF7158809CF4F3C:1607CF494B36BBF00DAEB0B503C831AB:AE2D8A571E03AC9C9EB76FAC45AF8E51:A2F2CF671629EF7840C5A5DFB5074887
+CAMELLIA-128-CBC:2B7E151628AED2A6ABF7158809CF4F3C:A2F2CF671629EF7840C5A5DFB5074887:30C81C46A35CE411E5FBC1191A0A52EF:0F06165008CF8B8B5A63586362543E54
+CAMELLIA-128-CBC:2B7E151628AED2A6ABF7158809CF4F3C:36A84CDAFD5F9A85ADA0F0A993D6D577:F69F2445DF4F9B17AD2B417BE66C3710:74C64268CDB8B8FAF5B34E8AF3732980
+
+# CBC-CAMELLIA192.Encrypt and CBC-CAMELLIA192.Decrypt
+CAMELLIA-192-CBC:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:2A4830AB5AC4A1A2405955FD2195CF93
+CAMELLIA-192-CBC:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:2A4830AB5AC4A1A2405955FD2195CF93:AE2D8A571E03AC9C9EB76FAC45AF8E51:5D5A869BD14CE54264F892A6DD2EC3D5
+CAMELLIA-192-CBC:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:5D5A869BD14CE54264F892A6DD2EC3D5:30C81C46A35CE411E5FBC1191A0A52EF:37D359C3349836D884E310ADDF68C449
+CAMELLIA-192-CBC:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:37D359C3349836D884E310ADDF68C449:F69F2445DF4F9B17AD2B417BE66C3710:01FAAA930B4AB9916E9668E1428C6B08
+
+# CBC-CAMELLIA256.Encrypt and CBC-CAMELLIA256.Decrypt
+CAMELLIA-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:E6CFA35FC02B134A4D2C0B6737AC3EDA
+CAMELLIA-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:E6CFA35FC02B134A4D2C0B6737AC3EDA:AE2D8A571E03AC9C9EB76FAC45AF8E51:36CBEB73BD504B4070B1B7DE2B21EB50
+CAMELLIA-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:36CBEB73BD504B4070B1B7DE2B21EB50:30C81C46A35CE411E5FBC1191A0A52EF:E31A6055297D96CA3330CDF1B1860A83
+CAMELLIA-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:E31A6055297D96CA3330CDF1B1860A83:F69F2445DF4F9B17AD2B417BE66C3710:5D563F6D1CCCF236051C0C5C1C58F28F
+
+# We don't support CFB{1,8}-CAMELLIAxxx.{En,De}crypt
+# For all CFB128 encrypts and decrypts, the transformed sequence is
+# CAMELLIA-bits-CFB:key:IV/ciphertext':plaintext:ciphertext:encdec
+# CFB128-CAMELLIA128.Encrypt
+CAMELLIA-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:14F7646187817EB586599146B82BD719:1
+CAMELLIA-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:14F7646187817EB586599146B82BD719:AE2D8A571E03AC9C9EB76FAC45AF8E51:A53D28BB82DF741103EA4F921A44880B:1
+CAMELLIA-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:A53D28BB82DF741103EA4F921A44880B:30C81C46A35CE411E5FBC1191A0A52EF:9C2157A664626D1DEF9EA420FDE69B96:1
+CAMELLIA-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:9C2157A664626D1DEF9EA420FDE69B96:F69F2445DF4F9B17AD2B417BE66C3710:742A25F0542340C7BAEF24CA8482BB09:1
+
+# CFB128-CAMELLIA128.Decrypt
+CAMELLIA-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:14F7646187817EB586599146B82BD719:0
+CAMELLIA-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:14F7646187817EB586599146B82BD719:AE2D8A571E03AC9C9EB76FAC45AF8E51:A53D28BB82DF741103EA4F921A44880B:0
+CAMELLIA-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:A53D28BB82DF741103EA4F921A44880B:30C81C46A35CE411E5FBC1191A0A52EF:9C2157A664626D1DEF9EA420FDE69B96:0
+CAMELLIA-128-CFB:2B7E151628AED2A6ABF7158809CF4F3C:9C2157A664626D1DEF9EA420FDE69B96:F69F2445DF4F9B17AD2B417BE66C3710:742A25F0542340C7BAEF24CA8482BB09:0
+
+# CFB128-CAMELLIA192.Encrypt
+CAMELLIA-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:C832BB9780677DAA82D9B6860DCD565E:1
+CAMELLIA-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:C832BB9780677DAA82D9B6860DCD565E:AE2D8A571E03AC9C9EB76FAC45AF8E51:86F8491627906D780C7A6D46EA331F98:1
+CAMELLIA-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:86F8491627906D780C7A6D46EA331F98:30C81C46A35CE411E5FBC1191A0A52EF:69511CCE594CF710CB98BB63D7221F01:1
+CAMELLIA-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:69511CCE594CF710CB98BB63D7221F01:F69F2445DF4F9B17AD2B417BE66C3710:D5B5378A3ABED55803F25565D8907B84:1
+
+# CFB128-CAMELLIA192.Decrypt
+CAMELLIA-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:C832BB9780677DAA82D9B6860DCD565E:0
+CAMELLIA-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:C832BB9780677DAA82D9B6860DCD565E:AE2D8A571E03AC9C9EB76FAC45AF8E51:86F8491627906D780C7A6D46EA331F98:0
+CAMELLIA-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:86F8491627906D780C7A6D46EA331F98:30C81C46A35CE411E5FBC1191A0A52EF:69511CCE594CF710CB98BB63D7221F01:0
+CAMELLIA-192-CFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:69511CCE594CF710CB98BB63D7221F01:F69F2445DF4F9B17AD2B417BE66C3710:D5B5378A3ABED55803F25565D8907B84:0
+
+# CFB128-CAMELLIA256.Encrypt
+CAMELLIA-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:CF6107BB0CEA7D7FB1BD31F5E7B06C93:1
+CAMELLIA-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:CF6107BB0CEA7D7FB1BD31F5E7B06C93:AE2D8A571E03AC9C9EB76FAC45AF8E51:89BEDB4CCDD864EA11BA4CBE849B5E2B:1
+CAMELLIA-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:89BEDB4CCDD864EA11BA4CBE849B5E2B:30C81C46A35CE411E5FBC1191A0A52EF:555FC3F34BDD2D54C62D9E3BF338C1C4:1
+CAMELLIA-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:555FC3F34BDD2D54C62D9E3BF338C1C4:F69F2445DF4F9B17AD2B417BE66C3710:5953ADCE14DB8C7F39F1BD39F359BFFA:1
+
+# CFB128-CAMELLIA256.Decrypt
+CAMELLIA-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:CF6107BB0CEA7D7FB1BD31F5E7B06C93:0
+CAMELLIA-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:CF6107BB0CEA7D7FB1BD31F5E7B06C93:AE2D8A571E03AC9C9EB76FAC45AF8E51:89BEDB4CCDD864EA11BA4CBE849B5E2B:0
+CAMELLIA-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:89BEDB4CCDD864EA11BA4CBE849B5E2B:30C81C46A35CE411E5FBC1191A0A52EF:555FC3F34BDD2D54C62D9E3BF338C1C4:0
+CAMELLIA-256-CFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:555FC3F34BDD2D54C62D9E3BF338C1C4:F69F2445DF4F9B17AD2B417BE66C3710:5953ADCE14DB8C7F39F1BD39F359BFFA:0
+
+# For all OFB encrypts and decrypts, the transformed sequence is
+# CAMELLIA-bits-OFB:key:IV/output':plaintext:ciphertext:encdec
+# OFB-CAMELLIA128.Encrypt
+CAMELLIA-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:14F7646187817EB586599146B82BD719:1
+CAMELLIA-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:50FE67CC996D32B6DA0937E99BAFEC60:AE2D8A571E03AC9C9EB76FAC45AF8E51:25623DB569CA51E01482649977E28D84:1
+CAMELLIA-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:D9A4DADA0892239F6B8B3D7680E15674:30C81C46A35CE411E5FBC1191A0A52EF:C776634A60729DC657D12B9FCA801E98:1
+CAMELLIA-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:A78819583F0308E7A6BF36B1386ABF23:F69F2445DF4F9B17AD2B417BE66C3710:D776379BE0E50825E681DA1A4C980E8E:1
+
+# OFB-CAMELLIA128.Decrypt
+CAMELLIA-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:14F7646187817EB586599146B82BD719:0
+CAMELLIA-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:50FE67CC996D32B6DA0937E99BAFEC60:AE2D8A571E03AC9C9EB76FAC45AF8E51:25623DB569CA51E01482649977E28D84:0
+CAMELLIA-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:D9A4DADA0892239F6B8B3D7680E15674:30C81C46A35CE411E5FBC1191A0A52EF:C776634A60729DC657D12B9FCA801E98:0
+CAMELLIA-128-OFB:2B7E151628AED2A6ABF7158809CF4F3C:A78819583F0308E7A6BF36B1386ABF23:F69F2445DF4F9B17AD2B417BE66C3710:D776379BE0E50825E681DA1A4C980E8E:0
+
+# OFB-CAMELLIA192.Encrypt
+CAMELLIA-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:C832BB9780677DAA82D9B6860DCD565E:1
+CAMELLIA-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:A609B38DF3B1133DDDFF2718BA09565E:AE2D8A571E03AC9C9EB76FAC45AF8E51:8ECEB7D0350D72C7F78562AEBDF99339:1
+CAMELLIA-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:52EF01DA52602FE0975F78AC84BF8A50:30C81C46A35CE411E5FBC1191A0A52EF:BDD62DBBB9700846C53B507F544696F0:1
+CAMELLIA-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:BD5286AC63AABD7EB067AC54B553F71D:F69F2445DF4F9B17AD2B417BE66C3710:E28014E046B802F385C4C2E13EAD4A72:1
+
+# OFB-CAMELLIA192.Decrypt
+CAMELLIA-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:C832BB9780677DAA82D9B6860DCD565E:0
+CAMELLIA-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:A609B38DF3B1133DDDFF2718BA09565E:AE2D8A571E03AC9C9EB76FAC45AF8E51:8ECEB7D0350D72C7F78562AEBDF99339:0
+CAMELLIA-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:52EF01DA52602FE0975F78AC84BF8A50:30C81C46A35CE411E5FBC1191A0A52EF:BDD62DBBB9700846C53B507F544696F0:0
+CAMELLIA-192-OFB:8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B:BD5286AC63AABD7EB067AC54B553F71D:F69F2445DF4F9B17AD2B417BE66C3710:E28014E046B802F385C4C2E13EAD4A72:0
+
+# OFB-CAMELLIA256.Encrypt
+CAMELLIA-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:CF6107BB0CEA7D7FB1BD31F5E7B06C93:1
+CAMELLIA-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:B7BF3A5DF43989DD97F0FA97EBCE2F4A:AE2D8A571E03AC9C9EB76FAC45AF8E51:127AD97E8E3994E4820027D7BA109368:1
+CAMELLIA-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:E1C656305ED1A7A6563805746FE03EDC:30C81C46A35CE411E5FBC1191A0A52EF:6BFF6265A6A6B7A535BC65A80B17214E:1
+CAMELLIA-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:41635BE625B48AFC1666DD42A09D96E7:F69F2445DF4F9B17AD2B417BE66C3710:0A4A0404E26AA78A27CB271E8BF3CF20:1
+
+# OFB-CAMELLIA256.Decrypt
+CAMELLIA-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:000102030405060708090A0B0C0D0E0F:6BC1BEE22E409F96E93D7E117393172A:CF6107BB0CEA7D7FB1BD31F5E7B06C93:0
+CAMELLIA-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:B7BF3A5DF43989DD97F0FA97EBCE2F4A:AE2D8A571E03AC9C9EB76FAC45AF8E51:127AD97E8E3994E4820027D7BA109368:0
+CAMELLIA-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:E1C656305ED1A7A6563805746FE03EDC:30C81C46A35CE411E5FBC1191A0A52EF:6BFF6265A6A6B7A535BC65A80B17214E:0
+CAMELLIA-256-OFB:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:41635BE625B48AFC1666DD42A09D96E7:F69F2445DF4F9B17AD2B417BE66C3710:0A4A0404E26AA78A27CB271E8BF3CF20:0
+
diff --git a/crypto/objects/obj_dat.h b/crypto/objects/obj_dat.h
index ef976518ee..15c40b318a 100644
--- a/crypto/objects/obj_dat.h
+++ b/crypto/objects/obj_dat.h
@@ -62,12 +62,12 @@
* [including the GNU Public Licence.]
*/
-#define NUM_NID 807
-#define NUM_SN 803
-#define NUM_LN 803
-#define NUM_OBJ 765
+#define NUM_NID 825
+#define NUM_SN 821
+#define NUM_LN 821
+#define NUM_OBJ 777
-static unsigned char lvalues[5385]={
+static unsigned char lvalues[5490]={
0x00, /* [ 0] OBJ_undef */
0x2A,0x86,0x48,0x86,0xF7,0x0D, /* [ 1] OBJ_rsadsi */
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01, /* [ 7] OBJ_pkcs */
@@ -833,6 +833,18 @@ static unsigned char lvalues[5385]={
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x02,0x09, /* [5360] OBJ_hmacWithSHA256 */
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x02,0x0A, /* [5368] OBJ_hmacWithSHA384 */
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x02,0x0B, /* [5376] OBJ_hmacWithSHA512 */
+0x2A,0x83,0x08,0x8C,0x9A,0x4B,0x3D,0x01,0x01,0x01,0x02,/* [5384] OBJ_camellia_128_cbc */
+0x2A,0x83,0x08,0x8C,0x9A,0x4B,0x3D,0x01,0x01,0x01,0x03,/* [5395] OBJ_camellia_192_cbc */
+0x2A,0x83,0x08,0x8C,0x9A,0x4B,0x3D,0x01,0x01,0x01,0x04,/* [5406] OBJ_camellia_256_cbc */
+0x03,0xA2,0x31,0x05,0x03,0x01,0x09,0x01, /* [5417] OBJ_camellia_128_ecb */
+0x03,0xA2,0x31,0x05,0x03,0x01,0x09,0x15, /* [5425] OBJ_camellia_192_ecb */
+0x03,0xA2,0x31,0x05,0x03,0x01,0x09,0x29, /* [5433] OBJ_camellia_256_ecb */
+0x03,0xA2,0x31,0x05,0x03,0x01,0x09,0x04, /* [5441] OBJ_camellia_128_cfb128 */
+0x03,0xA2,0x31,0x05,0x03,0x01,0x09,0x18, /* [5449] OBJ_camellia_192_cfb128 */
+0x03,0xA2,0x31,0x05,0x03,0x01,0x09,0x2C, /* [5457] OBJ_camellia_256_cfb128 */
+0x03,0xA2,0x31,0x05,0x03,0x01,0x09,0x03, /* [5465] OBJ_camellia_128_ofb128 */
+0x03,0xA2,0x31,0x05,0x03,0x01,0x09,0x17, /* [5473] OBJ_camellia_192_ofb128 */
+0x03,0xA2,0x31,0x05,0x03,0x01,0x09,0x2B, /* [5481] OBJ_camellia_256_ofb128 */
};
static ASN1_OBJECT nid_objs[NUM_NID]={
@@ -2136,6 +2148,36 @@ static ASN1_OBJECT nid_objs[NUM_NID]={
&(lvalues[5368]),0},
{"hmacWithSHA512","hmacWithSHA512",NID_hmacWithSHA512,8,
&(lvalues[5376]),0},
+{"CAMELLIA-128-CBC","camellia-128-cbc",NID_camellia_128_cbc,11,
+ &(lvalues[5384]),0},
+{"CAMELLIA-192-CBC","camellia-192-cbc",NID_camellia_192_cbc,11,
+ &(lvalues[5395]),0},
+{"CAMELLIA-256-CBC","camellia-256-cbc",NID_camellia_256_cbc,11,
+ &(lvalues[5406]),0},
+{"CAMELLIA-128-ECB","camellia-128-ecb",NID_camellia_128_ecb,8,
+ &(lvalues[5417]),0},
+{"CAMELLIA-192-ECB","camellia-192-ecb",NID_camellia_192_ecb,8,
+ &(lvalues[5425]),0},
+{"CAMELLIA-256-ECB","camellia-256-ecb",NID_camellia_256_ecb,8,
+ &(lvalues[5433]),0},
+{"CAMELLIA-128-CFB","camellia-128-cfb",NID_camellia_128_cfb128,8,
+ &(lvalues[5441]),0},
+{"CAMELLIA-192-CFB","camellia-192-cfb",NID_camellia_192_cfb128,8,
+ &(lvalues[5449]),0},
+{"CAMELLIA-256-CFB","camellia-256-cfb",NID_camellia_256_cfb128,8,
+ &(lvalues[5457]),0},
+{"CAMELLIA-128-CFB1","camellia-128-cfb1",NID_camellia_128_cfb1,0,NULL,0},
+{"CAMELLIA-192-CFB1","camellia-192-cfb1",NID_camellia_192_cfb1,0,NULL,0},
+{"CAMELLIA-256-CFB1","camellia-256-cfb1",NID_camellia_256_cfb1,0,NULL,0},
+{"CAMELLIA-128-CFB8","camellia-128-cfb8",NID_camellia_128_cfb8,0,NULL,0},
+{"CAMELLIA-192-CFB8","camellia-192-cfb8",NID_camellia_192_cfb8,0,NULL,0},
+{"CAMELLIA-256-CFB8","camellia-256-cfb8",NID_camellia_256_cfb8,0,NULL,0},
+{"CAMELLIA-128-OFB","camellia-128-ofb",NID_camellia_128_ofb128,8,
+ &(lvalues[5465]),0},
+{"CAMELLIA-192-OFB","camellia-192-ofb",NID_camellia_192_ofb128,8,
+ &(lvalues[5473]),0},
+{"CAMELLIA-256-OFB","camellia-256-ofb",NID_camellia_256_ofb128,8,
+ &(lvalues[5481]),0},
};
static ASN1_OBJECT *sn_objs[NUM_SN]={
@@ -2163,6 +2205,24 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[92]),/* "BF-ECB" */
&(nid_objs[94]),/* "BF-OFB" */
&(nid_objs[14]),/* "C" */
+&(nid_objs[807]),/* "CAMELLIA-128-CBC" */
+&(nid_objs[813]),/* "CAMELLIA-128-CFB" */
+&(nid_objs[816]),/* "CAMELLIA-128-CFB1" */
+&(nid_objs[819]),/* "CAMELLIA-128-CFB8" */
+&(nid_objs[810]),/* "CAMELLIA-128-ECB" */
+&(nid_objs[822]),/* "CAMELLIA-128-OFB" */
+&(nid_objs[808]),/* "CAMELLIA-192-CBC" */
+&(nid_objs[814]),/* "CAMELLIA-192-CFB" */
+&(nid_objs[817]),/* "CAMELLIA-192-CFB1" */
+&(nid_objs[820]),/* "CAMELLIA-192-CFB8" */
+&(nid_objs[811]),/* "CAMELLIA-192-ECB" */
+&(nid_objs[823]),/* "CAMELLIA-192-OFB" */
+&(nid_objs[809]),/* "CAMELLIA-256-CBC" */
+&(nid_objs[815]),/* "CAMELLIA-256-CFB" */
+&(nid_objs[818]),/* "CAMELLIA-256-CFB1" */
+&(nid_objs[821]),/* "CAMELLIA-256-CFB8" */
+&(nid_objs[812]),/* "CAMELLIA-256-ECB" */
+&(nid_objs[824]),/* "CAMELLIA-256-OFB" */
&(nid_objs[108]),/* "CAST5-CBC" */
&(nid_objs[110]),/* "CAST5-CFB" */
&(nid_objs[109]),/* "CAST5-ECB" */
@@ -3128,6 +3188,24 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[687]),/* "c2tnb359v1" */
&(nid_objs[689]),/* "c2tnb431r1" */
&(nid_objs[483]),/* "cNAMERecord" */
+&(nid_objs[807]),/* "camellia-128-cbc" */
+&(nid_objs[813]),/* "camellia-128-cfb" */
+&(nid_objs[816]),/* "camellia-128-cfb1" */
+&(nid_objs[819]),/* "camellia-128-cfb8" */
+&(nid_objs[810]),/* "camellia-128-ecb" */
+&(nid_objs[822]),/* "camellia-128-ofb" */
+&(nid_objs[808]),/* "camellia-192-cbc" */
+&(nid_objs[814]),/* "camellia-192-cfb" */
+&(nid_objs[817]),/* "camellia-192-cfb1" */
+&(nid_objs[820]),/* "camellia-192-cfb8" */
+&(nid_objs[811]),/* "camellia-192-ecb" */
+&(nid_objs[823]),/* "camellia-192-ofb" */
+&(nid_objs[809]),/* "camellia-256-cbc" */
+&(nid_objs[815]),/* "camellia-256-cfb" */
+&(nid_objs[818]),/* "camellia-256-cfb1" */
+&(nid_objs[821]),/* "camellia-256-cfb8" */
+&(nid_objs[812]),/* "camellia-256-ecb" */
+&(nid_objs[824]),/* "camellia-256-ofb" */
&(nid_objs[443]),/* "caseIgnoreIA5StringSyntax" */
&(nid_objs[108]),/* "cast5-cbc" */
&(nid_objs[110]),/* "cast5-cfb" */
@@ -4103,6 +4181,15 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
&(nid_objs[507]),/* OBJ_id_hex_partial_message 1 3 6 1 7 1 1 1 */
&(nid_objs[508]),/* OBJ_id_hex_multipart_message 1 3 6 1 7 1 1 2 */
&(nid_objs[57]),/* OBJ_netscape 2 16 840 1 113730 */
+&(nid_objs[810]),/* OBJ_camellia_128_ecb 0 3 4401 5 3 1 9 1 */
+&(nid_objs[822]),/* OBJ_camellia_128_ofb128 0 3 4401 5 3 1 9 3 */
+&(nid_objs[813]),/* OBJ_camellia_128_cfb128 0 3 4401 5 3 1 9 4 */
+&(nid_objs[811]),/* OBJ_camellia_192_ecb 0 3 4401 5 3 1 9 21 */
+&(nid_objs[823]),/* OBJ_camellia_192_ofb128 0 3 4401 5 3 1 9 23 */
+&(nid_objs[814]),/* OBJ_camellia_192_cfb128 0 3 4401 5 3 1 9 24 */
+&(nid_objs[812]),/* OBJ_camellia_256_ecb 0 3 4401 5 3 1 9 41 */
+&(nid_objs[824]),/* OBJ_camellia_256_ofb128 0 3 4401 5 3 1 9 43 */
+&(nid_objs[815]),/* OBJ_camellia_256_cfb128 0 3 4401 5 3 1 9 44 */
&(nid_objs[437]),/* OBJ_pilot 0 9 2342 19200300 100 */
&(nid_objs[799]),/* OBJ_id_GostR3411_94_with_GostR3410_94_cc 1 2 643 2 9 1 3 3 */
&(nid_objs[800]),/* OBJ_id_GostR3411_94_with_GostR3410_2001_cc 1 2 643 2 9 1 3 4 */
@@ -4448,6 +4535,9 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
&(nid_objs[138]),/* OBJ_ms_efs 1 3 6 1 4 1 311 10 3 4 */
&(nid_objs[648]),/* OBJ_ms_smartcard_login 1 3 6 1 4 1 311 20 2 2 */
&(nid_objs[649]),/* OBJ_ms_upn 1 3 6 1 4 1 311 20 2 3 */
+&(nid_objs[807]),/* OBJ_camellia_128_cbc 1 2 392 200011 61 1 1 1 2 */
+&(nid_objs[808]),/* OBJ_camellia_192_cbc 1 2 392 200011 61 1 1 1 3 */
+&(nid_objs[809]),/* OBJ_camellia_256_cbc 1 2 392 200011 61 1 1 1 4 */
&(nid_objs[196]),/* OBJ_id_smime_mod_cms 1 2 840 113549 1 9 16 0 1 */
&(nid_objs[197]),/* OBJ_id_smime_mod_ess 1 2 840 113549 1 9 16 0 2 */
&(nid_objs[198]),/* OBJ_id_smime_mod_oid 1 2 840 113549 1 9 16 0 3 */
diff --git a/crypto/objects/obj_mac.h b/crypto/objects/obj_mac.h
index 42b12db351..f8d22bd74a 100644
--- a/crypto/objects/obj_mac.h
+++ b/crypto/objects/obj_mac.h
@@ -3545,3 +3545,91 @@
#define NID_id_GostR3410_2001_ParamSet_cc 801
#define OBJ_id_GostR3410_2001_ParamSet_cc OBJ_cryptocom,1L,8L,1L
+#define SN_camellia_128_cbc "CAMELLIA-128-CBC"
+#define LN_camellia_128_cbc "camellia-128-cbc"
+#define NID_camellia_128_cbc 807
+#define OBJ_camellia_128_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,2L
+
+#define SN_camellia_192_cbc "CAMELLIA-192-CBC"
+#define LN_camellia_192_cbc "camellia-192-cbc"
+#define NID_camellia_192_cbc 808
+#define OBJ_camellia_192_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,3L
+
+#define SN_camellia_256_cbc "CAMELLIA-256-CBC"
+#define LN_camellia_256_cbc "camellia-256-cbc"
+#define NID_camellia_256_cbc 809
+#define OBJ_camellia_256_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,4L
+
+#define OBJ_ntt_ds 0L,3L,4401L,5L
+
+#define OBJ_camellia OBJ_ntt_ds,3L,1L,9L
+
+#define SN_camellia_128_ecb "CAMELLIA-128-ECB"
+#define LN_camellia_128_ecb "camellia-128-ecb"
+#define NID_camellia_128_ecb 810
+#define OBJ_camellia_128_ecb OBJ_camellia,1L
+
+#define SN_camellia_128_ofb128 "CAMELLIA-128-OFB"
+#define LN_camellia_128_ofb128 "camellia-128-ofb"
+#define NID_camellia_128_ofb128 822
+#define OBJ_camellia_128_ofb128 OBJ_camellia,3L
+
+#define SN_camellia_128_cfb128 "CAMELLIA-128-CFB"
+#define LN_camellia_128_cfb128 "camellia-128-cfb"
+#define NID_camellia_128_cfb128 813
+#define OBJ_camellia_128_cfb128 OBJ_camellia,4L
+
+#define SN_camellia_192_ecb "CAMELLIA-192-ECB"
+#define LN_camellia_192_ecb "camellia-192-ecb"
+#define NID_camellia_192_ecb 811
+#define OBJ_camellia_192_ecb OBJ_camellia,21L
+
+#define SN_camellia_192_ofb128 "CAMELLIA-192-OFB"
+#define LN_camellia_192_ofb128 "camellia-192-ofb"
+#define NID_camellia_192_ofb128 823
+#define OBJ_camellia_192_ofb128 OBJ_camellia,23L
+
+#define SN_camellia_192_cfb128 "CAMELLIA-192-CFB"
+#define LN_camellia_192_cfb128 "camellia-192-cfb"
+#define NID_camellia_192_cfb128 814
+#define OBJ_camellia_192_cfb128 OBJ_camellia,24L
+
+#define SN_camellia_256_ecb "CAMELLIA-256-ECB"
+#define LN_camellia_256_ecb "camellia-256-ecb"
+#define NID_camellia_256_ecb 812
+#define OBJ_camellia_256_ecb OBJ_camellia,41L
+
+#define SN_camellia_256_ofb128 "CAMELLIA-256-OFB"
+#define LN_camellia_256_ofb128 "camellia-256-ofb"
+#define NID_camellia_256_ofb128 824
+#define OBJ_camellia_256_ofb128 OBJ_camellia,43L
+
+#define SN_camellia_256_cfb128 "CAMELLIA-256-CFB"
+#define LN_camellia_256_cfb128 "camellia-256-cfb"
+#define NID_camellia_256_cfb128 815
+#define OBJ_camellia_256_cfb128 OBJ_camellia,44L
+
+#define SN_camellia_128_cfb1 "CAMELLIA-128-CFB1"
+#define LN_camellia_128_cfb1 "camellia-128-cfb1"
+#define NID_camellia_128_cfb1 816
+
+#define SN_camellia_192_cfb1 "CAMELLIA-192-CFB1"
+#define LN_camellia_192_cfb1 "camellia-192-cfb1"
+#define NID_camellia_192_cfb1 817
+
+#define SN_camellia_256_cfb1 "CAMELLIA-256-CFB1"
+#define LN_camellia_256_cfb1 "camellia-256-cfb1"
+#define NID_camellia_256_cfb1 818
+
+#define SN_camellia_128_cfb8 "CAMELLIA-128-CFB8"
+#define LN_camellia_128_cfb8 "camellia-128-cfb8"
+#define NID_camellia_128_cfb8 819
+
+#define SN_camellia_192_cfb8 "CAMELLIA-192-CFB8"
+#define LN_camellia_192_cfb8 "camellia-192-cfb8"
+#define NID_camellia_192_cfb8 820
+
+#define SN_camellia_256_cfb8 "CAMELLIA-256-CFB8"
+#define LN_camellia_256_cfb8 "camellia-256-cfb8"
+#define NID_camellia_256_cfb8 821
+
diff --git a/crypto/objects/obj_mac.num b/crypto/objects/obj_mac.num
index dab08d37d2..5646debba5 100644
--- a/crypto/objects/obj_mac.num
+++ b/crypto/objects/obj_mac.num
@@ -804,3 +804,21 @@ hmacWithSHA224 803
hmacWithSHA256 804
hmacWithSHA384 805
hmacWithSHA512 806
+camellia_128_cbc 807
+camellia_192_cbc 808
+camellia_256_cbc 809
+camellia_128_ecb 810
+camellia_192_ecb 811
+camellia_256_ecb 812
+camellia_128_cfb128 813
+camellia_192_cfb128 814
+camellia_256_cfb128 815
+camellia_128_cfb1 816
+camellia_192_cfb1 817
+camellia_256_cfb1 818
+camellia_128_cfb8 819
+camellia_192_cfb8 820
+camellia_256_cfb8 821
+camellia_128_ofb128 822
+camellia_192_ofb128 823
+camellia_256_ofb128 824
diff --git a/crypto/objects/objects.txt b/crypto/objects/objects.txt
index d2dcea2c1d..97b520d150 100644
--- a/crypto/objects/objects.txt
+++ b/crypto/objects/objects.txt
@@ -1134,3 +1134,41 @@ cryptocom 1 3 3 : id-GostR3411-94-with-GostR3410-94-cc : GOST R 34.11-94 with G
cryptocom 1 3 4 : id-GostR3411-94-with-GostR3410-2001-cc : GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom
cryptocom 1 8 1 : id-GostR3410-2001-ParamSet-cc : GOST R 3410-2001 Parameter Set Cryptocom
+
+# Definitions for Camellia cipher - CBC MODE
+
+1 2 392 200011 61 1 1 1 2 : CAMELLIA-128-CBC : camellia-128-cbc
+1 2 392 200011 61 1 1 1 3 : CAMELLIA-192-CBC : camellia-192-cbc
+1 2 392 200011 61 1 1 1 4 : CAMELLIA-256-CBC : camellia-256-cbc
+
+# Definitions for Camellia cipher - ECB, CFB, OFB MODE
+
+!Alias ntt-ds 0 3 4401 5
+!Alias camellia ntt-ds 3 1 9
+
+camellia 1 : CAMELLIA-128-ECB : camellia-128-ecb
+!Cname camellia-128-ofb128
+camellia 3 : CAMELLIA-128-OFB : camellia-128-ofb
+!Cname camellia-128-cfb128
+camellia 4 : CAMELLIA-128-CFB : camellia-128-cfb
+
+camellia 21 : CAMELLIA-192-ECB : camellia-192-ecb
+!Cname camellia-192-ofb128
+camellia 23 : CAMELLIA-192-OFB : camellia-192-ofb
+!Cname camellia-192-cfb128
+camellia 24 : CAMELLIA-192-CFB : camellia-192-cfb
+
+camellia 41 : CAMELLIA-256-ECB : camellia-256-ecb
+!Cname camellia-256-ofb128
+camellia 43 : CAMELLIA-256-OFB : camellia-256-ofb
+!Cname camellia-256-cfb128
+camellia 44 : CAMELLIA-256-CFB : camellia-256-cfb
+
+# There are no OIDs for these modes...
+
+ : CAMELLIA-128-CFB1 : camellia-128-cfb1
+ : CAMELLIA-192-CFB1 : camellia-192-cfb1
+ : CAMELLIA-256-CFB1 : camellia-256-cfb1
+ : CAMELLIA-128-CFB8 : camellia-128-cfb8
+ : CAMELLIA-192-CFB8 : camellia-192-cfb8
+ : CAMELLIA-256-CFB8 : camellia-256-cfb8
diff --git a/crypto/pem/Makefile b/crypto/pem/Makefile
index 03976ff6d1..306b2eb308 100644
--- a/crypto/pem/Makefile
+++ b/crypto/pem/Makefile
@@ -125,18 +125,19 @@ pem_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
pem_lib.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
pem_lib.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
pem_lib.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-pem_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
-pem_lib.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
-pem_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
-pem_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
-pem_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
-pem_lib.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs12.h
-pem_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
-pem_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
-pem_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
-pem_lib.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
-pem_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
-pem_lib.o: ../asn1/asn1_locl.h ../cryptlib.h pem_lib.c
+pem_lib.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+pem_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+pem_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+pem_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
+pem_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
+pem_lib.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
+pem_lib.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
+pem_lib.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
+pem_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
+pem_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
+pem_lib.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
+pem_lib.o: ../../include/openssl/x509_vfy.h ../asn1/asn1_locl.h ../cryptlib.h
+pem_lib.o: pem_lib.c
pem_oth.o: ../../e_os.h ../../include/openssl/asn1.h
pem_oth.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
pem_oth.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
@@ -170,10 +171,10 @@ pem_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
pem_pkey.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
pem_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
pem_pkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
-pem_pkey.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
-pem_pkey.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
-pem_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
-pem_pkey.o: ../../include/openssl/opensslconf.h
+pem_pkey.o: ../../include/openssl/ecdsa.h ../../include/openssl/engine.h
+pem_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
+pem_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
+pem_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
pem_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
pem_pkey.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
pem_pkey.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
diff --git a/doc/apps/ciphers.pod b/doc/apps/ciphers.pod
index 00d4cb1fd8..2643a1ef3d 100644
--- a/doc/apps/ciphers.pod
+++ b/doc/apps/ciphers.pod
@@ -240,6 +240,10 @@ cipher suites using MD5.
cipher suites using SHA1.
+=item B<Camellia>
+
+cipher suites using Camellia.
+
=back
=head1 CIPHER SUITE NAMES
@@ -335,6 +339,24 @@ e.g. DES-CBC3-SHA. In these cases, RSA authentication is used.
TLS_DH_anon_WITH_AES_128_CBC_SHA ADH-AES128-SHA
TLS_DH_anon_WITH_AES_256_CBC_SHA ADH-AES256-SHA
+=head2 Camellia ciphersuites from RFC4132, extending TLS v1.0
+
+ TLS_RSA_WITH_CAMELLIA_128_CBC_SHA CAMELLIA128-SHA
+ TLS_RSA_WITH_CAMELLIA_256_CBC_SHA CAMELLIA256-SHA
+
+ TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA Not implemented.
+ TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA Not implemented.
+ TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA Not implemented.
+ TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA Not implemented.
+
+ TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA DHE-DSS-CAMELLIA128-SHA
+ TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA DHE-DSS-CAMELLIA256-SHA
+ TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA DHE-RSA-CAMELLIA128-SHA
+ TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA DHE-RSA-CAMELLIA256-SHA
+
+ TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA ADH-CAMELLIA128-SHA
+ TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA ADH-CAMELLIA256-SHA
+
=head2 Additional Export 1024 and other cipher suites
Note: these ciphers can also be used in SSL v3.
diff --git a/doc/apps/smime.pod b/doc/apps/smime.pod
index 84b673f791..caf2d2689e 100644
--- a/doc/apps/smime.pod
+++ b/doc/apps/smime.pod
@@ -20,6 +20,9 @@ B<openssl> B<smime>
[B<-aes128>]
[B<-aes192>]
[B<-aes256>]
+[B<-camellia128>]
+[B<-camellia192>]
+[B<-camellia256>]
[B<-in file>]
[B<-certfile file>]
[B<-signer file>]
@@ -129,10 +132,10 @@ B<-verify>. This directory must be a standard certificate directory: that
is a hash of each subject name (using B<x509 -hash>) should be linked
to each certificate.
-=item B<-des -des3 -rc2-40 -rc2-64 -rc2-128 -aes128 -aes192 -aes256>
+=item B<-des -des3 -rc2-40 -rc2-64 -rc2-128 -aes128 -aes192 -aes256 -camellia128 -camellia192 -camellia256>
the encryption algorithm to use. DES (56 bits), triple DES (168 bits),
-40, 64 or 128 bit RC2 or 128, 192 or 256 bit AES respectively. If not
+40, 64 or 128 bit RC2, 128, 192 or 256 bit AES, or 128, 192 or 256 bit Camellia respectively. If not
specified 40 bit RC2 is used. Only used with B<-encrypt>.
=item B<-nointern>
@@ -354,6 +357,10 @@ alternatively you can base64 decode the signature and use
openssl smime -verify -inform DER -in signature.der -content content.txt
+Create an encrypted message using 128 bit Camellia:
+
+ openssl smime -encrypt -in plain.txt -camellia128 -out mail.msg cert.pem
+
=head1 BUGS
The MIME parser isn't very clever: it seems to handle most messages that I've thrown
diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c
index bfb70515b0..63edc36442 100644
--- a/ssl/s3_lib.c
+++ b/ssl/s3_lib.c
@@ -932,6 +932,89 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
SSL_ALL_STRENGTHS,
},
+#ifndef OPENSSL_NO_CAMELLIA
+ /* Camellia ciphersuites from RFC4132 (128-bit portion) */
+
+ /* Cipher 41 */
+ {
+ 1,
+ TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA,
+ TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA,
+ SSL_kRSA|SSL_aRSA|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1,
+ SSL_NOT_EXP|SSL_HIGH,
+ 0,
+ 128,
+ 128,
+ SSL_ALL_CIPHERS,
+ SSL_ALL_STRENGTHS
+ },
+ /* Cipher 42 */
+ {
+ 0, /* not implemented (non-ephemeral DH) */
+ TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA,
+ TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA,
+ SSL_kDHd|SSL_aDH|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1,
+ SSL_NOT_EXP|SSL_HIGH,
+ 0,
+ 128,
+ 128,
+ SSL_ALL_CIPHERS,
+ SSL_ALL_STRENGTHS
+ },
+ /* Cipher 43 */
+ {
+ 0, /* not implemented (non-ephemeral DH) */
+ TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA,
+ TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA,
+ SSL_kDHr|SSL_aDH|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1,
+ SSL_NOT_EXP|SSL_HIGH,
+ 0,
+ 128,
+ 128,
+ SSL_ALL_CIPHERS,
+ SSL_ALL_STRENGTHS
+ },
+ /* Cipher 44 */
+ {
+ 1,
+ TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA,
+ TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA,
+ SSL_kEDH|SSL_aDSS|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1,
+ SSL_NOT_EXP|SSL_HIGH,
+ 0,
+ 128,
+ 128,
+ SSL_ALL_CIPHERS,
+ SSL_ALL_STRENGTHS
+ },
+ /* Cipher 45 */
+ {
+ 1,
+ TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,
+ TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,
+ SSL_kEDH|SSL_aRSA|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1,
+ SSL_NOT_EXP|SSL_HIGH,
+ 0,
+ 128,
+ 128,
+ SSL_ALL_CIPHERS,
+ SSL_ALL_STRENGTHS
+ },
+ /* Cipher 46 */
+ {
+ 1,
+ TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA,
+ TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA,
+ SSL_kEDH|SSL_aNULL|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1,
+ SSL_NOT_EXP|SSL_HIGH,
+ 0,
+ 128,
+ 128,
+ SSL_ALL_CIPHERS,
+ SSL_ALL_STRENGTHS
+ },
+#endif /* OPENSSL_NO_CAMELLIA */
+
#if TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES
/* New TLS Export CipherSuites from expired ID */
#if 0
@@ -1028,6 +1111,90 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
SSL_ALL_STRENGTHS
},
#endif
+
+#ifndef OPENSSL_NO_CAMELLIA
+ /* Camellia ciphersuites from RFC4132 (256-bit portion) */
+
+ /* Cipher 84 */
+ {
+ 1,
+ TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA,
+ TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA,
+ SSL_kRSA|SSL_aRSA|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1,
+ SSL_NOT_EXP|SSL_HIGH,
+ 0,
+ 256,
+ 256,
+ SSL_ALL_CIPHERS,
+ SSL_ALL_STRENGTHS
+ },
+ /* Cipher 85 */
+ {
+ 0, /* not implemented (non-ephemeral DH) */
+ TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA,
+ TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA,
+ SSL_kDHd|SSL_aDH|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1,
+ SSL_NOT_EXP|SSL_HIGH,
+ 0,
+ 256,
+ 256,
+ SSL_ALL_CIPHERS,
+ SSL_ALL_STRENGTHS
+ },
+ /* Cipher 86 */
+ {
+ 0, /* not implemented (non-ephemeral DH) */
+ TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA,
+ TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA,
+ SSL_kDHr|SSL_aDH|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1,
+ SSL_NOT_EXP|SSL_HIGH,
+ 0,
+ 256,
+ 256,
+ SSL_ALL_CIPHERS,
+ SSL_ALL_STRENGTHS
+ },
+ /* Cipher 87 */
+ {
+ 1,
+ TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA,
+ TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA,
+ SSL_kEDH|SSL_aDSS|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1,
+ SSL_NOT_EXP|SSL_HIGH,
+ 0,
+ 256,
+ 256,
+ SSL_ALL_CIPHERS,
+ SSL_ALL_STRENGTHS
+ },
+ /* Cipher 88 */
+ {
+ 1,
+ TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,
+ TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,
+ SSL_kEDH|SSL_aRSA|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1,
+ SSL_NOT_EXP|SSL_HIGH,
+ 0,
+ 256,
+ 256,
+ SSL_ALL_CIPHERS,
+ SSL_ALL_STRENGTHS
+ },
+ /* Cipher 89 */
+ {
+ 1,
+ TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA,
+ TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA,
+ SSL_kEDH|SSL_aNULL|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1,
+ SSL_NOT_EXP|SSL_HIGH,
+ 0,
+ 256,
+ 256,
+ SSL_ALL_CIPHERS,
+ SSL_ALL_STRENGTHS
+ },
+#endif /* OPENSSL_NO_CAMELLIA */
+
#ifndef OPENSSL_NO_PSK
/* Cipher 8A */
{
@@ -1437,6 +1604,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
},
#endif /* OPENSSL_NO_ECDH */
+
/* end of list */
};
diff --git a/ssl/ssl.h b/ssl/ssl.h
index 7e89b0a9a2..96ba10d168 100644
--- a/ssl/ssl.h
+++ b/ssl/ssl.h
@@ -308,6 +308,7 @@ extern "C" {
#define SSL_TXT_RC2 "RC2"
#define SSL_TXT_IDEA "IDEA"
#define SSL_TXT_AES "AES"
+#define SSL_TXT_CAMELLIA "CAMELLIA"
#define SSL_TXT_MD5 "MD5"
#define SSL_TXT_SHA1 "SHA1"
#define SSL_TXT_SHA "SHA"
diff --git a/ssl/ssl_algs.c b/ssl/ssl_algs.c
index ac82d45a9c..052e939629 100644
--- a/ssl/ssl_algs.c
+++ b/ssl/ssl_algs.c
@@ -82,6 +82,11 @@ int SSL_library_init(void)
EVP_add_cipher(EVP_aes_192_cbc());
EVP_add_cipher(EVP_aes_256_cbc());
#endif
+#ifndef OPENSSL_NO_CAMELLIA
+ EVP_add_cipher(EVP_camellia_128_cbc());
+ EVP_add_cipher(EVP_camellia_256_cbc());
+#endif
+
#ifndef OPENSSL_NO_MD2
EVP_add_digest(EVP_md2());
#endif
diff --git a/ssl/ssl_ciph.c b/ssl/ssl_ciph.c
index dd4c956d6a..6bf337bf9e 100644
--- a/ssl/ssl_ciph.c
+++ b/ssl/ssl_ciph.c
@@ -102,6 +102,11 @@
#define SSL_ENC_AES128_IDX 7
#define SSL_ENC_AES256_IDX 8
#define SSL_ENC_NUM_IDX 9
+#define SSL_ENC_CAMELLIA128_IDX 9
+#define SSL_ENC_CAMELLIA256_IDX 10
+#undef SSL_ENC_NUM_IDX
+#define SSL_ENC_NUM_IDX 11
+
static const EVP_CIPHER *ssl_cipher_methods[SSL_ENC_NUM_IDX]={
NULL,NULL,NULL,NULL,NULL,NULL,
@@ -170,6 +175,7 @@ static const SSL_CIPHER cipher_aliases[]={
{0,SSL_TXT_eNULL,0,SSL_eNULL,0,0,0,0,SSL_ENC_MASK,0},
{0,SSL_TXT_eFZA,0,SSL_eFZA, 0,0,0,0,SSL_ENC_MASK,0},
{0,SSL_TXT_AES, 0,SSL_AES, 0,0,0,0,SSL_ENC_MASK,0},
+ {0,SSL_TXT_CAMELLIA, 0,SSL_CAMELLIA, 0,0,0,0,SSL_ENC_MASK,0},
{0,SSL_TXT_MD5, 0,SSL_MD5, 0,0,0,0,SSL_MAC_MASK,0},
{0,SSL_TXT_SHA1,0,SSL_SHA1, 0,0,0,0,SSL_MAC_MASK,0},
@@ -215,6 +221,10 @@ void ssl_load_ciphers(void)
EVP_get_cipherbyname(SN_aes_128_cbc);
ssl_cipher_methods[SSL_ENC_AES256_IDX]=
EVP_get_cipherbyname(SN_aes_256_cbc);
+ ssl_cipher_methods[SSL_ENC_CAMELLIA128_IDX]=
+ EVP_get_cipherbyname(SN_camellia_128_cbc);
+ ssl_cipher_methods[SSL_ENC_CAMELLIA256_IDX]=
+ EVP_get_cipherbyname(SN_camellia_256_cbc);
ssl_digest_methods[SSL_MD_MD5_IDX]=
EVP_get_digestbyname(SN_md5);
@@ -323,6 +333,15 @@ int ssl_cipher_get_evp(const SSL_SESSION *s, const EVP_CIPHER **enc,
default: i=-1; break;
}
break;
+ case SSL_CAMELLIA:
+ switch(c->alg_bits)
+ {
+ case 128: i=SSL_ENC_CAMELLIA128_IDX; break;
+ case 256: i=SSL_ENC_CAMELLIA256_IDX; break;
+ default: i=-1; break;
+ }
+ break;
+
default:
i= -1;
break;
@@ -414,6 +433,7 @@ static unsigned long ssl_cipher_get_disabled(void)
mask |= (ssl_cipher_methods[SSL_ENC_IDEA_IDX] == NULL) ? SSL_IDEA:0;
mask |= (ssl_cipher_methods[SSL_ENC_eFZA_IDX] == NULL) ? SSL_eFZA:0;
mask |= (ssl_cipher_methods[SSL_ENC_AES128_IDX] == NULL) ? SSL_AES:0;
+ mask |= (ssl_cipher_methods[SSL_ENC_CAMELLIA128_IDX] == NULL) ? SSL_CAMELLIA:0;
mask |= (ssl_digest_methods[SSL_MD_MD5_IDX ] == NULL) ? SSL_MD5 :0;
mask |= (ssl_digest_methods[SSL_MD_SHA1_IDX] == NULL) ? SSL_SHA1:0;
@@ -1106,6 +1126,15 @@ char *SSL_CIPHER_description(SSL_CIPHER *cipher, char *buf, int len)
default: enc="AES(?""?""?)"; break;
}
break;
+ case SSL_CAMELLIA:
+ switch(cipher->strength_bits)
+ {
+ case 128: enc="Camellia(128)"; break;
+ case 256: enc="Camellia(256)"; break;
+ default: enc="Camellia(?""?""?)"; break;
+ }
+ break;
+
default:
enc="unknown";
break;
diff --git a/ssl/ssl_locl.h b/ssl/ssl_locl.h
index f98ac7735f..b85861b37e 100644
--- a/ssl/ssl_locl.h
+++ b/ssl/ssl_locl.h
@@ -1,4 +1,3 @@
-
/* ssl/ssl_locl.h */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
@@ -276,7 +275,7 @@
* that the different entities within are mutually exclusive:
* ONLY ONE BIT PER MASK CAN BE SET AT A TIME.
*/
-#define SSL_MKEY_MASK 0x080000FFL
+#define SSL_MKEY_MASK 0x200000FFL
#define SSL_kRSA 0x00000001L /* RSA key exchange */
#define SSL_kDHr 0x00000002L /* DH cert RSA CA cert */
#define SSL_kDHd 0x00000004L /* DH cert DSA CA cert */
@@ -286,7 +285,7 @@
#define SSL_kECDH 0x00000040L /* ECDH w/ long-term keys */
#define SSL_kECDHE 0x00000080L /* ephemeral ECDH */
#define SSL_EDH (SSL_kEDH|(SSL_AUTH_MASK^SSL_aNULL))
-#define SSL_kPSK 0x08000000L /* PSK */
+#define SSL_kPSK 0x20000000L /* PSK */
#define SSL_AUTH_MASK 0x10007f00L
#define SSL_aRSA 0x00000100L /* Authenticate with RSA */
@@ -308,7 +307,7 @@
#define SSL_KRB5 (SSL_kKRB5|SSL_aKRB5)
#define SSL_PSK (SSL_kPSK|SSL_aPSK)
-#define SSL_ENC_MASK 0x043F8000L
+#define SSL_ENC_MASK 0x0C3F8000L
#define SSL_DES 0x00008000L
#define SSL_3DES 0x00010000L
#define SSL_RC4 0x00020000L
@@ -317,6 +316,7 @@
#define SSL_eFZA 0x00100000L
#define SSL_eNULL 0x00200000L
#define SSL_AES 0x04000000L
+#define SSL_CAMELLIA 0x08000000L
#define SSL_MAC_MASK 0x00c00000L
#define SSL_MD5 0x00400000L
@@ -328,7 +328,7 @@
#define SSL_SSLV3 0x02000000L
#define SSL_TLSV1 SSL_SSLV3 /* for now */
-/* we have used 1fffffff - 3 bits left to go. */
+/* we have used 3fffffff - 2 bits left to go. */
/*
* Export and cipher strength information. For each cipher we have to decide
diff --git a/ssl/tls1.h b/ssl/tls1.h
index fbe80e998c..1c1ca1533b 100644
--- a/ssl/tls1.h
+++ b/ssl/tls1.h
@@ -260,6 +260,21 @@ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG,0, (void *)arg)
#define TLS1_CK_DHE_RSA_WITH_AES_256_SHA 0x03000039
#define TLS1_CK_ADH_WITH_AES_256_SHA 0x0300003A
+/* Camellia ciphersuites form RFC4132 */
+#define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000041
+#define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000042
+#define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000043
+#define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000044
+#define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000045
+#define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA 0x03000046
+
+#define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000084
+#define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000085
+#define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000086
+#define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000087
+#define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000088
+#define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA 0x03000089
+
/* ECC ciphersuites from draft-ietf-tls-ecc-12.txt with changes soon to be in draft 13 */
#define TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA 0x0300C001
#define TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA 0x0300C002
@@ -358,6 +373,22 @@ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG,0, (void *)arg)
#define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA "PSK-AES128-CBC-SHA"
#define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA "PSK-AES256-CBC-SHA"
+/* Camellia ciphersuites from RFC4132 */
+#define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA "CAMELLIA128-SHA"
+#define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA "DH-DSS-CAMELLIA128-SHA"
+#define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA "DH-RSA-CAMELLIA128-SHA"
+#define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "DHE-DSS-CAMELLIA128-SHA"
+#define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "DHE-RSA-CAMELLIA128-SHA"
+#define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA "ADH-CAMELLIA128-SHA"
+
+#define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA "CAMELLIA256-SHA"
+#define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA "DH-DSS-CAMELLIA256-SHA"
+#define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA "DH-RSA-CAMELLIA256-SHA"
+#define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "DHE-DSS-CAMELLIA256-SHA"
+#define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "DHE-RSA-CAMELLIA256-SHA"
+#define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA "ADH-CAMELLIA256-SHA"
+
+
#define TLS_CT_RSA_SIGN 1
#define TLS_CT_DSS_SIGN 2
#define TLS_CT_RSA_FIXED_DH 3
diff --git a/test/Makefile b/test/Makefile
index 398de38f99..e7e171af09 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -561,11 +561,8 @@ md5test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
md5test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
md5test.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
md5test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h md5test.c
-mdc2test.o: ../include/openssl/buffer.h ../include/openssl/crypto.h
-mdc2test.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
-mdc2test.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
-mdc2test.o: ../include/openssl/safestack.h ../include/openssl/stack.h
-mdc2test.o: ../include/openssl/symhacks.h mdc2test.c
+mdc2test.o: ../e_os.h ../include/openssl/e_os2.h
+mdc2test.o: ../include/openssl/opensslconf.h mdc2test.c
randtest.o: ../e_os.h ../include/openssl/e_os2.h
randtest.o: ../include/openssl/opensslconf.h ../include/openssl/ossl_typ.h
randtest.o: ../include/openssl/rand.h randtest.c
@@ -574,11 +571,8 @@ rc2test.o: ../include/openssl/opensslconf.h ../include/openssl/rc2.h rc2test.c
rc4test.o: ../e_os.h ../include/openssl/e_os2.h
rc4test.o: ../include/openssl/opensslconf.h ../include/openssl/rc4.h
rc4test.o: ../include/openssl/sha.h rc4test.c
-rc5test.o: ../include/openssl/buffer.h ../include/openssl/crypto.h
-rc5test.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
-rc5test.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
-rc5test.o: ../include/openssl/safestack.h ../include/openssl/stack.h
-rc5test.o: ../include/openssl/symhacks.h rc5test.c
+rc5test.o: ../e_os.h ../include/openssl/e_os2.h
+rc5test.o: ../include/openssl/opensslconf.h rc5test.c
rmdtest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
rmdtest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
rmdtest.o: ../include/openssl/evp.h ../include/openssl/obj_mac.h
diff --git a/util/libeay.num b/util/libeay.num
index 6b36fc4764..6d067e0e41 100755
--- a/util/libeay.num
+++ b/util/libeay.num
@@ -3380,348 +3380,384 @@ get_rfc2409_prime_768 3780 EXIST::FUNCTION:
X509_VERIFY_PARAM_get_flags 3781 EXIST::FUNCTION:
EVP_CIPHER_CTX_new 3782 EXIST::FUNCTION:
EVP_CIPHER_CTX_free 3783 EXIST::FUNCTION:
-ASN1_item_print 3784 EXIST::FUNCTION:
-ASN1_PCTX_get_cert_flags 3785 EXIST::FUNCTION:
-b2i_PublicKey_bio 3786 EXIST::FUNCTION:
-d2i_NETSCAPE_X509 3787 EXIST::FUNCTION:
-ASN1_PCTX_get_flags 3788 EXIST::FUNCTION:
-i2d_ISSUING_DIST_POINT 3789 EXIST::FUNCTION:
-ASN1_PCTX_get_nm_flags 3790 EXIST::FUNCTION:
-NETSCAPE_X509_free 3791 EXIST::FUNCTION:
-i2b_PVK_bio 3792 EXIST::FUNCTION:
-b2i_PVK_bio 3793 EXIST::FUNCTION:
-ISSUING_DIST_POINT_new 3794 EXIST::FUNCTION:
-ASN1_PCTX_get_oid_flags 3795 EXIST::FUNCTION:
-d2i_ISSUING_DIST_POINT 3796 EXIST::FUNCTION:
-i2b_PrivateKey_bio 3797 EXIST::FUNCTION:
-b2i_PublicKey 3798 EXIST::FUNCTION:
-ASN1_PCTX_set_nm_flags 3799 EXIST::FUNCTION:
-i2b_PublicKey_bio 3800 EXIST::FUNCTION:
-b2i_PrivateKey 3801 EXIST::FUNCTION:
-b2i_PrivateKey_bio 3802 EXIST::FUNCTION:
-PKCS7_print_ctx 3803 EXIST::FUNCTION:
-EVP_whirlpool 3804 EXIST::FUNCTION:WHIRLPOOL
-ASN1_PCTX_set_flags 3805 EXIST::FUNCTION:
-NETSCAPE_X509_it 3806 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
-NETSCAPE_X509_it 3806 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
-ASN1_PCTX_set_str_flags 3807 EXIST::FUNCTION:
-ISSUING_DIST_POINT_free 3808 EXIST::FUNCTION:
-i2d_NETSCAPE_X509 3809 EXIST::FUNCTION:
-ISSUING_DIST_POINT_it 3810 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
-ISSUING_DIST_POINT_it 3810 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
-ASN1_PCTX_set_oid_flags 3811 EXIST::FUNCTION:
-ASN1_PCTX_new 3812 EXIST::FUNCTION:
-NETSCAPE_X509_new 3813 EXIST::FUNCTION:
-ASN1_PCTX_get_str_flags 3814 EXIST::FUNCTION:
-ASN1_PCTX_free 3815 EXIST::FUNCTION:
-DSO_pathbyaddr 3816 EXIST::FUNCTION:
-ASN1_PCTX_set_cert_flags 3817 EXIST::FUNCTION:
-WHIRLPOOL_Init 3818 EXIST::FUNCTION:WHIRLPOOL
-WHIRLPOOL 3819 EXIST::FUNCTION:WHIRLPOOL
-WHIRLPOOL_BitUpdate 3820 EXIST::FUNCTION:WHIRLPOOL
-WHIRLPOOL_Final 3821 EXIST::FUNCTION:WHIRLPOOL
-WHIRLPOOL_Update 3822 EXIST::FUNCTION:WHIRLPOOL
-DSO_global_lookup 3823 EXIST::FUNCTION:
-TS_RESP_CTX_free 3824 EXIST::FUNCTION:
-i2d_TS_ACCURACY 3825 EXIST::FUNCTION:
-i2d_TS_MSG_IMPRINT_fp 3826 EXIST::FUNCTION:
-i2d_TS_MSG_IMPRINT 3827 EXIST::FUNCTION:
-i2d_TS_TST_INFO 3828 EXIST::FUNCTION:
-TS_CONF_load_cert 3829 EXIST::FUNCTION:
-TS_REQ_get_ext 3830 EXIST::FUNCTION:
-TS_TST_INFO_set_nonce 3831 EXIST::FUNCTION:
-TS_RESP_dup 3832 EXIST::FUNCTION:
-i2d_TS_TST_INFO_fp 3833 EXIST::FUNCTION:
-TS_TST_INFO_set_time 3834 EXIST::FUNCTION:
-TS_REQ_set_policy_id 3835 EXIST::FUNCTION:
-d2i_TS_RESP_fp 3836 EXIST::FUNCTION:
-TS_RESP_set_status_info 3837 EXIST::FUNCTION:
-TS_ACCURACY_set_millis 3838 EXIST::FUNCTION:
-TS_REQ_dup 3839 EXIST::FUNCTION:
-GENERAL_NAME_dup 3840 EXIST::FUNCTION:
-TS_MSG_IMPRINT_set_algo 3841 EXIST::FUNCTION:
-i2d_TS_TST_INFO_bio 3842 EXIST::FUNCTION:
-TS_TST_INFO_set_ordering 3843 EXIST::FUNCTION:
-TS_TST_INFO_get_ext_by_OBJ 3844 EXIST::FUNCTION:
-TS_CONF_get_tsa_section 3845 EXIST::FUNCTION:
-TS_RESP_CTX_set_signer_key 3846 EXIST::FUNCTION:
-i2d_ESS_SIGNING_CERT 3847 EXIST::FUNCTION:
-TS_CONF_load_key 3848 EXIST::FUNCTION:
-d2i_TS_MSG_IMPRINT_bio 3849 EXIST::FUNCTION:
-TS_REQ_ext_free 3850 EXIST::FUNCTION:
-TS_RESP_CTX_set_status_info 3851 EXIST::FUNCTION:
-TS_MSG_IMPRINT_get_algo 3852 EXIST::FUNCTION:
-TS_REQ_print_bio 3853 EXIST::FUNCTION:
-TS_MSG_IMPRINT_print_bio 3854 EXIST::FUNCTION:
-TS_REQ_get_policy_id 3855 EXIST::FUNCTION:
-d2i_TS_ACCURACY 3856 EXIST::FUNCTION:
-TS_CONF_set_tsa_name 3857 EXIST::FUNCTION:
-TS_TST_INFO_get_ext_by_NID 3858 EXIST::FUNCTION:
-TS_RESP_new 3859 EXIST::FUNCTION:
-ESS_CERT_ID_dup 3860 EXIST::FUNCTION:
-TS_STATUS_INFO_dup 3861 EXIST::FUNCTION:
-TS_REQ_delete_ext 3862 EXIST::FUNCTION:
-TS_REQ_get_msg_imprint 3863 EXIST::FUNCTION:
-TS_TST_INFO_get_serial 3864 EXIST::FUNCTION:
-TS_REQ_get_nonce 3865 EXIST::FUNCTION:
-TS_STATUS_INFO_print_bio 3866 EXIST::FUNCTION:
-d2i_TS_TST_INFO 3867 EXIST::FUNCTION:
-d2i_TS_RESP_bio 3868 EXIST::FUNCTION:
-OTHERNAME_cmp 3869 EXIST::FUNCTION:
-TS_RESP_CTX_new 3870 EXIST::FUNCTION:
-TS_RESP_set_tst_info 3871 EXIST::FUNCTION:
-TS_RESP_CTX_set_signer_cert 3872 EXIST::FUNCTION:
-TS_REQ_set_msg_imprint 3873 EXIST::FUNCTION:
-TS_CONF_set_digests 3874 EXIST::FUNCTION:
-d2i_TS_MSG_IMPRINT 3875 EXIST::FUNCTION:
-TS_REQ_get_ext_by_NID 3876 EXIST::FUNCTION:
-TS_ACCURACY_new 3877 EXIST::FUNCTION:
-TS_TST_INFO_new 3878 EXIST::FUNCTION:
-TS_CONF_set_default_engine 3879 EXIST::FUNCTION:
-TS_ACCURACY_set_seconds 3880 EXIST::FUNCTION:
-TS_TST_INFO_get_time 3881 EXIST::FUNCTION:
-d2i_ESS_ISSUER_SERIAL 3882 EXIST::FUNCTION:
-TS_OBJ_print_bio 3883 EXIST::FUNCTION:
-TS_RESP_get_status_info 3884 EXIST::FUNCTION:
-PKCS7_to_TS_TST_INFO 3885 EXIST::FUNCTION:
-TS_TST_INFO_add_ext 3886 EXIST::FUNCTION:
-i2d_TS_RESP_fp 3887 EXIST::FUNCTION:
-i2d_TS_MSG_IMPRINT_bio 3888 EXIST::FUNCTION:
-TS_RESP_CTX_set_accuracy 3889 EXIST::FUNCTION:
-TS_REQ_set_nonce 3890 EXIST::FUNCTION:
-ESS_CERT_ID_new 3891 EXIST::FUNCTION:
-TS_REQ_get_ext_count 3892 EXIST::FUNCTION:
-TS_TST_INFO_print_bio 3893 EXIST::FUNCTION:
-i2d_TS_RESP 3894 EXIST::FUNCTION:
-TS_VERIFY_CTX_cleanup 3895 EXIST::FUNCTION:
-TS_STATUS_INFO_free 3896 EXIST::FUNCTION:
-TS_RESP_verify_token 3897 EXIST::FUNCTION:
-TS_TST_INFO_get_policy_id 3898 EXIST::FUNCTION:
-TS_REQ_get_cert_req 3899 EXIST::FUNCTION:
-d2i_TS_TST_INFO_fp 3900 EXIST::FUNCTION:
-TS_TST_INFO_get_ext_d2i 3901 EXIST::FUNCTION:
-TS_RESP_CTX_add_policy 3902 EXIST::FUNCTION:
-d2i_TS_RESP 3903 EXIST::FUNCTION:
-TS_CONF_load_certs 3904 EXIST::FUNCTION:
-TS_TST_INFO_get_msg_imprint 3905 EXIST::FUNCTION:
-ERR_load_TS_strings 3906 EXIST::FUNCTION:
-TS_TST_INFO_get_version 3907 EXIST::FUNCTION:
-TS_CONF_set_certs 3908 EXIST::FUNCTION:
-TS_VERIFY_CTX_free 3909 EXIST::FUNCTION:
-TS_REQ_get_ext_by_critical 3910 EXIST::FUNCTION:
-TS_RESP_CTX_set_serial_cb 3911 EXIST::FUNCTION:
-TS_RESP_CTX_set_time_cb 3912 EXIST::FUNCTION:
-TS_MSG_IMPRINT_get_msg 3913 EXIST::FUNCTION:
-TS_TST_INFO_ext_free 3914 EXIST::FUNCTION:
-TS_REQ_get_version 3915 EXIST::FUNCTION:
-TS_REQ_add_ext 3916 EXIST::FUNCTION:
-d2i_TS_TST_INFO_bio 3917 EXIST::FUNCTION:
-TS_TST_INFO_get_ordering 3918 EXIST::FUNCTION:
-TS_RESP_print_bio 3919 EXIST::FUNCTION:
-TS_TST_INFO_get_exts 3920 EXIST::FUNCTION:
-TS_REQ_set_cert_req 3921 EXIST::FUNCTION:
-TS_CONF_set_serial 3922 EXIST::FUNCTION:
-TS_TST_INFO_free 3923 EXIST::FUNCTION:
-d2i_TS_REQ_fp 3924 EXIST::FUNCTION:
-TS_RESP_verify_response 3925 EXIST::FUNCTION:
-i2d_ESS_ISSUER_SERIAL 3926 EXIST::FUNCTION:
-TS_ACCURACY_get_seconds 3927 EXIST::FUNCTION:
-TS_MSG_IMPRINT_dup 3928 EXIST::FUNCTION:
-i2d_TS_REQ_bio 3929 EXIST::FUNCTION:
-i2d_ESS_CERT_ID 3930 EXIST::FUNCTION:
-TS_VERIFY_CTX_new 3931 EXIST::FUNCTION:
-TS_RESP_CTX_set_extension_cb 3932 EXIST::FUNCTION:
-TS_RESP_CTX_set_status_info_cond 3933 EXIST:!VMS:FUNCTION:
-TS_RESP_CTX_set_stat_info_cond 3933 EXIST:VMS:FUNCTION:
-TS_RESP_CTX_set_def_policy 3934 EXIST::FUNCTION:
-TS_RESP_create_response 3935 EXIST::FUNCTION:
-TS_TST_INFO_get_nonce 3936 EXIST::FUNCTION:
-TS_TST_INFO_set_policy_id 3937 EXIST::FUNCTION:
-TS_CONF_set_ess_cert_id_chain 3938 EXIST::FUNCTION:
-d2i_TS_REQ 3939 EXIST::FUNCTION:
-ESS_SIGNING_CERT_new 3940 EXIST::FUNCTION:
-i2d_TS_REQ 3941 EXIST::FUNCTION:
-TS_TST_INFO_delete_ext 3942 EXIST::FUNCTION:
-ESS_ISSUER_SERIAL_free 3943 EXIST::FUNCTION:
-TS_CONF_set_signer_key 3944 EXIST::FUNCTION:
-TS_ACCURACY_get_millis 3945 EXIST::FUNCTION:
-TS_RESP_get_token 3946 EXIST::FUNCTION:
-TS_ACCURACY_dup 3947 EXIST::FUNCTION:
-TS_RESP_free 3948 EXIST::FUNCTION:
-ESS_ISSUER_SERIAL_new 3949 EXIST::FUNCTION:
-TS_RESP_CTX_add_md 3950 EXIST::FUNCTION:
-TS_TST_INFO_dup 3951 EXIST::FUNCTION:
-TS_TST_INFO_get_accuracy 3952 EXIST::FUNCTION:
-TS_TST_INFO_set_version 3953 EXIST::FUNCTION:
-TS_RESP_CTX_get_tst_info 3954 EXIST::FUNCTION:
-TS_RESP_verify_signature 3955 EXIST::FUNCTION:
-TS_TST_INFO_get_tsa 3956 EXIST::FUNCTION:
-TS_STATUS_INFO_new 3957 EXIST::FUNCTION:
-TS_REQ_get_ext_d2i 3958 EXIST::FUNCTION:
-TS_TST_INFO_get_ext_count 3959 EXIST::FUNCTION:
-TS_RESP_CTX_get_request 3960 EXIST::FUNCTION:
-ASN1_TYPE_cmp 3961 EXIST::FUNCTION:
-d2i_TS_MSG_IMPRINT_fp 3962 EXIST::FUNCTION:
-d2i_ESS_SIGNING_CERT 3963 EXIST::FUNCTION:
-TS_CONF_set_ordering 3964 EXIST::FUNCTION:
-TS_REQ_set_version 3965 EXIST::FUNCTION:
-i2d_TS_STATUS_INFO 3966 EXIST::FUNCTION:
-TS_TST_INFO_set_accuracy 3967 EXIST::FUNCTION:
-TS_TST_INFO_set_tsa 3968 EXIST::FUNCTION:
-TS_CONF_set_accuracy 3969 EXIST::FUNCTION:
-ESS_SIGNING_CERT_dup 3970 EXIST::FUNCTION:
-d2i_TS_REQ_bio 3971 EXIST::FUNCTION:
-TS_RESP_CTX_add_flags 3972 EXIST::FUNCTION:
-d2i_TS_STATUS_INFO 3973 EXIST::FUNCTION:
-TS_MSG_IMPRINT_set_msg 3974 EXIST::FUNCTION:
-TS_REQ_free 3975 EXIST::FUNCTION:
-TS_REQ_get_exts 3976 EXIST::FUNCTION:
-TS_RESP_CTX_set_clock_precision_digits 3977 EXIST:!VMS:FUNCTION:
-TS_RESP_CTX_set_clk_prec_digits 3977 EXIST:VMS:FUNCTION:
-TS_RESP_CTX_add_failure_info 3978 EXIST::FUNCTION:
-i2d_TS_RESP_bio 3979 EXIST::FUNCTION:
-TS_REQ_new 3980 EXIST::FUNCTION:
-TS_MSG_IMPRINT_new 3981 EXIST::FUNCTION:
-TS_TST_INFO_set_serial 3982 EXIST::FUNCTION:
-TS_CONF_set_crypto_device 3983 EXIST::FUNCTION:
-TS_CONF_set_policies 3984 EXIST::FUNCTION:
-ESS_CERT_ID_free 3985 EXIST::FUNCTION:
-TS_MSG_IMPRINT_free 3986 EXIST::FUNCTION:
-TS_VERIFY_CTX_init 3987 EXIST::FUNCTION:
-TS_RESP_CTX_set_certs 3988 EXIST::FUNCTION:
-TS_CONF_set_def_policy 3989 EXIST::FUNCTION:
-TS_ACCURACY_free 3990 EXIST::FUNCTION:
-TS_RESP_get_tst_info 3991 EXIST::FUNCTION:
-TS_CONF_set_clock_precision_digits 3992 EXIST:!VMS:FUNCTION:
-TS_CONF_set_clk_prec_digits 3992 EXIST:VMS:FUNCTION:
-ESS_ISSUER_SERIAL_dup 3993 EXIST::FUNCTION:
-TS_ACCURACY_get_micros 3994 EXIST::FUNCTION:
-ASN1_BIT_STRING_check 3995 EXIST::FUNCTION:
-TS_X509_ALGOR_print_bio 3996 EXIST::FUNCTION:
-ESS_SIGNING_CERT_free 3997 EXIST::FUNCTION:
-TS_TST_INFO_set_msg_imprint 3998 EXIST::FUNCTION:
-GENERAL_NAME_cmp 3999 EXIST::FUNCTION:
-i2d_TS_REQ_fp 4000 EXIST::FUNCTION:
-d2i_ESS_CERT_ID 4001 EXIST::FUNCTION:
-TS_ext_print_bio 4002 EXIST::FUNCTION:
-TS_ASN1_INTEGER_print_bio 4003 EXIST::FUNCTION:
-TS_ACCURACY_set_micros 4004 EXIST::FUNCTION:
-TS_REQ_to_TS_VERIFY_CTX 4005 EXIST::FUNCTION:
-TS_TST_INFO_get_ext 4006 EXIST::FUNCTION:
-TS_TST_INFO_get_ext_by_critical 4007 EXIST::FUNCTION:
-TS_REQ_get_ext_by_OBJ 4008 EXIST::FUNCTION:
-TS_CONF_set_signer_cert 4009 EXIST::FUNCTION:
-EVP_PKEY_print_public 4010 EXIST::FUNCTION:
-EVP_PKEY_CTX_new 4011 EXIST::FUNCTION:
-EVP_PKEY_asn1_find 4012 EXIST::FUNCTION:
-DSO_METHOD_beos 4013 EXIST::FUNCTION:
-EVP_PKEY_sign_init 4014 EXIST::FUNCTION:
-EVP_PKEY_asn1_add0 4015 EXIST::FUNCTION:
-EVP_PKEY_meth_set_decrypt 4016 EXIST::FUNCTION:
-EVP_PKEY_CTX_get_keygen_info 4017 EXIST::FUNCTION:
-EVP_PKEY_keygen 4018 EXIST::FUNCTION:
-EVP_PKEY_asn1_new 4019 EXIST::FUNCTION:
-EVP_PKEY_encrypt_old 4020 EXIST::FUNCTION:
-EVP_PKEY_encrypt_init 4021 EXIST::FUNCTION:
-EVP_PKEY_asn1_set_public 4022 EXIST::FUNCTION:
-EVP_PKEY_asn1_set_free 4023 EXIST::FUNCTION:
-EVP_PKEY_verify_recover_init 4024 EXIST::FUNCTION:
-EVP_PKEY_CTX_set_data 4025 EXIST::FUNCTION:
-EVP_PKEY_keygen_init 4026 EXIST::FUNCTION:
-EVP_PKEY_CTX_ctrl_str 4027 EXIST::FUNCTION:
-BN_asc2bn 4028 EXIST::FUNCTION:
-X509_ALGOR_get0 4029 EXIST::FUNCTION:
-EVP_PKEY_print_params 4030 EXIST::FUNCTION:
-X509_PUBKEY_set0_param 4031 EXIST::FUNCTION:
-X509_ALGOR_set0 4032 EXIST::FUNCTION:
-EVP_PKEY_CTX_get_data 4033 EXIST::FUNCTION:
-EVP_PKEY_derive_init 4034 EXIST::FUNCTION:
-EVP_PKEY_asn1_add_alias 4035 EXIST::FUNCTION:
-EVP_PKEY_CTX_ctrl 4036 EXIST::FUNCTION:
-EVP_PKEY_meth_set_ctrl 4037 EXIST::FUNCTION:
-EVP_PKEY_meth_set_sign 4038 EXIST::FUNCTION:
-EVP_PKEY_decrypt_init 4039 EXIST::FUNCTION:
-EVP_PKEY_print_private 4040 EXIST::FUNCTION:
-PKCS8_pkey_get0 4041 EXIST::FUNCTION:
-EVP_PKEY_asn1_get0 4042 EXIST::FUNCTION:
-EVP_PKEY_paramgen_init 4043 EXIST::FUNCTION:
-EVP_PKEY_sign 4044 EXIST::FUNCTION:
-EVP_PKEY_meth_set_init 4045 EXIST::FUNCTION:
-EVP_PKEY_meth_set_verify_recover 4046 EXIST:!VMS:FUNCTION:
-EVP_PKEY_meth_set_vrfy_recover 4046 EXIST:VMS:FUNCTION:
-EVP_PKEY_CTX_set_cb 4047 EXIST::FUNCTION:
-EVP_PKEY_meth_set_derive 4048 EXIST::FUNCTION:
-BUF_reverse 4049 EXIST::FUNCTION:
-ASN1_bn_print 4050 EXIST::FUNCTION:BIO
-EVP_PKEY_asn1_get_count 4051 EXIST::FUNCTION:
-PKCS8_pkey_set0 4052 EXIST::FUNCTION:
-EVP_PKEY_asn1_set_private 4053 EXIST::FUNCTION:
-EVP_PKEY_meth_set_verify 4054 EXIST::FUNCTION:
-EVP_PKEY_asn1_get0_info 4055 EXIST::FUNCTION:
-EVP_PKEY_CTX_set_app_data 4056 EXIST::FUNCTION:
-EVP_PKEY_meth_set_verifyctx 4057 EXIST::FUNCTION:
-EVP_PKEY_CTX_get_app_data 4058 EXIST::FUNCTION:
-X509_PUBKEY_get0_param 4059 EXIST::FUNCTION:
-EVP_PKEY_asn1_set_param 4060 EXIST::FUNCTION:
-EVP_PKEY_meth_set_encrypt 4061 EXIST::FUNCTION:
-EVP_PKEY_verify 4062 EXIST::FUNCTION:
-EVP_PKEY_decrypt_old 4063 EXIST::FUNCTION:
-EVP_PKEY_asn1_find_str 4064 EXIST::FUNCTION:
-EVP_PKEY_derive 4065 EXIST::FUNCTION:
-PEM_write_bio_Parameters 4066 EXIST::FUNCTION:
-EVP_PKEY_meth_set_signctx 4067 EXIST::FUNCTION:
-EVP_PKEY_CTX_free 4068 EXIST::FUNCTION:
-EVP_PKEY_get0 4069 EXIST::FUNCTION:
-EVP_PKEY_meth_find 4070 EXIST::FUNCTION:
-EVP_PKEY_verify_init 4071 EXIST::FUNCTION:
-EVP_PKEY_derive_set_peer 4072 EXIST::FUNCTION:
-PEM_read_bio_Parameters 4073 EXIST::FUNCTION:
-EVP_PKEY_meth_set_cleanup 4074 EXIST::FUNCTION:
-EVP_PKEY_asn1_free 4075 EXIST::FUNCTION:
-EVP_PKEY_meth_set_keygen 4076 EXIST::FUNCTION:
-EVP_PKEY_paramgen 4077 EXIST::FUNCTION:
-EVP_PKEY_meth_set_paramgen 4078 EXIST::FUNCTION:
-EVP_PKEY_verify_recover 4079 EXIST::FUNCTION:
-EVP_PKEY_asn1_set_ctrl 4080 EXIST::FUNCTION:
-EVP_PKEY_CTX_new_id 4081 EXIST::FUNCTION:
-EVP_PKEY_get_default_digest_nid 4082 EXIST::FUNCTION:
-OBJ_find_sigid_by_algs 4083 EXIST::FUNCTION:
-PKCS7_RECIP_INFO_get0_alg 4084 EXIST::FUNCTION:
-EVP_PKEY_base_id 4085 EXIST::FUNCTION:
-PKCS7_SIGNER_INFO_get0_algs 4086 EXIST::FUNCTION:
-EVP_PKEY_CTX_get0_pkey 4087 EXIST::FUNCTION:
-EVP_PKEY_meth_add0 4088 EXIST::FUNCTION:
-EVP_PKEY_meth_new 4089 EXIST::FUNCTION:
-ASN1_STRING_set0 4090 EXIST::FUNCTION:
-EVP_PKEY_id 4091 EXIST::FUNCTION:
-OBJ_find_sigid_algs 4092 EXIST::FUNCTION:
-PKCS7_add0_attrib_signing_time 4093 EXIST::FUNCTION:
-PKCS7_final 4094 EXIST::FUNCTION:
-PKCS7_SIGNER_INFO_sign 4095 EXIST::FUNCTION:
-PKCS7_sign_add_signer 4096 EXIST::FUNCTION:
-PKCS5_pbe2_set_iv 4097 EXIST::FUNCTION:
-EVP_PBE_find 4098 EXIST::FUNCTION:
-PKCS7_add1_attrib_digest 4099 EXIST::FUNCTION:
-EVP_PBE_alg_add_type 4100 EXIST::FUNCTION:
-PKCS7_add_attrib_content_type 4101 EXIST::FUNCTION:
-EVP_DigestSignInit 4102 EXIST::FUNCTION:
-EVP_DigestVerifyFinal 4103 EXIST::FUNCTION:
-EVP_DigestVerifyInit 4104 EXIST::FUNCTION:
-EVP_DigestSignFinal 4105 EXIST::FUNCTION:
-EVP_PKEY_CTX_dup 4106 EXIST::FUNCTION:
-EVP_PKEY_meth_free 4107 EXIST::FUNCTION:
-EVP_PKEY_meth_set_copy 4108 EXIST::FUNCTION:
-ENGINE_register_pkey_meths 4109 EXIST::FUNCTION:ENGINE
-ENGINE_get_pkey_meth 4110 EXIST::FUNCTION:ENGINE
-EVP_PKEY_CTX_set0_keygen_info 4111 EXIST::FUNCTION:
-ENGINE_get_pkey_meths 4112 EXIST::FUNCTION:ENGINE
-ENGINE_register_all_pkey_meths 4113 EXIST::FUNCTION:ENGINE
-EVP_PKEY_CTX_get_cb 4114 EXIST::FUNCTION:
-EVP_PKEY_CTX_get_operation 4115 EXIST::FUNCTION:
-ENGINE_unregister_pkey_meths 4116 EXIST::FUNCTION:ENGINE
-ENGINE_set_pkey_meths 4117 EXIST::FUNCTION:ENGINE
-ENGINE_get_pkey_asn1_meth 4118 EXIST::FUNCTION:ENGINE
-ENGINE_set_default_pkey_meths 4119 EXIST::FUNCTION:ENGINE
-ENGINE_get_pkey_asn1_meths 4120 EXIST::FUNCTION:ENGINE
-ENGINE_set_pkey_asn1_meths 4121 EXIST::FUNCTION:ENGINE
-ENGINE_get_pkey_meth_engine 4122 EXIST::FUNCTION:ENGINE
+Camellia_cbc_encrypt 3784 EXIST::FUNCTION:CAMELLIA
+Camellia_cfb128_encrypt 3785 EXIST::FUNCTION:CAMELLIA
+Camellia_cfb1_encrypt 3786 EXIST::FUNCTION:CAMELLIA
+Camellia_cfb8_encrypt 3787 EXIST::FUNCTION:CAMELLIA
+Camellia_ctr128_encrypt 3788 EXIST::FUNCTION:CAMELLIA
+Camellia_cfbr_encrypt_block 3789 EXIST::FUNCTION:CAMELLIA
+Camellia_decrypt 3790 EXIST::FUNCTION:CAMELLIA
+Camellia_ecb_encrypt 3791 EXIST::FUNCTION:CAMELLIA
+Camellia_encrypt 3792 EXIST::FUNCTION:CAMELLIA
+Camellia_ofb128_encrypt 3793 EXIST::FUNCTION:CAMELLIA
+Camellia_set_key 3794 EXIST::FUNCTION:CAMELLIA
+EVP_camellia_128_cbc 3795 EXIST::FUNCTION:CAMELLIA
+EVP_camellia_128_cfb128 3796 EXIST::FUNCTION:CAMELLIA
+EVP_camellia_128_cfb1 3797 EXIST::FUNCTION:CAMELLIA
+EVP_camellia_128_cfb8 3798 EXIST::FUNCTION:CAMELLIA
+EVP_camellia_128_ecb 3799 EXIST::FUNCTION:CAMELLIA
+EVP_camellia_128_ofb 3800 EXIST::FUNCTION:CAMELLIA
+EVP_camellia_192_cbc 3801 EXIST::FUNCTION:CAMELLIA
+EVP_camellia_192_cfb128 3802 EXIST::FUNCTION:CAMELLIA
+EVP_camellia_192_cfb1 3803 EXIST::FUNCTION:CAMELLIA
+EVP_camellia_192_cfb8 3804 EXIST::FUNCTION:CAMELLIA
+EVP_camellia_192_ecb 3805 EXIST::FUNCTION:CAMELLIA
+EVP_camellia_192_ofb 3806 EXIST::FUNCTION:CAMELLIA
+EVP_camellia_256_cbc 3807 EXIST::FUNCTION:CAMELLIA
+EVP_camellia_256_cfb128 3808 EXIST::FUNCTION:CAMELLIA
+EVP_camellia_256_cfb1 3809 EXIST::FUNCTION:CAMELLIA
+EVP_camellia_256_cfb8 3810 EXIST::FUNCTION:CAMELLIA
+EVP_camellia_256_ecb 3811 EXIST::FUNCTION:CAMELLIA
+EVP_camellia_256_ofb 3812 EXIST::FUNCTION:CAMELLIA
+TS_RESP_CTX_free 3813 EXIST::FUNCTION:
+i2d_TS_ACCURACY 3814 EXIST::FUNCTION:
+i2d_TS_MSG_IMPRINT_fp 3815 EXIST::FUNCTION:
+i2d_TS_MSG_IMPRINT 3816 EXIST::FUNCTION:
+EVP_PKEY_print_public 3817 EXIST::FUNCTION:
+EVP_PKEY_CTX_new 3818 EXIST::FUNCTION:
+i2d_TS_TST_INFO 3819 EXIST::FUNCTION:
+EVP_PKEY_asn1_find 3820 EXIST::FUNCTION:
+DSO_METHOD_beos 3821 EXIST::FUNCTION:
+TS_CONF_load_cert 3822 EXIST::FUNCTION:
+TS_REQ_get_ext 3823 EXIST::FUNCTION:
+EVP_PKEY_sign_init 3824 EXIST::FUNCTION:
+ASN1_item_print 3825 EXIST::FUNCTION:
+TS_TST_INFO_set_nonce 3826 EXIST::FUNCTION:
+TS_RESP_dup 3827 EXIST::FUNCTION:
+ENGINE_register_pkey_meths 3828 EXIST::FUNCTION:ENGINE
+EVP_PKEY_asn1_add0 3829 EXIST::FUNCTION:
+PKCS7_add0_attrib_signing_time 3830 EXIST::FUNCTION:
+i2d_TS_TST_INFO_fp 3831 EXIST::FUNCTION:
+TS_TST_INFO_set_time 3832 EXIST::FUNCTION:
+EVP_PKEY_meth_set_decrypt 3833 EXIST::FUNCTION:
+EVP_PKEY_set_type_str 3834 EXIST::FUNCTION:
+EVP_PKEY_CTX_get_keygen_info 3835 EXIST::FUNCTION:
+TS_REQ_set_policy_id 3836 EXIST::FUNCTION:
+d2i_TS_RESP_fp 3837 EXIST::FUNCTION:
+ENGINE_get_pkey_asn1_meth_engine 3838 EXIST:!VMS:FUNCTION:ENGINE
+ENGINE_get_pkey_asn1_meth_eng 3838 EXIST:VMS:FUNCTION:ENGINE
+WHIRLPOOL_Init 3839 EXIST::FUNCTION:WHIRLPOOL
+TS_RESP_set_status_info 3840 EXIST::FUNCTION:
+EVP_PKEY_keygen 3841 EXIST::FUNCTION:
+EVP_DigestSignInit 3842 EXIST::FUNCTION:
+TS_ACCURACY_set_millis 3843 EXIST::FUNCTION:
+TS_REQ_dup 3844 EXIST::FUNCTION:
+GENERAL_NAME_dup 3845 EXIST::FUNCTION:
+WHIRLPOOL 3846 EXIST::FUNCTION:WHIRLPOOL
+ENGINE_get_pkey_asn1_meth 3847 EXIST::FUNCTION:ENGINE
+EVP_PKEY_asn1_new 3848 EXIST::FUNCTION:
+ENGINE_get_pkey_meth 3849 EXIST::FUNCTION:ENGINE
+TS_MSG_IMPRINT_set_algo 3850 EXIST::FUNCTION:
+i2d_TS_TST_INFO_bio 3851 EXIST::FUNCTION:
+TS_TST_INFO_set_ordering 3852 EXIST::FUNCTION:
+TS_TST_INFO_get_ext_by_OBJ 3853 EXIST::FUNCTION:
+TS_CONF_get_tsa_section 3854 EXIST::FUNCTION:
+TS_RESP_CTX_set_signer_key 3855 EXIST::FUNCTION:
+EVP_PKEY_encrypt_old 3856 EXIST::FUNCTION:
+EVP_PKEY_encrypt_init 3857 EXIST::FUNCTION:
+ASN1_PCTX_get_cert_flags 3858 EXIST::FUNCTION:
+i2d_ESS_SIGNING_CERT 3859 EXIST::FUNCTION:
+TS_CONF_load_key 3860 EXIST::FUNCTION:
+d2i_TS_MSG_IMPRINT_bio 3861 EXIST::FUNCTION:
+EVP_PKEY_asn1_set_public 3862 EXIST::FUNCTION:
+b2i_PublicKey_bio 3863 EXIST::FUNCTION:
+TS_REQ_ext_free 3864 EXIST::FUNCTION:
+EVP_PKEY_asn1_set_free 3865 EXIST::FUNCTION:
+d2i_NETSCAPE_X509 3866 EXIST::FUNCTION:
+EVP_PKEY_verify_recover_init 3867 EXIST::FUNCTION:
+EVP_PKEY_CTX_set_data 3868 EXIST::FUNCTION:
+EVP_PKEY_keygen_init 3869 EXIST::FUNCTION:
+TS_RESP_CTX_set_status_info 3870 EXIST::FUNCTION:
+TS_MSG_IMPRINT_get_algo 3871 EXIST::FUNCTION:
+TS_REQ_print_bio 3872 EXIST::FUNCTION:
+EVP_PKEY_CTX_ctrl_str 3873 EXIST::FUNCTION:
+EVP_PKEY_get_default_digest_nid 3874 EXIST::FUNCTION:
+TS_MSG_IMPRINT_print_bio 3875 EXIST::FUNCTION:
+BN_asc2bn 3876 EXIST::FUNCTION:
+TS_REQ_get_policy_id 3877 EXIST::FUNCTION:
+ENGINE_set_default_pkey_asn1_meths 3878 EXIST:!VMS:FUNCTION:ENGINE
+ENGINE_set_def_pkey_asn1_meths 3878 EXIST:VMS:FUNCTION:ENGINE
+d2i_TS_ACCURACY 3879 EXIST::FUNCTION:
+X509_ALGOR_get0 3880 EXIST::FUNCTION:
+DSO_global_lookup 3881 EXIST::FUNCTION:
+TS_CONF_set_tsa_name 3882 EXIST::FUNCTION:
+WHIRLPOOL_BitUpdate 3883 EXIST::FUNCTION:WHIRLPOOL
+ASN1_PCTX_get_flags 3884 EXIST::FUNCTION:
+TS_TST_INFO_get_ext_by_NID 3885 EXIST::FUNCTION:
+TS_RESP_new 3886 EXIST::FUNCTION:
+ESS_CERT_ID_dup 3887 EXIST::FUNCTION:
+TS_STATUS_INFO_dup 3888 EXIST::FUNCTION:
+TS_REQ_delete_ext 3889 EXIST::FUNCTION:
+EVP_DigestVerifyFinal 3890 EXIST::FUNCTION:
+EVP_PKEY_print_params 3891 EXIST::FUNCTION:
+TS_REQ_get_msg_imprint 3892 EXIST::FUNCTION:
+OBJ_find_sigid_by_algs 3893 EXIST::FUNCTION:
+TS_TST_INFO_get_serial 3894 EXIST::FUNCTION:
+TS_REQ_get_nonce 3895 EXIST::FUNCTION:
+X509_PUBKEY_set0_param 3896 EXIST::FUNCTION:
+EVP_PKEY_CTX_set0_keygen_info 3897 EXIST::FUNCTION:
+i2d_ISSUING_DIST_POINT 3898 EXIST::FUNCTION:
+X509_ALGOR_set0 3899 EXIST::FUNCTION:
+EVP_PKEY_CTX_get_data 3900 EXIST::FUNCTION:
+TS_STATUS_INFO_print_bio 3901 EXIST::FUNCTION:
+EVP_PKEY_derive_init 3902 EXIST::FUNCTION:
+d2i_TS_TST_INFO 3903 EXIST::FUNCTION:
+EVP_PKEY_asn1_add_alias 3904 EXIST::FUNCTION:
+d2i_TS_RESP_bio 3905 EXIST::FUNCTION:
+OTHERNAME_cmp 3906 EXIST::FUNCTION:
+PKCS7_RECIP_INFO_get0_alg 3907 EXIST::FUNCTION:
+TS_RESP_CTX_new 3908 EXIST::FUNCTION:
+TS_RESP_set_tst_info 3909 EXIST::FUNCTION:
+PKCS7_final 3910 EXIST::FUNCTION:
+EVP_PKEY_base_id 3911 EXIST::FUNCTION:
+TS_RESP_CTX_set_signer_cert 3912 EXIST::FUNCTION:
+TS_REQ_set_msg_imprint 3913 EXIST::FUNCTION:
+EVP_PKEY_CTX_ctrl 3914 EXIST::FUNCTION:
+TS_CONF_set_digests 3915 EXIST::FUNCTION:
+d2i_TS_MSG_IMPRINT 3916 EXIST::FUNCTION:
+EVP_PKEY_meth_set_ctrl 3917 EXIST::FUNCTION:
+TS_REQ_get_ext_by_NID 3918 EXIST::FUNCTION:
+TS_ACCURACY_new 3919 EXIST::FUNCTION:
+ASN1_PCTX_get_nm_flags 3920 EXIST::FUNCTION:
+EVP_PKEY_meth_set_sign 3921 EXIST::FUNCTION:
+EVP_PKEY_decrypt_init 3922 EXIST::FUNCTION:
+NETSCAPE_X509_free 3923 EXIST::FUNCTION:
+i2b_PVK_bio 3924 EXIST::FUNCTION:
+EVP_PKEY_print_private 3925 EXIST::FUNCTION:
+b2i_PVK_bio 3926 EXIST::FUNCTION:
+TS_TST_INFO_new 3927 EXIST::FUNCTION:
+TS_CONF_set_default_engine 3928 EXIST::FUNCTION:
+TS_ACCURACY_set_seconds 3929 EXIST::FUNCTION:
+TS_TST_INFO_get_time 3930 EXIST::FUNCTION:
+PKCS8_pkey_get0 3931 EXIST::FUNCTION:
+EVP_PKEY_asn1_get0 3932 EXIST::FUNCTION:
+PKCS7_SIGNER_INFO_sign 3933 EXIST::FUNCTION:
+EVP_PKEY_paramgen_init 3934 EXIST::FUNCTION:
+EVP_PKEY_sign 3935 EXIST::FUNCTION:
+EVP_PKEY_meth_set_init 3936 EXIST::FUNCTION:
+d2i_ESS_ISSUER_SERIAL 3937 EXIST::FUNCTION:
+ISSUING_DIST_POINT_new 3938 EXIST::FUNCTION:
+TS_OBJ_print_bio 3939 EXIST::FUNCTION:
+EVP_PKEY_meth_set_verify_recover 3940 EXIST:!VMS:FUNCTION:
+EVP_PKEY_meth_set_vrfy_recover 3940 EXIST:VMS:FUNCTION:
+TS_RESP_get_status_info 3941 EXIST::FUNCTION:
+EVP_PKEY_CTX_set_cb 3942 EXIST::FUNCTION:
+PKCS7_to_TS_TST_INFO 3943 EXIST::FUNCTION:
+ASN1_PCTX_get_oid_flags 3944 EXIST::FUNCTION:
+TS_TST_INFO_add_ext 3945 EXIST::FUNCTION:
+EVP_PKEY_meth_set_derive 3946 EXIST::FUNCTION:
+i2d_TS_RESP_fp 3947 EXIST::FUNCTION:
+i2d_TS_MSG_IMPRINT_bio 3948 EXIST::FUNCTION:
+TS_RESP_CTX_set_accuracy 3949 EXIST::FUNCTION:
+TS_REQ_set_nonce 3950 EXIST::FUNCTION:
+ESS_CERT_ID_new 3951 EXIST::FUNCTION:
+TS_REQ_get_ext_count 3952 EXIST::FUNCTION:
+BUF_reverse 3953 EXIST::FUNCTION:
+TS_TST_INFO_print_bio 3954 EXIST::FUNCTION:
+d2i_ISSUING_DIST_POINT 3955 EXIST::FUNCTION:
+ENGINE_get_pkey_meths 3956 EXIST::FUNCTION:ENGINE
+i2b_PrivateKey_bio 3957 EXIST::FUNCTION:
+i2d_TS_RESP 3958 EXIST::FUNCTION:
+b2i_PublicKey 3959 EXIST::FUNCTION:
+TS_VERIFY_CTX_cleanup 3960 EXIST::FUNCTION:
+TS_STATUS_INFO_free 3961 EXIST::FUNCTION:
+TS_RESP_verify_token 3962 EXIST::FUNCTION:
+ASN1_bn_print 3963 EXIST::FUNCTION:BIO
+EVP_PKEY_asn1_get_count 3964 EXIST::FUNCTION:
+ASN1_PCTX_set_nm_flags 3965 EXIST::FUNCTION:
+EVP_DigestVerifyInit 3966 EXIST::FUNCTION:
+ENGINE_set_default_pkey_meths 3967 EXIST::FUNCTION:ENGINE
+TS_TST_INFO_get_policy_id 3968 EXIST::FUNCTION:
+TS_REQ_get_cert_req 3969 EXIST::FUNCTION:
+PKCS8_pkey_set0 3970 EXIST::FUNCTION:
+d2i_TS_TST_INFO_fp 3971 EXIST::FUNCTION:
+EVP_PKEY_asn1_set_private 3972 EXIST::FUNCTION:
+TS_TST_INFO_get_ext_d2i 3973 EXIST::FUNCTION:
+TS_RESP_CTX_add_policy 3974 EXIST::FUNCTION:
+d2i_TS_RESP 3975 EXIST::FUNCTION:
+TS_CONF_load_certs 3976 EXIST::FUNCTION:
+TS_TST_INFO_get_msg_imprint 3977 EXIST::FUNCTION:
+ERR_load_TS_strings 3978 EXIST::FUNCTION:
+TS_TST_INFO_get_version 3979 EXIST::FUNCTION:
+EVP_PKEY_CTX_dup 3980 EXIST::FUNCTION:
+EVP_PKEY_meth_set_verify 3981 EXIST::FUNCTION:
+i2b_PublicKey_bio 3982 EXIST::FUNCTION:
+TS_CONF_set_certs 3983 EXIST::FUNCTION:
+EVP_PKEY_asn1_get0_info 3984 EXIST::FUNCTION:
+TS_VERIFY_CTX_free 3985 EXIST::FUNCTION:
+TS_REQ_get_ext_by_critical 3986 EXIST::FUNCTION:
+TS_RESP_CTX_set_serial_cb 3987 EXIST::FUNCTION:
+TS_RESP_CTX_set_time_cb 3988 EXIST::FUNCTION:
+TS_MSG_IMPRINT_get_msg 3989 EXIST::FUNCTION:
+TS_TST_INFO_ext_free 3990 EXIST::FUNCTION:
+TS_REQ_get_version 3991 EXIST::FUNCTION:
+TS_REQ_add_ext 3992 EXIST::FUNCTION:
+EVP_PKEY_CTX_set_app_data 3993 EXIST::FUNCTION:
+EVP_PKEY_meth_set_verifyctx 3994 EXIST::FUNCTION:
+PKCS7_sign_add_signer 3995 EXIST::FUNCTION:
+d2i_TS_TST_INFO_bio 3996 EXIST::FUNCTION:
+TS_TST_INFO_get_ordering 3997 EXIST::FUNCTION:
+TS_RESP_print_bio 3998 EXIST::FUNCTION:
+TS_TST_INFO_get_exts 3999 EXIST::FUNCTION:
+PKCS5_pbe2_set_iv 4000 EXIST::FUNCTION:
+ENGINE_get_pkey_asn1_meths 4001 EXIST::FUNCTION:ENGINE
+b2i_PrivateKey 4002 EXIST::FUNCTION:
+EVP_PKEY_CTX_get_app_data 4003 EXIST::FUNCTION:
+TS_REQ_set_cert_req 4004 EXIST::FUNCTION:
+TS_CONF_set_serial 4005 EXIST::FUNCTION:
+TS_TST_INFO_free 4006 EXIST::FUNCTION:
+d2i_TS_REQ_fp 4007 EXIST::FUNCTION:
+TS_RESP_verify_response 4008 EXIST::FUNCTION:
+i2d_ESS_ISSUER_SERIAL 4009 EXIST::FUNCTION:
+TS_ACCURACY_get_seconds 4010 EXIST::FUNCTION:
+b2i_PrivateKey_bio 4011 EXIST::FUNCTION:
+X509_PUBKEY_get0_param 4012 EXIST::FUNCTION:
+TS_MSG_IMPRINT_dup 4013 EXIST::FUNCTION:
+PKCS7_print_ctx 4014 EXIST::FUNCTION:
+i2d_TS_REQ_bio 4015 EXIST::FUNCTION:
+EVP_whirlpool 4016 EXIST::FUNCTION:WHIRLPOOL
+EVP_PKEY_asn1_set_param 4017 EXIST::FUNCTION:
+EVP_PKEY_meth_set_encrypt 4018 EXIST::FUNCTION:
+ASN1_PCTX_set_flags 4019 EXIST::FUNCTION:
+i2d_ESS_CERT_ID 4020 EXIST::FUNCTION:
+TS_VERIFY_CTX_new 4021 EXIST::FUNCTION:
+TS_RESP_CTX_set_extension_cb 4022 EXIST::FUNCTION:
+ENGINE_register_all_pkey_meths 4023 EXIST::FUNCTION:ENGINE
+TS_RESP_CTX_set_status_info_cond 4024 EXIST:!VMS:FUNCTION:
+TS_RESP_CTX_set_stat_info_cond 4024 EXIST:VMS:FUNCTION:
+EVP_PKEY_verify 4025 EXIST::FUNCTION:
+WHIRLPOOL_Final 4026 EXIST::FUNCTION:WHIRLPOOL
+EVP_DigestSignFinal 4027 EXIST::FUNCTION:
+TS_RESP_CTX_set_def_policy 4028 EXIST::FUNCTION:
+NETSCAPE_X509_it 4029 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+NETSCAPE_X509_it 4029 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+TS_RESP_create_response 4030 EXIST::FUNCTION:
+PKCS7_SIGNER_INFO_get0_algs 4031 EXIST::FUNCTION:
+TS_TST_INFO_get_nonce 4032 EXIST::FUNCTION:
+EVP_PKEY_decrypt_old 4033 EXIST::FUNCTION:
+TS_TST_INFO_set_policy_id 4034 EXIST::FUNCTION:
+TS_CONF_set_ess_cert_id_chain 4035 EXIST::FUNCTION:
+EVP_PKEY_CTX_get0_pkey 4036 EXIST::FUNCTION:
+d2i_TS_REQ 4037 EXIST::FUNCTION:
+EVP_PKEY_asn1_find_str 4038 EXIST::FUNCTION:
+ESS_SIGNING_CERT_new 4039 EXIST::FUNCTION:
+EVP_PBE_find 4040 EXIST::FUNCTION:
+EVP_PKEY_derive 4041 EXIST::FUNCTION:
+i2d_TS_REQ 4042 EXIST::FUNCTION:
+TS_TST_INFO_delete_ext 4043 EXIST::FUNCTION:
+ESS_ISSUER_SERIAL_free 4044 EXIST::FUNCTION:
+ASN1_PCTX_set_str_flags 4045 EXIST::FUNCTION:
+ENGINE_get_pkey_asn1_meth_str 4046 EXIST::FUNCTION:ENGINE
+TS_CONF_set_signer_key 4047 EXIST::FUNCTION:
+TS_ACCURACY_get_millis 4048 EXIST::FUNCTION:
+TS_RESP_get_token 4049 EXIST::FUNCTION:
+TS_ACCURACY_dup 4050 EXIST::FUNCTION:
+TS_RESP_free 4051 EXIST::FUNCTION:
+ISSUING_DIST_POINT_free 4052 EXIST::FUNCTION:
+ESS_ISSUER_SERIAL_new 4053 EXIST::FUNCTION:
+PKCS7_add1_attrib_digest 4054 EXIST::FUNCTION:
+TS_RESP_CTX_add_md 4055 EXIST::FUNCTION:
+TS_TST_INFO_dup 4056 EXIST::FUNCTION:
+ENGINE_set_pkey_asn1_meths 4057 EXIST::FUNCTION:ENGINE
+PEM_write_bio_Parameters 4058 EXIST::FUNCTION:
+TS_TST_INFO_get_accuracy 4059 EXIST::FUNCTION:
+TS_TST_INFO_set_version 4060 EXIST::FUNCTION:
+TS_RESP_CTX_get_tst_info 4061 EXIST::FUNCTION:
+TS_RESP_verify_signature 4062 EXIST::FUNCTION:
+TS_TST_INFO_get_tsa 4063 EXIST::FUNCTION:
+TS_STATUS_INFO_new 4064 EXIST::FUNCTION:
+EVP_PKEY_CTX_get_cb 4065 EXIST::FUNCTION:
+TS_REQ_get_ext_d2i 4066 EXIST::FUNCTION:
+TS_TST_INFO_get_ext_count 4067 EXIST::FUNCTION:
+TS_RESP_CTX_get_request 4068 EXIST::FUNCTION:
+i2d_NETSCAPE_X509 4069 EXIST::FUNCTION:
+ENGINE_get_pkey_meth_engine 4070 EXIST::FUNCTION:ENGINE
+EVP_PKEY_meth_set_signctx 4071 EXIST::FUNCTION:
+ASN1_TYPE_cmp 4072 EXIST::FUNCTION:
+EVP_PKEY_CTX_free 4073 EXIST::FUNCTION:
+ISSUING_DIST_POINT_it 4074 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ISSUING_DIST_POINT_it 4074 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+d2i_TS_MSG_IMPRINT_fp 4075 EXIST::FUNCTION:
+EVP_PKEY_CTX_get_operation 4076 EXIST::FUNCTION:
+d2i_ESS_SIGNING_CERT 4077 EXIST::FUNCTION:
+TS_CONF_set_ordering 4078 EXIST::FUNCTION:
+EVP_PBE_alg_add_type 4079 EXIST::FUNCTION:
+TS_REQ_set_version 4080 EXIST::FUNCTION:
+EVP_PKEY_get0 4081 EXIST::FUNCTION:
+i2d_TS_STATUS_INFO 4082 EXIST::FUNCTION:
+TS_TST_INFO_set_accuracy 4083 EXIST::FUNCTION:
+PKCS7_add_attrib_content_type 4084 EXIST::FUNCTION:
+EVP_PKEY_meth_add0 4085 EXIST::FUNCTION:
+TS_TST_INFO_set_tsa 4086 EXIST::FUNCTION:
+EVP_PKEY_meth_new 4087 EXIST::FUNCTION:
+WHIRLPOOL_Update 4088 EXIST::FUNCTION:WHIRLPOOL
+TS_CONF_set_accuracy 4089 EXIST::FUNCTION:
+ASN1_PCTX_set_oid_flags 4090 EXIST::FUNCTION:
+ESS_SIGNING_CERT_dup 4091 EXIST::FUNCTION:
+d2i_TS_REQ_bio 4092 EXIST::FUNCTION:
+TS_RESP_CTX_add_flags 4093 EXIST::FUNCTION:
+d2i_TS_STATUS_INFO 4094 EXIST::FUNCTION:
+TS_MSG_IMPRINT_set_msg 4095 EXIST::FUNCTION:
+TS_REQ_free 4096 EXIST::FUNCTION:
+EVP_PKEY_meth_free 4097 EXIST::FUNCTION:
+TS_REQ_get_exts 4098 EXIST::FUNCTION:
+TS_RESP_CTX_set_clock_precision_digits 4099 EXIST:!VMS:FUNCTION:
+TS_RESP_CTX_set_clk_prec_digits 4099 EXIST:VMS:FUNCTION:
+TS_RESP_CTX_add_failure_info 4100 EXIST::FUNCTION:
+i2d_TS_RESP_bio 4101 EXIST::FUNCTION:
+ASN1_STRING_set0 4102 EXIST::FUNCTION:
+TS_REQ_new 4103 EXIST::FUNCTION:
+TS_MSG_IMPRINT_new 4104 EXIST::FUNCTION:
+EVP_PKEY_meth_find 4105 EXIST::FUNCTION:
+EVP_PKEY_id 4106 EXIST::FUNCTION:
+TS_TST_INFO_set_serial 4107 EXIST::FUNCTION:
+TS_CONF_set_crypto_device 4108 EXIST::FUNCTION:
+EVP_PKEY_verify_init 4109 EXIST::FUNCTION:
+TS_CONF_set_policies 4110 EXIST::FUNCTION:
+ASN1_PCTX_new 4111 EXIST::FUNCTION:
+ESS_CERT_ID_free 4112 EXIST::FUNCTION:
+ENGINE_unregister_pkey_meths 4113 EXIST::FUNCTION:ENGINE
+TS_MSG_IMPRINT_free 4114 EXIST::FUNCTION:
+TS_VERIFY_CTX_init 4115 EXIST::FUNCTION:
+TS_RESP_CTX_set_certs 4116 EXIST::FUNCTION:
+TS_CONF_set_def_policy 4117 EXIST::FUNCTION:
+NETSCAPE_X509_new 4118 EXIST::FUNCTION:
+TS_ACCURACY_free 4119 EXIST::FUNCTION:
+TS_RESP_get_tst_info 4120 EXIST::FUNCTION:
+EVP_PKEY_derive_set_peer 4121 EXIST::FUNCTION:
+PEM_read_bio_Parameters 4122 EXIST::FUNCTION:
+TS_CONF_set_clock_precision_digits 4123 EXIST:!VMS:FUNCTION:
+TS_CONF_set_clk_prec_digits 4123 EXIST:VMS:FUNCTION:
+ESS_ISSUER_SERIAL_dup 4124 EXIST::FUNCTION:
+TS_ACCURACY_get_micros 4125 EXIST::FUNCTION:
+ASN1_PCTX_get_str_flags 4126 EXIST::FUNCTION:
+ASN1_BIT_STRING_check 4127 EXIST::FUNCTION:
+ASN1_PCTX_free 4128 EXIST::FUNCTION:
+TS_X509_ALGOR_print_bio 4129 EXIST::FUNCTION:
+EVP_PKEY_meth_set_cleanup 4130 EXIST::FUNCTION:
+EVP_PKEY_asn1_free 4131 EXIST::FUNCTION:
+ESS_SIGNING_CERT_free 4132 EXIST::FUNCTION:
+TS_TST_INFO_set_msg_imprint 4133 EXIST::FUNCTION:
+GENERAL_NAME_cmp 4134 EXIST::FUNCTION:
+ENGINE_set_pkey_meths 4135 EXIST::FUNCTION:ENGINE
+i2d_TS_REQ_fp 4136 EXIST::FUNCTION:
+d2i_ESS_CERT_ID 4137 EXIST::FUNCTION:
+OBJ_find_sigid_algs 4138 EXIST::FUNCTION:
+EVP_PKEY_meth_set_keygen 4139 EXIST::FUNCTION:
+EVP_PKEY_paramgen 4140 EXIST::FUNCTION:
+EVP_PKEY_meth_set_paramgen 4141 EXIST::FUNCTION:
+EVP_PKEY_verify_recover 4142 EXIST::FUNCTION:
+TS_ext_print_bio 4143 EXIST::FUNCTION:
+TS_ASN1_INTEGER_print_bio 4144 EXIST::FUNCTION:
+DSO_pathbyaddr 4145 EXIST::FUNCTION:
+EVP_PKEY_set_type 4146 EXIST::FUNCTION:
+TS_ACCURACY_set_micros 4147 EXIST::FUNCTION:
+TS_REQ_to_TS_VERIFY_CTX 4148 EXIST::FUNCTION:
+EVP_PKEY_meth_set_copy 4149 EXIST::FUNCTION:
+ASN1_PCTX_set_cert_flags 4150 EXIST::FUNCTION:
+TS_TST_INFO_get_ext 4151 EXIST::FUNCTION:
+EVP_PKEY_asn1_set_ctrl 4152 EXIST::FUNCTION:
+TS_TST_INFO_get_ext_by_critical 4153 EXIST::FUNCTION:
+EVP_PKEY_CTX_new_id 4154 EXIST::FUNCTION:
+TS_REQ_get_ext_by_OBJ 4155 EXIST::FUNCTION:
+TS_CONF_set_signer_cert 4156 EXIST::FUNCTION:
diff --git a/util/mk1mf.pl b/util/mk1mf.pl
index fe99d49d1d..24a5f2552d 100755
--- a/util/mk1mf.pl
+++ b/util/mk1mf.pl
@@ -65,7 +65,7 @@ and [options] can be one of
no-md2 no-md4 no-md5 no-sha no-mdc2 - Skip this digest
no-ripemd
no-rc2 no-rc4 no-rc5 no-idea no-des - Skip this symetric cipher
- no-bf no-cast no-aes
+ no-bf no-cast no-aes no-camellia
no-rsa no-dsa no-dh - Skip this public key cipher
no-ssl2 no-ssl3 - Skip this version of SSL
just-ssl - remove all non-ssl keys/digest
@@ -199,6 +199,7 @@ $cflags= "$xcflags$cflags" if $xcflags ne "";
$cflags.=" -DOPENSSL_NO_IDEA" if $no_idea;
$cflags.=" -DOPENSSL_NO_AES" if $no_aes;
+$cflags.=" -DOPENSSL_NO_CAMELLIA" if $no_camellia;
$cflags.=" -DOPENSSL_NO_RC2" if $no_rc2;
$cflags.=" -DOPENSSL_NO_RC4" if $no_rc4;
$cflags.=" -DOPENSSL_NO_RC5" if $no_rc5;
@@ -741,6 +742,7 @@ sub var_add
return("") if $no_hw && $dir =~ /\/hw/;
return("") if $no_idea && $dir =~ /\/idea/;
return("") if $no_aes && $dir =~ /\/aes/;
+ return("") if $no_camellia && $dir =~ /\/camellia/;
return("") if $no_rc2 && $dir =~ /\/rc2/;
return("") if $no_rc4 && $dir =~ /\/rc4/;
return("") if $no_rc5 && $dir =~ /\/rc5/;
@@ -775,6 +777,7 @@ sub var_add
@a=grep(!/^e_.*_bf$/,@a) if $no_bf;
@a=grep(!/^e_.*_c$/,@a) if $no_cast;
@a=grep(!/^e_rc4$/,@a) if $no_rc4;
+ @a=grep(!/^e_camellia$/,@a) if $no_camellia;
@a=grep(!/(^s2_)|(^s23_)/,@a) if $no_ssl2;
@a=grep(!/(^s3_)|(^s23_)/,@a) if $no_ssl3;
@@ -987,6 +990,7 @@ sub read_options
"no-rc5" => \$no_rc5,
"no-idea" => \$no_idea,
"no-aes" => \$no_aes,
+ "no-camellia" => \$no_camellia,
"no-des" => \$no_des,
"no-bf" => \$no_bf,
"no-cast" => \$no_cast,
@@ -1005,6 +1009,7 @@ sub read_options
"no-dh" => \$no_dh,
"no-hmac" => \$no_hmac,
"no-aes" => \$no_aes,
+ "no-camellia" => \$no_camellia,
"no-asm" => \$no_asm,
"nasm" => \$nasm,
"nw-nasm" => \$nw_nasm,
@@ -1024,7 +1029,7 @@ sub read_options
[\$no_rc2, \$no_idea, \$no_des, \$no_bf, \$no_cast,
\$no_md2, \$no_sha, \$no_mdc2, \$no_dsa, \$no_dh,
\$no_ssl2, \$no_err, \$no_ripemd, \$no_rc5,
- \$no_aes],
+ \$no_aes, \$no_camellia],
"rsaref" => 0,
"gcc" => \$gcc,
"debug" => \$debug,
diff --git a/util/mkdef.pl b/util/mkdef.pl
index 1e337ce86e..b6fc979159 100755
--- a/util/mkdef.pl
+++ b/util/mkdef.pl
@@ -85,7 +85,7 @@ my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF",
"CAST", "MD2", "MD4", "MD5", "SHA", "SHA0", "SHA1",
"SHA256", "SHA512", "RIPEMD",
"MDC2", "RSA", "DSA", "DH", "EC", "ECDH", "ECDSA",
- "HMAC", "AES", "WHIRLPOOL",
+ "HMAC", "AES", "WHIRLPOOL", "CAMELLIA",
# Envelope "algorithms"
"EVP", "X509", "ASN1_TYPEDEFS",
# Helper "algorithms"
@@ -111,7 +111,7 @@ close(IN);
# defined with ifndef(NO_XXX) are not included in the .def file, and everything
# in directory xxx is ignored.
my $no_rc2; my $no_rc4; my $no_rc5; my $no_idea; my $no_des; my $no_bf;
-my $no_cast; my $no_whirlpool;
+my $no_cast; my $no_whirlpool; my $no_camellia;
my $no_md2; my $no_md4; my $no_md5; my $no_sha; my $no_ripemd; my $no_mdc2;
my $no_rsa; my $no_dsa; my $no_dh; my $no_hmac=0; my $no_aes; my $no_krb5;
my $no_ec; my $no_ecdsa; my $no_ecdh; my $no_engine; my $no_hw;
@@ -180,6 +180,7 @@ foreach (@ARGV, split(/ /, $options))
elsif (/^no-ecdh$/) { $no_ecdh=1; }
elsif (/^no-hmac$/) { $no_hmac=1; }
elsif (/^no-aes$/) { $no_aes=1; }
+ elsif (/^no-camellia$/) { $no_camellia=1; }
elsif (/^no-evp$/) { $no_evp=1; }
elsif (/^no-lhash$/) { $no_lhash=1; }
elsif (/^no-stack$/) { $no_stack=1; }
@@ -247,6 +248,7 @@ $crypto.=" crypto/mdc2/mdc2.h" ; # unless $no_mdc2;
$crypto.=" crypto/sha/sha.h" ; # unless $no_sha;
$crypto.=" crypto/ripemd/ripemd.h" ; # unless $no_ripemd;
$crypto.=" crypto/aes/aes.h" ; # unless $no_aes;
+$crypto.=" crypto/camellia/camellia.h" ; # unless $no_camellia;
$crypto.=" crypto/bn/bn.h";
$crypto.=" crypto/rsa/rsa.h" ; # unless $no_rsa;
@@ -1097,6 +1099,7 @@ sub is_valid
if ($keyword eq "ECDH" && $no_ecdh) { return 0; }
if ($keyword eq "HMAC" && $no_hmac) { return 0; }
if ($keyword eq "AES" && $no_aes) { return 0; }
+ if ($keyword eq "CAMELLIA" && $no_camellia) { return 0; }
if ($keyword eq "EVP" && $no_evp) { return 0; }
if ($keyword eq "LHASH" && $no_lhash) { return 0; }
if ($keyword eq "STACK" && $no_stack) { return 0; }
diff --git a/util/mkfiles.pl b/util/mkfiles.pl
index 56bf1798e2..45e9e24734 100755
--- a/util/mkfiles.pl
+++ b/util/mkfiles.pl
@@ -24,6 +24,7 @@ my @dirs = (
"crypto/bf",
"crypto/cast",
"crypto/aes",
+"crypto/camellia",
"crypto/bn",
"crypto/rsa",
"crypto/dsa",