Ruby  2.5.0dev(2017-10-22revision60238)
Macros | Functions
rmd160.c File Reference
#include "rmd160.h"
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

Go to the source code of this file.

Macros

#define _DIAGASSERT(cond)   assert(cond)
 
#define BYTES_TO_DWORD(strptr)
 
#define ROL(x, n)   (((x) << (n)) | ((x) >> (32-(n))))
 
#define F(x, y, z)   ((x) ^ (y) ^ (z))
 
#define G(x, y, z)   (((x) & (y)) | (~(x) & (z)))
 
#define H(x, y, z)   (((x) | ~(y)) ^ (z))
 
#define I(x, y, z)   (((x) & (z)) | ((y) & ~(z)))
 
#define J(x, y, z)   ((x) ^ ((y) | ~(z)))
 
#define FF(a, b, c, d, e, x, s)
 
#define GG(a, b, c, d, e, x, s)
 
#define HH(a, b, c, d, e, x, s)
 
#define II(a, b, c, d, e, x, s)
 
#define JJ(a, b, c, d, e, x, s)
 
#define FFF(a, b, c, d, e, x, s)
 
#define GGG(a, b, c, d, e, x, s)
 
#define HHH(a, b, c, d, e, x, s)
 
#define III(a, b, c, d, e, x, s)
 
#define JJJ(a, b, c, d, e, x, s)
 

Functions

int RMD160_Init (RMD160_CTX *context)
 
void RMD160_Transform (uint32_t state[5], const uint32_t block[16])
 
void RMD160_Update (RMD160_CTX *context, const uint8_t *data, size_t nbytes)
 
int RMD160_Finish (RMD160_CTX *context, uint8_t digest[20])
 

Macro Definition Documentation

◆ _DIAGASSERT

#define _DIAGASSERT (   cond)    assert(cond)

Definition at line 47 of file rmd160.c.

Referenced by RMD160_Finish(), RMD160_Init(), RMD160_Transform(), and RMD160_Update().

◆ BYTES_TO_DWORD

#define BYTES_TO_DWORD (   strptr)
Value:
(((uint32_t) *((strptr)+3) << 24) | \
((uint32_t) *((strptr)+2) << 16) | \
((uint32_t) *((strptr)+1) << 8) | \
((uint32_t) *(strptr)))
unsigned int uint32_t
Definition: sha2.h:101

Definition at line 56 of file rmd160.c.

Referenced by RMD160_Finish(), and RMD160_Update().

◆ F

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

Definition at line 67 of file rmd160.c.

◆ FF

#define FF (   a,
  b,
  c,
  d,
  e,
  x,
 
)
Value:
{ \
(a) += F((b), (c), (d)) + (x); \
(a) = ROL((a), (s)) + (e); \
(c) = ROL((c), 10); \
}
struct ComplexDateData c
Definition: date_core.c:285
#define ROL(x, n)
Definition: rmd160.c:64
#define F(x, y, z)
Definition: rmd160.c:67
struct SimpleDateData s
Definition: date_core.c:284

Definition at line 74 of file rmd160.c.

Referenced by RMD160_Transform().

◆ FFF

#define FFF (   a,
  b,
  c,
  d,
  e,
  x,
 
)
Value:
{ \
(a) += F((b), (c), (d)) + (x); \
(a) = ROL((a), (s)) + (e); \
(c) = ROL((c), 10); \
}
struct ComplexDateData c
Definition: date_core.c:285
#define ROL(x, n)
Definition: rmd160.c:64
#define F(x, y, z)
Definition: rmd160.c:67
struct SimpleDateData s
Definition: date_core.c:284

Definition at line 99 of file rmd160.c.

Referenced by RMD160_Transform().

◆ G

#define G (   x,
  y,
 
)    (((x) & (y)) | (~(x) & (z)))

Definition at line 68 of file rmd160.c.

◆ GG

#define GG (   a,
  b,
  c,
  d,
  e,
  x,
 
)
Value:
{ \
(a) += G((b), (c), (d)) + (x) + 0x5a827999U; \
(a) = ROL((a), (s)) + (e); \
(c) = ROL((c), 10); \
}
struct ComplexDateData c
Definition: date_core.c:285
#define G(x, y, z)
Definition: rmd160.c:68
#define ROL(x, n)
Definition: rmd160.c:64
Definition: util.c:841
struct SimpleDateData s
Definition: date_core.c:284

Definition at line 79 of file rmd160.c.

Referenced by RMD160_Transform().

◆ GGG

#define GGG (   a,
  b,
  c,
  d,
  e,
  x,
 
)
Value:
{ \
(a) += G((b), (c), (d)) + (x) + 0x7a6d76e9U; \
(a) = ROL((a), (s)) + (e); \
(c) = ROL((c), 10); \
}
struct ComplexDateData c
Definition: date_core.c:285
#define G(x, y, z)
Definition: rmd160.c:68
#define ROL(x, n)
Definition: rmd160.c:64
Definition: util.c:841
struct SimpleDateData s
Definition: date_core.c:284

Definition at line 104 of file rmd160.c.

Referenced by RMD160_Transform().

◆ H

#define H (   x,
  y,
 
)    (((x) | ~(y)) ^ (z))

