aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Lloyd <[email protected]>2018-12-04 09:35:41 -0500
committerJack Lloyd <[email protected]>2018-12-04 09:35:41 -0500
commit4e16f683d7fd3a2ab0553c9423fc725798cd899f (patch)
tree208f30df5b1922442e2804c5c9299659bc99c77a
parent50de06c585609d969da5b9ab5812e62328bacaee (diff)
Silence MSVC warnings
static_casts for the compiler god
-rw-r--r--src/lib/pubkey/ed25519/ed25519_fe.cpp64
-rw-r--r--src/lib/pubkey/ed25519/sc_muladd.cpp64
-rw-r--r--src/lib/pubkey/ed25519/sc_reduce.cpp64
-rw-r--r--src/lib/pubkey/mce/code_based_key_gen.cpp2
-rw-r--r--src/lib/pubkey/newhope/newhope.cpp16
-rw-r--r--src/lib/pubkey/xmss/xmss_common_ops.cpp2
-rw-r--r--src/lib/pubkey/xmss/xmss_signature_operation.cpp4
-rw-r--r--src/lib/stream/ctr/ctr.cpp4
-rw-r--r--src/lib/tls/tls_extensions.cpp6
-rw-r--r--src/lib/x509/x509cert.cpp4
10 files changed, 116 insertions, 114 deletions
diff --git a/src/lib/pubkey/ed25519/ed25519_fe.cpp b/src/lib/pubkey/ed25519/ed25519_fe.cpp
index d442d89a7..135813d39 100644
--- a/src/lib/pubkey/ed25519/ed25519_fe.cpp
+++ b/src/lib/pubkey/ed25519/ed25519_fe.cpp
@@ -717,38 +717,38 @@ void FE_25519::to_bytes(uint8_t s[32]) const
Goal: Output h0+...+2^230 h9.
*/
- s[0] = h0 >> 0;
- s[1] = h0 >> 8;
- s[2] = h0 >> 16;
- s[3] = (h0 >> 24) | (h1 << 2);
- s[4] = h1 >> 6;
- s[5] = h1 >> 14;
- s[6] = (h1 >> 22) | (h2 << 3);
- s[7] = h2 >> 5;
- s[8] = h2 >> 13;
- s[9] = (h2 >> 21) | (h3 << 5);
- s[10] = h3 >> 3;
- s[11] = h3 >> 11;
- s[12] = (h3 >> 19) | (h4 << 6);
- s[13] = h4 >> 2;
- s[14] = h4 >> 10;
- s[15] = h4 >> 18;
- s[16] = h5 >> 0;
- s[17] = h5 >> 8;
- s[18] = h5 >> 16;
- s[19] = (h5 >> 24) | (h6 << 1);
- s[20] = h6 >> 7;
- s[21] = h6 >> 15;
- s[22] = (h6 >> 23) | (h7 << 3);
- s[23] = h7 >> 5;
- s[24] = h7 >> 13;
- s[25] = (h7 >> 21) | (h8 << 4);
- s[26] = h8 >> 4;
- s[27] = h8 >> 12;
- s[28] = (h8 >> 20) | (h9 << 6);
- s[29] = h9 >> 2;
- s[30] = h9 >> 10;
- s[31] = h9 >> 18;
+ s[0] = static_cast<uint8_t>(h0 >> 0);
+ s[1] = static_cast<uint8_t>(h0 >> 8);
+ s[2] = static_cast<uint8_t>(h0 >> 16);
+ s[3] = static_cast<uint8_t>((h0 >> 24) | (h1 << 2));
+ s[4] = static_cast<uint8_t>(h1 >> 6);
+ s[5] = static_cast<uint8_t>(h1 >> 14);
+ s[6] = static_cast<uint8_t>((h1 >> 22) | (h2 << 3));
+ s[7] = static_cast<uint8_t>(h2 >> 5);
+ s[8] = static_cast<uint8_t>(h2 >> 13);
+ s[9] = static_cast<uint8_t>((h2 >> 21) | (h3 << 5));
+ s[10] = static_cast<uint8_t>(h3 >> 3);
+ s[11] = static_cast<uint8_t>(h3 >> 11);
+ s[12] = static_cast<uint8_t>((h3 >> 19) | (h4 << 6));
+ s[13] = static_cast<uint8_t>(h4 >> 2);
+ s[14] = static_cast<uint8_t>(h4 >> 10);
+ s[15] = static_cast<uint8_t>(h4 >> 18);
+ s[16] = static_cast<uint8_t>(h5 >> 0);
+ s[17] = static_cast<uint8_t>(h5 >> 8);
+ s[18] = static_cast<uint8_t>(h5 >> 16);
+ s[19] = static_cast<uint8_t>((h5 >> 24) | (h6 << 1));
+ s[20] = static_cast<uint8_t>(h6 >> 7);
+ s[21] = static_cast<uint8_t>(h6 >> 15);
+ s[22] = static_cast<uint8_t>((h6 >> 23) | (h7 << 3));
+ s[23] = static_cast<uint8_t>(h7 >> 5);
+ s[24] = static_cast<uint8_t>(h7 >> 13);
+ s[25] = static_cast<uint8_t>((h7 >> 21) | (h8 << 4));
+ s[26] = static_cast<uint8_t>(h8 >> 4);
+ s[27] = static_cast<uint8_t>(h8 >> 12);
+ s[28] = static_cast<uint8_t>((h8 >> 20) | (h9 << 6));
+ s[29] = static_cast<uint8_t>(h9 >> 2);
+ s[30] = static_cast<uint8_t>(h9 >> 10);
+ s[31] = static_cast<uint8_t>(h9 >> 18);
}
}
diff --git a/src/lib/pubkey/ed25519/sc_muladd.cpp b/src/lib/pubkey/ed25519/sc_muladd.cpp
index 711118ceb..4a88be22d 100644
--- a/src/lib/pubkey/ed25519/sc_muladd.cpp
+++ b/src/lib/pubkey/ed25519/sc_muladd.cpp
@@ -184,38 +184,38 @@ void sc_muladd(uint8_t* s, const uint8_t* a, const uint8_t* b, const uint8_t* c)
carry0<21>(s9, s10);
carry0<21>(s10, s11);
- s[0] = s0 >> 0;
- s[1] = s0 >> 8;
- s[2] = (s0 >> 16) | (s1 << 5);
- s[3] = s1 >> 3;
- s[4] = s1 >> 11;
- s[5] = (s1 >> 19) | (s2 << 2);
- s[6] = s2 >> 6;
- s[7] = (s2 >> 14) | (s3 << 7);
- s[8] = s3 >> 1;
- s[9] = s3 >> 9;
- s[10] = (s3 >> 17) | (s4 << 4);
- s[11] = s4 >> 4;
- s[12] = s4 >> 12;
- s[13] = (s4 >> 20) | (s5 << 1);
- s[14] = s5 >> 7;
- s[15] = (s5 >> 15) | (s6 << 6);
- s[16] = s6 >> 2;
- s[17] = s6 >> 10;
- s[18] = (s6 >> 18) | (s7 << 3);
- s[19] = s7 >> 5;
- s[20] = s7 >> 13;
- s[21] = s8 >> 0;
- s[22] = s8 >> 8;
- s[23] = (s8 >> 16) | (s9 << 5);
- s[24] = s9 >> 3;
- s[25] = s9 >> 11;
- s[26] = (s9 >> 19) | (s10 << 2);
- s[27] = s10 >> 6;
- s[28] = (s10 >> 14) | (s11 << 7);
- s[29] = s11 >> 1;
- s[30] = s11 >> 9;
- s[31] = s11 >> 17;
+ s[0] = static_cast<uint8_t>(s0 >> 0);
+ s[1] = static_cast<uint8_t>(s0 >> 8);
+ s[2] = static_cast<uint8_t>((s0 >> 16) | (s1 << 5));
+ s[3] = static_cast<uint8_t>(s1 >> 3);
+ s[4] = static_cast<uint8_t>(s1 >> 11);
+ s[5] = static_cast<uint8_t>((s1 >> 19) | (s2 << 2));
+ s[6] = static_cast<uint8_t>(s2 >> 6);
+ s[7] = static_cast<uint8_t>((s2 >> 14) | (s3 << 7));
+ s[8] = static_cast<uint8_t>(s3 >> 1);
+ s[9] = static_cast<uint8_t>(s3 >> 9);
+ s[10] = static_cast<uint8_t>((s3 >> 17) | (s4 << 4));
+ s[11] = static_cast<uint8_t>(s4 >> 4);
+ s[12] = static_cast<uint8_t>(s4 >> 12);
+ s[13] = static_cast<uint8_t>((s4 >> 20) | (s5 << 1));
+ s[14] = static_cast<uint8_t>(s5 >> 7);
+ s[15] = static_cast<uint8_t>((s5 >> 15) | (s6 << 6));
+ s[16] = static_cast<uint8_t>(s6 >> 2);
+ s[17] = static_cast<uint8_t>(s6 >> 10);
+ s[18] = static_cast<uint8_t>((s6 >> 18) | (s7 << 3));
+ s[19] = static_cast<uint8_t>(s7 >> 5);
+ s[20] = static_cast<uint8_t>(s7 >> 13);
+ s[21] = static_cast<uint8_t>(s8 >> 0);
+ s[22] = static_cast<uint8_t>(s8 >> 8);
+ s[23] = static_cast<uint8_t>((s8 >> 16) | (s9 << 5));
+ s[24] = static_cast<uint8_t>(s9 >> 3);
+ s[25] = static_cast<uint8_t>(s9 >> 11);
+ s[26] = static_cast<uint8_t>((s9 >> 19) | (s10 << 2));
+ s[27] = static_cast<uint8_t>(s10 >> 6);
+ s[28] = static_cast<uint8_t>((s10 >> 14) | (s11 << 7));
+ s[29] = static_cast<uint8_t>(s11 >> 1);
+ s[30] = static_cast<uint8_t>(s11 >> 9);
+ s[31] = static_cast<uint8_t>(s11 >> 17);
}
}
diff --git a/src/lib/pubkey/ed25519/sc_reduce.cpp b/src/lib/pubkey/ed25519/sc_reduce.cpp
index 250e603e4..c69dd5ecc 100644
--- a/src/lib/pubkey/ed25519/sc_reduce.cpp
+++ b/src/lib/pubkey/ed25519/sc_reduce.cpp
@@ -122,38 +122,38 @@ void sc_reduce(uint8_t* s)
carry0<21>(s10, s11);
carry0<21>(s11, s12);
- s[0] = s0 >> 0;
- s[1] = s0 >> 8;
- s[2] = (s0 >> 16) | (s1 << 5);
- s[3] = s1 >> 3;
- s[4] = s1 >> 11;
- s[5] = (s1 >> 19) | (s2 << 2);
- s[6] = s2 >> 6;
- s[7] = (s2 >> 14) | (s3 << 7);
- s[8] = s3 >> 1;
- s[9] = s3 >> 9;
- s[10] = (s3 >> 17) | (s4 << 4);
- s[11] = s4 >> 4;
- s[12] = s4 >> 12;
- s[13] = (s4 >> 20) | (s5 << 1);
- s[14] = s5 >> 7;
- s[15] = (s5 >> 15) | (s6 << 6);
- s[16] = s6 >> 2;
- s[17] = s6 >> 10;
- s[18] = (s6 >> 18) | (s7 << 3);
- s[19] = s7 >> 5;
- s[20] = s7 >> 13;
- s[21] = s8 >> 0;
- s[22] = s8 >> 8;
- s[23] = (s8 >> 16) | (s9 << 5);
- s[24] = s9 >> 3;
- s[25] = s9 >> 11;
- s[26] = (s9 >> 19) | (s10 << 2);
- s[27] = s10 >> 6;
- s[28] = (s10 >> 14) | (s11 << 7);
- s[29] = s11 >> 1;
- s[30] = s11 >> 9;
- s[31] = s11 >> 17;
+ s[0] = static_cast<uint8_t>(s0 >> 0);
+ s[1] = static_cast<uint8_t>(s0 >> 8);
+ s[2] = static_cast<uint8_t>((s0 >> 16) | (s1 << 5));
+ s[3] = static_cast<uint8_t>(s1 >> 3);
+ s[4] = static_cast<uint8_t>(s1 >> 11);
+ s[5] = static_cast<uint8_t>((s1 >> 19) | (s2 << 2));
+ s[6] = static_cast<uint8_t>(s2 >> 6);
+ s[7] = static_cast<uint8_t>((s2 >> 14) | (s3 << 7));
+ s[8] = static_cast<uint8_t>(s3 >> 1);
+ s[9] = static_cast<uint8_t>(s3 >> 9);
+ s[10] = static_cast<uint8_t>((s3 >> 17) | (s4 << 4));
+ s[11] = static_cast<uint8_t>(s4 >> 4);
+ s[12] = static_cast<uint8_t>(s4 >> 12);
+ s[13] = static_cast<uint8_t>((s4 >> 20) | (s5 << 1));
+ s[14] = static_cast<uint8_t>(s5 >> 7);
+ s[15] = static_cast<uint8_t>((s5 >> 15) | (s6 << 6));
+ s[16] = static_cast<uint8_t>(s6 >> 2);
+ s[17] = static_cast<uint8_t>(s6 >> 10);
+ s[18] = static_cast<uint8_t>((s6 >> 18) | (s7 << 3));
+ s[19] = static_cast<uint8_t>(s7 >> 5);
+ s[20] = static_cast<uint8_t>(s7 >> 13);
+ s[21] = static_cast<uint8_t>(s8 >> 0);
+ s[22] = static_cast<uint8_t>(s8 >> 8);
+ s[23] = static_cast<uint8_t>((s8 >> 16) | (s9 << 5));
+ s[24] = static_cast<uint8_t>(s9 >> 3);
+ s[25] = static_cast<uint8_t>(s9 >> 11);
+ s[26] = static_cast<uint8_t>((s9 >> 19) | (s10 << 2));
+ s[27] = static_cast<uint8_t>(s10 >> 6);
+ s[28] = static_cast<uint8_t>((s10 >> 14) | (s11 << 7));
+ s[29] = static_cast<uint8_t>(s11 >> 1);
+ s[30] = static_cast<uint8_t>(s11 >> 9);
+ s[31] = static_cast<uint8_t>(s11 >> 17);
}
}
diff --git a/src/lib/pubkey/mce/code_based_key_gen.cpp b/src/lib/pubkey/mce/code_based_key_gen.cpp
index b655b543b..7ddc45655 100644
--- a/src/lib/pubkey/mce/code_based_key_gen.cpp
+++ b/src/lib/pubkey/mce/code_based_key_gen.cpp
@@ -199,7 +199,7 @@ std::unique_ptr<binary_matrix> generate_R(std::vector<gf2m> &L, polyn_gf2m* g, s
}
for (i = 0; i < code_length; ++i)
{
- L[i] = Laux[i];
+ L[i] = static_cast<gf2m>(Laux[i]);
}
return result;
}
diff --git a/src/lib/pubkey/newhope/newhope.cpp b/src/lib/pubkey/newhope/newhope.cpp
index b5d841144..1c6a841d5 100644
--- a/src/lib/pubkey/newhope/newhope.cpp
+++ b/src/lib/pubkey/newhope/newhope.cpp
@@ -63,7 +63,7 @@ inline void ntt(uint16_t* a, const uint16_t* omega)
for(size_t i = 0; i < 10; i+=2)
{
// Even level
- size_t distance = (1<<i);
+ size_t distance = (1ULL << i);
for(size_t start = 0; start < distance; start++)
{
size_t jTwiddle = 0;
@@ -138,12 +138,12 @@ inline void poly_tobytes(uint8_t* r, const poly* p)
t3 = m ^ ((t3^m)&c); // <Make sure that coefficients are in [0,q]
r[7*i+0] = t0 & 0xff;
- r[7*i+1] = (t0 >> 8) | (t1 << 6);
- r[7*i+2] = (t1 >> 2);
- r[7*i+3] = (t1 >> 10) | (t2 << 4);
- r[7*i+4] = (t2 >> 4);
- r[7*i+5] = (t2 >> 12) | (t3 << 2);
- r[7*i+6] = (t3 >> 6);
+ r[7*i+1] = static_cast<uint8_t>((t0 >> 8) | (t1 << 6));
+ r[7*i+2] = static_cast<uint8_t>((t1 >> 2));
+ r[7*i+3] = static_cast<uint8_t>((t1 >> 10) | (t2 << 4));
+ r[7*i+4] = static_cast<uint8_t>((t2 >> 4));
+ r[7*i+5] = static_cast<uint8_t>((t2 >> 12) | (t3 << 2));
+ r[7*i+6] = static_cast<uint8_t>((t3 >> 6));
}
}
@@ -163,7 +163,7 @@ inline void poly_getnoise(Botan::RandomNumberGenerator& rng, poly* r)
}
const uint32_t a = ((d >> 8) & 0xff) + (d & 0xff);
const uint32_t b = (d >> 24) + ((d >> 16) & 0xff);
- r->coeffs[i] = a + PARAM_Q - b;
+ r->coeffs[i] = static_cast<uint16_t>(a + PARAM_Q - b);
}
}
diff --git a/src/lib/pubkey/xmss/xmss_common_ops.cpp b/src/lib/pubkey/xmss/xmss_common_ops.cpp
index 7b1ed057b..305f6dfe0 100644
--- a/src/lib/pubkey/xmss/xmss_common_ops.cpp
+++ b/src/lib/pubkey/xmss/xmss_common_ops.cpp
@@ -56,7 +56,7 @@ XMSS_Common_Ops::create_l_tree(secure_vector<uint8_t>& result,
{
for(size_t i = 0; i < l >> 1; i++)
{
- adrs.set_tree_index(i);
+ adrs.set_tree_index(static_cast<uint32_t>(i));
randomize_tree_hash(pk[i], pk[2 * i], pk[2 * i + 1], adrs, seed, hash);
}
if(l & 0x01)
diff --git a/src/lib/pubkey/xmss/xmss_signature_operation.cpp b/src/lib/pubkey/xmss/xmss_signature_operation.cpp
index 8c53cd924..f7a9079a4 100644
--- a/src/lib/pubkey/xmss/xmss_signature_operation.cpp
+++ b/src/lib/pubkey/xmss/xmss_signature_operation.cpp
@@ -69,8 +69,8 @@ XMSS_Signature_Operation::build_auth_path(XMSS_PrivateKey& priv_key,
for(size_t j = 0; j < m_xmss_params.tree_height(); j++)
{
- size_t k = (m_leaf_idx / (1 << j)) ^ 0x01;
- auth_path[j] = priv_key.tree_hash(k * (1 << j), j, adrs);
+ size_t k = (m_leaf_idx / (1ULL << j)) ^ 0x01;
+ auth_path[j] = priv_key.tree_hash(k * (1ULL << j), j, adrs);
}
return auth_path;
diff --git a/src/lib/stream/ctr/ctr.cpp b/src/lib/stream/ctr/ctr.cpp
index 22cfade9b..219d8042c 100644
--- a/src/lib/stream/ctr/ctr.cpp
+++ b/src/lib/stream/ctr/ctr.cpp
@@ -142,7 +142,7 @@ void CTR_BE::add_counter(const uint64_t counter)
if(ctr_size == 4)
{
size_t off = (BS - 4);
- uint32_t low32 = counter + load_be<uint32_t>(&m_counter[off], 0);
+ uint32_t low32 = static_cast<uint32_t>(counter + load_be<uint32_t>(&m_counter[off], 0));
for(size_t i = 0; i != ctr_blocks; ++i)
{
@@ -217,7 +217,7 @@ void CTR_BE::seek(uint64_t offset)
for(size_t i = 1; i != m_ctr_blocks; ++i)
{
copy_mem(&m_counter[i*BS], &m_counter[0], BS);
- uint32_t c = low32 + i;
+ const uint32_t c = static_cast<uint32_t>(low32 + i);
store_be(c, &m_counter[(BS-4)+i*BS]);
}
}
diff --git a/src/lib/tls/tls_extensions.cpp b/src/lib/tls/tls_extensions.cpp
index e77de9c5e..c5e6f2831 100644
--- a/src/lib/tls/tls_extensions.cpp
+++ b/src/lib/tls/tls_extensions.cpp
@@ -97,7 +97,7 @@ std::vector<uint8_t> Extensions::serialize() const
if(extn.second->empty())
continue;
- const uint16_t extn_code = extn.second->type();
+ const uint16_t extn_code = static_cast<uint16_t>(extn.second->type());
std::vector<uint8_t> extn_val = extn.second->serialize();
@@ -404,9 +404,11 @@ Supported_Point_Formats::Supported_Point_Formats(TLS_Data_Reader& reader,
std::vector<uint8_t> Signature_Algorithms::serialize() const
{
+ BOTAN_ASSERT(m_schemes.size() < 256, "Too many signature schemes");
+
std::vector<uint8_t> buf;
- const uint16_t len = m_schemes.size() * 2;
+ const uint16_t len = static_cast<uint16_t>(m_schemes.size() * 2);
buf.push_back(get_byte(0, len));
buf.push_back(get_byte(1, len));
diff --git a/src/lib/x509/x509cert.cpp b/src/lib/x509/x509cert.cpp
index 9ed521f16..5bc04a9a2 100644
--- a/src/lib/x509/x509cert.cpp
+++ b/src/lib/x509/x509cert.cpp
@@ -343,7 +343,7 @@ const X509_Certificate_Data& X509_Certificate::data() const
uint32_t X509_Certificate::x509_version() const
{
- return data().m_version;
+ return static_cast<uint32_t>(data().m_version);
}
bool X509_Certificate::is_self_signed() const
@@ -447,7 +447,7 @@ bool X509_Certificate::is_CA_cert() const
uint32_t X509_Certificate::path_limit() const
{
- return data().m_path_len_constraint;
+ return static_cast<uint32_t>(data().m_path_len_constraint);
}
Key_Constraints X509_Certificate::constraints() const