tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

intel-aes.h (7890B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 /* Prototypes of the functions defined in the assembler file.  */
      6 void intel_aes_encrypt_init_128(const unsigned char *key, PRUint32 *expanded);
      7 void intel_aes_encrypt_init_192(const unsigned char *key, PRUint32 *expanded);
      8 void intel_aes_encrypt_init_256(const unsigned char *key, PRUint32 *expanded);
      9 void intel_aes_decrypt_init_128(const unsigned char *key, PRUint32 *expanded);
     10 void intel_aes_decrypt_init_192(const unsigned char *key, PRUint32 *expanded);
     11 void intel_aes_decrypt_init_256(const unsigned char *key, PRUint32 *expanded);
     12 SECStatus intel_aes_encrypt_ecb_128(AESContext *cx, unsigned char *output,
     13                                    unsigned int *outputLen,
     14                                    unsigned int maxOutputLen,
     15                                    const unsigned char *input,
     16                                    unsigned int inputLen,
     17                                    unsigned int blocksize);
     18 SECStatus intel_aes_decrypt_ecb_128(AESContext *cx, unsigned char *output,
     19                                    unsigned int *outputLen,
     20                                    unsigned int maxOutputLen,
     21                                    const unsigned char *input,
     22                                    unsigned int inputLen,
     23                                    unsigned int blocksize);
     24 SECStatus intel_aes_encrypt_cbc_128(AESContext *cx, unsigned char *output,
     25                                    unsigned int *outputLen,
     26                                    unsigned int maxOutputLen,
     27                                    const unsigned char *input,
     28                                    unsigned int inputLen,
     29                                    unsigned int blocksize);
     30 SECStatus intel_aes_decrypt_cbc_128(AESContext *cx, unsigned char *output,
     31                                    unsigned int *outputLen,
     32                                    unsigned int maxOutputLen,
     33                                    const unsigned char *input,
     34                                    unsigned int inputLen,
     35                                    unsigned int blocksize);
     36 SECStatus intel_aes_encrypt_ctr_128(CTRContext *cx, unsigned char *output,
     37                                    unsigned int *outputLen,
     38                                    unsigned int maxOutputLen,
     39                                    const unsigned char *input,
     40                                    unsigned int inputLen,
     41                                    unsigned int blocksize);
     42 SECStatus intel_aes_encrypt_ecb_192(AESContext *cx, unsigned char *output,
     43                                    unsigned int *outputLen,
     44                                    unsigned int maxOutputLen,
     45                                    const unsigned char *input,
     46                                    unsigned int inputLen,
     47                                    unsigned int blocksize);
     48 SECStatus intel_aes_decrypt_ecb_192(AESContext *cx, unsigned char *output,
     49                                    unsigned int *outputLen,
     50                                    unsigned int maxOutputLen,
     51                                    const unsigned char *input,
     52                                    unsigned int inputLen,
     53                                    unsigned int blocksize);
     54 SECStatus intel_aes_encrypt_cbc_192(AESContext *cx, unsigned char *output,
     55                                    unsigned int *outputLen,
     56                                    unsigned int maxOutputLen,
     57                                    const unsigned char *input,
     58                                    unsigned int inputLen,
     59                                    unsigned int blocksize);
     60 SECStatus intel_aes_decrypt_cbc_192(AESContext *cx, unsigned char *output,
     61                                    unsigned int *outputLen,
     62                                    unsigned int maxOutputLen,
     63                                    const unsigned char *input,
     64                                    unsigned int inputLen,
     65                                    unsigned int blocksize);
     66 SECStatus intel_aes_encrypt_ctr_192(CTRContext *cx, unsigned char *output,
     67                                    unsigned int *outputLen,
     68                                    unsigned int maxOutputLen,
     69                                    const unsigned char *input,
     70                                    unsigned int inputLen,
     71                                    unsigned int blocksize);
     72 SECStatus intel_aes_encrypt_ecb_256(AESContext *cx, unsigned char *output,
     73                                    unsigned int *outputLen,
     74                                    unsigned int maxOutputLen,
     75                                    const unsigned char *input,
     76                                    unsigned int inputLen,
     77                                    unsigned int blocksize);
     78 SECStatus intel_aes_decrypt_ecb_256(AESContext *cx, unsigned char *output,
     79                                    unsigned int *outputLen,
     80                                    unsigned int maxOutputLen,
     81                                    const unsigned char *input,
     82                                    unsigned int inputLen,
     83                                    unsigned int blocksize);
     84 SECStatus intel_aes_encrypt_cbc_256(AESContext *cx, unsigned char *output,
     85                                    unsigned int *outputLen,
     86                                    unsigned int maxOutputLen,
     87                                    const unsigned char *input,
     88                                    unsigned int inputLen,
     89                                    unsigned int blocksize);
     90 SECStatus intel_aes_decrypt_cbc_256(AESContext *cx, unsigned char *output,
     91                                    unsigned int *outputLen,
     92                                    unsigned int maxOutputLen,
     93                                    const unsigned char *input,
     94                                    unsigned int inputLen,
     95                                    unsigned int blocksize);
     96 SECStatus intel_aes_encrypt_ctr_256(CTRContext *cx, unsigned char *output,
     97                                    unsigned int *outputLen,
     98                                    unsigned int maxOutputLen,
     99                                    const unsigned char *input,
    100                                    unsigned int inputLen,
    101                                    unsigned int blocksize);
    102 
    103 #define intel_aes_ctr_worker(nr)              \
    104    ((nr) == 10   ? intel_aes_encrypt_ctr_128 \
    105     : (nr) == 12 ? intel_aes_encrypt_ctr_192 \
    106                  : intel_aes_encrypt_ctr_256)
    107 
    108 #define native_aes_init(encrypt, keysize)                           \
    109    do {                                                            \
    110        if (encrypt) {                                              \
    111            if (keysize == 16)                                      \
    112                intel_aes_encrypt_init_128(key, cx->k.expandedKey); \
    113            else if (keysize == 24)                                 \
    114                intel_aes_encrypt_init_192(key, cx->k.expandedKey); \
    115            else                                                    \
    116                intel_aes_encrypt_init_256(key, cx->k.expandedKey); \
    117        } else {                                                    \
    118            if (keysize == 16)                                      \
    119                intel_aes_decrypt_init_128(key, cx->k.expandedKey); \
    120            else if (keysize == 24)                                 \
    121                intel_aes_decrypt_init_192(key, cx->k.expandedKey); \
    122            else                                                    \
    123                intel_aes_decrypt_init_256(key, cx->k.expandedKey); \
    124        }                                                           \
    125    } while (0)