AES Code

http://fp.gladman.plus.com/AES/index.htm
サンプル少ないなー。
「uses C source code only」だと、次のソースコードでビルドできた。(VCの場合)

  • aes.h
  • aes_mode.c
  • aes_via_ace.h
  • aescrypt.c
  • aeskey.c
  • aesopt.h
  • aestab.c
  • aestab.h
  • brg_endian.h
  • brg_types.h

とりあえず動かしてみる。

#include <stdio.h>
#include <string.h>
#include "aes.h"

#define KEY "1234567890123456"
#define KEYLEN 128
#define BUFSIZE 256

int main() {
  aes_encrypt_ctx encx;
  aes_decrypt_ctx decx;
  unsigned char *src = "ABCDE";
  unsigned char encrypted[BUFSIZE];
  unsigned char decrypted[BUFSIZE];

  memset(encrypted, 0, BUFSIZE);
  memset(decrypted, 0, BUFSIZE);

  aes_init();
  aes_encrypt_key(KEY, KEYLEN, &encx);
  aes_encrypt(src, encrypted, &encx);

  puts(encrypted);

  aes_decrypt_key(KEY, KEYLEN, &decx);
  aes_decrypt(encrypted, decrypted, &decx);

  puts(decrypted);

  return 0;
}


Dコ(:軼eィ
ABCDE
続行するには何かキーを押してください . . .

デフォルトのモードがわかんないな。
encryptしたときの最大長っていくつだろう?