Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
cHashSHA1.cpp File Reference
#include "pch.h"
#include "Hash/cHashSHA1.h"

Namespaces

 GrayLib
 

Macros

#define P(a, b, c, d, e, x)
 
#define R(t)
 
#define F(x, y, z)   (z ^ (x & (y ^ z)))
 
#define K   0x5A827999
 
#define F(x, y, z)   (x ^ y ^ z)
 
#define K   0x6ED9EBA1
 
#define F(x, y, z)   ((x & y) | (z & (x | y)))
 
#define K   0x8F1BBCDC
 
#define F(x, y, z)   (x ^ y ^ z)
 
#define K   0xCA62C1D6
 

Detailed Description

FIPS-180-1 compliant SHA-1 implementation The SHA-1 standard was published by NIST in 1993. http://www.itl.nist.gov/fipspubs/fip180-1.htm

Macro Definition Documentation

◆ F [1/4]

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

◆ F [2/4]

#define F (   x,
  y,
 
)    (x ^ y ^ z)

◆ F [3/4]

#define F (   x,
  y,
 
)    ((x & y) | (z & (x | y)))

◆ F [4/4]

#define F (   x,
  y,
 
)    (x ^ y ^ z)

◆ K [1/4]

#define K   0x5A827999

◆ K [2/4]

#define K   0x6ED9EBA1

◆ K [3/4]

#define K   0x8F1BBCDC

◆ K [4/4]

#define K   0xCA62C1D6

◆ P

#define P (   a,
  b,
  c,
  d,
  e,
 
)
Value:
{ \
e += cBits::Rotl<UINT32>(a,5) + F(b,c,d) + K + x; b = cBits::Rotl<UINT32>(b,30); \
}
#define F(x, y, z)
#define K

◆ R

#define R (   t)
Value:
( \
temp = w[( t - 3 ) & 0x0F] ^ w[( t - 8 ) & 0x0F] ^ w[( t - 14 ) & 0x0F] ^ w[ t & 0x0F], \
( w[t & 0x0F] = cBits::Rotl<UINT32>(temp,1) ) \
)