sha256.cpp File Reference

Contains the code implementing the SHA-256 hashfunction. More...

#include "sha256.hpp"

Go to the source code of this file.

Macros

#define ROTR(n, x)   ( ((x)>>(n)) | ((x)<<(32-(n))) )
#define SHR(n, x)   ((x)>>(n))
#define CH(x, y, z)   ( ((x)&(y)) ^ ((~x)&(z)) )
#define MAJ(x, y, z)   ( ((x)&(y)) ^ ((x)&(z)) ^ ((y)&(z)) )
#define BIGSIGMA0(x)   ( ROTR(2,(x)) ^ ROTR(13,(x)) ^ ROTR(22,(x)) )
#define BIGSIGMA1(x)   ( ROTR(6,(x)) ^ ROTR(11,(x)) ^ ROTR(25,(x)) )
#define SMALLSIGMA0(x)   ( ROTR(7,(x)) ^ ROTR(18,(x)) ^ SHR(3,(x)) )
#define SMALLSIGMA1(x)   ( ROTR(17,(x)) ^ ROTR(19,(x)) ^ SHR(10,(x)) )

Variables

uint32_t init256 [8]
uint32_t K256 [64]

Detailed Description

Contains the code implementing the SHA-256 hashfunction.

Author
Léo Perrin leope.nosp@m.rrin.nosp@m.@pica.nosp@m.rres.nosp@m.ursix.nosp@m..fr
Date
Time-stamp: <2012-05-20 11:29:46 leo>
See Also
sha256.hpp

Definition in file sha256.cpp.

Macro Definition Documentation

#define BIGSIGMA0 (   x)    ( ROTR(2,(x)) ^ ROTR(13,(x)) ^ ROTR(22,(x)) )

Definition at line 24 of file sha256.cpp.

#define BIGSIGMA1 (   x)    ( ROTR(6,(x)) ^ ROTR(11,(x)) ^ ROTR(25,(x)) )

Definition at line 25 of file sha256.cpp.

#define CH (   x,
  y,
 
)    ( ((x)&(y)) ^ ((~x)&(z)) )

Definition at line 22 of file sha256.cpp.

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

Definition at line 23 of file sha256.cpp.

#define ROTR (   n,
 
)    ( ((x)>>(n)) | ((x)<<(32-(n))) )

Definition at line 20 of file sha256.cpp.

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

Definition at line 21 of file sha256.cpp.

#define SMALLSIGMA0 (   x)    ( ROTR(7,(x)) ^ ROTR(18,(x)) ^ SHR(3,(x)) )

Definition at line 26 of file sha256.cpp.

#define SMALLSIGMA1 (   x)    ( ROTR(17,(x)) ^ ROTR(19,(x)) ^ SHR(10,(x)) )

Definition at line 27 of file sha256.cpp.

Variable Documentation

uint32_t init256[8]
Initial value:
{
0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
}

Definition at line 33 of file sha256.cpp.

uint32_t K256[64]
Initial value:
{
0x428a2f98 , 0x71374491 , 0xb5c0fbcf , 0xe9b5dba5 ,
0x3956c25b , 0x59f111f1 , 0x923f82a4 , 0xab1c5ed5 ,
0xd807aa98 , 0x12835b01 , 0x243185be , 0x550c7dc3 ,
0x72be5d74 , 0x80deb1fe , 0x9bdc06a7 , 0xc19bf174 ,
0xe49b69c1 , 0xefbe4786 , 0x0fc19dc6 , 0x240ca1cc ,
0x2de92c6f , 0x4a7484aa , 0x5cb0a9dc , 0x76f988da ,
0x983e5152 , 0xa831c66d , 0xb00327c8 , 0xbf597fc7 ,
0xc6e00bf3 , 0xd5a79147 , 0x06ca6351 , 0x14292967 ,
0x27b70a85 , 0x2e1b2138 , 0x4d2c6dfc , 0x53380d13 ,
0x650a7354 , 0x766a0abb , 0x81c2c92e , 0x92722c85 ,
0xa2bfe8a1 , 0xa81a664b , 0xc24b8b70 , 0xc76c51a3 ,
0xd192e819 , 0xd6990624 , 0xf40e3585 , 0x106aa070 ,
0x19a4c116 , 0x1e376c08 , 0x2748774c , 0x34b0bcb5 ,
0x391c0cb3 , 0x4ed8aa4a , 0x5b9cca4f , 0x682e6ff3 ,
0x748f82ee , 0x78a5636f , 0x84c87814 , 0x8cc70208 ,
0x90befffa , 0xa4506ceb , 0xbef9a3f7 , 0xc67178f2
}

Definition at line 41 of file sha256.cpp.