Definition at line 69 of file rmd160.c.

◆ HH

#define HH (   a,
  b,
  c,
  d,
  e,
  x,
 
)
Value:
{ \
(a) += H((b), (c), (d)) + (x) + 0x6ed9eba1U; \
(a) = ROL((a), (s)) + (e); \
(c) = ROL((c), 10); \
}
struct ComplexDateData c
Definition: date_core.c:285
#define H(x, y, z)
Definition: rmd160.c:69
#define ROL(x, n)
Definition: rmd160.c:64
Definition: util.c:841
struct SimpleDateData s
Definition: date_core.c:284

Definition at line 84 of file rmd160.c.

Referenced by RMD160_Transform().

◆ HHH

#define HHH (   a,
  b,
  c,
  d,
  e,
  x,
 
)
Value:
{ \
(a) += H((b), (c), (d)) + (x) + 0x6d703ef3U; \
(a) = ROL((a), (s)) + (e); \
(c) = ROL((c), 10); \
}
struct ComplexDateData c
Definition: date_core.c:285
#define H(x, y, z)
Definition: rmd160.c:69
#define ROL(x, n)
Definition: rmd160.c:64
Definition: util.c:841
struct SimpleDateData s
Definition: date_core.c:284

Definition at line 109 of file rmd160.c.

Referenced by RMD160_Transform().

◆ I

#define I (   x,
  y,
 
)    (((x) & (z)) | ((y) & ~(z)))

Definition at line 70 of file rmd160.c.

◆ II

#define II (   a,
  b,
  c,
  d,
  e,
  x,
 
)
Value:
{ \
(a) += I((b), (c), (d)) + (x) + 0x8f1bbcdcU; \
(a) = ROL((a), (s)) + (e); \
(c) = ROL((c), 10); \
}
struct ComplexDateData c
Definition: date_core.c:285
#define ROL(x, n)
Definition: rmd160.c:64
Definition: util.c:841
#define I(x, y, z)
Definition: rmd160.c:70
struct SimpleDateData s
Definition: date_core.c:284

Definition at line 89 of file rmd160.c.

Referenced by RMD160_Transform().

◆ III

#define III (   a,
  b,
  c,
  d,
  e,
  x,
 
)
Value:
{ \
(a) += I((b), (c), (d)) + (x) + 0x5c4dd124U; \
(a) = ROL((a), (s)) + (e); \
(c) = ROL((c), 10); \
}
struct ComplexDateData c
Definition: date_core.c:285
#define ROL(x, n)
Definition: rmd160.c:64
Definition: util.c:841
#define I(x, y, z)
Definition: rmd160.c:70
struct SimpleDateData s
Definition: date_core.c:284

Definition at line 114 of file rmd160.c.

Referenced by RMD160_Transform().

◆ J

#define J (   x,
  y,
 
)    ((x) ^ ((y) | ~(z)))

Definition at line 71 of file rmd160.c.

◆ JJ

#define JJ (   a,
  b,
  c,
  d,
  e,
  x,
 
)
Value:
{ \
(a) += J((b), (c), (d)) + (x) + 0xa953fd4eU; \
(a) = ROL((a), (s)) + (e); \
(c) = ROL((c), 10); \
}
struct ComplexDateData c
Definition: date_core.c:285
#define J(x, y, z)
Definition: rmd160.c:71
#define ROL(x, n)
Definition: rmd160.c:64
Definition: util.c:841
struct SimpleDateData s
Definition: date_core.c:284

Definition at line 94 of file rmd160.c.

Referenced by RMD160_Transform().

◆ JJJ

#define JJJ (   a,
  b,
  c,
  d,
  e,
  x,
 
)
Value:
{ \
(a) += J((b), (c), (d)) + (x) + 0x50a28be6U; \
(a) = ROL((a), (s)) + (e); \
(c) = ROL((c), 10); \
}
struct ComplexDateData c
Definition: date_core.c:285
#define J(x, y, z)
Definition: rmd160.c:71
#define ROL(x, n)
Definition: rmd160.c:64
Definition: util.c:841
struct SimpleDateData s
Definition: date_core.c:284

Definition at line 119 of file rmd160.c.

Referenced by RMD160_Transform().

◆ ROL

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

Definition at line 64 of file rmd160.c.

Function Documentation

◆ RMD160_Finish()

int RMD160_Finish ( RMD160_CTX context,
uint8_t  digest[20] 
)

◆ RMD160_Init()

int RMD160_Init ( RMD160_CTX context)

Definition at line 128 of file rmd160.c.

References _DIAGASSERT, RMD160_CTX::buflen, RMD160_CTX::length, NULL, and RMD160_CTX::state.

◆ RMD160_Transform()

void RMD160_Transform ( uint32_t  state[5],
const uint32_t  block[16] 
)

Definition at line 147 of file rmd160.c.

References _DIAGASSERT, FF, FFF, GG, GGG, HH, HHH, II, III, JJ, JJJ, and NULL.

Referenced by RMD160_Finish(), and RMD160_Update().

◆ RMD160_Update()

void RMD160_Update ( RMD160_CTX context,
const uint8_t data,
size_t  nbytes 
)