1 /* 2 * copyright (c) 2007 Michael Niedermayer <michaelni@gmx.at> 3 * 4 * This file is part of FFmpeg. 5 * 6 * FFmpeg is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * FFmpeg is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with FFmpeg; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 */ 20 module ffmpeg.libavutil.aes; 21 22 extern (C) @nogc nothrow: 23 24 /** 25 * @defgroup lavu_aes AES 26 * @ingroup lavu_crypto 27 * @{ 28 */ 29 30 extern __gshared const int av_aes_size; 31 32 struct AVAES; 33 34 /** 35 * Allocate an AVAES context. 36 */ 37 AVAES* av_aes_alloc (); 38 39 /** 40 * Initialize an AVAES context. 41 * @param key_bits 128, 192 or 256 42 * @param decrypt 0 for encryption, 1 for decryption 43 */ 44 int av_aes_init (AVAES* a, const(ubyte)* key, int key_bits, int decrypt); 45 46 /** 47 * Encrypt or decrypt a buffer using a previously initialized context. 48 * @param count number of 16 byte blocks 49 * @param dst destination array, can be equal to src 50 * @param src source array, can be equal to dst 51 * @param iv initialization vector for CBC mode, if NULL then ECB will be used 52 * @param decrypt 0 for encryption, 1 for decryption 53 */ 54 void av_aes_crypt (AVAES* a, ubyte* dst, const(ubyte)* src, int count, ubyte* iv, int decrypt); 55 56 /** 57 * @} 58 */ 59 60 /* AVUTIL_AES_H */