Namespaces | Macros | Variables
Sha2Impl.hpp File Reference
#include <sstream>
#include <iomanip>
#include <string.h>
Include dependency graph for Sha2Impl.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 icl_core
 
 icl_core::crypt
 Contains cryptographic functions.
 

Macros

#define bswaparr(buf, T, i)
 
#define bswaparr64(buf, T, i)
 
#define Ch(x, y, z)   ((z) ^ ((x) & ((y) ^ (z))))
 FIPS PUB 180-3 "Ch" operation. More...
 
#define CLASSM   Sha2Impl<T, t_h0, t_h1, t_h2, t_h3, t_h4, t_h5, t_h6, t_h7, t_len>
 
#define CLASSM   Sha2Impl<uint64_t, t_h0, t_h1, t_h2, t_h3, t_h4, t_h5, t_h6, t_h7, t_len>
 
#define Maj(x, y, z)   (((x) & (y)) | ((z) & ((x) ^ (y))))
 FIPS PUB 180-3 "Maj" operation. More...
 
#define Rotr(x, n, nbits)   (((x) >> (n)) | ((x) << ((nbits)-(n))))
 Right rotation. More...
 
#define round_0_15(a, b, c, d, e, f, g, h, K, W, t)
 
#define round_0_15(a, b, c, d, e, f, g, h, K, W, t)
 
#define round_16_63(a, b, c, d, e, f, g, h, K, W, t)
 
#define round_16_79(a, b, c, d, e, f, g, h, K, W, t)
 
#define Shr(x, n)   ((x) >> (n))
 Right shift. More...
 
#define Sigma0_256(x)   (Rotr((x), 2, 32) ^ Rotr((x), 13, 32) ^ Rotr((x), 22, 32))
 
#define sigma0_256(x)   (Rotr((x), 7, 32) ^ Rotr((x), 18, 32) ^ Shr((x), 3))
 
#define Sigma0_512(x)   (Rotr((x), 28, 64) ^ Rotr((x), 34, 64) ^ Rotr((x), 39, 64))
 
#define sigma0_512(x)   (Rotr((x), 1, 64) ^ Rotr((x), 8, 64) ^ Shr((x), 7))
 
#define Sigma1_256(x)   (Rotr((x), 6, 32) ^ Rotr((x), 11, 32) ^ Rotr((x), 25, 32))
 
#define sigma1_256(x)   (Rotr((x), 17, 32) ^ Rotr((x), 19, 32) ^ Shr((x), 10))
 
#define Sigma1_512(x)   (Rotr((x), 14, 64) ^ Rotr((x), 18, 64) ^ Rotr((x), 41, 64))
 
#define sigma1_512(x)   (Rotr((x), 19, 64) ^ Rotr((x), 61, 64) ^ Shr((x), 6))
 
#define TEMPLATEM   template <typename T, T t_h0, T t_h1, T t_h2, T t_h3, T t_h4, T t_h5, T t_h6, T t_h7, size_t t_len>
 
#define TEMPLATEM   template <uint64_t t_h0, uint64_t t_h1, uint64_t t_h2, uint64_t t_h3, uint64_t t_h4, uint64_t t_h5, uint64_t t_h6, uint64_t t_h7, size_t t_len>
 
#define wv(i)   v##i
 Flexible variable mapping to avoid unnecessary copying. More...
 

Variables

static const uint32_t icl_core::crypt::k256 [64]
 
static const uint64_t icl_core::crypt::k512 [80]
 

Detailed Description

Author
Jan Oberländer oberl.nosp@m.aen@.nosp@m.fzi.d.nosp@m.e
Date
2012-01-19

Definition in file Sha2Impl.hpp.

Macro Definition Documentation

#define bswaparr (   buf,
  T,
 
)
Value:
((static_cast<T>(buf[(i)*4+3]) ) | \
(static_cast<T>(buf[(i)*4+2]) << 8) | \
(static_cast<T>(buf[(i)*4+1]) << 16) | \
(static_cast<T>(buf[(i)*4+0]) << 24))

Definition at line 68 of file Sha2Impl.hpp.

#define bswaparr64 (   buf,
  T,
 
)
Value:
((static_cast<T>(buf[(i)*8+7]) ) | \
(static_cast<T>(buf[(i)*8+6]) << 8) | \
(static_cast<T>(buf[(i)*8+5]) << 16) | \
(static_cast<T>(buf[(i)*8+4]) << 24) | \
(static_cast<T>(buf[(i)*8+3]) << 32) | \
(static_cast<T>(buf[(i)*8+2]) << 40) | \
(static_cast<T>(buf[(i)*8+1]) << 48) | \
(static_cast<T>(buf[(i)*8+0]) << 56))

