Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  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. #ifndef AVUTIL_SHA512_H
  23. #define AVUTIL_SHA512_H
  24.  
  25. #include <stdint.h>
  26.  
  27. #include "attributes.h"
  28. #include "version.h"
  29.  
  30. /**
  31.  * @defgroup lavu_sha512 SHA512
  32.  * @ingroup lavu_crypto
  33.  * @{
  34.  */
  35.  
  36. extern const int av_sha512_size;
  37.  
  38. struct AVSHA512;
  39.  
  40. /**
  41.  * Allocate an AVSHA512 context.
  42.  */
  43. struct AVSHA512 *av_sha512_alloc(void);
  44.  
  45. /**
  46.  * Initialize SHA-2 512 hashing.
  47.  *
  48.  * @param context pointer to the function context (of size av_sha512_size)
  49.  * @param bits    number of bits in digest (224, 256, 384 or 512 bits)
  50.  * @return        zero if initialization succeeded, -1 otherwise
  51.  */
  52. int av_sha512_init(struct AVSHA512* context, int bits);
  53.  
  54. /**
  55.  * Update hash value.
  56.  *
  57.  * @param context hash function context
  58.  * @param data    input data to update hash with
  59.  * @param len     input data length
  60.  */
  61. void av_sha512_update(struct AVSHA512* context, const uint8_t* data, unsigned int len);
  62.  
  63. /**
  64.  * Finish hashing and output digest value.
  65.  *
  66.  * @param context hash function context
  67.  * @param digest  buffer where output digest value is stored
  68.  */
  69. void av_sha512_final(struct AVSHA512* context, uint8_t *digest);
  70.  
  71. /**
  72.  * @}
  73.  */
  74.  
  75. #endif /* AVUTIL_SHA512_H */
  76.