AES(3)                                                     AES(3)

     NAME
          setupAESstate, aesCBCencrypt, aesCBCdecrypt - advanced
          encryption standard (rijndael)

     SYNOPSIS
          #include <u.h>
          #include <libc.h>
          #include <mp.h>
          #include <libsec.h>

          void setupAESstate(AESstate *s, uchar key[], int keybytes,
          uchar *ivec)

          void aesCBCencrypt(uchar*, int, AESstate*)

          void aesCBCdecrypt(uchar*, int, AESstate*)

     DESCRIPTION
          DES is being replaced by Rijndael, also known as AES, as the
          preferred block ciper.  setupAESstate, aesCBCencrypt, and
          aesCBCdecrypt implement cipher block chaining encryption.
          Keybytes should be 16, 24, or 32.  The initialization vector
          ivec of AESbsize bytes should random enough to be unlikely
          to be reused but does not need to be cryptographically
          strongly unpredictable.

     SOURCE
          /src/libsec

     SEE ALSO
          mp(3), blowfish(3), des(3), dsa(3), elgamal(3), rc4(3),
          rsa(3), sechash(3), prime(3), rand(3)