Definition at line 73 of file Sha2Impl.hpp.

#define Ch (   x,
  y,
 
)    ((z) ^ ((x) & ((y) ^ (z))))

FIPS PUB 180-3 "Ch" operation.

Definition at line 83 of file Sha2Impl.hpp.

#define CLASSM   Sha2Impl<T, t_h0, t_h1, t_h2, t_h3, t_h4, t_h5, t_h6, t_h7, t_len>

Definition at line 266 of file Sha2Impl.hpp.

#define CLASSM   Sha2Impl<uint64_t, t_h0, t_h1, t_h2, t_h3, t_h4, t_h5, t_h6, t_h7, t_len>

Definition at line 266 of file Sha2Impl.hpp.

#define Maj (   x,
  y,
 
)    (((x) & (y)) | ((z) & ((x) ^ (y))))

FIPS PUB 180-3 "Maj" operation.

Definition at line 85 of file Sha2Impl.hpp.

#define Rotr (   x,
  n,
  nbits 
)    (((x) >> (n)) | ((x) << ((nbits)-(n))))

Right rotation.

Definition at line 87 of file Sha2Impl.hpp.

#define round_0_15 (   a,
  b,
  c,
  d,
  e,
  f,
  g,
  h,
  K,
  W,
 
)
Value:
T1 = wv(h) + Sigma1_256(wv(e)) + Ch(wv(e), wv(f), wv(g)) + K[t] + W[t&15]; \
T2 = Sigma0_256(wv(a)) + Maj(wv(a), wv(b), wv(c)); \
wv(d) += T1; \
wv(h) = T1 + T2;
#define Ch(x, y, z)
FIPS PUB 180-3 "Ch" operation.
Definition: Sha2Impl.hpp:83
#define Sigma0_256(x)
Definition: Sha2Impl.hpp:93
#define wv(i)
Flexible variable mapping to avoid unnecessary copying.
Definition: Sha2Impl.hpp:91
#define Maj(x, y, z)
FIPS PUB 180-3 "Maj" operation.
Definition: Sha2Impl.hpp:85
#define Sigma1_256(x)
Definition: Sha2Impl.hpp:94

Definition at line 305 of file Sha2Impl.hpp.

#define round_0_15 (   a,
  b,
  c,
  d,
  e,
  f,
  g,
  h,
  K,
  W,
 
)
Value:
T1 = wv(h) + Sigma1_512(wv(e)) + Ch(wv(e), wv(f), wv(g)) + K[t] + W[t&15]; \
T2 = Sigma0_512(wv(a)) + Maj(wv(a), wv(b), wv(c)); \
wv(d) += T1; \
wv(h) = T1 + T2;
#define Sigma0_512(x)
Definition: Sha2Impl.hpp:268
#define Sigma1_512(x)
Definition: Sha2Impl.hpp:269
#define Ch(x, y, z)
FIPS PUB 180-3 "Ch" operation.
Definition: Sha2Impl.hpp:83
#define wv(i)
Flexible variable mapping to avoid unnecessary copying.
Definition: Sha2Impl.hpp:91
#define Maj(x, y, z)
FIPS PUB 180-3 "Maj" operation.
Definition: Sha2Impl.hpp:85

Definition at line 305 of file Sha2Impl.hpp.

#define round_16_63 (   a,
  b,
  c,
  d,
  e,
  f,
  g,
  h,
  K,
  W,
 
)
Value:
W[(t)&15] += sigma1_256(W[(t+14)&15]) + W[(t+9)&15] + sigma0_256(W[(t+1)&15]); \
T1 = wv(h) + Sigma1_256(wv(e)) + Ch(wv(e), wv(f), wv(g)) + K[t] + W[t&15]; \
T2 = Sigma0_256(wv(a)) + Maj(wv(a), wv(b), wv(c)); \
wv(d) += T1; \
wv(h) = T1 + T2;
#define sigma0_256(x)
Definition: Sha2Impl.hpp:95
#define Ch(x, y, z)
FIPS PUB 180-3 "Ch" operation.
Definition: Sha2Impl.hpp:83
#define Sigma0_256(x)
Definition: Sha2Impl.hpp:93
#define wv(i)
Flexible variable mapping to avoid unnecessary copying.
Definition: Sha2Impl.hpp:91
#define sigma1_256(x)
Definition: Sha2Impl.hpp:96
#define Maj(x, y, z)
FIPS PUB 180-3 "Maj" operation.
Definition: Sha2Impl.hpp:85
#define Sigma1_256(x)
Definition: Sha2Impl.hpp:94

