RIPEMD-160 hash function. More...
Go to the source code of this file.
Macros | |
#define | TRACE_LEVEL CRYPTO_TRACE_LEVEL |
#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) a += F(b, c, d) + (x), a = ROL32(a, s) + (e), c = ROL32(c, 10) |
#define | GG(a, b, c, d, e, x, s) a += G(b, c, d) + (x) + 0x5A827999, a = ROL32(a, s) + (e), c = ROL32(c, 10) |
#define | HH(a, b, c, d, e, x, s) a += H(b, c, d) + (x) + 0x6ED9EBA1, a = ROL32(a, s) + (e), c = ROL32(c, 10) |
#define | II(a, b, c, d, e, x, s) a += I(b, c, d) + (x) + 0x8F1BBCDC, a = ROL32(a, s) + (e), c = ROL32(c, 10) |
#define | JJ(a, b, c, d, e, x, s) a += J(b, c, d) + (x) + 0xA953FD4E, a = ROL32(a, s) + (e), c = ROL32(c, 10) |
#define | FFF(a, b, c, d, e, x, s) a += F(b, c, d) + (x), a = ROL32(a, s) + (e), c = ROL32(c, 10) |
#define | GGG(a, b, c, d, e, x, s) a += G(b, c, d) + (x) + 0x7A6D76E9, a = ROL32(a, s) + (e), c = ROL32(c, 10) |
#define | HHH(a, b, c, d, e, x, s) a += H(b, c, d) + (x) + 0x6D703EF3, a = ROL32(a, s) + (e), c = ROL32(c, 10) |
#define | III(a, b, c, d, e, x, s) a += I(b, c, d) + (x) + 0x5C4DD124, a = ROL32(a, s) + (e), c = ROL32(c, 10) |
#define | JJJ(a, b, c, d, e, x, s) a += J(b, c, d) + (x) + 0x50A28BE6, a = ROL32(a, s) + (e), c = ROL32(c, 10) |
Functions | |
error_t | ripemd160Compute (const void *data, size_t length, uint8_t *digest) |
Digest a message using RIPEMD-160. More... | |
void | ripemd160Init (Ripemd160Context *context) |
Initialize RIPEMD-160 message digest context. More... | |
void | ripemd160Update (Ripemd160Context *context, const void *data, size_t length) |
Update the RIPEMD-160 context with a portion of the message being hashed. More... | |
void | ripemd160Final (Ripemd160Context *context, uint8_t *digest) |
Finish the RIPEMD-160 message digest. More... | |
void | ripemd160ProcessBlock (Ripemd160Context *context) |
Process message in 16-word blocks. More... | |
Variables | |
const uint8_t | RIPEMD160_OID [5] = {0x2B, 0x24, 0x03, 0x02, 0x01} |
const HashAlgo | ripemd160HashAlgo |
Detailed Description
RIPEMD-160 hash function.
License
SPDX-License-Identifier: GPL-2.0-or-later
Copyright (C) 2010-2024 Oryx Embedded SARL. All rights reserved.
This file is part of CycloneCRYPTO Open.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- Version
- 2.4.4
Definition in file ripemd160.c.
Macro Definition Documentation
◆ F
◆ FF
Definition at line 48 of file ripemd160.c.
◆ FFF
Definition at line 54 of file ripemd160.c.
◆ G
◆ GG
#define GG | ( | a, | |
b, | |||
c, | |||
d, | |||
e, | |||
x, | |||
s | |||
) | a += G(b, c, d) + (x) + 0x5A827999, a = ROL32(a, s) + (e), c = ROL32(c, 10) |
Definition at line 49 of file ripemd160.c.
◆ GGG
#define GGG | ( | a, | |
b, | |||
c, | |||
d, | |||
e, | |||
x, | |||
s | |||
) | a += G(b, c, d) + (x) + 0x7A6D76E9, a = ROL32(a, s) + (e), c = ROL32(c, 10) |
Definition at line 55 of file ripemd160.c.
◆ H
◆ HH
#define HH | ( | a, | |
b, | |||
c, | |||
d, | |||
e, | |||
x, | |||
s | |||
) | a += H(b, c, d) + (x) + 0x6ED9EBA1, a = ROL32(a, s) + (e), c = ROL32(c, 10) |
Definition at line 50 of file ripemd160.c.
◆ HHH
#define HHH | ( | a, | |
b, | |||
c, | |||
d, | |||
e, | |||
x, | |||
s | |||
) | a += H(b, c, d) + (x) + 0x6D703EF3, a = ROL32(a, s) + (e), c = ROL32(c, 10) |
Definition at line 56 of file ripemd160.c.
◆ I
◆ II
#define II | ( | a, | |
b, | |||
c, | |||
d, | |||
e, | |||
x, | |||
s | |||
) | a += I(b, c, d) + (x) + 0x8F1BBCDC, a = ROL32(a, s) + (e), c = ROL32(c, 10) |
Definition at line 51 of file ripemd160.c.
◆ III
#define III | ( | a, | |
b, | |||
c, | |||
d, | |||
e, | |||
x, | |||
s | |||
) | a += I(b, c, d) + (x) + 0x5C4DD124, a = ROL32(a, s) + (e), c = ROL32(c, 10) |
Definition at line 57 of file ripemd160.c.
◆ J
◆ JJ
#define JJ | ( | a, | |
b, | |||
c, | |||
d, | |||
e, | |||
x, | |||
s | |||
) | a += J(b, c, d) + (x) + 0xA953FD4E, a = ROL32(a, s) + (e), c = ROL32(c, 10) |
Definition at line 52 of file ripemd160.c.
◆ JJJ
#define JJJ | ( | a, | |
b, | |||
c, | |||
d, | |||
e, | |||
x, | |||
s | |||
) | a += J(b, c, d) + (x) + 0x50A28BE6, a = ROL32(a, s) + (e), c = ROL32(c, 10) |
Definition at line 58 of file ripemd160.c.
◆ TRACE_LEVEL
#define TRACE_LEVEL CRYPTO_TRACE_LEVEL |
Definition at line 32 of file ripemd160.c.
Function Documentation
◆ ripemd160Compute()
error_t ripemd160Compute | ( | const void * | data, |
size_t | length, | ||
uint8_t * | digest | ||
) |
Digest a message using RIPEMD-160.
- Parameters
-
[in] data Pointer to the message being hashed [in] length Length of the message [out] digest Pointer to the calculated digest
- Returns
- Error code
Definition at line 99 of file ripemd160.c.
◆ ripemd160Final()
void ripemd160Final | ( | Ripemd160Context * | context, |
uint8_t * | digest | ||
) |
Finish the RIPEMD-160 message digest.
- Parameters
-
[in] context Pointer to the RIPEMD-160 context [out] digest Calculated digest (optional parameter)
Definition at line 206 of file ripemd160.c.
◆ ripemd160Init()
void ripemd160Init | ( | Ripemd160Context * | context | ) |
Initialize RIPEMD-160 message digest context.
- Parameters
-
[in] context Pointer to the RIPEMD-160 context to initialize
Definition at line 144 of file ripemd160.c.
◆ ripemd160ProcessBlock()
void ripemd160ProcessBlock | ( | Ripemd160Context * | context | ) |
Process message in 16-word blocks.
- Parameters
-
[in] context Pointer to the RIPEMD-160 context
Definition at line 254 of file ripemd160.c.
◆ ripemd160Update()
void ripemd160Update | ( | Ripemd160Context * | context, |
const void * | data, | ||
size_t | length | ||
) |
Update the RIPEMD-160 context with a portion of the message being hashed.
- Parameters
-
[in] context Pointer to the RIPEMD-160 context [in] data Pointer to the buffer being hashed [in] length Length of the buffer
Definition at line 167 of file ripemd160.c.
Variable Documentation
◆ RIPEMD160_OID
const uint8_t RIPEMD160_OID[5] = {0x2B, 0x24, 0x03, 0x02, 0x01} |
Definition at line 70 of file ripemd160.c.
◆ ripemd160HashAlgo
const HashAlgo ripemd160HashAlgo |
Definition at line 73 of file ripemd160.c.