s/qmail 4.2.29a
Next generation secure email transport
Loading...
Searching...
No Matches
Macros | Functions | Variables
sha256.c File Reference
#include <stdint.h>
#include <string.h>
#include "sha256.h"
Include dependency graph for sha256.c:

Go to the source code of this file.

Macros

#define DBL_INT_ADD(a, b, c)   if (a > 0xffffffff - (c)) ++b; a += c;
 
#define ROTLEFT(a, b)   (((a) << (b)) | ((a) >> (32-(b))))
 
#define ROTRIGHT(a, b)   (((a) >> (b)) | ((a) << (32-(b))))
 
#define CH(x, y, z)   (((x) & (y)) ^ (~(x) & (z)))
 
#define MAJ(x, y, z)   (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z)))
 
#define EP0(x)   (ROTRIGHT(x,2) ^ ROTRIGHT(x,13) ^ ROTRIGHT(x,22))
 
#define EP1(x)   (ROTRIGHT(x,6) ^ ROTRIGHT(x,11) ^ ROTRIGHT(x,25))
 
#define SIG0(x)   (ROTRIGHT(x,7) ^ ROTRIGHT(x,18) ^ ((x) >> 3))
 
#define SIG1(x)   (ROTRIGHT(x,17) ^ ROTRIGHT(x,19) ^ ((x) >> 10))
 

Functions

void sha256_hash (char *hash, const char *data, size_t len)
 

Variables

uint32_t k [64]
 

Macro Definition Documentation

◆ CH

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

Definition at line 19 of file sha256.c.

◆ DBL_INT_ADD

#define DBL_INT_ADD (   a,
  b,
 
)    if (a > 0xffffffff - (c)) ++b; a += c;

Definition at line 15 of file sha256.c.

◆ EP0

#define EP0 (   x)    (ROTRIGHT(x,2) ^ ROTRIGHT(x,13) ^ ROTRIGHT(x,22))

Definition at line 21 of file sha256.c.

◆ EP1

#define EP1 (   x)    (ROTRIGHT(x,6) ^ ROTRIGHT(x,11) ^ ROTRIGHT(x,25))

Definition at line 22 of file sha256.c.

◆ MAJ

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

Definition at line 20 of file sha256.c.

◆ ROTLEFT

#define ROTLEFT (   a,
  b 
)    (((a) << (b)) | ((a) >> (32-(b))))

Definition at line 16 of file sha256.c.

◆ ROTRIGHT

#define ROTRIGHT (   a,
  b 
)    (((a) >> (b)) | ((a) << (32-(b))))

Definition at line 17 of file sha256.c.

◆ SIG0

#define SIG0 (   x)    (ROTRIGHT(x,7) ^ ROTRIGHT(x,18) ^ ((x) >> 3))

Definition at line 23 of file sha256.c.

◆ SIG1

#define SIG1 (   x)    (ROTRIGHT(x,17) ^ ROTRIGHT(x,19) ^ ((x) >> 10))

Definition at line 24 of file sha256.c.

Function Documentation

◆ sha256_hash()

void sha256_hash ( char *  hash,
const char *  data,
size_t  len 
)

Definition at line 161 of file sha256.c.

Here is the caller graph for this function:

Variable Documentation

◆ k

uint32_t k[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 26 of file sha256.c.