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-2025 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.5.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
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 251 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.
