Skip to content
Snippets Groups Projects
Commit bc3dbcc8 authored by Samuel Pitoiset's avatar Samuel Pitoiset Committed by Martin Storsjö
Browse files

Add Blowfish encryption support in libavutil

parent 143f1e92
No related branches found
No related tags found
No related merge requests found
...@@ -9,6 +9,7 @@ HEADERS = adler32.h \ ...@@ -9,6 +9,7 @@ HEADERS = adler32.h \
avstring.h \ avstring.h \
avutil.h \ avutil.h \
base64.h \ base64.h \
blowfish.h \
bswap.h \ bswap.h \
common.h \ common.h \
cpu.h \ cpu.h \
...@@ -51,6 +52,7 @@ OBJS = adler32.o \ ...@@ -51,6 +52,7 @@ OBJS = adler32.o \
audioconvert.o \ audioconvert.o \
avstring.o \ avstring.o \
base64.o \ base64.o \
blowfish.o \
cpu.o \ cpu.o \
crc.o \ crc.o \
des.o \ des.o \
...@@ -86,6 +88,7 @@ TESTPROGS = adler32 \ ...@@ -86,6 +88,7 @@ TESTPROGS = adler32 \
aes \ aes \
avstring \ avstring \
base64 \ base64 \
blowfish \
cpu \ cpu \
crc \ crc \
des \ des \
......
...@@ -152,8 +152,8 @@ ...@@ -152,8 +152,8 @@
*/ */
#define LIBAVUTIL_VERSION_MAJOR 51 #define LIBAVUTIL_VERSION_MAJOR 51
#define LIBAVUTIL_VERSION_MINOR 34 #define LIBAVUTIL_VERSION_MINOR 35
#define LIBAVUTIL_VERSION_MICRO 1 #define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
LIBAVUTIL_VERSION_MINOR, \ LIBAVUTIL_VERSION_MINOR, \
......
This diff is collapsed.
/*
* Blowfish algorithm
*
* This file is part of Libav.
*
* Libav is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* Libav is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with Libav; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef AVUTIL_BLOWFISH_H
#define AVUTIL_BLOWFISH_H
#include <stdint.h>
/**
* @defgroup lavu_blowfish Blowfish
* @ingroup lavu_crypto
* @{
*/
#define AV_BF_ROUNDS 16
typedef struct AVBlowfish {
uint32_t p[AV_BF_ROUNDS + 2];
uint32_t s[4][256];
} AVBlowfish;
/**
* Initialize an AVBlowfish context.
*
* @param ctx an AVBlowfish context
* @param key a key
* @param key_len length of the key
*/
void av_blowfish_init(struct AVBlowfish *ctx, const uint8_t *key, int key_len);
/**
* Encrypt or decrypt a buffer using a previously initialized context.
*
* @param ctx an AVBlowfish context
* @param xl left four bytes halves of input to be encrypted
* @param xr right four bytes halves of input to be encrypted
* @param decrypt 0 for encryption, 1 for decryption
*/
void av_blowfish_crypt_ecb(struct AVBlowfish *ctx, uint32_t *xl, uint32_t *xr,
int decrypt);
/**
* Encrypt or decrypt a buffer using a previously initialized context.
*
* @param ctx an AVBlowfish context
* @param dst destination array, can be equal to src
* @param src source array, can be equal to dst
* @param count number of 8 byte blocks
* @param iv initialization vector for CBC mode, if NULL ECB will be used
* @param decrypt 0 for encryption, 1 for decryption
*/
void av_blowfish_crypt(struct AVBlowfish *ctx, uint8_t *dst, const uint8_t *src,
int count, uint8_t *iv, int decrypt);
/**
* @}
*/
#endif /* AVUTIL_BLOWFISH_H */
...@@ -12,6 +12,10 @@ FATE_LIBAVUTIL += fate-base64 ...@@ -12,6 +12,10 @@ FATE_LIBAVUTIL += fate-base64
fate-base64: libavutil/base64-test$(EXESUF) fate-base64: libavutil/base64-test$(EXESUF)
fate-base64: CMD = run libavutil/base64-test fate-base64: CMD = run libavutil/base64-test
FATE_LIBAVUTIL += fate-blowfish
fate-blowfish: libavutil/blowfish-test$(EXESUF)
fate-blowfish: CMD = run libavutil/blowfish-test
FATE_LIBAVUTIL += fate-crc FATE_LIBAVUTIL += fate-crc
fate-crc: libavutil/crc-test$(EXESUF) fate-crc: libavutil/crc-test$(EXESUF)
fate-crc: CMD = run libavutil/crc-test fate-crc: CMD = run libavutil/crc-test
......
Test encryption/decryption success.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment