FFmpeg
4.2.2
libavutil
sha512.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2007 Michael Niedermayer <michaelni@gmx.at>
3
* Copyright (C) 2013 James Almer <jamrial@gmail.com>
4
*
5
* This file is part of FFmpeg.
6
*
7
* FFmpeg is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2.1 of the License, or (at your option) any later version.
11
*
12
* FFmpeg is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with FFmpeg; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
*/
21
22
/**
23
* @file
24
* @ingroup lavu_sha512
25
* Public header for SHA-512 implementation.
26
*/
27
28
#ifndef AVUTIL_SHA512_H
29
#define AVUTIL_SHA512_H
30
31
#include <stddef.h>
32
#include <stdint.h>
33
34
#include "
attributes.h
"
35
#include "
version.h
"
36
37
/**
38
* @defgroup lavu_sha512 SHA-512
39
* @ingroup lavu_hash
40
* SHA-512 (Secure Hash Algorithm) hash function implementations.
41
*
42
* This module supports the following SHA-2 hash functions:
43
*
44
* - SHA-512/224: 224 bits
45
* - SHA-512/256: 256 bits
46
* - SHA-384: 384 bits
47
* - SHA-512: 512 bits
48
*
49
* @see For SHA-1, SHA-256, and variants thereof, see @ref lavu_sha.
50
*
51
* @{
52
*/
53
54
extern
const
int
av_sha512_size
;
55
56
struct
AVSHA512;
57
58
/**
59
* Allocate an AVSHA512 context.
60
*/
61
struct
AVSHA512 *
av_sha512_alloc
(
void
);
62
63
/**
64
* Initialize SHA-2 512 hashing.
65
*
66
* @param context pointer to the function context (of size av_sha512_size)
67
* @param bits number of bits in digest (224, 256, 384 or 512 bits)
68
* @return zero if initialization succeeded, -1 otherwise
69
*/
70
int
av_sha512_init
(
struct
AVSHA512* context,
int
bits);
71
72
/**
73
* Update hash value.
74
*
75
* @param context hash function context
76
* @param data input data to update hash with
77
* @param len input data length
78
*/
79
#if FF_API_CRYPTO_SIZE_T
80
void
av_sha512_update
(
struct
AVSHA512* context,
const
uint8_t* data,
unsigned
int
len);
81
#else
82
void
av_sha512_update
(
struct
AVSHA512* context,
const
uint8_t* data,
size_t
len);
83
#endif
84
85
/**
86
* Finish hashing and output digest value.
87
*
88
* @param context hash function context
89
* @param digest buffer where output digest value is stored
90
*/
91
void
av_sha512_final
(
struct
AVSHA512* context, uint8_t *digest);
92
93
/**
94
* @}
95
*/
96
97
#endif
/* AVUTIL_SHA512_H */
av_sha512_final
void av_sha512_final(struct AVSHA512 *context, uint8_t *digest)
Finish hashing and output digest value.
av_sha512_alloc
struct AVSHA512 * av_sha512_alloc(void)
Allocate an AVSHA512 context.
av_sha512_size
const int av_sha512_size
attributes.h
av_sha512_update
void av_sha512_update(struct AVSHA512 *context, const uint8_t *data, unsigned int len)
Update hash value.
av_sha512_init
int av_sha512_init(struct AVSHA512 *context, int bits)
Initialize SHA-2 512 hashing.
version.h
Generated by
1.8.17