Skip to content

Commit f48fa90

Browse files
committed
Fix conversion warning in sha2
+ constexpr + mark methods noexcept for sha and sha2
1 parent 748a5e4 commit f48fa90

File tree

4 files changed

+72
-73
lines changed

4 files changed

+72
-73
lines changed

src/common/sha.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ namespace
2525
#define SHA_DIGESTSIZE Sha1::HASH_SIZE
2626
typedef Sha1::ShaInfo SHA_INFO;
2727

28-
void sha_init(SHA_INFO *);
28+
void sha_init(SHA_INFO *) noexcept;
2929
void sha_update(SHA_INFO *, const BYTE *, size_t);
30-
void sha_final(unsigned char [SHA_DIGESTSIZE], SHA_INFO *);
30+
void sha_final(unsigned char [SHA_DIGESTSIZE], SHA_INFO *) noexcept;
3131

3232
#define SHA_VERSION 1
3333

@@ -124,7 +124,7 @@ void sha_final(unsigned char [SHA_DIGESTSIZE], SHA_INFO *);
124124

125125
// do SHA transformation
126126

127-
static void sha_transform(SHA_INFO *sha_info)
127+
static void sha_transform(SHA_INFO *sha_info) noexcept
128128
{
129129
int i;
130130
Sha1::LONG W[80];
@@ -243,7 +243,7 @@ nether regions of the anatomy...
243243

244244
// initialize the SHA digest
245245

246-
void sha_init(SHA_INFO *sha_info)
246+
void sha_init(SHA_INFO *sha_info) noexcept
247247
{
248248
sha_info->digest[0] = 0x67452301L;
249249
sha_info->digest[1] = 0xefcdab89L;
@@ -295,7 +295,7 @@ void sha_update(SHA_INFO *sha_info, const BYTE *buffer, size_t count)
295295

296296
// finish computing the SHA digest
297297

298-
void sha_final(unsigned char digest[SHA_DIGESTSIZE], SHA_INFO *sha_info)
298+
void sha_final(unsigned char digest[SHA_DIGESTSIZE], SHA_INFO *sha_info) noexcept
299299
{
300300
const Sha1::LONG lo_bit_count = sha_info->count_lo;
301301
const Sha1::LONG hi_bit_count = sha_info->count_hi;
@@ -355,7 +355,7 @@ namespace Firebird {
355355
fb_utils::base64(hash, b);
356356
}
357357

358-
Sha1::Sha1()
358+
Sha1::Sha1() noexcept
359359
: active(false)
360360
{
361361
reset();
@@ -372,7 +372,7 @@ namespace Firebird {
372372
sha_final(hash.getBuffer(HASH_SIZE), &handle);
373373
}
374374

375-
void Sha1::reset()
375+
void Sha1::reset() noexcept
376376
{
377377
clear();
378378
sha_init(&handle);
@@ -384,7 +384,7 @@ namespace Firebird {
384384
clear();
385385
}
386386

387-
void Sha1::clear()
387+
void Sha1::clear() noexcept
388388
{
389389
if (active)
390390
{

src/common/sha.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ namespace Firebird {
3333
class Sha1 : public GlobalStorage
3434
{
3535
public:
36-
Sha1();
36+
Sha1() noexcept;
3737

38-
static const unsigned int HASH_SIZE = 20;
39-
static const unsigned int BLOCK_SIZE = 64;
38+
static constexpr unsigned int HASH_SIZE = 20;
39+
static constexpr unsigned int BLOCK_SIZE = 64;
4040
typedef unsigned long LONG;
4141

4242
struct ShaInfo
@@ -65,14 +65,14 @@ class Sha1 : public GlobalStorage
6565
}
6666

6767
void getHash(UCharBuffer& h);
68-
void reset();
68+
void reset() noexcept;
6969
~Sha1();
7070

7171
// return base64-coded values
7272
static void hashBased64(Firebird::string& hashBase64, const Firebird::string& data);
7373

7474
private:
75-
void clear();
75+
void clear() noexcept;
7676

7777
ShaInfo handle;
7878
bool active;

src/common/sha2/sha2.cpp

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -129,27 +129,27 @@
129129
namespace Firebird {
130130

131131

132-
sha2_types::uint32 sha224_h0[8] =
132+
static constexpr sha2_types::uint32 sha224_h0[8] =
133133
{0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
134134
0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4};
135135

136-
sha2_types::uint32 sha256_h0[8] =
136+
static constexpr sha2_types::uint32 sha256_h0[8] =
137137
{0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
138138
0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19};
139139

140-
sha2_types::uint64 sha384_h0[8] =
140+
static constexpr sha2_types::uint64 sha384_h0[8] =
141141
{0xcbbb9d5dc1059ed8ULL, 0x629a292a367cd507ULL,
142142
0x9159015a3070dd17ULL, 0x152fecd8f70e5939ULL,
143143
0x67332667ffc00b31ULL, 0x8eb44a8768581511ULL,
144144
0xdb0c2e0d64f98fa7ULL, 0x47b5481dbefa4fa4ULL};
145145

146-
sha2_types::uint64 sha512_h0[8] =
146+
static constexpr sha2_types::uint64 sha512_h0[8] =
147147
{0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL,
148148
0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL,
149149
0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,
150150
0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL};
151151

152-
sha2_types::uint32 sha256_k[64] =
152+
static constexpr sha2_types::uint32 sha256_k[64] =
153153
{0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
154154
0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
155155
0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
@@ -167,7 +167,7 @@ sha2_types::uint32 sha256_k[64] =
167167
0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
168168
0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2};
169169

170-
sha2_types::uint64 sha512_k[80] =
170+
static constexpr sha2_types::uint64 sha512_k[80] =
171171
{0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL,
172172
0xb5c0fbcfec4d3b2fULL, 0xe9b5dba58189dbbcULL,
173173
0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL,
@@ -212,7 +212,7 @@ sha2_types::uint64 sha512_k[80] =
212212
/* SHA-256 context structure */
213213

214214
void sha256_ctx::transf(const unsigned char* message,
215-
unsigned int block_nb)
215+
unsigned int block_nb) noexcept
216216
{
217217
typedef sha2_types::uint32 uint32;
218218

@@ -330,7 +330,7 @@ void sha256_ctx::transf(const unsigned char* message,
330330

331331
/* SHA-256 functions */
332332

333-
void sha256_traits::sha_init(sha256_ctx* ctx)
333+
void sha256_traits::sha_init(sha256_ctx* ctx) noexcept
334334
{
335335
#ifndef UNROLL_LOOPS
336336
for (int i = 0; i < 8; i++)
@@ -349,10 +349,10 @@ void sha256_traits::sha_init(sha256_ctx* ctx)
349349
}
350350

351351
void sha256_traits::sha_update(sha256_ctx* ctx, const unsigned char* message,
352-
unsigned int len)
352+
unsigned int len) noexcept
353353
{
354354
const unsigned int tmp_len = SHA256_BLOCK_SIZE - ctx->len;
355-
unsigned int rem_len = len < tmp_len ? len : tmp_len;
355+
unsigned int rem_len = std::min(len, tmp_len);
356356

357357
memcpy(&ctx->block[ctx->len], message, rem_len);
358358

@@ -378,7 +378,7 @@ void sha256_traits::sha_update(sha256_ctx* ctx, const unsigned char* message,
378378
ctx->tot_len += (block_nb + 1) << 6;
379379
}
380380

381-
void sha256_traits::sha_final(sha256_ctx* ctx, unsigned char* digest)
381+
void sha256_traits::sha_final(sha256_ctx* ctx, unsigned char* digest) noexcept
382382
{
383383
const unsigned int block_nb = (1 + ((SHA256_BLOCK_SIZE - 9) < (ctx->len % SHA256_BLOCK_SIZE)));
384384

@@ -411,7 +411,7 @@ void sha256_traits::sha_final(sha256_ctx* ctx, unsigned char* digest)
411411
/* SHA-512 context structure */
412412

413413
void sha512_ctx::transf(const unsigned char* message,
414-
unsigned int block_nb)
414+
unsigned int block_nb) noexcept
415415
{
416416
typedef sha2_types::uint64 uint64;
417417

@@ -514,7 +514,7 @@ void sha512_ctx::transf(const unsigned char* message,
514514

515515
/* SHA-512 functions */
516516

517-
void sha512_traits::sha_init(sha_ctx* ctx)
517+
void sha512_traits::sha_init(sha_ctx* ctx) noexcept
518518
{
519519
#ifndef UNROLL_LOOPS
520520
for (int i = 0; i < 8; i++)
@@ -533,7 +533,7 @@ void sha512_traits::sha_init(sha_ctx* ctx)
533533
}
534534

535535
void sha512_traits::sha_update(sha_ctx* ctx, const unsigned char* message,
536-
unsigned int len)
536+
unsigned int len) noexcept
537537
{
538538
const unsigned int tmp_len = SHA512_BLOCK_SIZE - ctx->len;
539539
unsigned int rem_len = len < tmp_len ? len : tmp_len;
@@ -562,7 +562,7 @@ void sha512_traits::sha_update(sha_ctx* ctx, const unsigned char* message,
562562
ctx->tot_len += (block_nb + 1) << 7;
563563
}
564564

565-
void sha512_traits::sha_final(sha_ctx* ctx, unsigned char* digest)
565+
void sha512_traits::sha_final(sha_ctx* ctx, unsigned char* digest) noexcept
566566
{
567567
const unsigned int block_nb = 1 + ((SHA512_BLOCK_SIZE - 17) < (ctx->len % SHA512_BLOCK_SIZE));
568568

@@ -594,7 +594,7 @@ void sha512_traits::sha_final(sha_ctx* ctx, unsigned char* digest)
594594

595595
/* SHA-384 functions */
596596

597-
void sha384_traits::sha_init(sha_ctx *ctx)
597+
void sha384_traits::sha_init(sha_ctx *ctx) noexcept
598598
{
599599
#ifndef UNROLL_LOOPS
600600
for (int i = 0; i < 8; i++)
@@ -613,7 +613,7 @@ void sha384_traits::sha_init(sha_ctx *ctx)
613613
}
614614

615615
void sha384_traits::sha_update(sha_ctx* ctx,const unsigned char* message,
616-
unsigned int len)
616+
unsigned int len) noexcept
617617
{
618618
const unsigned int tmp_len = SHA384_BLOCK_SIZE - ctx->len;
619619
unsigned int rem_len = len < tmp_len ? len : tmp_len;
@@ -642,7 +642,7 @@ void sha384_traits::sha_update(sha_ctx* ctx,const unsigned char* message,
642642
ctx->tot_len += (block_nb + 1) << 7;
643643
}
644644

645-
void sha384_traits::sha_final(sha_ctx* ctx, unsigned char* digest)
645+
void sha384_traits::sha_final(sha_ctx* ctx, unsigned char* digest) noexcept
646646
{
647647
const unsigned int block_nb = (1 + ((SHA384_BLOCK_SIZE - 17) < (ctx->len % SHA384_BLOCK_SIZE)));
648648

@@ -672,7 +672,7 @@ void sha384_traits::sha_final(sha_ctx* ctx, unsigned char* digest)
672672

673673
/* SHA-224 functions */
674674

675-
void sha224_traits::sha_init(sha_ctx* ctx)
675+
void sha224_traits::sha_init(sha_ctx* ctx) noexcept
676676
{
677677
#ifndef UNROLL_LOOPS
678678
for (int i = 0; i < 8; i++)
@@ -691,7 +691,7 @@ void sha224_traits::sha_init(sha_ctx* ctx)
691691
}
692692

693693
void sha224_traits::sha_update(sha_ctx* ctx, const unsigned char* message,
694-
unsigned int len)
694+
unsigned int len) noexcept
695695
{
696696
const unsigned int tmp_len = SHA224_BLOCK_SIZE - ctx->len;
697697
unsigned int rem_len = len < tmp_len ? len : tmp_len;
@@ -720,7 +720,7 @@ void sha224_traits::sha_update(sha_ctx* ctx, const unsigned char* message,
720720
ctx->tot_len += (block_nb + 1) << 6;
721721
}
722722

723-
void sha224_traits::sha_final(sha_ctx* ctx, unsigned char* digest)
723+
void sha224_traits::sha_final(sha_ctx* ctx, unsigned char* digest) noexcept
724724
{
725725
const unsigned int block_nb = (1 + ((SHA224_BLOCK_SIZE - 9) < (ctx->len % SHA224_BLOCK_SIZE)));
726726

0 commit comments

Comments
 (0)