Definition at line 119 of file Sha2Impl.hpp.

#define round_16_79 (   a,
  b,
  c,
  d,
  e,
  f,
  g,
  h,
  K,
  W,
 
)
Value:
W[(t)&15] += sigma1_512(W[(t+14)&15]) + W[(t+9)&15] + sigma0_512(W[(t+1)&15]); \
T1 = wv(h) + Sigma1_512(wv(e)) + Ch(wv(e), wv(f), wv(g)) + K[t] + W[t&15]; \
T2 = Sigma0_512(wv(a)) + Maj(wv(a), wv(b), wv(c)); \
wv(d) += T1; \
wv(h) = T1 + T2;
#define Sigma0_512(x)
Definition: Sha2Impl.hpp:268
#define sigma1_512(x)
Definition: Sha2Impl.hpp:271
#define Sigma1_512(x)
Definition: Sha2Impl.hpp:269
#define Ch(x, y, z)
FIPS PUB 180-3 "Ch" operation.
Definition: Sha2Impl.hpp:83
#define wv(i)
Flexible variable mapping to avoid unnecessary copying.
Definition: Sha2Impl.hpp:91
#define sigma0_512(x)
Definition: Sha2Impl.hpp:270
#define Maj(x, y, z)
FIPS PUB 180-3 "Maj" operation.
Definition: Sha2Impl.hpp:85

Definition at line 311 of file Sha2Impl.hpp.

#define Shr (   x,
 
)    ((x) >> (n))

Right shift.

Definition at line 89 of file Sha2Impl.hpp.

#define Sigma0_256 (   x)    (Rotr((x), 2, 32) ^ Rotr((x), 13, 32) ^ Rotr((x), 22, 32))

Definition at line 93 of file Sha2Impl.hpp.

#define sigma0_256 (   x)    (Rotr((x), 7, 32) ^ Rotr((x), 18, 32) ^ Shr((x), 3))

Definition at line 95 of file Sha2Impl.hpp.

#define Sigma0_512 (   x)    (Rotr((x), 28, 64) ^ Rotr((x), 34, 64) ^ Rotr((x), 39, 64))

Definition at line 268 of file Sha2Impl.hpp.

#define sigma0_512 (   x)    (Rotr((x), 1, 64) ^ Rotr((x), 8, 64) ^ Shr((x), 7))

Definition at line 270 of file Sha2Impl.hpp.

#define Sigma1_256 (   x)    (Rotr((x), 6, 32) ^ Rotr((x), 11, 32) ^ Rotr((x), 25, 32))

Definition at line 94 of file Sha2Impl.hpp.

#define sigma1_256 (   x)    (Rotr((x), 17, 32) ^ Rotr((x), 19, 32) ^ Shr((x), 10))

Definition at line 96 of file Sha2Impl.hpp.

#define Sigma1_512 (   x)    (Rotr((x), 14, 64) ^ Rotr((x), 18, 64) ^ Rotr((x), 41, 64))

Definition at line 269 of file Sha2Impl.hpp.

#define sigma1_512 (   x)    (Rotr((x), 19, 64) ^ Rotr((x), 61, 64) ^ Shr((x), 6))

Definition at line 271 of file Sha2Impl.hpp.

#define TEMPLATEM   template <typename T, T t_h0, T t_h1, T t_h2, T t_h3, T t_h4, T t_h5, T t_h6, T t_h7, size_t t_len>

Definition at line 265 of file Sha2Impl.hpp.

#define TEMPLATEM   template <uint64_t t_h0, uint64_t t_h1, uint64_t t_h2, uint64_t t_h3, uint64_t t_h4, uint64_t t_h5, uint64_t t_h6, uint64_t t_h7, size_t t_len>

Definition at line 265 of file Sha2Impl.hpp.

#define wv (   i)    v##i

Flexible variable mapping to avoid unnecessary copying.

Definition at line 91 of file Sha2Impl.hpp.



fzi_icl_core
Author(s):
autogenerated on Mon Jun 10 2019 13:17:59