|
Blender
V2.93
|
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include "BLI_hash_md5.h"Go to the source code of this file.
Classes | |
| struct | md5_ctx |
Macros | |
| #define | UINT_MAX_32_BITS 0xFFFFFFFF |
| #define | UINT_MAX UINT_MAX_32_BITS |
| #define | SWAP(n) (n) |
| #define | FF(b, c, d) (d ^ (b & (c ^ d))) |
| #define | FG(b, c, d) FF(d, b, c) |
| #define | FH(b, c, d) (b ^ c ^ d) |
| #define | FI(b, c, d) (c ^ (b | ~d)) |
| #define | CYCLIC(w, s) (w = (w << s) | (w >> (32 - s))) |
| #define | OP(a, b, c, d, s, T) |
| #define | OP(f, a, b, c, d, k, s, T) |
| #define | BLOCKSIZE 4096 /* Important: must be a multiple of 64. */ |
Typedefs | |
| typedef unsigned int | md5_uint32 |
Functions | |
| static void | md5_init_ctx (struct md5_ctx *ctx) |
| static void | md5_process_block (const void *buffer, size_t len, struct md5_ctx *ctx) |
| static void * | md5_read_ctx (const struct md5_ctx *ctx, void *resbuf) |
| int | BLI_hash_md5_stream (FILE *stream, void *resblock) |
| void * | BLI_hash_md5_buffer (const char *buffer, size_t len, void *resblock) |
| char * | BLI_hash_md5_to_hexdigest (void *resblock, char r_hex_digest[33]) |
Variables | |
| static const unsigned char | fillbuf [64] = {0x80, 0 } |
Functions to compute MD5 message digest of files or memory blocks according to the definition of MD5 in RFC 1321 from April 1992.
Definition in file hash_md5.c.
| #define BLOCKSIZE 4096 /* Important: must be a multiple of 64. */ |
| #define FF | ( | b, | |
| c, | |||
| d | |||
| ) | (d ^ (b & (c ^ d))) |
| #define FG | ( | b, | |
| c, | |||
| d | |||
| ) | FF(d, b, c) |
| #define FH | ( | b, | |
| c, | |||
| d | |||
| ) | (b ^ c ^ d) |
| #define FI | ( | b, | |
| c, | |||
| d | |||
| ) | (c ^ (b | ~d)) |
| #define OP | ( | a, | |
| b, | |||
| c, | |||
| d, | |||
| s, | |||
| T | |||
| ) |
| #define OP | ( | f, | |
| a, | |||
| b, | |||
| c, | |||
| d, | |||
| k, | |||
| s, | |||
| T | |||
| ) |
| #define SWAP | ( | n | ) | (n) |
Definition at line 90 of file hash_md5.c.
| #define UINT_MAX UINT_MAX_32_BITS |
Definition at line 58 of file hash_md5.c.
| #define UINT_MAX_32_BITS 0xFFFFFFFF |
Definition at line 48 of file hash_md5.c.
| typedef unsigned int md5_uint32 |
Definition at line 62 of file hash_md5.c.
| void* BLI_hash_md5_buffer | ( | const char * | buffer, |
| size_t | len, | ||
| void * | resblock | ||
| ) |
Compute MD5 message digest for 'len' bytes beginning at 'buffer'. The result is always in little endian byte order, so that a byte-wise output yields to the wanted ASCII representation of the message digest.
Definition at line 370 of file hash_md5.c.
References buffer, fillbuf, len, md5_init_ctx(), md5_process_block(), md5_read_ctx(), and SWAP.
Referenced by IMB_thumb_load_font_get_hash(), render_result_exr_file_cache_path(), and thumbpathname_from_uri().
| int BLI_hash_md5_stream | ( | FILE * | stream, |
| void * | resblock | ||
| ) |
Compute MD5 message digest for bytes read from 'stream'. The resulting message digest number will be written into the 16 bytes beginning at 'resblock'.
Definition at line 292 of file hash_md5.c.
References BLOCKSIZE, buffer, fillbuf, len, md5_init_ctx(), md5_process_block(), md5_read_ctx(), sum(), and SWAP.
| char* BLI_hash_md5_to_hexdigest | ( | void * | resblock, |
| char | r_hex_digest[33] | ||
| ) |
Definition at line 406 of file hash_md5.c.
References Freestyle::c, and len.
Referenced by IMB_thumb_load_font_get_hash(), render_result_exr_file_cache_path(), and thumbpathname_from_uri().
|
static |
Initialize structure containing state of computation. (RFC 1321, 3.3: Step 3)
Definition at line 101 of file hash_md5.c.
References md5_ctx::A, md5_ctx::B, md5_ctx::C, and md5_ctx::D.
Referenced by BLI_hash_md5_buffer(), and BLI_hash_md5_stream().
|
static |
Starting with the result of former calls of this function (or the initialization), this function updates the 'ctx' context for the next 'len' bytes starting at 'buffer'. It is necessary that 'len' is a multiple of 64!!!
Definition at line 114 of file hash_md5.c.
References A, md5_ctx::A, B, md5_ctx::B, buffer, md5_ctx::C, C, md5_ctx::D, D(), FG, FH, FI, len, and OP.
Referenced by BLI_hash_md5_buffer(), and BLI_hash_md5_stream().
|
static |
Put result from 'ctx' in first 16 bytes of 'resbuf'. The result is always in little endian byte order, so that a byte-wise output yields to the wanted ASCII representation of the message digest.
Definition at line 274 of file hash_md5.c.
References md5_ctx::A, md5_ctx::B, md5_ctx::C, md5_ctx::D, and SWAP.
Referenced by BLI_hash_md5_buffer(), and BLI_hash_md5_stream().
|
static |
Definition at line 95 of file hash_md5.c.
Referenced by BLI_hash_md5_buffer(), and BLI_hash_md5_stream().