aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/aes.cpp1
-rw-r--r--src/arc4.cpp2
-rw-r--r--src/bit_ops.cpp68
-rw-r--r--src/buf_es.cpp2
-rw-r--r--src/cbc.cpp2
-rw-r--r--src/cbc_mac.cpp2
-rw-r--r--src/cfb.cpp2
-rw-r--r--src/cmac.cpp2
-rw-r--r--src/ctr.cpp2
-rw-r--r--src/cts.cpp2
-rw-r--r--src/des.cpp2
-rw-r--r--src/dl_group.cpp2
-rw-r--r--src/dlies.cpp2
-rw-r--r--src/dsa_gen.cpp15
-rw-r--r--src/eax.cpp2
-rw-r--r--src/hmac.cpp2
-rw-r--r--src/lion.cpp2
-rw-r--r--src/lubyrack.cpp2
-rw-r--r--src/md2.cpp2
-rw-r--r--src/mgf1.cpp2
-rw-r--r--src/numthry.cpp28
-rw-r--r--src/ofb.cpp2
-rw-r--r--src/pkcs5.cpp2
-rw-r--r--src/policy.cpp283
-rw-r--r--src/randpool.cpp2
-rw-r--r--src/rsa.cpp2
-rw-r--r--src/rw.cpp2
-rw-r--r--src/safer_sk.cpp1
-rw-r--r--src/symkey.cpp2
-rw-r--r--src/turing.cpp2
-rw-r--r--src/util.cpp34
-rw-r--r--src/wid_wake.cpp2
-rw-r--r--src/x919_mac.cpp2
-rw-r--r--src/x931_rng.cpp2
34 files changed, 255 insertions, 229 deletions
diff --git a/src/aes.cpp b/src/aes.cpp
index 18a3afbf1..24f1f6213 100644
--- a/src/aes.cpp
+++ b/src/aes.cpp
@@ -5,7 +5,6 @@
#include <botan/aes.h>
#include <botan/loadstor.h>
-#include <botan/bit_ops.h>
namespace Botan {
diff --git a/src/arc4.cpp b/src/arc4.cpp
index f317239c0..238567cdc 100644
--- a/src/arc4.cpp
+++ b/src/arc4.cpp
@@ -4,7 +4,7 @@
*************************************************/
#include <botan/arc4.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
#include <botan/parsing.h>
namespace Botan {
diff --git a/src/bit_ops.cpp b/src/bit_ops.cpp
deleted file mode 100644
index 5fd14704e..000000000
--- a/src/bit_ops.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-/*************************************************
-* Bit/Word Operations Source File *
-* (C) 1999-2008 Jack Lloyd *
-*************************************************/
-
-#include <botan/bit_ops.h>
-#include <botan/loadstor.h>
-
-namespace Botan {
-
-/*************************************************
-* Return true iff arg is 2**n for some n > 0 *
-*************************************************/
-bool power_of_2(u64bit arg)
- {
- if(arg == 0 || arg == 1)
- return false;
- if((arg & (arg-1)) == 0)
- return true;
- return false;
- }
-
-/*************************************************
-* Return the index of the highest set bit *
-*************************************************/
-u32bit high_bit(u64bit n)
- {
- for(u32bit count = 64; count > 0; --count)
- if((n >> (count - 1)) & 0x01)
- return count;
- return 0;
- }
-
-/*************************************************
-* Return the index of the lowest set bit *
-*************************************************/
-u32bit low_bit(u64bit n)
- {
- for(u32bit count = 0; count != 64; ++count)
- if((n >> count) & 0x01)
- return (count + 1);
- return 0;
- }
-
-/*************************************************
-* Return the number of significant bytes in n *
-*************************************************/
-u32bit significant_bytes(u64bit n)
- {
- for(u32bit j = 0; j != 8; ++j)
- if(get_byte(j, n))
- return 8-j;
- return 0;
- }
-
-/*************************************************
-* Return the Hamming weight of n *
-*************************************************/
-u32bit hamming_weight(u64bit n)
- {
- u32bit weight = 0;
- for(u32bit j = 0; j != 64; ++j)
- if((n >> j) & 0x01)
- ++weight;
- return weight;
- }
-
-}
diff --git a/src/buf_es.cpp b/src/buf_es.cpp
index 9f7be3e9b..19f30e22c 100644
--- a/src/buf_es.cpp
+++ b/src/buf_es.cpp
@@ -4,7 +4,7 @@
*************************************************/
#include <botan/buf_es.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
#include <botan/util.h>
#include <algorithm>
diff --git a/src/cbc.cpp b/src/cbc.cpp
index 5561aa0e0..9ad598bed 100644
--- a/src/cbc.cpp
+++ b/src/cbc.cpp
@@ -5,7 +5,7 @@
#include <botan/cbc.h>
#include <botan/lookup.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
#include <algorithm>
namespace Botan {
diff --git a/src/cbc_mac.cpp b/src/cbc_mac.cpp
index 0f403b9b3..d5275b0ed 100644
--- a/src/cbc_mac.cpp
+++ b/src/cbc_mac.cpp
@@ -5,7 +5,7 @@
#include <botan/cbc_mac.h>
#include <botan/lookup.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
#include <algorithm>
namespace Botan {
diff --git a/src/cfb.cpp b/src/cfb.cpp
index 357dce6f7..dbfbff6ae 100644
--- a/src/cfb.cpp
+++ b/src/cfb.cpp
@@ -6,7 +6,7 @@
#include <botan/cfb.h>
#include <botan/lookup.h>
#include <botan/parsing.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
#include <algorithm>
namespace Botan {
diff --git a/src/cmac.cpp b/src/cmac.cpp
index 5e0b56db5..210fa6768 100644
--- a/src/cmac.cpp
+++ b/src/cmac.cpp
@@ -5,7 +5,7 @@
#include <botan/cmac.h>
#include <botan/lookup.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
namespace Botan {
diff --git a/src/ctr.cpp b/src/ctr.cpp
index e30d07d24..8b8c5f35f 100644
--- a/src/ctr.cpp
+++ b/src/ctr.cpp
@@ -5,7 +5,7 @@
#include <botan/ctr.h>
#include <botan/lookup.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
#include <algorithm>
namespace Botan {
diff --git a/src/cts.cpp b/src/cts.cpp
index 56ea8f06c..8af775713 100644
--- a/src/cts.cpp
+++ b/src/cts.cpp
@@ -5,7 +5,7 @@
#include <botan/cts.h>
#include <botan/lookup.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
#include <algorithm>
namespace Botan {
diff --git a/src/des.cpp b/src/des.cpp
index feb5df037..d09752854 100644
--- a/src/des.cpp
+++ b/src/des.cpp
@@ -5,7 +5,7 @@
#include <botan/des.h>
#include <botan/loadstor.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
namespace Botan {
diff --git a/src/dl_group.cpp b/src/dl_group.cpp
index f1a7cb26e..b37bc238c 100644
--- a/src/dl_group.cpp
+++ b/src/dl_group.cpp
@@ -87,7 +87,7 @@ DL_Group::DL_Group(RandomNumberGenerator& rng,
const MemoryRegion<byte>& seed, u32bit pbits, u32bit qbits)
{
if(!generate_dsa_primes(rng, p, q, pbits, qbits, seed))
- throw Invalid_Argument("DL_Group: The seed/counter given does not "
+ throw Invalid_Argument("DL_Group: The seed given does not "
"generate a DSA group");
g = make_dsa_generator(p, q);
diff --git a/src/dlies.cpp b/src/dlies.cpp
index 22e606403..2a2f33925 100644
--- a/src/dlies.cpp
+++ b/src/dlies.cpp
@@ -6,7 +6,7 @@
#include <botan/dlies.h>
#include <botan/lookup.h>
#include <botan/look_pk.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
#include <memory>
namespace Botan {
diff --git a/src/dsa_gen.cpp b/src/dsa_gen.cpp
index d0b60f73c..baaba66ee 100644
--- a/src/dsa_gen.cpp
+++ b/src/dsa_gen.cpp
@@ -19,12 +19,15 @@ namespace {
*************************************************/
bool fips186_3_valid_size(u32bit pbits, u32bit qbits)
{
- if(pbits == 1024 && qbits == 160)
- return true;
- if(pbits == 2048 && (qbits == 224 || qbits == 256))
- return true;
- if(pbits == 3072 && qbits == 256)
- return true;
+ if(qbits == 160)
+ return (pbits == 512 || pbits == 768 || pbits == 1024);
+
+ if(qbits == 224)
+ return (pbits == 2048);
+
+ if(qbits == 256)
+ return (pbits == 2048 || pbits == 3072);
+
return false;
}
diff --git a/src/eax.cpp b/src/eax.cpp
index f244f0290..c5ae5e9fa 100644
--- a/src/eax.cpp
+++ b/src/eax.cpp
@@ -5,7 +5,7 @@
#include <botan/eax.h>
#include <botan/lookup.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
#include <botan/parsing.h>
#include <algorithm>
diff --git a/src/hmac.cpp b/src/hmac.cpp
index 5604145f4..b8c76e8f6 100644
--- a/src/hmac.cpp
+++ b/src/hmac.cpp
@@ -6,7 +6,7 @@
#include <botan/hmac.h>
#include <botan/lookup.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
namespace Botan {
diff --git a/src/lion.cpp b/src/lion.cpp
index 65b8560ae..009e98408 100644
--- a/src/lion.cpp
+++ b/src/lion.cpp
@@ -5,7 +5,7 @@
#include <botan/lion.h>
#include <botan/lookup.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
#include <botan/parsing.h>
namespace Botan {
diff --git a/src/lubyrack.cpp b/src/lubyrack.cpp
index 66a7ba2bd..4a5408e1d 100644
--- a/src/lubyrack.cpp
+++ b/src/lubyrack.cpp
@@ -5,7 +5,7 @@
#include <botan/lubyrack.h>
#include <botan/lookup.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
namespace Botan {
diff --git a/src/md2.cpp b/src/md2.cpp
index ff7d5436c..c609eda10 100644
--- a/src/md2.cpp
+++ b/src/md2.cpp
@@ -4,7 +4,7 @@
*************************************************/
#include <botan/md2.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
namespace Botan {
diff --git a/src/mgf1.cpp b/src/mgf1.cpp
index c6f30eee9..70f5a50a0 100644
--- a/src/mgf1.cpp
+++ b/src/mgf1.cpp
@@ -6,7 +6,7 @@
#include <botan/mgf1.h>
#include <botan/lookup.h>
#include <botan/loadstor.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
#include <algorithm>
#include <memory>
diff --git a/src/numthry.cpp b/src/numthry.cpp
index 2b900e96c..9f05b6114 100644
--- a/src/numthry.cpp
+++ b/src/numthry.cpp
@@ -1,9 +1,10 @@
/*************************************************
* Number Theory Source File *
-* (C) 1999-2007 Jack Lloyd *
+* (C) 1999-2008 Jack Lloyd *
*************************************************/
#include <botan/numthry.h>
+#include <botan/bit_ops.h>
#include <algorithm>
namespace Botan {
@@ -73,12 +74,27 @@ u32bit miller_rabin_test_iterations(u32bit bits, bool verify)
*************************************************/
u32bit low_zero_bits(const BigInt& n)
{
- if(n.is_zero()) return 0;
+ if(n.is_negative() || n.is_zero()) return 0;
- u32bit bits = 0, max_bits = n.bits();
- while((n.get_bit(bits) == 0) && bits < max_bits)
- ++bits;
- return bits;
+ u32bit low_zero = 0;
+
+ if(n.is_positive() && n.is_nonzero())
+ {
+ for(u32bit i = 0; i != n.size(); ++i)
+ {
+ word x = n[i];
+
+ if(x)
+ {
+ low_zero += __builtin_ctzl(x);
+ break;
+ }
+ else
+ low_zero += BOTAN_MP_WORD_BITS;
+ }
+ }
+
+ return low_zero;
}
/*************************************************
diff --git a/src/ofb.cpp b/src/ofb.cpp
index 568bd02fa..db254d329 100644
--- a/src/ofb.cpp
+++ b/src/ofb.cpp
@@ -5,7 +5,7 @@
#include <botan/ofb.h>
#include <botan/lookup.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
#include <algorithm>
namespace Botan {
diff --git a/src/pkcs5.cpp b/src/pkcs5.cpp
index 77d8c9200..8a6e7b5a8 100644
--- a/src/pkcs5.cpp
+++ b/src/pkcs5.cpp
@@ -6,7 +6,7 @@
#include <botan/pkcs5.h>
#include <botan/lookup.h>
#include <botan/loadstor.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
#include <botan/hmac.h>
#include <algorithm>
#include <memory>
diff --git a/src/policy.cpp b/src/policy.cpp
index 5f94098c6..834ea8442 100644
--- a/src/policy.cpp
+++ b/src/policy.cpp
@@ -242,128 +242,201 @@ void set_default_config(Library_State& config)
void set_default_dl_groups(Library_State& config)
{
config.set("dl", "modp/ietf/768",
- "-----BEGIN X942 DH PARAMETERS-----"
- "MIHIAmEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxObIlFK"
- "CHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjo2IP//"
- "////////AgECAmB//////////+SH7VEQtGEaYmMxRcBuDmiUgScERTPmOgEF31Md"
- "ic2RKKUEPMcaAm73yozZ5p0hjZgVhTb5L4obp/Catrao4SLyQtq7MS8/Y3omIXTT"
- "HRsQf/////////8="
- "-----END X942 DH PARAMETERS-----");
+ "-----BEGIN X942 DH PARAMETERS-----"
+ "MIHIAmEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxObIlFK"
+ "CHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjo2IP//"
+ "////////AgECAmB//////////+SH7VEQtGEaYmMxRcBuDmiUgScERTPmOgEF31Md"
+ "ic2RKKUEPMcaAm73yozZ5p0hjZgVhTb5L4obp/Catrao4SLyQtq7MS8/Y3omIXTT"
+ "HRsQf/////////8="
+ "-----END X942 DH PARAMETERS-----");
config.set("dl", "modp/ietf/1024",
- "-----BEGIN X942 DH PARAMETERS-----"
- "MIIBCgKBgQD//////////8kP2qIhaMI0xMZii4DcHNEpAk4IimfMdAILvqY7E5si"
- "UUoIeY40BN3vlRmzzTpDGzArCm3yXxQ3T+E1bW1RwkXkhbV2Yl5+xvRMQummN+1r"
- "C/9ctvQGt+3uOGv7Womfpa6fJBF8Sx/mSShmUezmU4H//////////wIBAgKBgH//"
- "////////5IftURC0YRpiYzFFwG4OaJSBJwRFM+Y6AQXfUx2JzZEopQQ8xxoCbvfK"
- "jNnmnSGNmBWFNvkvihun8Jq2tqjhIvJC2rsxLz9jeiYhdNMb9rWF/65begNb9vcc"
- "Nf2tRM/S10+SCL4lj/MklDMo9nMpwP//////////"
- "-----END X942 DH PARAMETERS-----");
+ "-----BEGIN X942 DH PARAMETERS-----"
+ "MIIBCgKBgQD//////////8kP2qIhaMI0xMZii4DcHNEpAk4IimfMdAILvqY7E5si"
+ "UUoIeY40BN3vlRmzzTpDGzArCm3yXxQ3T+E1bW1RwkXkhbV2Yl5+xvRMQummN+1r"
+ "C/9ctvQGt+3uOGv7Womfpa6fJBF8Sx/mSShmUezmU4H//////////wIBAgKBgH//"
+ "////////5IftURC0YRpiYzFFwG4OaJSBJwRFM+Y6AQXfUx2JzZEopQQ8xxoCbvfK"
+ "jNnmnSGNmBWFNvkvihun8Jq2tqjhIvJC2rsxLz9jeiYhdNMb9rWF/65begNb9vcc"
+ "Nf2tRM/S10+SCL4lj/MklDMo9nMpwP//////////"
+ "-----END X942 DH PARAMETERS-----");
config.set("dl", "modp/ietf/1536",
- "-----BEGIN X942 DH PARAMETERS-----"
- "MIIBigKBwQD//////////8kP2qIhaMI0xMZii4DcHNEpAk4IimfMdAILvqY7E5si"
- "UUoIeY40BN3vlRmzzTpDGzArCm3yXxQ3T+E1bW1RwkXkhbV2Yl5+xvRMQummN+1r"
- "C/9ctvQGt+3uOGv7Womfpa6fJBF8Sx/mSShmUezkWz3CAHy4oWO/BZjaSDYcVdOa"
- "aRY/qP0kz1+DZV0j3KOtlhxi81YghVK7ntUpB3CWlm1nDDVOSryYBPF0bAjKI3Mn"
- "//////////8CAQICgcB//////////+SH7VEQtGEaYmMxRcBuDmiUgScERTPmOgEF"
- "31Mdic2RKKUEPMcaAm73yozZ5p0hjZgVhTb5L4obp/Catrao4SLyQtq7MS8/Y3om"
- "IXTTG/a1hf+uW3oDW/b3HDX9rUTP0tdPkgi+JY/zJJQzKPZyLZ7hAD5cULHfgsxt"
- "JBsOKunNNIsf1H6SZ6/Bsq6R7lHWyw4xeasQQqldz2qUg7hLSzazhhqnJV5MAni6"
- "NgRlEbmT//////////8="
- "-----END X942 DH PARAMETERS-----");
+ "-----BEGIN X942 DH PARAMETERS-----"
+ "MIIBigKBwQD//////////8kP2qIhaMI0xMZii4DcHNEpAk4IimfMdAILvqY7E5si"
+ "UUoIeY40BN3vlRmzzTpDGzArCm3yXxQ3T+E1bW1RwkXkhbV2Yl5+xvRMQummN+1r"
+ "C/9ctvQGt+3uOGv7Womfpa6fJBF8Sx/mSShmUezkWz3CAHy4oWO/BZjaSDYcVdOa"
+ "aRY/qP0kz1+DZV0j3KOtlhxi81YghVK7ntUpB3CWlm1nDDVOSryYBPF0bAjKI3Mn"
+ "//////////8CAQICgcB//////////+SH7VEQtGEaYmMxRcBuDmiUgScERTPmOgEF"
+ "31Mdic2RKKUEPMcaAm73yozZ5p0hjZgVhTb5L4obp/Catrao4SLyQtq7MS8/Y3om"
+ "IXTTG/a1hf+uW3oDW/b3HDX9rUTP0tdPkgi+JY/zJJQzKPZyLZ7hAD5cULHfgsxt"
+ "JBsOKunNNIsf1H6SZ6/Bsq6R7lHWyw4xeasQQqldz2qUg7hLSzazhhqnJV5MAni6"
+ "NgRlEbmT//////////8="
+ "-----END X942 DH PARAMETERS-----");
config.set("dl", "modp/ietf/2048",
- "-----BEGIN X942 DH PARAMETERS-----"
- "MIICDAKCAQEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxOb"
- "IlFKCHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjft"
- "awv/XLb0Brft7jhr+1qJn6WunyQRfEsf5kkoZlHs5Fs9wgB8uKFjvwWY2kg2HFXT"
- "mmkWP6j9JM9fg2VdI9yjrZYcYvNWIIVSu57VKQdwlpZtZww1Tkq8mATxdGwIyhgh"
- "fDKQXkYuNs474553LBgOhgObJ4Oi7Aeij7XFXfBvTFLJ3ivL9pVYFxg5lUl86pVq"
- "5RXSJhiY+gUQFXKOWoqsqmj//////////wIBAgKCAQB//////////+SH7VEQtGEa"
- "YmMxRcBuDmiUgScERTPmOgEF31Mdic2RKKUEPMcaAm73yozZ5p0hjZgVhTb5L4ob"
- "p/Catrao4SLyQtq7MS8/Y3omIXTTG/a1hf+uW3oDW/b3HDX9rUTP0tdPkgi+JY/z"
- "JJQzKPZyLZ7hAD5cULHfgsxtJBsOKunNNIsf1H6SZ6/Bsq6R7lHWyw4xeasQQqld"
- "z2qUg7hLSzazhhqnJV5MAni6NgRlDBC+GUgvIxcbZx3xzzuWDAdDAc2TwdF2A9FH"
- "2uKu+DemKWTvFeX7SqwLjBzKpL51SrVyiukTDEx9AogKuUctRVZVNH//////////"
- "-----END X942 DH PARAMETERS-----");
+ "-----BEGIN X942 DH PARAMETERS-----"
+ "MIICDAKCAQEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxOb"
+ "IlFKCHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjft"
+ "awv/XLb0Brft7jhr+1qJn6WunyQRfEsf5kkoZlHs5Fs9wgB8uKFjvwWY2kg2HFXT"
+ "mmkWP6j9JM9fg2VdI9yjrZYcYvNWIIVSu57VKQdwlpZtZww1Tkq8mATxdGwIyhgh"
+ "fDKQXkYuNs474553LBgOhgObJ4Oi7Aeij7XFXfBvTFLJ3ivL9pVYFxg5lUl86pVq"
+ "5RXSJhiY+gUQFXKOWoqsqmj//////////wIBAgKCAQB//////////+SH7VEQtGEa"
+ "YmMxRcBuDmiUgScERTPmOgEF31Mdic2RKKUEPMcaAm73yozZ5p0hjZgVhTb5L4ob"
+ "p/Catrao4SLyQtq7MS8/Y3omIXTTG/a1hf+uW3oDW/b3HDX9rUTP0tdPkgi+JY/z"
+ "JJQzKPZyLZ7hAD5cULHfgsxtJBsOKunNNIsf1H6SZ6/Bsq6R7lHWyw4xeasQQqld"
+ "z2qUg7hLSzazhhqnJV5MAni6NgRlDBC+GUgvIxcbZx3xzzuWDAdDAc2TwdF2A9FH"
+ "2uKu+DemKWTvFeX7SqwLjBzKpL51SrVyiukTDEx9AogKuUctRVZVNH//////////"
+ "-----END X942 DH PARAMETERS-----");
config.set("dl", "modp/ietf/3072",
- "-----BEGIN X942 DH PARAMETERS-----"
- "MIIDDAKCAYEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxOb"
- "IlFKCHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjft"
- "awv/XLb0Brft7jhr+1qJn6WunyQRfEsf5kkoZlHs5Fs9wgB8uKFjvwWY2kg2HFXT"
- "mmkWP6j9JM9fg2VdI9yjrZYcYvNWIIVSu57VKQdwlpZtZww1Tkq8mATxdGwIyhgh"
- "fDKQXkYuNs474553LBgOhgObJ4Oi7Aeij7XFXfBvTFLJ3ivL9pVYFxg5lUl86pVq"
- "5RXSJhiY+gUQFXKOWoqqxC2tMxcNBFB6M6hVIavfHLpk7PuFBFjb7wqK6nFXXQYM"
- "fbOXD4Wm4eTHq/WujNsJM9cejJTgSiVhnc7j0iYa0u5r8S/6BtmKCGTYdgJzPshq"
- "ZFIfKxgXeyAMu+EXV3phXWx3CYjAutlG4gjiT6B05asxQ9tb/OD9EI5LgtEgqTrS"
- "yv//////////AgECAoIBgH//////////5IftURC0YRpiYzFFwG4OaJSBJwRFM+Y6"
- "AQXfUx2JzZEopQQ8xxoCbvfKjNnmnSGNmBWFNvkvihun8Jq2tqjhIvJC2rsxLz9j"
- "eiYhdNMb9rWF/65begNb9vccNf2tRM/S10+SCL4lj/MklDMo9nItnuEAPlxQsd+C"
- "zG0kGw4q6c00ix/UfpJnr8GyrpHuUdbLDjF5qxBCqV3PapSDuEtLNrOGGqclXkwC"
- "eLo2BGUMEL4ZSC8jFxtnHfHPO5YMB0MBzZPB0XYD0Ufa4q74N6YpZO8V5ftKrAuM"
- "HMqkvnVKtXKK6RMMTH0CiAq5Ry1FVWIW1pmLhoIoPRnUKpDV745dMnZ9woIsbfeF"
- "RXU4q66DBj7Zy4fC03DyY9X610ZthJnrj0ZKcCUSsM7ncekTDWl3NfiX/QNsxQQy"
- "bDsBOZ9kNTIpD5WMC72QBl3wi6u9MK62O4TEYF1so3EEcSfQOnLVmKHtrf5wfohH"
- "JcFokFSdaWV//////////w=="
- "-----END X942 DH PARAMETERS-----");
+ "-----BEGIN X942 DH PARAMETERS-----"
+ "MIIDDAKCAYEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxOb"
+ "IlFKCHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjft"
+ "awv/XLb0Brft7jhr+1qJn6WunyQRfEsf5kkoZlHs5Fs9wgB8uKFjvwWY2kg2HFXT"
+ "mmkWP6j9JM9fg2VdI9yjrZYcYvNWIIVSu57VKQdwlpZtZww1Tkq8mATxdGwIyhgh"
+ "fDKQXkYuNs474553LBgOhgObJ4Oi7Aeij7XFXfBvTFLJ3ivL9pVYFxg5lUl86pVq"
+ "5RXSJhiY+gUQFXKOWoqqxC2tMxcNBFB6M6hVIavfHLpk7PuFBFjb7wqK6nFXXQYM"
+ "fbOXD4Wm4eTHq/WujNsJM9cejJTgSiVhnc7j0iYa0u5r8S/6BtmKCGTYdgJzPshq"
+ "ZFIfKxgXeyAMu+EXV3phXWx3CYjAutlG4gjiT6B05asxQ9tb/OD9EI5LgtEgqTrS"
+ "yv//////////AgECAoIBgH//////////5IftURC0YRpiYzFFwG4OaJSBJwRFM+Y6"
+ "AQXfUx2JzZEopQQ8xxoCbvfKjNnmnSGNmBWFNvkvihun8Jq2tqjhIvJC2rsxLz9j"
+ "eiYhdNMb9rWF/65begNb9vccNf2tRM/S10+SCL4lj/MklDMo9nItnuEAPlxQsd+C"
+ "zG0kGw4q6c00ix/UfpJnr8GyrpHuUdbLDjF5qxBCqV3PapSDuEtLNrOGGqclXkwC"
+ "eLo2BGUMEL4ZSC8jFxtnHfHPO5YMB0MBzZPB0XYD0Ufa4q74N6YpZO8V5ftKrAuM"
+ "HMqkvnVKtXKK6RMMTH0CiAq5Ry1FVWIW1pmLhoIoPRnUKpDV745dMnZ9woIsbfeF"
+ "RXU4q66DBj7Zy4fC03DyY9X610ZthJnrj0ZKcCUSsM7ncekTDWl3NfiX/QNsxQQy"
+ "bDsBOZ9kNTIpD5WMC72QBl3wi6u9MK62O4TEYF1so3EEcSfQOnLVmKHtrf5wfohH"
+ "JcFokFSdaWV//////////w=="
+ "-----END X942 DH PARAMETERS-----");
config.set("dl", "modp/ietf/4096",
- "-----BEGIN X942 DH PARAMETERS-----"
- "MIIEDAKCAgEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxOb"
- "IlFKCHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjft"
- "awv/XLb0Brft7jhr+1qJn6WunyQRfEsf5kkoZlHs5Fs9wgB8uKFjvwWY2kg2HFXT"
- "mmkWP6j9JM9fg2VdI9yjrZYcYvNWIIVSu57VKQdwlpZtZww1Tkq8mATxdGwIyhgh"
- "fDKQXkYuNs474553LBgOhgObJ4Oi7Aeij7XFXfBvTFLJ3ivL9pVYFxg5lUl86pVq"
- "5RXSJhiY+gUQFXKOWoqqxC2tMxcNBFB6M6hVIavfHLpk7PuFBFjb7wqK6nFXXQYM"
- "fbOXD4Wm4eTHq/WujNsJM9cejJTgSiVhnc7j0iYa0u5r8S/6BtmKCGTYdgJzPshq"
- "ZFIfKxgXeyAMu+EXV3phXWx3CYjAutlG4gjiT6B05asxQ9tb/OD9EI5LgtEgqSEI"
- "ARpyPBKnh+bXiHGaEL26WyaZwycYavTiPBqUaDS2FQvaJYPpyirUTOjbu8LbBN6O"
- "+S6O/BQfvsqmKHxZR05rwF2ZspZPoJDDoiM7oYZRW+ftH2EpcM7i16+4G912IXBI"
- "HNAGkSfVsFqpk7TqmI2P3cGG/7fckKbAj030Nck0BjGZ//////////8CAQICggIA"
- "f//////////kh+1RELRhGmJjMUXAbg5olIEnBEUz5joBBd9THYnNkSilBDzHGgJu"
- "98qM2eadIY2YFYU2+S+KG6fwmra2qOEi8kLauzEvP2N6JiF00xv2tYX/rlt6A1v2"
- "9xw1/a1Ez9LXT5IIviWP8ySUMyj2ci2e4QA+XFCx34LMbSQbDirpzTSLH9R+kmev"
- "wbKuke5R1ssOMXmrEEKpXc9qlIO4S0s2s4YapyVeTAJ4ujYEZQwQvhlILyMXG2cd"
- "8c87lgwHQwHNk8HRdgPRR9rirvg3pilk7xXl+0qsC4wcyqS+dUq1corpEwxMfQKI"
- "CrlHLUVVYhbWmYuGgig9GdQqkNXvjl0ydn3Cgixt94VFdTirroMGPtnLh8LTcPJj"
- "1frXRm2EmeuPRkpwJRKwzudx6RMNaXc1+Jf9A2zFBDJsOwE5n2Q1MikPlYwLvZAG"
- "XfCLq70wrrY7hMRgXWyjcQRxJ9A6ctWYoe2t/nB+iEclwWiQVJCEAI05HglTw/Nr"
- "xDjNCF7dLZNM4ZOMNXpxHg1KNBpbCoXtEsH05RVqJnRt3eFtgm9HfJdHfgoP32VT"
- "FD4so6c14C7M2Usn0Ehh0RGd0MMorfP2j7CUuGdxa9fcDe67ELgkDmgDSJPq2C1U"
- "ydp1TEbH7uDDf9vuSFNgR6b6GuSaAxjM//////////8="
- "-----END X942 DH PARAMETERS-----");
+ "-----BEGIN X942 DH PARAMETERS-----"
+ "MIIEDAKCAgEA///////////JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxOb"
+ "IlFKCHmONATd75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjft"
+ "awv/XLb0Brft7jhr+1qJn6WunyQRfEsf5kkoZlHs5Fs9wgB8uKFjvwWY2kg2HFXT"
+ "mmkWP6j9JM9fg2VdI9yjrZYcYvNWIIVSu57VKQdwlpZtZww1Tkq8mATxdGwIyhgh"
+ "fDKQXkYuNs474553LBgOhgObJ4Oi7Aeij7XFXfBvTFLJ3ivL9pVYFxg5lUl86pVq"
+ "5RXSJhiY+gUQFXKOWoqqxC2tMxcNBFB6M6hVIavfHLpk7PuFBFjb7wqK6nFXXQYM"
+ "fbOXD4Wm4eTHq/WujNsJM9cejJTgSiVhnc7j0iYa0u5r8S/6BtmKCGTYdgJzPshq"
+ "ZFIfKxgXeyAMu+EXV3phXWx3CYjAutlG4gjiT6B05asxQ9tb/OD9EI5LgtEgqSEI"
+ "ARpyPBKnh+bXiHGaEL26WyaZwycYavTiPBqUaDS2FQvaJYPpyirUTOjbu8LbBN6O"
+ "+S6O/BQfvsqmKHxZR05rwF2ZspZPoJDDoiM7oYZRW+ftH2EpcM7i16+4G912IXBI"
+ "HNAGkSfVsFqpk7TqmI2P3cGG/7fckKbAj030Nck0BjGZ//////////8CAQICggIA"
+ "f//////////kh+1RELRhGmJjMUXAbg5olIEnBEUz5joBBd9THYnNkSilBDzHGgJu"
+ "98qM2eadIY2YFYU2+S+KG6fwmra2qOEi8kLauzEvP2N6JiF00xv2tYX/rlt6A1v2"
+ "9xw1/a1Ez9LXT5IIviWP8ySUMyj2ci2e4QA+XFCx34LMbSQbDirpzTSLH9R+kmev"
+ "wbKuke5R1ssOMXmrEEKpXc9qlIO4S0s2s4YapyVeTAJ4ujYEZQwQvhlILyMXG2cd"
+ "8c87lgwHQwHNk8HRdgPRR9rirvg3pilk7xXl+0qsC4wcyqS+dUq1corpEwxMfQKI"
+ "CrlHLUVVYhbWmYuGgig9GdQqkNXvjl0ydn3Cgixt94VFdTirroMGPtnLh8LTcPJj"
+ "1frXRm2EmeuPRkpwJRKwzudx6RMNaXc1+Jf9A2zFBDJsOwE5n2Q1MikPlYwLvZAG"
+ "XfCLq70wrrY7hMRgXWyjcQRxJ9A6ctWYoe2t/nB+iEclwWiQVJCEAI05HglTw/Nr"
+ "xDjNCF7dLZNM4ZOMNXpxHg1KNBpbCoXtEsH05RVqJnRt3eFtgm9HfJdHfgoP32VT"
+ "FD4so6c14C7M2Usn0Ehh0RGd0MMorfP2j7CUuGdxa9fcDe67ELgkDmgDSJPq2C1U"
+ "ydp1TEbH7uDDf9vuSFNgR6b6GuSaAxjM//////////8="
+ "-----END X942 DH PARAMETERS-----");
+
+ config.set("dl", "modp/ietf/6144",
+ "-----BEGIN X942 DH PARAMETERS-----"
+ "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"
+ "jzbmIBJ//////////wIBAg=="
+ "-----END X942 DH PARAMETERS-----");
config.set("dl", "dsa/jce/512",
- "-----BEGIN DSA PARAMETERS-----"
- "MIGdAkEA/KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9jQT"
- "xeEu0ImbzRMqzVDZkVG9xD7nN1kuFwIVAJYu3cw2nLqOuyYO5rahJtk0bjjFAkEA"
- "3gtU76vylwh+5iPVylWIxkgo70/eT/uuHs0gBndrBbEbgeo83pvDlkwWh8UyW/Q9"
- "fM76DQqGvl3/3dDRFD3NdQ=="
- "-----END DSA PARAMETERS-----");
+ "-----BEGIN DSA PARAMETERS-----"
+ "MIGdAkEA/KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9jQT"
+ "xeEu0ImbzRMqzVDZkVG9xD7nN1kuFwIVAJYu3cw2nLqOuyYO5rahJtk0bjjFAkEA"
+ "3gtU76vylwh+5iPVylWIxkgo70/eT/uuHs0gBndrBbEbgeo83pvDlkwWh8UyW/Q9"
+ "fM76DQqGvl3/3dDRFD3NdQ=="
+ "-----END DSA PARAMETERS-----");
config.set("dl", "dsa/jce/768",
- "-----BEGIN DSA PARAMETERS-----"
- "MIHdAmEA6eZCWZ01XzfJf/01ZxILjiXJzUPpJ7OpZw++xdiQFBki0sOzrSSACTeZ"
- "hp0ehGqrSfqwrSbSzmoiIZ1HC859d31KIfvpwnC1f2BwAvPO+Dk2lM9F7jaIwRqM"
- "VqsSej2vAhUAnNvYTJ8awvOND4D0KrlS5zOL9RECYQDe7p717RUWzn5pXmcrjO5F"
- "5s17NuDmOF+JS6hhY/bz5sbU6KgRRtQBfe/dccvZD6Akdlm4i3zByJT0gmn9Txqs"
- "CjBTjf9rP8ds+xMcnnlltYhYqwpDtVczWRKoqlR/lWg="
- "-----END DSA PARAMETERS-----");
+ "-----BEGIN DSA PARAMETERS-----"
+ "MIHdAmEA6eZCWZ01XzfJf/01ZxILjiXJzUPpJ7OpZw++xdiQFBki0sOzrSSACTeZ"
+ "hp0ehGqrSfqwrSbSzmoiIZ1HC859d31KIfvpwnC1f2BwAvPO+Dk2lM9F7jaIwRqM"
+ "VqsSej2vAhUAnNvYTJ8awvOND4D0KrlS5zOL9RECYQDe7p717RUWzn5pXmcrjO5F"
+ "5s17NuDmOF+JS6hhY/bz5sbU6KgRRtQBfe/dccvZD6Akdlm4i3zByJT0gmn9Txqs"
+ "CjBTjf9rP8ds+xMcnnlltYhYqwpDtVczWRKoqlR/lWg="
+ "-----END DSA PARAMETERS-----");
config.set("dl", "dsa/jce/1024",
- "-----BEGIN DSA PARAMETERS-----"
- "MIIBHgKBgQD9f1OBHXUSKVLfSpwu7OTn9hG3UjzvRADDHj+AtlEmaUVdQCJR+1k9"
- "jVj6v8X1ujD2y5tVbNeBO4AdNG/yZmC3a5lQpaSfn+gEexAiwk+7qdf+t8Yb+DtX"
- "58aophUPBPuD9tPFHsMCNVQTWhaRMvZ1864rYdcq7/IiAxmd0UgBxwIVAJdgUI8V"
- "IwvMspK5gqLrhAvwWBz1AoGARpYDUS4wJ4zTlHWV2yLuyYJqYyKtyXNE9B10DDJX"
- "JMj577qn1NgD/4xgnc0QDrxb38+tfGpCX66nhuogUOvpg1HqH9of3yTWlHqmuaoj"
- "dmlTgC9NfUqOy6BtGXaKJJH/sW0O+cQ6mbX3FnL/bwoktETQc20E04oaEyLa9s3Y"
- "jJ0="
- "-----END DSA PARAMETERS-----");
+ "-----BEGIN DSA PARAMETERS-----"
+ "MIIBHgKBgQD9f1OBHXUSKVLfSpwu7OTn9hG3UjzvRADDHj+AtlEmaUVdQCJR+1k9"
+ "jVj6v8X1ujD2y5tVbNeBO4AdNG/yZmC3a5lQpaSfn+gEexAiwk+7qdf+t8Yb+DtX"
+ "58aophUPBPuD9tPFHsMCNVQTWhaRMvZ1864rYdcq7/IiAxmd0UgBxwIVAJdgUI8V"
+ "IwvMspK5gqLrhAvwWBz1AoGARpYDUS4wJ4zTlHWV2yLuyYJqYyKtyXNE9B10DDJX"
+ "JMj577qn1NgD/4xgnc0QDrxb38+tfGpCX66nhuogUOvpg1HqH9of3yTWlHqmuaoj"
+ "dmlTgC9NfUqOy6BtGXaKJJH/sW0O+cQ6mbX3FnL/bwoktETQc20E04oaEyLa9s3Y"
+ "jJ0="
+ "-----END DSA PARAMETERS-----");
+
+ config.set("dl", "dsa/botan/2048",
+ "-----BEGIN DSA PARAMETERS-----"
+ "MIICLAKCAQEAkcSKT9+898Aq6V59oSYSK13Shk9Vm4fo50oobVL1m9HeaN/WRdDg"
+ "DGDAgAMYkZgDdO61lKUyv9Z7mgnqxLhmOgeRDmjzlGX7cEDSXfE5MuusQ0elMOy6"
+ "YchU+biA08DDZgCAWHxFVm2t4mvVo5S+CTtMDyS1r/747GxbPlf7iQJam8FnaZMh"
+ "MeFtPJTvyrGNDfBhIDzFPmEDvHLVWUv9QMplOA9EqahR3LB1SV/AM6ilgHGhvXj+"
+ "BS9mVVZI60txnSr+i0iA+NrW8VgYuhePiSdMhwvpuW6wjEbEAEDMLv4d+xsYaN0x"
+ "nePDSjKmOrbrEiQgmkGWgMx5AtFyjU354QIhAIzX1FD4bwrZTu5M5GmodW0evRBY"
+ "JBlD6v+ws1RYXpJNAoIBAA2fXgdhtNvRgz1qsalhoJlsXyIwP3LYTBQPZ8Qx2Uq1"
+ "cVvqgaDJjTnOS8941rnryJXTT+idlAkdWEhhXvFfXobxHZb2yWniA936WDVkIKSc"
+ "tES1lbkBqTPP4HZ7WU8YoHt/kd7NukRriJkPePL/kfL+fNQ/0uRtGOraH3u2YCxh"
+ "f27zpLKE8v2boQo2BC3o+oeiyjZZf+yBFXoUheRAQd8CgwERy4gLvm7UlIFIhvll"
+ "zcMTX1zPE4Nyi/ZbgG+WksCxDWxMCcdabKO0ATyxarLBBfa+I66pAA6rIXiYX5cs"
+ "mAV+HIbkTnIYaI6krg82NtzKdFydzU5q/7Z8y8E9YTE="
+ "-----END DSA PARAMETERS-----");
+
+ config.set("dl", "dsa/botan/3072",
+ "-----BEGIN DSA PARAMETERS-----"
+ "MIIDLAKCAYEA5LUIgHWWY1heFCRgyi2d/xMviuTIQN2jomZoiRJP5WOLhOiim3rz"
+ "+hIJvmv8S1By7Tsrc4e68/hX9HioAijvNgC3az3Pth0g00RlslBtLK+H3259wM6R"
+ "vS0Wekb2rcwxxTHk+cervbkq3fNbCoBsZikqX14X6WTdCZkDczrEKKs12A6m9oW/"
+ "uovkBo5UGK5eytno/wc94rY+Tn6tNciptwtb1Hz7iNNztm83kxk5sKtxvVWVgJCG"
+ "2gFVM30YWg5Ps2pRmxtiArhZHmACRJzxzTpmOE9tIHOxzXO+ypO68eGmEX0COPIi"
+ "rh7X/tGFqJDn9n+rj+uXU8wTSlGD3+h64llfe1wtn7tCJJ/dWVE+HTOWs+sv2GaE"
+ "8oWoRI/nV6ApiBxAdguU75Gb35dAw4OJWZ7FGm6btRmo4GhJHpzgovz+PLYNZs8N"
+ "+tIKjsaEBIaEphREV1vRck1zUrRKdgB3s71r04XOWwpyUMwL92jagpI4Buuc+7E4"
+ "hDcxthggjHWbAiEAs+vTZOxp74zzuvZDt1c0sWM5suSeXN4bWcHp+0DuDFsCggGA"
+ "K+0h7vg5ZKIwrom7px2ffDnFL8gim047x+WUTTKdoQ8BDqyee69sAJ/E6ylgcj4r"
+ "Vt9GY+TDrIAOkljeL3ZJ0gZ4KJP4Ze/KSY0u7zAHTqXop6smJxKk2UovOwuaku5A"
+ "D7OKPMWaXcfkNtXABLIuNQKDgbUck0B+sy1K4P1Cy0XhLQ7O6KJiOO3iCCp7FSIR"
+ "PGbO+NdFxs88uUX4TS9N4W1Epx3hmCcOE/A1U8iLjTI60LlIob8hA6lJl5tu0W+1"
+ "88lT2Vt8jojKZ9z1pjb7nKOdkkIV96iE7Wx+48ltjZcVQnl0t8Q1EoLhPTdz99KL"
+ "RS8QiSoTx1hzKN6kgntrNpsqjcFyrcWD9R8qZZjFSD5bxGewL5HQWcQC0Y4sJoD3"
+ "dqoG9JKAoscsF8xC1bbnQMXEsas8UcLtCSviotiwU65Xc9FCXtKwjwbi3VBZLfGk"
+ "eMFVkc39EVZP+I/zi3IdQjkv2kcyEtz9jS2IqXagCv/m//tDCjWeZMorNRyiQSOU"
+ "-----END DSA PARAMETERS-----");
}
-
}
/*************************************************
diff --git a/src/randpool.cpp b/src/randpool.cpp
index 24086c984..69ef3b9e7 100644
--- a/src/randpool.cpp
+++ b/src/randpool.cpp
@@ -6,7 +6,7 @@
#include <botan/randpool.h>
#include <botan/lookup.h>
#include <botan/loadstor.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
#include <botan/util.h>
#include <botan/stl_util.h>
#include <algorithm>
diff --git a/src/rsa.cpp b/src/rsa.cpp
index 7f2e15892..8faec9972 100644
--- a/src/rsa.cpp
+++ b/src/rsa.cpp
@@ -55,7 +55,7 @@ SecureVector<byte> RSA_PublicKey::verify(const byte in[], u32bit len) const
RSA_PrivateKey::RSA_PrivateKey(RandomNumberGenerator& rng,
u32bit bits, u32bit exp)
{
- if(bits < 1024)
+ if(bits < 512)
throw Invalid_Argument(algo_name() + ": Can't make a key that is only " +
to_string(bits) + " bits long");
if(exp < 3 || exp % 2 == 0)
diff --git a/src/rw.cpp b/src/rw.cpp
index 4cbed6097..39cbcdd6e 100644
--- a/src/rw.cpp
+++ b/src/rw.cpp
@@ -55,7 +55,7 @@ SecureVector<byte> RW_PublicKey::verify(const byte in[], u32bit len) const
RW_PrivateKey::RW_PrivateKey(RandomNumberGenerator& rng,
u32bit bits, u32bit exp)
{
- if(bits < 1024)
+ if(bits < 512)
throw Invalid_Argument(algo_name() + ": Can't make a key that is only " +
to_string(bits) + " bits long");
if(exp < 2 || exp % 2 == 1)
diff --git a/src/safer_sk.cpp b/src/safer_sk.cpp
index c861cfdda..639130714 100644
--- a/src/safer_sk.cpp
+++ b/src/safer_sk.cpp
@@ -6,6 +6,7 @@
#include <botan/safer_sk.h>
#include <botan/bit_ops.h>
#include <botan/parsing.h>
+#include <botan/rotate.h>
namespace Botan {
diff --git a/src/symkey.cpp b/src/symkey.cpp
index f07421bef..7cc1bce64 100644
--- a/src/symkey.cpp
+++ b/src/symkey.cpp
@@ -4,7 +4,7 @@
*************************************************/
#include <botan/symkey.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
#include <botan/rng.h>
#include <botan/pipe.h>
#include <botan/hex.h>
diff --git a/src/turing.cpp b/src/turing.cpp
index 53881d9a5..017b5cf1d 100644
--- a/src/turing.cpp
+++ b/src/turing.cpp
@@ -5,7 +5,7 @@
#include <botan/turing.h>
#include <botan/loadstor.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
namespace Botan {
diff --git a/src/util.cpp b/src/util.cpp
index e340ee7f4..dea0778a1 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -6,7 +6,6 @@
#include <botan/util.h>
#include <botan/bit_ops.h>
#include <algorithm>
-#include <cmath>
namespace Botan {
@@ -29,23 +28,26 @@ u32bit round_down(u32bit n, u32bit align_to)
}
/*************************************************
-* Return the work required for solving DL *
+* Choose the exponent size for a DL group
*************************************************/
-u32bit dl_work_factor(u32bit n_bits)
+u32bit dl_work_factor(u32bit bits)
{
- const u32bit MIN_ESTIMATE = 64;
-
- if(n_bits < 32)
- return 0;
-
- const double log_x = n_bits / 1.44;
-
- const double strength =
- 2.76 * std::pow(log_x, 1.0/3.0) * std::pow(std::log(log_x), 2.0/3.0);
-
- if(strength > MIN_ESTIMATE)
- return static_cast<u32bit>(strength);
- return MIN_ESTIMATE;
+ /*
+ These values were taken from RFC 3526
+ */
+ if(bits <= 1536)
+ return 90;
+ else if(bits <= 2048)
+ return 110;
+ else if(bits <= 3072)
+ return 130;
+ else if(bits <= 4096)
+ return 150;
+ else if(bits <= 6144)
+ return 170;
+ else if(bits <= 8192)
+ return 190;
+ return 256;
}
/*************************************************
diff --git a/src/wid_wake.cpp b/src/wid_wake.cpp
index 7e69cf457..d7ebdece0 100644
--- a/src/wid_wake.cpp
+++ b/src/wid_wake.cpp
@@ -5,7 +5,7 @@
#include <botan/wid_wake.h>
#include <botan/loadstor.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
namespace Botan {
diff --git a/src/x919_mac.cpp b/src/x919_mac.cpp
index b9c6fd2c5..92ec7b7b8 100644
--- a/src/x919_mac.cpp
+++ b/src/x919_mac.cpp
@@ -5,7 +5,7 @@
#include <botan/x919_mac.h>
#include <botan/lookup.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
#include <algorithm>
namespace Botan {
diff --git a/src/x931_rng.cpp b/src/x931_rng.cpp
index 8f454dcb8..f4b0f71a9 100644
--- a/src/x931_rng.cpp
+++ b/src/x931_rng.cpp
@@ -5,7 +5,7 @@
#include <botan/x931_rng.h>
#include <botan/lookup.h>
-#include <botan/bit_ops.h>
+#include <botan/xor_buf.h>
#include <algorithm>
namespace Botan {