129
129
namespace Firebird {
130
130
131
131
132
- sha2_types::uint32 sha224_h0[8 ] =
132
+ static constexpr sha2_types::uint32 sha224_h0[8 ] =
133
133
{0xc1059ed8 , 0x367cd507 , 0x3070dd17 , 0xf70e5939 ,
134
134
0xffc00b31 , 0x68581511 , 0x64f98fa7 , 0xbefa4fa4 };
135
135
136
- sha2_types::uint32 sha256_h0[8 ] =
136
+ static constexpr sha2_types::uint32 sha256_h0[8 ] =
137
137
{0x6a09e667 , 0xbb67ae85 , 0x3c6ef372 , 0xa54ff53a ,
138
138
0x510e527f , 0x9b05688c , 0x1f83d9ab , 0x5be0cd19 };
139
139
140
- sha2_types::uint64 sha384_h0[8 ] =
140
+ static constexpr sha2_types::uint64 sha384_h0[8 ] =
141
141
{0xcbbb9d5dc1059ed8ULL , 0x629a292a367cd507ULL ,
142
142
0x9159015a3070dd17ULL , 0x152fecd8f70e5939ULL ,
143
143
0x67332667ffc00b31ULL , 0x8eb44a8768581511ULL ,
144
144
0xdb0c2e0d64f98fa7ULL , 0x47b5481dbefa4fa4ULL };
145
145
146
- sha2_types::uint64 sha512_h0[8 ] =
146
+ static constexpr sha2_types::uint64 sha512_h0[8 ] =
147
147
{0x6a09e667f3bcc908ULL , 0xbb67ae8584caa73bULL ,
148
148
0x3c6ef372fe94f82bULL , 0xa54ff53a5f1d36f1ULL ,
149
149
0x510e527fade682d1ULL , 0x9b05688c2b3e6c1fULL ,
150
150
0x1f83d9abfb41bd6bULL , 0x5be0cd19137e2179ULL };
151
151
152
- sha2_types::uint32 sha256_k[64 ] =
152
+ static constexpr sha2_types::uint32 sha256_k[64 ] =
153
153
{0x428a2f98 , 0x71374491 , 0xb5c0fbcf , 0xe9b5dba5 ,
154
154
0x3956c25b , 0x59f111f1 , 0x923f82a4 , 0xab1c5ed5 ,
155
155
0xd807aa98 , 0x12835b01 , 0x243185be , 0x550c7dc3 ,
@@ -167,7 +167,7 @@ sha2_types::uint32 sha256_k[64] =
167
167
0x748f82ee , 0x78a5636f , 0x84c87814 , 0x8cc70208 ,
168
168
0x90befffa , 0xa4506ceb , 0xbef9a3f7 , 0xc67178f2 };
169
169
170
- sha2_types::uint64 sha512_k[80 ] =
170
+ static constexpr sha2_types::uint64 sha512_k[80 ] =
171
171
{0x428a2f98d728ae22ULL , 0x7137449123ef65cdULL ,
172
172
0xb5c0fbcfec4d3b2fULL , 0xe9b5dba58189dbbcULL ,
173
173
0x3956c25bf348b538ULL , 0x59f111f1b605d019ULL ,
@@ -212,7 +212,7 @@ sha2_types::uint64 sha512_k[80] =
212
212
/* SHA-256 context structure */
213
213
214
214
void sha256_ctx::transf (const unsigned char * message,
215
- unsigned int block_nb)
215
+ unsigned int block_nb) noexcept
216
216
{
217
217
typedef sha2_types::uint32 uint32;
218
218
@@ -330,7 +330,7 @@ void sha256_ctx::transf(const unsigned char* message,
330
330
331
331
/* SHA-256 functions */
332
332
333
- void sha256_traits::sha_init (sha256_ctx* ctx)
333
+ void sha256_traits::sha_init (sha256_ctx* ctx) noexcept
334
334
{
335
335
#ifndef UNROLL_LOOPS
336
336
for (int i = 0 ; i < 8 ; i++)
@@ -349,10 +349,10 @@ void sha256_traits::sha_init(sha256_ctx* ctx)
349
349
}
350
350
351
351
void sha256_traits::sha_update (sha256_ctx* ctx, const unsigned char * message,
352
- unsigned int len)
352
+ unsigned int len) noexcept
353
353
{
354
354
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) ;
356
356
357
357
memcpy (&ctx->block [ctx->len ], message, rem_len);
358
358
@@ -378,7 +378,7 @@ void sha256_traits::sha_update(sha256_ctx* ctx, const unsigned char* message,
378
378
ctx->tot_len += (block_nb + 1 ) << 6 ;
379
379
}
380
380
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
382
382
{
383
383
const unsigned int block_nb = (1 + ((SHA256_BLOCK_SIZE - 9 ) < (ctx->len % SHA256_BLOCK_SIZE)));
384
384
@@ -411,7 +411,7 @@ void sha256_traits::sha_final(sha256_ctx* ctx, unsigned char* digest)
411
411
/* SHA-512 context structure */
412
412
413
413
void sha512_ctx::transf (const unsigned char * message,
414
- unsigned int block_nb)
414
+ unsigned int block_nb) noexcept
415
415
{
416
416
typedef sha2_types::uint64 uint64;
417
417
@@ -514,7 +514,7 @@ void sha512_ctx::transf(const unsigned char* message,
514
514
515
515
/* SHA-512 functions */
516
516
517
- void sha512_traits::sha_init (sha_ctx* ctx)
517
+ void sha512_traits::sha_init (sha_ctx* ctx) noexcept
518
518
{
519
519
#ifndef UNROLL_LOOPS
520
520
for (int i = 0 ; i < 8 ; i++)
@@ -533,7 +533,7 @@ void sha512_traits::sha_init(sha_ctx* ctx)
533
533
}
534
534
535
535
void sha512_traits::sha_update (sha_ctx* ctx, const unsigned char * message,
536
- unsigned int len)
536
+ unsigned int len) noexcept
537
537
{
538
538
const unsigned int tmp_len = SHA512_BLOCK_SIZE - ctx->len ;
539
539
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,
562
562
ctx->tot_len += (block_nb + 1 ) << 7 ;
563
563
}
564
564
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
566
566
{
567
567
const unsigned int block_nb = 1 + ((SHA512_BLOCK_SIZE - 17 ) < (ctx->len % SHA512_BLOCK_SIZE));
568
568
@@ -594,7 +594,7 @@ void sha512_traits::sha_final(sha_ctx* ctx, unsigned char* digest)
594
594
595
595
/* SHA-384 functions */
596
596
597
- void sha384_traits::sha_init (sha_ctx *ctx)
597
+ void sha384_traits::sha_init (sha_ctx *ctx) noexcept
598
598
{
599
599
#ifndef UNROLL_LOOPS
600
600
for (int i = 0 ; i < 8 ; i++)
@@ -613,7 +613,7 @@ void sha384_traits::sha_init(sha_ctx *ctx)
613
613
}
614
614
615
615
void sha384_traits::sha_update (sha_ctx* ctx,const unsigned char * message,
616
- unsigned int len)
616
+ unsigned int len) noexcept
617
617
{
618
618
const unsigned int tmp_len = SHA384_BLOCK_SIZE - ctx->len ;
619
619
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,
642
642
ctx->tot_len += (block_nb + 1 ) << 7 ;
643
643
}
644
644
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
646
646
{
647
647
const unsigned int block_nb = (1 + ((SHA384_BLOCK_SIZE - 17 ) < (ctx->len % SHA384_BLOCK_SIZE)));
648
648
@@ -672,7 +672,7 @@ void sha384_traits::sha_final(sha_ctx* ctx, unsigned char* digest)
672
672
673
673
/* SHA-224 functions */
674
674
675
- void sha224_traits::sha_init (sha_ctx* ctx)
675
+ void sha224_traits::sha_init (sha_ctx* ctx) noexcept
676
676
{
677
677
#ifndef UNROLL_LOOPS
678
678
for (int i = 0 ; i < 8 ; i++)
@@ -691,7 +691,7 @@ void sha224_traits::sha_init(sha_ctx* ctx)
691
691
}
692
692
693
693
void sha224_traits::sha_update (sha_ctx* ctx, const unsigned char * message,
694
- unsigned int len)
694
+ unsigned int len) noexcept
695
695
{
696
696
const unsigned int tmp_len = SHA224_BLOCK_SIZE - ctx->len ;
697
697
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,
720
720
ctx->tot_len += (block_nb + 1 ) << 6 ;
721
721
}
722
722
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
724
724
{
725
725
const unsigned int block_nb = (1 + ((SHA224_BLOCK_SIZE - 9 ) < (ctx->len % SHA224_BLOCK_SIZE)));
726
726
0 commit comments