FFmpeg
Loading...
Searching...
No Matches
sha512.c File Reference
#include <string.h>
#include "config.h"
#include "attributes.h"
#include "bswap.h"
#include "error.h"
#include "sha512.h"
#include "intreadwrite.h"
#include "mem.h"

Go to the source code of this file.

Data Structures

struct  AVSHA512
 hash context More...
 

Macros

#define ror(value, bits)
 
#define Ch(x, y, z)
 
#define Maj(z, y, x)
 
#define Sigma0_512(x)
 
#define Sigma1_512(x)
 
#define sigma0_512(x)
 
#define sigma1_512(x)
 
#define blk0(i)
 
#define blk(i)
 
#define ROUND512(a, b, c, d, e, f, g, h)
 
#define ROUND512_0_TO_15(a, b, c, d, e, f, g, h)
 
#define ROUND512_16_TO_80(a, b, c, d, e, f, g, h)
 
#define R512_0
 
#define R512_16
 

Functions

struct AVSHA512av_sha512_alloc (void)
 Allocate an AVSHA512 context.
 
static void sha512_transform (uint64_t *state, const uint8_t buffer[128])
 
av_cold int av_sha512_init (AVSHA512 *ctx, int bits)
 Initialize SHA-2 512 hashing.
 
void av_sha512_update (AVSHA512 *ctx, const uint8_t *data, size_t len)
 Update hash value.
 
void av_sha512_final (AVSHA512 *ctx, uint8_t *digest)
 Finish hashing and output digest value.
 

Variables

const int av_sha512_size = sizeof(AVSHA512)
 
static const uint64_t K512 [80]
 

Macro Definition Documentation

◆ ror

#define ror ( value,
bits )
Value:
(((value) >> (bits)) | ((value) << (64 - (bits))))
double value
Definition eval.c:102
static const uint8_t bits[8]
Definition fastaudio.c:100

Definition at line 92 of file sha512.c.

◆ Ch

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

Definition at line 94 of file sha512.c.

Referenced by sha512_transform().

◆ Maj

#define Maj ( z,
y,
x )
Value:
((((x) | (y)) & (z)) | ((x) & (y)))

Definition at line 95 of file sha512.c.

Referenced by sha512_transform().

◆ Sigma0_512

#define Sigma0_512 ( x)
Value:
(ror((x), 28) ^ ror((x), 34) ^ ror((x), 39))
#define ror(value, bits)
Definition sha512.c:92

Definition at line 97 of file sha512.c.

Referenced by sha512_transform().

◆ Sigma1_512

#define Sigma1_512 ( x)
Value:
(ror((x), 14) ^ ror((x), 18) ^ ror((x), 41))

Definition at line 98 of file sha512.c.

Referenced by sha512_transform().

◆ sigma0_512

#define sigma0_512 ( x)
Value:
(ror((x), 1) ^ ror((x), 8) ^ ((x) >> 7))

Definition at line 99 of file sha512.c.

◆ sigma1_512

#define sigma1_512 ( x)
Value:
(ror((x), 19) ^ ror((x), 61) ^ ((x) >> 6))

Definition at line 100 of file sha512.c.

◆ blk0

#define blk0 ( i)
Value:
(block[i] = AV_RB64(buffer + 8 * (i)))
#define i(width, name, range_min, range_max)
Definition cbs_h264.c:63
static int16_t block[64]
Definition dct.c:125
#define AV_RB64(p)
static char buffer[20]
Definition seek.c:32

Definition at line 102 of file sha512.c.

Referenced by sha512_transform().

◆ blk

#define blk ( i)
Value:
(block[i] = block[i - 16] + sigma0_512(block[i - 15]) + \
sigma1_512(block[i - 2]) + block[i - 7])
#define sigma0_512(x)
Definition sha512.c:99

Definition at line 103 of file sha512.c.

Referenced by sha512_transform().

◆ ROUND512

#define ROUND512 ( a,
b,
c,
d,
e,
f,
g,
h )
Value:
T1 += (h) + Sigma1_512(e) + Ch((e), (f), (g)) + K512[i]; \
(d) += T1; \
(h) = T1 + Sigma0_512(a) + Maj((a), (b), (c)); \
i++
#define f(width, name)
Definition cbs_vp8.c:236
int a
#define b
Definition input.c:43
#define Sigma0_512(x)
Definition sha512.c:97
#define Sigma1_512(x)
Definition sha512.c:98
static const uint64_t K512[80]
Definition sha512.c:49
#define Maj(z, y, x)
Definition sha.c:178
#define Ch(x, y, z)
Definition sha.c:177
const char * g
Definition vf_curves.c:128
static double c[64]

Definition at line 106 of file sha512.c.

◆ ROUND512_0_TO_15

#define ROUND512_0_TO_15 ( a,
b,
c,
d,
e,
f,
g,
h )
Value:
T1 = blk0(i); \
ROUND512(a,b,c,d,e,f,g,h)
#define blk0(i)
Definition sha.c:54

Definition at line 112 of file sha512.c.

◆ ROUND512_16_TO_80

#define ROUND512_16_TO_80 ( a,
b,
c,
d,
e,
f,
g,
h )
Value:
T1 = blk(i); \
ROUND512(a,b,c,d,e,f,g,h)
#define blk(i)
Definition sha.c:55

Definition at line 116 of file sha512.c.

◆ R512_0

#define R512_0
Value:
ROUND512_0_TO_15(a, b, c, d, e, f, g, h); \
ROUND512_0_TO_15(h, a, b, c, d, e, f, g); \
ROUND512_0_TO_15(g, h, a, b, c, d, e, f); \
ROUND512_0_TO_15(f, g, h, a, b, c, d, e); \
ROUND512_0_TO_15(e, f, g, h, a, b, c, d); \
ROUND512_0_TO_15(d, e, f, g, h, a, b, c); \
ROUND512_0_TO_15(c, d, e, f, g, h, a, b); \
ROUND512_0_TO_15(b, c, d, e, f, g, h, a)
#define ROUND512_0_TO_15(a, b, c, d, e, f, g, h)
Definition sha512.c:112

Referenced by sha512_transform().

◆ R512_16

#define R512_16
Value:
ROUND512_16_TO_80(a, b, c, d, e, f, g, h); \
ROUND512_16_TO_80(h, a, b, c, d, e, f, g); \
ROUND512_16_TO_80(g, h, a, b, c, d, e, f); \
ROUND512_16_TO_80(f, g, h, a, b, c, d, e); \
ROUND512_16_TO_80(e, f, g, h, a, b, c, d); \
ROUND512_16_TO_80(d, e, f, g, h, a, b, c); \
ROUND512_16_TO_80(c, d, e, f, g, h, a, b); \
ROUND512_16_TO_80(b, c, d, e, f, g, h, a)
#define ROUND512_16_TO_80(a, b, c, d, e, f, g, h)
Definition sha512.c:116

Referenced by sha512_transform().

Function Documentation

◆ sha512_transform()

static void sha512_transform ( uint64_t * state,
const uint8_t buffer[128] )
static

Definition at line 120 of file sha512.c.

Referenced by av_sha512_update().

Variable Documentation

◆ K512

const uint64_t K512[80]
static

Definition at line 49 of file sha512.c.

Referenced by sha512_transform().