3 setupAESstate, aesCBCencrypt, aesCBCdecrypt, aesCTRencrypt, aesCTRdecrypt, setupAESXCBCstate, aesXCBCmac - advanced encryption standard (rijndael)
11 .B #include <libsec.h>
16 void aes_encrypt(ulong rk[], int Nr, uchar pt[16], uchar ct[16]);
19 void aes_decrypt(ulong rk[], int Nr, uchar ct[16], uchar pt[16]);
22 void setupAESstate(AESstate *s, uchar key[], int keybytes, uchar *ivec)
25 void aesCBCencrypt(uchar *p, int len, AESstate *s)
28 void aesCBCdecrypt(uchar *p, int len, AESstate *s)
31 void aesCTRencrypt(uchar *p, int len, AESstate *s)
34 void aesCTRdecrypt(uchar *p, int len, AESstate *s)
37 void setupAESXCBCstate(AESstate *s)
40 void aesXCBCmac(uchar *p, int len, AESstate *s)
42 AES (a.k.a. Rijndael) has replaced DES as the preferred
47 are the block ciphers, corresponding to
54 implement cipher-block-chaining encryption.
58 implement counter mode, per RFC 3686;
59 they are identical operations.
63 implement AES XCBC message authentication, per RFC 3566.
64 All ciphering is performed in place.
66 should be 16, 24, or 32.
67 The initialization vector
71 bytes should be random enough to be unlikely to be reused
72 but does not need to be
73 cryptographically strongly unpredictable.
91 .B http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
98 .IR setupAESXCBCstate ,
101 have not yet been verified by running test vectors through them.