FFmpeg
Data Structures | Enumerations | Functions | Variables
hash.c File Reference
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include "hash.h"
#include "adler32.h"
#include "crc.h"
#include "md5.h"
#include "murmur3.h"
#include "ripemd.h"
#include "sha.h"
#include "sha512.h"
#include "avstring.h"
#include "base64.h"
#include "error.h"
#include "intreadwrite.h"
#include "mem.h"

Go to the source code of this file.

Data Structures

struct  AVHashContext
 

Enumerations

enum  hashtype {
  MD5, MURMUR3, RIPEMD128, RIPEMD160,
  RIPEMD256, RIPEMD320, SHA160, SHA224,
  SHA256, SHA512_224, SHA512_256, SHA384,
  SHA512, CRC32, ADLER32, NUM_HASHES
}
 

Functions

const char * av_hash_names (int i)
 Get the names of available hash algorithms. More...
 
const char * av_hash_get_name (const AVHashContext *ctx)
 
int av_hash_get_size (const AVHashContext *ctx)
 
int av_hash_alloc (AVHashContext **ctx, const char *name)
 Allocate a hash context for the algorithm specified by name. More...
 
void av_hash_init (AVHashContext *ctx)
 Initialize or reset a hash context. More...
 
void av_hash_update (AVHashContext *ctx, const uint8_t *src, size_t len)
 Update a hash context with additional data. More...
 
void av_hash_final (AVHashContext *ctx, uint8_t *dst)
 Finalize a hash context and compute the actual hash value. More...
 
void av_hash_final_bin (struct AVHashContext *ctx, uint8_t *dst, int size)
 Finalize a hash context and store the actual hash value in a buffer. More...
 
void av_hash_final_hex (struct AVHashContext *ctx, uint8_t *dst, int size)
 Finalize a hash context and store the hexadecimal representation of the actual hash value as a string. More...
 
void av_hash_final_b64 (struct AVHashContext *ctx, uint8_t *dst, int size)
 Finalize a hash context and store the Base64 representation of the actual hash value as a string. More...
 
void av_hash_freep (AVHashContext **ctx)
 Free hash context and set hash context pointer to NULL. More...
 

Variables

struct {
   const char *   name
 
   int   size
 
hashdesc []
 

Enumeration Type Documentation

◆ hashtype

enum hashtype
Enumerator
MD5 
MURMUR3 
RIPEMD128 
RIPEMD160 
RIPEMD256 
RIPEMD320 
SHA160 
SHA224 
SHA256 
SHA512_224 
SHA512_256 
SHA384 
SHA512 
CRC32 
ADLER32 
NUM_HASHES 

Definition at line 41 of file hash.c.

Function Documentation

◆ av_hash_get_name()

const char* av_hash_get_name ( const AVHashContext ctx)
Examples
ffhash.c.

Definition at line 94 of file hash.c.

Referenced by check(), finish(), main(), and writer_print_data_hash().

◆ av_hash_get_size()

int av_hash_get_size ( const AVHashContext ctx)

Definition at line 99 of file hash.c.

Referenced by av_hash_final_b64(), av_hash_final_bin(), av_hash_final_hex(), decode(), and main().

Variable Documentation

◆ name

const char* name

Definition at line 68 of file hash.c.

Referenced by av_hash_alloc().

◆ size

int size

Definition at line 69 of file hash.c.

Referenced by av_hash_final_b64(), av_hash_final_bin(), and av_hash_final_hex().

◆ hashdesc

const { ... } hashdesc[]
Initial value:
= {
[MD5] = {"MD5", 16},
[MURMUR3] = {"murmur3", 16},
[RIPEMD128] = {"RIPEMD128", 16},
[RIPEMD160] = {"RIPEMD160", 20},
[RIPEMD256] = {"RIPEMD256", 32},
[RIPEMD320] = {"RIPEMD320", 40},
[SHA160] = {"SHA160", 20},
[SHA224] = {"SHA224", 28},
[SHA256] = {"SHA256", 32},
[SHA512_224] = {"SHA512/224", 28},
[SHA512_256] = {"SHA512/256", 32},
[SHA384] = {"SHA384", 48},
[SHA512] = {"SHA512", 64},
[CRC32] = {"CRC32", 4},
[ADLER32] = {"adler32", 4},
}

Referenced by av_hash_alloc(), av_hash_get_name(), av_hash_get_size(), and av_hash_names().

SHA384
@ SHA384
Definition: hash.c:53
SHA224
@ SHA224
Definition: hash.c:49
SHA512_256
@ SHA512_256
Definition: hash.c:52
MURMUR3
@ MURMUR3
Definition: hash.c:43
MD5
@ MD5
Definition: hash.c:42
SHA512_224
@ SHA512_224
Definition: hash.c:51
RIPEMD256
@ RIPEMD256
Definition: hash.c:46
SHA160
@ SHA160
Definition: hash.c:48
RIPEMD160
@ RIPEMD160
Definition: hash.c:45
CRC32
@ CRC32
Definition: hash.c:55
SHA256
@ SHA256
Definition: hash.c:50
SHA512
@ SHA512
Definition: hash.c:54
RIPEMD128
@ RIPEMD128
Definition: hash.c:44
ADLER32
@ ADLER32
Definition: hash.c:56
RIPEMD320
@ RIPEMD320
Definition: hash.c:47