FFmpeg
|
#include <inttypes.h>
#include "avutil.h"
#include "common.h"
#include "intreadwrite.h"
#include "des.h"
Go to the source code of this file.
Macros | |
#define | T(a, b, c, d, e, f, g, h) 64-a,64-b,64-c,64-d,64-e,64-f,64-g,64-h |
#define | T(a, b, c, d, e, f, g) 64-a,64-b,64-c,64-d,64-e,64-f,64-g |
#define | T(a, b, c, d, e, f) 56-a,56-b,56-c,56-d,56-e,56-f |
Functions | |
static uint64_t | shuffle (uint64_t in, const uint8_t *shuffle, int shuffle_len) |
static uint64_t | shuffle_inv (uint64_t in, const uint8_t *shuffle, int shuffle_len) |
static uint32_t | f_func (uint32_t r, uint64_t k) |
static uint64_t | key_shift_left (uint64_t CDn) |
rotate the two halves of the expanded 56 bit key each 1 bit left | |
static void | gen_roundkeys (uint64_t K[16], uint64_t key) |
static uint64_t | des_encdec (uint64_t in, uint64_t K[16], int decrypt) |
int | av_des_init (AVDES *d, const uint8_t *key, int key_bits, av_unused int decrypt) |
static void | av_des_crypt_mac (AVDES *d, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt, int mac) |
void | av_des_crypt (AVDES *d, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt) |
Encrypts / decrypts using the DES algorithm. | |
void | av_des_mac (AVDES *d, uint8_t *dst, const uint8_t *src, int count) |
Calculates CBC-MAC using the DES algorithm. | |
Variables | |
static const uint8_t | IP_shuffle [] |
static const uint8_t | PC1_shuffle [] |
static const uint8_t | PC2_shuffle [] |
static const uint32_t | S_boxes_P_shuffle [8][64] |
This table contains the results of applying both the S-box and P-shuffle. | |
|
static |
Definition at line 200 of file des.c.
Referenced by des_encdec(), f_func(), and gen_roundkeys().
|
static |
Definition at line 208 of file des.c.
Referenced by des_encdec().
|
static |
Definition at line 219 of file des.c.
Referenced by des_encdec().
|
static |
rotate the two halves of the expanded 56 bit key each 1 bit left
Note: the specification calls this "shift", so I kept it although it is confusing.
Definition at line 250 of file des.c.
Referenced by gen_roundkeys().
|
static |
Definition at line 258 of file des.c.
Referenced by av_des_init().
|
static |
Definition at line 271 of file des.c.
Referenced by av_des_crypt_mac().
Definition at line 289 of file des.c.
Referenced by ff_asfcrypt_dec(), nprobe(), and rprobe().
|
static |
Definition at line 301 of file des.c.
Referenced by av_des_crypt(), and av_des_mac().
void av_des_crypt | ( | struct AVDES * | d, |
uint8_t * | dst, | ||
const uint8_t * | src, | ||
int | count, | ||
uint8_t * | iv, | ||
int | decrypt | ||
) |
Encrypts / decrypts using the DES algorithm.
count | number of 8 byte blocks |
dst | destination array, can be equal to src, must be 8-byte aligned |
src | source array, can be equal to dst, must be 8-byte aligned, may be NULL |
iv | initialization vector for CBC mode, if NULL then ECB will be used, must be 8-byte aligned |
decrypt | 0 for encryption, 1 for decryption |
Definition at line 331 of file des.c.
Referenced by ff_asfcrypt_dec(), nprobe(), oma_read_packet(), and rprobe().
|
static |
Definition at line 30 of file des.c.
Referenced by des_encdec().
|
static |
Definition at line 58 of file des.c.
Referenced by gen_roundkeys().
|
static |