libavutil/aes.c File Reference
#include "common.h"
#include "aes.h"
Go to the source code of this file.
 | 
 Data Structures | 
| struct   | AVAES | 
 Functions | 
| static void  | addkey (uint64_t dst[2], const uint64_t src[2], const uint64_t round_key[2]) | 
| static void  | subshift (uint8_t s0[2][16], int s, const uint8_t *box) | 
| static int  | mix_core (uint32_t multbl[4][256], int a, int b, int c, int d) | 
| static void  | mix (uint8_t state[2][4][4], uint32_t multbl[4][256], int s1, int s3) | 
| static void  | crypt (AVAES *a, int s, const uint8_t *sbox, const uint32_t *multbl) | 
| void  | av_aes_crypt (AVAES *a, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt) | 
|   | Encrypts / decrypts.  
  | 
| static void  | init_multbl2 (uint8_t tbl[1024], const int c[4], const uint8_t *log8, const uint8_t *alog8, const uint8_t *sbox) | 
| int  | av_aes_init (AVAES *a, const uint8_t *key, int key_bits, int decrypt) | 
|   | Initializes an AVAES context.  
  | 
 Variables | 
| const int  | av_aes_size = sizeof(AVAES) | 
| static const uint8_t  | rcon [10] | 
| static uint8_t  | sbox [256] | 
| static uint8_t  | inv_sbox [256] | 
| static uint32_t  | enc_multbl [4][256] | 
| static uint32_t  | dec_multbl [4][256] | 
Function Documentation
      
        
          | static void addkey            | 
          ( | 
          uint64_t  | 
           dst[2],  | 
        
        
           | 
           | 
          const uint64_t  | 
           src[2],  | 
        
        
           | 
           | 
          const uint64_t  | 
           round_key[2] |   | 
        
        
           | 
          ) | 
           |  |  [inline, static] | 
        
      
 
 
      
        
          | void av_aes_crypt            | 
          ( | 
          struct AVAES *  | 
           a,  | 
        
        
           | 
           | 
          uint8_t *  | 
           dst,  | 
        
        
           | 
           | 
          const uint8_t *  | 
           src,  | 
        
        
           | 
           | 
          int  | 
           count,  | 
        
        
           | 
           | 
          uint8_t *  | 
           iv,  | 
        
        
           | 
           | 
          int  | 
           decrypt |   | 
        
        
           | 
          ) | 
           |  |  | 
        
      
 
Encrypts / decrypts. 
- Parameters:
 - 
  
     | count  | number of 16 byte blocks  | 
     | dst  | destination array, can be equal to src  | 
     | src  | source array, can be equal to dst  | 
     | iv  | initialization vector for CBC mode, if NULL then ECB will be used  | 
     | decrypt  | 0 for encryption, 1 for decryption  | 
  
 
Definition at line 90 of file aes.c.
Referenced by mxf_decrypt_triplet().
 
 
      
        
          | int av_aes_init            | 
          ( | 
          struct AVAES *  | 
           a,  | 
        
        
           | 
           | 
          const uint8_t *  | 
           key,  | 
        
        
           | 
           | 
          int  | 
           key_bits,  | 
        
        
           | 
           | 
          int  | 
           decrypt |   | 
        
        
           | 
          ) | 
           |  |  | 
        
      
 
Initializes an AVAES context. 
- Parameters:
 - 
  
     | key_bits  | 128, 192 or 256  | 
     | decrypt  | 0 for encryption, 1 for decryption  | 
  
 
Definition at line 125 of file aes.c.
Referenced by mxf_decrypt_triplet().
 
 
      
        
          | static void crypt            | 
          ( | 
          AVAES *  | 
           a,  | 
        
        
           | 
           | 
          int  | 
           s,  | 
        
        
           | 
           | 
          const uint8_t *  | 
           sbox,  | 
        
        
           | 
           | 
          const uint32_t *  | 
           multbl |   | 
        
        
           | 
          ) | 
           |  |  [inline, static] | 
        
      
 
 
      
        
          | static void init_multbl2            | 
          ( | 
          uint8_t  | 
           tbl[1024],  | 
        
        
           | 
           | 
          const int  | 
           c[4],  | 
        
        
           | 
           | 
          const uint8_t *  | 
           log8,  | 
        
        
           | 
           | 
          const uint8_t *  | 
           alog8,  | 
        
        
           | 
           | 
          const uint8_t *  | 
           sbox |   | 
        
        
           | 
          ) | 
           |  |  [static] | 
        
      
 
 
      
        
          | static void mix            | 
          ( | 
          uint8_t  | 
           state[2][4][4],  | 
        
        
           | 
           | 
          uint32_t  | 
           multbl[4][256],  | 
        
        
           | 
           | 
          int  | 
           s1,  | 
        
        
           | 
           | 
          int  | 
           s3 |   | 
        
        
           | 
          ) | 
           |  |  [inline, static] | 
        
      
 
Definition at line 73 of file aes.c.
 
 
      
        
          | static int mix_core            | 
          ( | 
          uint32_t  | 
           multbl[4][256],  | 
        
        
           | 
           | 
          int  | 
           a,  | 
        
        
           | 
           | 
          int  | 
           b,  | 
        
        
           | 
           | 
          int  | 
           c,  | 
        
        
           | 
           | 
          int  | 
           d |   | 
        
        
           | 
          ) | 
           |  |  [inline, static] | 
        
      
 
 
      
        
          | static void subshift            | 
          ( | 
          uint8_t  | 
           s0[2][16],  | 
        
        
           | 
           | 
          int  | 
           s,  | 
        
        
           | 
           | 
          const uint8_t *  | 
           box |   | 
        
        
           | 
          ) | 
           |  |  [static] | 
        
      
 
 
Variable Documentation
      
        
          const uint8_t rcon[10] [static]           | 
        
      
 
Initial value:
 {
  0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36
}
 
Definition at line 36 of file aes.c.
Referenced by av_aes_init().
 
 
      
        
          uint8_t sbox[256] [static]           |