aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--checks/bench.cpp2
-rw-r--r--checks/validate.dat2
-rw-r--r--doc/algos.rst2
-rw-r--r--doc/relnotes/1_11_4.rst2
-rwxr-xr-xsrc/build-data/scripts/tls_suite_info.py8
-rw-r--r--src/engine/core_engine/lookup_stream.cpp12
-rw-r--r--src/engine/openssl/ossl_arc4.cpp32
-rw-r--r--src/libstate/policy.cpp3
-rw-r--r--src/stream/arc4/info.txt1
-rw-r--r--src/stream/rc4/info.txt1
-rw-r--r--src/stream/rc4/rc4.cpp (renamed from src/stream/arc4/arc4.cpp)20
-rw-r--r--src/stream/rc4/rc4.h (renamed from src/stream/arc4/arc4.h)16
-rw-r--r--src/tls/info.txt5
-rw-r--r--src/tls/tls_ciphersuite.cpp2
-rw-r--r--src/tls/tls_policy.cpp4
-rw-r--r--src/tls/tls_suite_info.cpp22
16 files changed, 68 insertions, 66 deletions
diff --git a/checks/bench.cpp b/checks/bench.cpp
index ddb4ec8e2..ee34b5233 100644
--- a/checks/bench.cpp
+++ b/checks/bench.cpp
@@ -77,7 +77,7 @@ const std::string algos[] = {
"Serpent/XTS",
/* Stream ciphers */
- "ARC4",
+ "RC4",
"Salsa20",
/* Checksums */
diff --git a/checks/validate.dat b/checks/validate.dat
index f6ed43c02..f8589ce81 100644
--- a/checks/validate.dat
+++ b/checks/validate.dat
@@ -42076,7 +42076,7 @@ E5F790088393EC494F34AF1B4BE73B63666874BF31D74D64C749A0DD067F6BEC681AA339\
# A few tests from somewhere (maybe the original reverse engineered code, or
# the BSAFE vectors that were published soon after? I don't have those posts
# anymore...), followed by a load of randomly generated vectors by OpenSSL.
-[ARC4]
+[RC4]
0000000000000000:7494C2E7104B0879:0123456789ABCDEF
0000000000000000:DE188941A3375D3A:0000000000000000
00000000000000000000:D6A141A7EC3C38DFBD61:EF012345
diff --git a/doc/algos.rst b/doc/algos.rst
index 8b2f14b36..7f976a141 100644
--- a/doc/algos.rst
+++ b/doc/algos.rst
@@ -57,7 +57,7 @@ Block ciphers
Stream Ciphers
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- * RC4 of course
+ * RC4
* Salsa20/XSalsa20
* CTR and OFB modes also present a stream cipher interface
diff --git a/doc/relnotes/1_11_4.rst b/doc/relnotes/1_11_4.rst
index 72418e9d5..91a33ae58 100644
--- a/doc/relnotes/1_11_4.rst
+++ b/doc/relnotes/1_11_4.rst
@@ -18,3 +18,5 @@ Version 1.11.4, Not Yet Released
* A new TLS policy :cpp:class:`NSA_Suite_B_128` is available, which
will negotiate only the 128-bit security NSA Suite B. See
:rfc:`6460` for more information about Suite B.
+
+* Rename ARC4 to RC4
diff --git a/src/build-data/scripts/tls_suite_info.py b/src/build-data/scripts/tls_suite_info.py
index 7043469d2..8c454f35a 100755
--- a/src/build-data/scripts/tls_suite_info.py
+++ b/src/build-data/scripts/tls_suite_info.py
@@ -42,7 +42,7 @@ def to_ciphersuite_info(code, name):
cipher = cipher_and_mac[:-1]
cipher_info = {
- 'RC4': ('ARC4',None),
+ 'RC4': ('RC4',None),
'IDEA': ('IDEA',16),
'DES': ('DES',8),
'3DES': ('3DES',24),
@@ -59,7 +59,7 @@ def to_ciphersuite_info(code, name):
'SHA256': 'SHA-256',
'SHA384': 'SHA-384',
'SHA512': 'SHA-512',
- 'RC4': 'ARC4',
+ 'RC4': 'RC4',
'3DES': 'TripleDES',
'DSS': 'DSA',
'ECDSA': 'ECDSA',
@@ -98,7 +98,7 @@ def to_ciphersuite_info(code, name):
modestr = ''
mode = ''
ivlen = 0
- if cipher_algo != 'ARC4':
+ if cipher_algo != 'RC4':
mode = cipher[-1]
if mode not in ['CBC', 'GCM', 'CCM', 'OCB']:
print "#warning Unknown mode %s" % (' '.join(cipher))
@@ -108,7 +108,7 @@ def to_ciphersuite_info(code, name):
if mode != 'CBC':
cipher_algo += '/' + mode
- if cipher_algo != 'ARC4' and mode != 'CBC':
+ if cipher_algo != 'RC4' and mode != 'CBC':
return 'Ciphersuite(0x%s, "%s", "%s", "%s", %d, %d, "AEAD", %d, "%s")' % (
code, sig_algo, kex_algo, cipher_algo, cipher_keylen, 4, 0, mac_algo)
else:
diff --git a/src/engine/core_engine/lookup_stream.cpp b/src/engine/core_engine/lookup_stream.cpp
index 683ee6b8c..b26bbedcd 100644
--- a/src/engine/core_engine/lookup_stream.cpp
+++ b/src/engine/core_engine/lookup_stream.cpp
@@ -8,8 +8,8 @@
#include <botan/internal/core_engine.h>
#include <botan/scan_name.h>
-#if defined(BOTAN_HAS_ARC4)
- #include <botan/arc4.h>
+#if defined(BOTAN_HAS_RC4)
+ #include <botan/rc4.h>
#endif
#if defined(BOTAN_HAS_SALSA20)
@@ -25,11 +25,11 @@ StreamCipher*
Core_Engine::find_stream_cipher(const SCAN_Name& request,
Algorithm_Factory&) const
{
-#if defined(BOTAN_HAS_ARC4)
- if(request.algo_name() == "ARC4")
- return new ARC4(request.arg_as_integer(0, 0));
+#if defined(BOTAN_HAS_RC4)
+ if(request.algo_name() == "RC4")
+ return new RC4(request.arg_as_integer(0, 0));
if(request.algo_name() == "RC4_drop")
- return new ARC4(768);
+ return new RC4(768);
#endif
#if defined(BOTAN_HAS_SALSA20)
diff --git a/src/engine/openssl/ossl_arc4.cpp b/src/engine/openssl/ossl_arc4.cpp
index cad194a59..0eb404af1 100644
--- a/src/engine/openssl/ossl_arc4.cpp
+++ b/src/engine/openssl/ossl_arc4.cpp
@@ -1,5 +1,5 @@
/*
-* OpenSSL ARC4
+* OpenSSL RC4
* (C) 1999-2007 Jack Lloyd
*
* Distributed under the terms of the Botan license
@@ -14,15 +14,15 @@ namespace Botan {
namespace {
/**
-* ARC4 as implemented by OpenSSL
+* RC4 as implemented by OpenSSL
*/
-class ARC4_OpenSSL : public StreamCipher
+class RC4_OpenSSL : public StreamCipher
{
public:
void clear() { clear_mem(&state, 1); }
std::string name() const;
- StreamCipher* clone() const { return new ARC4_OpenSSL(SKIP); }
+ StreamCipher* clone() const { return new RC4_OpenSSL(SKIP); }
Key_Length_Specification key_spec() const
{
@@ -30,8 +30,8 @@ class ARC4_OpenSSL : public StreamCipher
}
- ARC4_OpenSSL(size_t s = 0) : SKIP(s) { clear(); }
- ~ARC4_OpenSSL() { clear(); }
+ RC4_OpenSSL(size_t s = 0) : SKIP(s) { clear(); }
+ ~RC4_OpenSSL() { clear(); }
private:
void cipher(const byte[], byte[], size_t);
void key_schedule(const byte[], size_t);
@@ -43,17 +43,17 @@ class ARC4_OpenSSL : public StreamCipher
/*
* Return the name of this type
*/
-std::string ARC4_OpenSSL::name() const
+std::string RC4_OpenSSL::name() const
{
- if(SKIP == 0) return "ARC4";
+ if(SKIP == 0) return "RC4";
if(SKIP == 256) return "MARK-4";
else return "RC4_skip(" + std::to_string(SKIP) + ")";
}
/*
-* ARC4 Key Schedule
+* RC4 Key Schedule
*/
-void ARC4_OpenSSL::key_schedule(const byte key[], size_t length)
+void RC4_OpenSSL::key_schedule(const byte key[], size_t length)
{
RC4_set_key(&state, length, key);
byte dummy = 0;
@@ -62,9 +62,9 @@ void ARC4_OpenSSL::key_schedule(const byte key[], size_t length)
}
/*
-* ARC4 Encryption
+* RC4 Encryption
*/
-void ARC4_OpenSSL::cipher(const byte in[], byte out[], size_t length)
+void RC4_OpenSSL::cipher(const byte in[], byte out[], size_t length)
{
RC4(&state, length, in, out);
}
@@ -72,16 +72,16 @@ void ARC4_OpenSSL::cipher(const byte in[], byte out[], size_t length)
}
/**
-* Look for an OpenSSL-supported stream cipher (ARC4)
+* Look for an OpenSSL-supported stream cipher (RC4)
*/
StreamCipher*
OpenSSL_Engine::find_stream_cipher(const SCAN_Name& request,
Algorithm_Factory&) const
{
- if(request.algo_name() == "ARC4")
- return new ARC4_OpenSSL(request.arg_as_integer(0, 0));
+ if(request.algo_name() == "RC4")
+ return new RC4_OpenSSL(request.arg_as_integer(0, 0));
if(request.algo_name() == "RC4_drop")
- return new ARC4_OpenSSL(768);
+ return new RC4_OpenSSL(768);
return 0;
}
diff --git a/src/libstate/policy.cpp b/src/libstate/policy.cpp
index 75b7c0db8..172da27f4 100644
--- a/src/libstate/policy.cpp
+++ b/src/libstate/policy.cpp
@@ -290,7 +290,8 @@ void set_default_aliases(Library_State& config)
config.add_alias("CAST5", "CAST-128");
config.add_alias("SHA1", "SHA-160");
config.add_alias("SHA-1", "SHA-160");
- config.add_alias("MARK-4", "ARC4(256)");
+ config.add_alias("MARK-4", "RC4(256)");
+ config.add_alias("ARC4", "RC4");
config.add_alias("OMAC", "CMAC");
config.add_alias("GOST", "GOST-28147-89");
config.add_alias("GOST-34.11", "GOST-R-34.11-94");
diff --git a/src/stream/arc4/info.txt b/src/stream/arc4/info.txt
deleted file mode 100644
index e3022925c..000000000
--- a/src/stream/arc4/info.txt
+++ /dev/null
@@ -1 +0,0 @@
-define ARC4
diff --git a/src/stream/rc4/info.txt b/src/stream/rc4/info.txt
new file mode 100644
index 000000000..587a5fea8
--- /dev/null
+++ b/src/stream/rc4/info.txt
@@ -0,0 +1 @@
+define RC4
diff --git a/src/stream/arc4/arc4.cpp b/src/stream/rc4/rc4.cpp
index da1694a96..bd4c710a9 100644
--- a/src/stream/arc4/arc4.cpp
+++ b/src/stream/rc4/rc4.cpp
@@ -1,5 +1,5 @@
/*
-* ARC4
+* RC4
* (C) 1999-2007 Jack Lloyd
*
* Distributed under the terms of the Botan license
@@ -14,7 +14,7 @@ namespace Botan {
/*
* Combine cipher stream with message
*/
-void ARC4::cipher(const byte in[], byte out[], size_t length)
+void RC4::cipher(const byte in[], byte out[], size_t length)
{
while(length >= buffer.size() - position)
{
@@ -31,7 +31,7 @@ void ARC4::cipher(const byte in[], byte out[], size_t length)
/*
* Generate cipher stream
*/
-void ARC4::generate()
+void RC4::generate()
{
byte SX, SY;
for(size_t i = 0; i != buffer.size(); i += 4)
@@ -57,9 +57,9 @@ void ARC4::generate()
}
/*
-* ARC4 Key Schedule
+* RC4 Key Schedule
*/
-void ARC4::key_schedule(const byte key[], size_t length)
+void RC4::key_schedule(const byte key[], size_t length)
{
state.resize(256);
buffer.resize(round_up<size_t>(DEFAULT_BUFFERSIZE, 4));
@@ -84,9 +84,9 @@ void ARC4::key_schedule(const byte key[], size_t length)
/*
* Return the name of this type
*/
-std::string ARC4::name() const
+std::string RC4::name() const
{
- if(SKIP == 0) return "ARC4";
+ if(SKIP == 0) return "RC4";
if(SKIP == 256) return "MARK-4";
else return "RC4_skip(" + std::to_string(SKIP) + ")";
}
@@ -94,7 +94,7 @@ std::string ARC4::name() const
/*
* Clear memory of sensitive data
*/
-void ARC4::clear()
+void RC4::clear()
{
zap(state);
zap(buffer);
@@ -102,8 +102,8 @@ void ARC4::clear()
}
/*
-* ARC4 Constructor
+* RC4 Constructor
*/
-ARC4::ARC4(size_t s) : SKIP(s) {}
+RC4::RC4(size_t s) : SKIP(s) {}
}
diff --git a/src/stream/arc4/arc4.h b/src/stream/rc4/rc4.h
index 8f8de87b6..c23f8c853 100644
--- a/src/stream/arc4/arc4.h
+++ b/src/stream/rc4/rc4.h
@@ -1,12 +1,12 @@
/*
-* ARC4
+* RC4
* (C) 1999-2008 Jack Lloyd
*
* Distributed under the terms of the Botan license
*/
-#ifndef BOTAN_ARC4_H__
-#define BOTAN_ARC4_H__
+#ifndef BOTAN_RC4_H__
+#define BOTAN_RC4_H__
#include <botan/stream_cipher.h>
#include <botan/types.h>
@@ -14,9 +14,9 @@
namespace Botan {
/**
-* Alleged RC4
+* RC4 stream cipher
*/
-class BOTAN_DLL ARC4 : public StreamCipher
+class BOTAN_DLL RC4 : public StreamCipher
{
public:
void cipher(const byte in[], byte out[], size_t length);
@@ -24,7 +24,7 @@ class BOTAN_DLL ARC4 : public StreamCipher
void clear();
std::string name() const;
- StreamCipher* clone() const { return new ARC4(SKIP); }
+ StreamCipher* clone() const { return new RC4(SKIP); }
Key_Length_Specification key_spec() const
{
@@ -34,9 +34,9 @@ class BOTAN_DLL ARC4 : public StreamCipher
/**
* @param skip skip this many initial bytes in the keystream
*/
- ARC4(size_t skip = 0);
+ RC4(size_t skip = 0);
- ~ARC4() { clear(); }
+ ~RC4() { clear(); }
private:
void key_schedule(const byte[], size_t);
void generate();
diff --git a/src/tls/info.txt b/src/tls/info.txt
index 5bc64b44e..2440baa99 100644
--- a/src/tls/info.txt
+++ b/src/tls/info.txt
@@ -71,7 +71,6 @@ tls_version.cpp
<requires>
aes
-arc4
asn1
camellia
cbc
@@ -83,18 +82,18 @@ ecdh
ecdsa
eme_pkcs
emsa3
-filters
hmac
kdf2
md5
prf_ssl3
prf_tls
+rc4
rng
rsa
seed
-srp6
sha1
sha2_32
+srp6
ssl3mac
x509
</requires>
diff --git a/src/tls/tls_ciphersuite.cpp b/src/tls/tls_ciphersuite.cpp
index 9c9950818..9718a5b08 100644
--- a/src/tls/tls_ciphersuite.cpp
+++ b/src/tls/tls_ciphersuite.cpp
@@ -96,7 +96,7 @@ std::string Ciphersuite::to_string() const
out << "WITH_";
- if(cipher_algo() == "ARC4")
+ if(cipher_algo() == "RC4")
{
out << "RC4_128_";
}
diff --git a/src/tls/tls_policy.cpp b/src/tls/tls_policy.cpp
index 230b02ad0..15e061da8 100644
--- a/src/tls/tls_policy.cpp
+++ b/src/tls/tls_policy.cpp
@@ -22,7 +22,7 @@ std::vector<std::string> Policy::allowed_ciphers() const
"AES-128/GCM",
"AES-256",
"AES-128",
- "ARC4",
+ "RC4",
//"Camellia-256",
//"Camellia-128",
//"SEED"
@@ -228,7 +228,7 @@ std::vector<u16bit> Policy::ciphersuite_list(Protocol_Version version,
if(!have_srp && suite.kex_algo() == "SRP_SHA")
continue;
- if(version.is_datagram_protocol() && suite.cipher_algo() == "ARC4")
+ if(version.is_datagram_protocol() && suite.cipher_algo() == "RC4")
continue;
if(!version.supports_aead_modes() && suite.mac_algo() == "AEAD")
diff --git a/src/tls/tls_suite_info.cpp b/src/tls/tls_suite_info.cpp
index dcc5d69b4..a2a371063 100644
--- a/src/tls/tls_suite_info.cpp
+++ b/src/tls/tls_suite_info.cpp
@@ -2,7 +2,7 @@
* TLS cipher suite information
*
* This file was automatically generated from the IANA assignments
-* by ./src/build-data/scripts/tls_suite_info.py on 2013-04-12
+* by ./src/build-data/scripts/tls_suite_info.py on 2013-04-19
*
* Released under the terms of the Botan license
*/
@@ -57,7 +57,7 @@ Ciphersuite Ciphersuite::by_id(u16bit suite)
return Ciphersuite(0xC081, "DSA", "DH", "Camellia-256/GCM", 32, 4, "AEAD", 0, "SHA-384");
case 0x0066: // DHE_DSS_WITH_RC4_128_SHA
- return Ciphersuite(0x0066, "DSA", "DH", "ARC4", 16, 0, "SHA-1", 20);
+ return Ciphersuite(0x0066, "DSA", "DH", "RC4", 16, 0, "SHA-1", 20);
case 0x0099: // DHE_DSS_WITH_SEED_CBC_SHA
return Ciphersuite(0x0099, "DSA", "DH", "SEED", 16, 16, "SHA-1", 20);
@@ -96,7 +96,7 @@ Ciphersuite Ciphersuite::by_id(u16bit suite)
return Ciphersuite(0xC091, "", "DHE_PSK", "Camellia-256/GCM", 32, 4, "AEAD", 0, "SHA-384");
case 0x008E: // DHE_PSK_WITH_RC4_128_SHA
- return Ciphersuite(0x008E, "", "DHE_PSK", "ARC4", 16, 0, "SHA-1", 20);
+ return Ciphersuite(0x008E, "", "DHE_PSK", "RC4", 16, 0, "SHA-1", 20);
case 0x0016: // DHE_RSA_WITH_3DES_EDE_CBC_SHA
return Ciphersuite(0x0016, "RSA", "DH", "3DES", 24, 8, "SHA-1", 20);
@@ -180,7 +180,7 @@ Ciphersuite Ciphersuite::by_id(u16bit suite)
return Ciphersuite(0xC085, "", "DH", "Camellia-256/GCM", 32, 4, "AEAD", 0, "SHA-384");
case 0x0018: // DH_anon_WITH_RC4_128_MD5
- return Ciphersuite(0x0018, "", "DH", "ARC4", 16, 0, "MD5", 16);
+ return Ciphersuite(0x0018, "", "DH", "RC4", 16, 0, "MD5", 16);
case 0x009B: // DH_anon_WITH_SEED_CBC_SHA
return Ciphersuite(0x009B, "", "DH", "SEED", 16, 16, "SHA-1", 20);
@@ -219,7 +219,7 @@ Ciphersuite Ciphersuite::by_id(u16bit suite)
return Ciphersuite(0xC087, "ECDSA", "ECDH", "Camellia-256/GCM", 32, 4, "AEAD", 0, "SHA-384");
case 0xC007: // ECDHE_ECDSA_WITH_RC4_128_SHA
- return Ciphersuite(0xC007, "ECDSA", "ECDH", "ARC4", 16, 0, "SHA-1", 20);
+ return Ciphersuite(0xC007, "ECDSA", "ECDH", "RC4", 16, 0, "SHA-1", 20);
case 0xC034: // ECDHE_PSK_WITH_3DES_EDE_CBC_SHA
return Ciphersuite(0xC034, "", "ECDHE_PSK", "3DES", 24, 8, "SHA-1", 20);
@@ -243,7 +243,7 @@ Ciphersuite Ciphersuite::by_id(u16bit suite)
return Ciphersuite(0xC09B, "", "ECDHE_PSK", "Camellia-256", 32, 16, "SHA-384", 48);
case 0xC033: // ECDHE_PSK_WITH_RC4_128_SHA
- return Ciphersuite(0xC033, "", "ECDHE_PSK", "ARC4", 16, 0, "SHA-1", 20);
+ return Ciphersuite(0xC033, "", "ECDHE_PSK", "RC4", 16, 0, "SHA-1", 20);
case 0xC012: // ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
return Ciphersuite(0xC012, "RSA", "ECDH", "3DES", 24, 8, "SHA-1", 20);
@@ -279,7 +279,7 @@ Ciphersuite Ciphersuite::by_id(u16bit suite)
return Ciphersuite(0xC08B, "RSA", "ECDH", "Camellia-256/GCM", 32, 4, "AEAD", 0, "SHA-384");
case 0xC011: // ECDHE_RSA_WITH_RC4_128_SHA
- return Ciphersuite(0xC011, "RSA", "ECDH", "ARC4", 16, 0, "SHA-1", 20);
+ return Ciphersuite(0xC011, "RSA", "ECDH", "RC4", 16, 0, "SHA-1", 20);
case 0xC017: // ECDH_anon_WITH_3DES_EDE_CBC_SHA
return Ciphersuite(0xC017, "", "ECDH", "3DES", 24, 8, "SHA-1", 20);
@@ -291,7 +291,7 @@ Ciphersuite Ciphersuite::by_id(u16bit suite)
return Ciphersuite(0xC019, "", "ECDH", "AES-256", 32, 16, "SHA-1", 20);
case 0xC016: // ECDH_anon_WITH_RC4_128_SHA
- return Ciphersuite(0xC016, "", "ECDH", "ARC4", 16, 0, "SHA-1", 20);
+ return Ciphersuite(0xC016, "", "ECDH", "RC4", 16, 0, "SHA-1", 20);
case 0x008B: // PSK_WITH_3DES_EDE_CBC_SHA
return Ciphersuite(0x008B, "", "PSK", "3DES", 24, 8, "SHA-1", 20);
@@ -327,7 +327,7 @@ Ciphersuite Ciphersuite::by_id(u16bit suite)
return Ciphersuite(0xC08F, "", "PSK", "Camellia-256/GCM", 32, 4, "AEAD", 0, "SHA-384");
case 0x008A: // PSK_WITH_RC4_128_SHA
- return Ciphersuite(0x008A, "", "PSK", "ARC4", 16, 0, "SHA-1", 20);
+ return Ciphersuite(0x008A, "", "PSK", "RC4", 16, 0, "SHA-1", 20);
case 0x000A: // RSA_WITH_3DES_EDE_CBC_SHA
return Ciphersuite(0x000A, "RSA", "RSA", "3DES", 24, 8, "SHA-1", 20);
@@ -369,10 +369,10 @@ Ciphersuite Ciphersuite::by_id(u16bit suite)
return Ciphersuite(0xC07B, "RSA", "RSA", "Camellia-256/GCM", 32, 4, "AEAD", 0, "SHA-384");
case 0x0004: // RSA_WITH_RC4_128_MD5
- return Ciphersuite(0x0004, "RSA", "RSA", "ARC4", 16, 0, "MD5", 16);
+ return Ciphersuite(0x0004, "RSA", "RSA", "RC4", 16, 0, "MD5", 16);
case 0x0005: // RSA_WITH_RC4_128_SHA
- return Ciphersuite(0x0005, "RSA", "RSA", "ARC4", 16, 0, "SHA-1", 20);
+ return Ciphersuite(0x0005, "RSA", "RSA", "RC4", 16, 0, "SHA-1", 20);
case 0x0096: // RSA_WITH_SEED_CBC_SHA
return Ciphersuite(0x0096, "RSA", "RSA", "SEED", 16, 16, "SHA-1", 20);