aes-encblock.c revision 8d520ff1dc2da35cdca849e982051b86468016d8
18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/*
28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * AES encrypt_block
38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2003-2007, Jouni Malinen <j@w1.fi>
58d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
68d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This program is free software; you can redistribute it and/or modify
78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * it under the terms of the GNU General Public License version 2 as
88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * published by the Free Software Foundation.
98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Alternatively, this software may be distributed under the terms of BSD
118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * license.
128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * See README and COPYING for more details.
148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */
158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "includes.h"
178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "common.h"
198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "aes.h"
208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "aes_wrap.h"
218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/**
238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * aes_128_encrypt_block - Perform one AES 128-bit block operation
248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * @key: Key for AES
258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * @in: Input data (16 bytes)
268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * @out: Output of the AES block operation (16 bytes)
278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Returns: 0 on success, -1 on failure
288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */
298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint aes_128_encrypt_block(const u8 *key, const u8 *in, u8 *out)
308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{
318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	void *ctx;
328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	ctx = aes_encrypt_init(key, 16);
338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if (ctx == NULL)
348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		return -1;
358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	aes_encrypt(ctx, in, out);
368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	aes_encrypt_deinit(ctx);
378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	return 0;
388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}
39