/*
 * Cryptographic API.
 *
 * Anubis Algorithm
 *
 * The Anubis algorithm was developed by Paulo S. L. M. Barreto and
 * Vincent Rijmen.
 *
 * See
 *
 *	P.S.L.M. Barreto, V. Rijmen,
 *	``The Anubis block cipher,''
 *	NESSIE submission, 2000.
 *
 * This software implements the "tweaked" version of Anubis.
 * Only the S-box and (consequently) the rounds constants have been
 * changed.
 *
 * The original authors have disclaimed all copyright interest in this
 * code and thus put it in the public domain. The subsequent authors
 * have put this under the GNU General Public License.
 *
 * By Aaron Grothe ajgrothe@yahoo.com, October 28, 2004
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 */

#include <linux/init.h>
#include <linux/module.h>
#include <linux/mm.h>
#include <asm/byteorder.h>
#include <asm/scatterlist.h>
#include <linux/crypto.h>
#include <linux/types.h>

#define ANUBIS_MIN_KEY_SIZE	16
#define ANUBIS_MAX_KEY_SIZE	40
#define ANUBIS_BLOCK_SIZE	16
#define ANUBIS_MAX_N		10
#define ANUBIS_MAX_ROUNDS	(8 + ANUBIS_MAX_N)

struct anubis_ctx {
	int key_len; // in bits
	int R;
	u32 E[ANUBIS_MAX_ROUNDS + 1][4];
	u32 D[ANUBIS_MAX_ROUNDS + 1][4];
};

static const u32 T0[256] = {
	0xba69d2bbU, 0x54a84de5U, 0x2f5ebce2U, 0x74e8cd25U,
	0x53a651f7U, 0xd3bb6bd0U, 0xd2b96fd6U, 0x4d9a29b3U,
	0x50a05dfdU, 0xac458acfU, 0x8d070e09U, 0xbf63c6a5U,
	0x70e0dd3dU, 0x52a455f1U, 0x9a29527bU, 0x4c982db5U,
	0xeac98f46U, 0xd5b773c4U, 0x97336655U, 0xd1bf63dcU,
	0x3366ccaaU, 0x51a259fbU, 0x5bb671c7U, 0xa651a2f3U,
	0xdea15ffeU, 0x48903dadU, 0xa84d9ad7U, 0x992f5e71U,
	0xdbab4be0U, 0x3264c8acU, 0xb773e695U, 0xfce5d732U,
	0xe3dbab70U, 0x9e214263U, 0x913f7e41U, 0x9b2b567dU,
	0xe2d9af76U, 0xbb6bd6bdU, 0x4182199bU, 0x6edca579U,
	0xa557aef9U, 0xcb8b0b80U, 0x6bd6b167U, 0x95376e59U,
	0xa15fbee1U, 0xf3fbeb10U, 0xb17ffe81U, 0x0204080cU,
	0xcc851792U, 0xc49537a2U, 0x1d3a744eU, 0x14285078U,
	0xc39b2bb0U, 0x63c69157U, 0xdaa94fe6U, 0x5dba69d3U,
	0x5fbe61dfU, 0xdca557f2U, 0x7dfae913U, 0xcd871394U,
	0x7ffee11fU, 0x5ab475c1U, 0x6cd8ad75U, 0x5cb86dd5U,
	0xf7f3fb08U, 0x264c98d4U, 0xffe3db38U, 0xedc79354U,
	0xe8cd874aU, 0x9d274e69U, 0x6fdea17fU, 0x8e010203U,
	0x19326456U, 0xa05dbae7U, 0xf0fde71aU, 0x890f1e11U,
	0x0f1e3c22U, 0x070e1c12U, 0xaf4386c5U, 0xfbebcb20U,
	0x08102030U, 0x152a547eU, 0x0d1a342eU, 0x04081018U,
	0x01020406U, 0x64c88d45U, 0xdfa35bf8U, 0x76ecc529U,
	0x79f2f90bU, 0xdda753f4U, 0x3d7af48eU, 0x162c5874U,
	0x3f7efc82U, 0x376edcb2U, 0x6ddaa973U, 0x3870e090U,
	0xb96fdeb1U, 0x73e6d137U, 0xe9cf834cU, 0x356ad4beU,
	0x55aa49e3U, 0x71e2d93bU, 0x7bf6f107U, 0x8c050a0fU,
	0x72e4d531U, 0x880d1a17U, 0xf6f1ff0eU, 0x2a54a8fcU,
	0x3e7cf884U, 0x5ebc65d9U, 0x274e9cd2U, 0x468c0589U,
	0x0c183028U, 0x65ca8943U, 0x68d0bd6dU, 0x61c2995bU,
	0x03060c0aU, 0xc19f23bcU, 0x57ae41efU, 0xd6b17fceU,
	0xd9af43ecU, 0x58b07dcdU, 0xd8ad47eaU, 0x66cc8549U,
	0xd7b37bc8U, 0x3a74e89cU, 0xc88d078aU, 0x3c78f088U,
	0xfae9cf26U, 0x96316253U, 0xa753a6f5U, 0x982d5a77U,
	0xecc59752U, 0xb86ddab7U, 0xc7933ba8U, 0xae4182c3U,
	0x69d2b96bU, 0x4b9631a7U, 0xab4b96ddU, 0xa94f9ed1U,
	0x67ce814fU, 0x0a14283cU, 0x478e018fU, 0xf2f9ef16U,
	0xb577ee99U, 0x224488ccU, 0xe5d7b364U, 0xeec19f5eU,
	0xbe61c2a3U, 0x2b56acfaU, 0x811f3e21U, 0x1224486cU,
	0x831b362dU, 0x1b366c5aU, 0x0e1c3824U, 0x23468ccaU,
	0xf5f7f304U, 0x458a0983U, 0x214284c6U, 0xce811f9eU,
	0x499239abU, 0x2c58b0e8U, 0xf9efc32cU, 0xe6d1bf6eU,
	0xb671e293U, 0x2850a0f0U, 0x172e5c72U, 0x8219322bU,
	0x1a34685cU, 0x8b0b161dU, 0xfee1df3eU, 0x8a09121bU,
	0x09122436U, 0xc98f038cU, 0x87132635U, 0x4e9c25b9U,
	0xe1dfa37cU, 0x2e5cb8e4U, 0xe4d5b762U, 0xe0dda77aU,
	0xebcb8b40U, 0x903d7a47U, 0xa455aaffU, 0x1e3c7844U,
	0x85172e39U, 0x60c09d5dU, 0x00000000U, 0x254a94deU,
	0xf4f5f702U, 0xf1ffe31cU, 0x94356a5fU, 0x0b162c3aU,
	0xe7d3bb68U, 0x75eac923U, 0xefc39b58U, 0x3468d0b8U,
	0x3162c4a6U, 0xd4b577c2U, 0xd0bd67daU, 0x86112233U,
	0x7efce519U, 0xad478ec9U, 0xfde7d334U, 0x2952a4f6U,
	0x3060c0a0U, 0x3b76ec9aU, 0x9f234665U, 0xf8edc72aU,
	0xc6913faeU, 0x13264c6aU, 0x060c1814U, 0x050a141eU,
	0xc59733a4U, 0x11224466U, 0x77eec12fU, 0x7cf8ed15U,
	0x7af4f501U, 0x78f0fd0dU, 0x366cd8b4U, 0x1c387048U,
	0x3972e496U, 0x59b279cbU, 0x18306050U, 0x56ac45e9U,
	0xb37bf68dU, 0xb07dfa87U, 0x244890d8U, 0x204080c0U,
	0xb279f28bU, 0x9239724bU, 0xa35bb6edU, 0xc09d27baU,
	0x44880d85U, 0x62c49551U, 0x10204060U, 0xb475ea9fU,
	0x84152a3fU, 0x43861197U, 0x933b764dU, 0xc2992fb6U,
	0x4a9435a1U, 0xbd67cea9U, 0x8f030605U, 0x2d5ab4eeU,
	0xbc65caafU, 0x9c254a6fU, 0x6ad4b561U, 0x40801d9dU,
	0xcf831b98U, 0xa259b2ebU, 0x801d3a27U, 0x4f9e21bfU,
	0x1f3e7c42U, 0xca890f86U, 0xaa4992dbU, 0x42841591U,
};

static const u32 T1[256] = {
	0x69babbd2U, 0xa854e54dU, 0x5e2fe2bcU, 0xe87425cdU,
	0xa653f751U, 0xbbd3d06bU, 0xb9d2d66fU, 0x9a4db329U,
	0xa050fd5dU, 0x45accf8aU, 0x078d090eU, 0x63bfa5c6U,
	0xe0703dddU, 0xa452f155U, 0x299a7b52U, 0x984cb52dU,
	0xc9ea468fU, 0xb7d5c473U, 0x33975566U, 0xbfd1dc63U,
	0x6633aaccU, 0xa251fb59U, 0xb65bc771U, 0x51a6f3a2U,
	0xa1defe5fU, 0x9048ad3dU, 0x4da8d79aU, 0x2f99715eU,
	0xabdbe04bU, 0x6432acc8U, 0x73b795e6U, 0xe5fc32d7U,
	0xdbe370abU, 0x219e6342U, 0x3f91417eU, 0x2b9b7d56U,
	0xd9e276afU, 0x6bbbbdd6U, 0x82419b19U, 0xdc6e79a5U,
	0x57a5f9aeU, 0x8bcb800bU, 0xd66b67b1U, 0x3795596eU,
	0x5fa1e1beU, 0xfbf310ebU, 0x7fb181feU, 0x04020c08U,
	0x85cc9217U, 0x95c4a237U, 0x3a1d4e74U, 0x28147850U,
	0x9bc3b02bU, 0xc6635791U, 0xa9dae64fU, 0xba5dd369U,
	0xbe5fdf61U, 0xa5dcf257U, 0xfa7d13e9U, 0x87cd9413U,
	0xfe7f1fe1U, 0xb45ac175U, 0xd86c75adU, 0xb85cd56dU,
	0xf3f708fbU, 0x4c26d498U, 0xe3ff38dbU, 0xc7ed5493U,
	0xcde84a87U, 0x279d694eU, 0xde6f7fa1U, 0x018e0302U,
	0x32195664U, 0x5da0e7baU, 0xfdf01ae7U, 0x0f89111eU,
	0x1e0f223cU, 0x0e07121cU, 0x43afc586U, 0xebfb20cbU,
	0x10083020U, 0x2a157e54U, 0x1a0d2e34U, 0x08041810U,
	0x02010604U, 0xc864458dU, 0xa3dff85bU, 0xec7629c5U,
	0xf2790bf9U, 0xa7ddf453U, 0x7a3d8ef4U, 0x2c167458U,
	0x7e3f82fcU, 0x6e37b2dcU, 0xda6d73a9U, 0x703890e0U,
	0x6fb9b1deU, 0xe67337d1U, 0xcfe94c83U, 0x6a35bed4U,
	0xaa55e349U, 0xe2713bd9U, 0xf67b07f1U, 0x058c0f0aU,
	0xe47231d5U, 0x0d88171aU, 0xf1f60effU, 0x542afca8U,
	0x7c3e84f8U, 0xbc5ed965U, 0x4e27d29cU, 0x8c468905U,
	0x180c2830U, 0xca654389U, 0xd0686dbdU, 0xc2615b99U,
	0x06030a0cU, 0x9fc1bc23U, 0xae57ef41U, 0xb1d6ce7fU,
	0xafd9ec43U, 0xb058cd7dU, 0xadd8ea47U, 0xcc664985U,
	0xb3d7c87bU, 0x743a9ce8U, 0x8dc88a07U, 0x783c88f0U,
	0xe9fa26cfU, 0x31965362U, 0x53a7f5a6U, 0x2d98775aU,
	0xc5ec5297U, 0x6db8b7daU, 0x93c7a83bU, 0x41aec382U,
	0xd2696bb9U, 0x964ba731U, 0x4babdd96U, 0x4fa9d19eU,
	0xce674f81U, 0x140a3c28U, 0x8e478f01U, 0xf9f216efU,
	0x77b599eeU, 0x4422cc88U, 0xd7e564b3U, 0xc1ee5e9fU,
	0x61bea3c2U, 0x562bfaacU, 0x1f81213eU, 0x24126c48U,
	0x1b832d36U, 0x361b5a6cU, 0x1c0e2438U, 0x4623ca8cU,
	0xf7f504f3U, 0x8a458309U, 0x4221c684U, 0x81ce9e1fU,
	0x9249ab39U, 0x582ce8b0U, 0xeff92cc3U, 0xd1e66ebfU,
	0x71b693e2U, 0x5028f0a0U, 0x2e17725cU, 0x19822b32U,
	0x341a5c68U, 0x0b8b1d16U, 0xe1fe3edfU, 0x098a1b12U,
	0x12093624U, 0x8fc98c03U, 0x13873526U, 0x9c4eb925U,
	0xdfe17ca3U, 0x5c2ee4b8U, 0xd5e462b7U, 0xdde07aa7U,
	0xcbeb408bU, 0x3d90477aU, 0x55a4ffaaU, 0x3c1e4478U,
	0x1785392eU, 0xc0605d9dU, 0x00000000U, 0x4a25de94U,
	0xf5f402f7U, 0xfff11ce3U, 0x35945f6aU, 0x160b3a2cU,
	0xd3e768bbU, 0xea7523c9U, 0xc3ef589bU, 0x6834b8d0U,
	0x6231a6c4U, 0xb5d4c277U, 0xbdd0da67U, 0x11863322U,
	0xfc7e19e5U, 0x47adc98eU, 0xe7fd34d3U, 0x5229f6a4U,
	0x6030a0c0U, 0x763b9aecU, 0x239f6546U, 0xedf82ac7U,
	0x91c6ae3fU, 0x26136a4cU, 0x0c061418U, 0x0a051e14U,
	0x97c5a433U, 0x22116644U, 0xee772fc1U, 0xf87c15edU,
	0xf47a01f5U, 0xf0780dfdU, 0x6c36b4d8U, 0x381c4870U,
	0x723996e4U, 0xb259cb79U, 0x30185060U, 0xac56e945U,
	0x7bb38df6U, 0x7db087faU, 0x4824d890U, 0x4020c080U,
	0x79b28bf2U, 0x39924b72U, 0x5ba3edb6U, 0x9dc0ba27U,
	0x8844850dU, 0xc4625195U, 0x20106040U, 0x75b49feaU,
	0x15843f2aU, 0x86439711U, 0x3b934d76U, 0x99c2b62fU,
	0x944aa135U, 0x67bda9ceU, 0x038f0506U, 0x5a2deeb4U,
	0x65bcafcaU, 0x259c6f4aU, 0xd46a61b5U, 0x80409d1dU,
	0x83cf981bU, 0x59a2ebb2U, 0x1d80273aU, 0x9e4fbf21U,
	0x3e1f427cU, 0x89ca860fU, 0x49aadb92U, 0x84429115U,
};

static const u32 T2[256] = {
	0xd2bbba69U, 0x4de554a8U, 0xbce22f5eU, 0xcd2574e8U,
	0x51f753a6U, 0x6bd0d3bbU, 0x6fd6d2b9U, 0x29b34d9aU,
	0x5dfd50a0U, 0x8acfac45U, 0x0e098d07U, 0xc6a5bf63U,
	0xdd3d70e0U, 0x55f152a4U, 0x527b9a29U, 0x2db54c98U,
	0x8f46eac9U, 0x73c4d5b7U, 0x66559733U, 0x63dcd1bfU,
	0xccaa3366U, 0x59fb51a2U, 0x71c75bb6U, 0xa2f3a651U,
	0x5ffedea1U, 0x3dad4890U, 0x9ad7a84dU, 0x5e71992fU,
	0x4be0dbabU, 0xc8ac3264U, 0xe695b773U, 0xd732fce5U,
	0xab70e3dbU, 0x42639e21U, 0x7e41913fU, 0x567d9b2bU,
	0xaf76e2d9U, 0xd6bdbb6bU, 0x199b4182U, 0xa5796edcU,
	0xaef9a557U, 0x0b80cb8bU, 0xb1676bd6U, 0x6e599537U,
	0xbee1a15fU, 0xeb10f3fbU, 0xfe81b17fU, 0x080c0204U,
	0x1792cc85U, 0x37a2c495U, 0x744e1d3aU, 0x50781428U,
	0x2bb0c39bU, 0x915763c6U, 0x4fe6daa9U, 0x69d35dbaU,
	0x61df5fbeU, 0x57f2dca5U, 0xe9137dfaU, 0x1394cd87U,
	0xe11f7ffeU, 0x75c15ab4U, 0xad756cd8U, 0x6dd55cb8U,
	0xfb08f7f3U, 0x98d4264cU, 0xdb38ffe3U, 0x9354edc7U,
	0x874ae8cdU, 0x4e699d27U, 0xa17f6fdeU, 0x02038e01U,
	0x64561932U, 0xbae7a05dU, 0xe71af0fdU, 0x1e11890fU,
	0x3c220f1eU, 0x1c12070eU, 0x86c5af43U, 0xcb20fbebU,
	0x20300810U, 0x547e152aU, 0x342e0d1aU, 0x10180408U,
	0x04060102U, 0x8d4564c8U, 0x5bf8dfa3U, 0xc52976ecU,
	0xf90b79f2U, 0x53f4dda7U, 0xf48e3d7aU, 0x5874162cU,
	0xfc823f7eU, 0xdcb2376eU, 0xa9736ddaU, 0xe0903870U,
	0xdeb1b96fU, 0xd13773e6U, 0x834ce9cfU, 0xd4be356aU,
	0x49e355aaU, 0xd93b71e2U, 0xf1077bf6U, 0x0a0f8c05U,
	0xd53172e4U, 0x1a17880dU, 0xff0ef6f1U, 0xa8fc2a54U,
	0xf8843e7cU, 0x65d95ebcU, 0x9cd2274eU, 0x0589468cU,
	0x30280c18U, 0x894365caU, 0xbd6d68d0U, 0x995b61c2U,
	0x0c0a0306U, 0x23bcc19fU, 0x41ef57aeU, 0x7fced6b1U,
	0x43ecd9afU, 0x7dcd58b0U, 0x47ead8adU, 0x854966ccU,
	0x7bc8d7b3U, 0xe89c3a74U, 0x078ac88dU, 0xf0883c78U,
	0xcf26fae9U, 0x62539631U, 0xa6f5a753U, 0x5a77982dU,
	0x9752ecc5U, 0xdab7b86dU, 0x3ba8c793U, 0x82c3ae41U,
	0xb96b69d2U, 0x31a74b96U, 0x96ddab4bU, 0x9ed1a94fU,
	0x814f67ceU, 0x283c0a14U, 0x018f478eU, 0xef16f2f9U,
	0xee99b577U, 0x88cc2244U, 0xb364e5d7U, 0x9f5eeec1U,
	0xc2a3be61U, 0xacfa2b56U, 0x3e21811fU, 0x486c1224U,
	0x362d831bU, 0x6c5a1b36U, 0x38240e1cU, 0x8cca2346U,
	0xf304f5f7U, 0x0983458aU, 0x84c62142U, 0x1f9ece81U,
	0x39ab4992U, 0xb0e82c58U, 0xc32cf9efU, 0xbf6ee6d1U,
	0xe293b671U, 0xa0f02850U, 0x5c72172eU, 0x322b8219U,
	0x685c1a34U, 0x161d8b0bU, 0xdf3efee1U, 0x121b8a09U,
	0x24360912U, 0x038cc98fU, 0x26358713U, 0x25b94e9cU,
	0xa37ce1dfU, 0xb8e42e5cU, 0xb762e4d5U, 0xa77ae0ddU,
	0x8b40ebcbU, 0x7a47903dU, 0xaaffa455U, 0x78441e3cU,
	0x2e398517U, 0x9d5d60c0U, 0x00000000U, 0x94de254aU,
	0xf702f4f5U, 0xe31cf1ffU, 0x6a5f9435U, 0x2c3a0b16U,
	0xbb68e7d3U, 0xc92375eaU, 0x9b58efc3U, 0xd0b83468U,
	0xc4a63162U, 0x77c2d4b5U, 0x67dad0bdU, 0x22338611U,
	0xe5197efcU, 0x8ec9ad47U, 0xd334fde7U, 0xa4f62952U,
	0xc0a03060U, 0xec9a3b76U, 0x46659f23U, 0xc72af8edU,
	0x3faec691U, 0x4c6a1326U, 0x1814060cU, 0x141e050aU,
	0x33a4c597U, 0x44661122U, 0xc12f77eeU, 0xed157cf8U,
	0xf5017af4U, 0xfd0d78f0U, 0xd8b4366cU, 0x70481c38U,
	0xe4963972U, 0x79cb59b2U, 0x60501830U, 0x45e956acU,
	0xf68db37bU, 0xfa87b07dU, 0x90d82448U, 0x80c02040U,
	0xf28bb279U, 0x724b9239U, 0xb6eda35bU, 0x27bac09dU,
	0x0d854488U, 0x955162c4U, 0x40601020U, 0xea9fb475U,
	0x2a3f8415U, 0x11974386U, 0x764d933bU, 0x2fb6c299U,
	0x35a14a94U, 0xcea9bd67U, 0x06058f03U, 0xb4ee2d5aU,
	0xcaafbc65U, 0x4a6f9c25U, 0xb5616ad4U, 0x1d9d4080U,
	0x1b98cf83U, 0xb2eba259U, 0x3a27801dU, 0x21bf4f9eU,
	0x7c421f3eU, 0x0f86ca89U, 0x92dbaa49U, 0x15914284U,
};

static const u32 T3[256] = {
	0xbbd269baU, 0xe54da854U, 0xe2bc5e2fU, 0x25cde874U,
	0xf751a653U, 0xd06bbbd3U, 0xd66fb9d2U, 0xb3299a4dU,
	0xfd5da050U, 0xcf8a45acU, 0x090e078dU, 0xa5c663bfU,
	0x3ddde070U, 0xf155a452U, 0x7b52299aU, 0xb52d984cU,
	0x468fc9eaU, 0xc473b7d5U, 0x55663397U, 0xdc63bfd1U,
	0xaacc6633U, 0xfb59a251U, 0xc771b65bU, 0xf3a251a6U,
	0xfe5fa1deU, 0xad3d9048U, 0xd79a4da8U, 0x715e2f99U,
	0xe04babdbU, 0xacc86432U, 0x95e673b7U, 0x32d7e5fcU,
	0x70abdbe3U, 0x6342219eU, 0x417e3f91U, 0x7d562b9bU,
	0x76afd9e2U, 0xbdd66bbbU, 0x9b198241U, 0x79a5dc6eU,
	0xf9ae57a5U, 0x800b8bcbU, 0x67b1d66bU, 0x596e3795U,
	0xe1be5fa1U, 0x10ebfbf3U, 0x81fe7fb1U, 0x0c080402U,
	0x921785ccU, 0xa23795c4U, 0x4e743a1dU, 0x78502814U,
	0xb02b9bc3U, 0x5791c663U, 0xe64fa9daU, 0xd369ba5dU,
	0xdf61be5fU, 0xf257a5dcU, 0x13e9fa7dU, 0x941387cdU,
	0x1fe1fe7fU, 0xc175b45aU, 0x75add86cU, 0xd56db85cU,
	0x08fbf3f7U, 0xd4984c26U, 0x38dbe3ffU, 0x5493c7edU,
	0x4a87cde8U, 0x694e279dU, 0x7fa1de6fU, 0x0302018eU,
	0x56643219U, 0xe7ba5da0U, 0x1ae7fdf0U, 0x111e0f89U,
	0x223c1e0fU, 0x121c0e07U, 0xc58643afU, 0x20cbebfbU,
	0x30201008U, 0x7e542a15U, 0x2e341a0dU, 0x18100804U,
	0x06040201U, 0x458dc864U, 0xf85ba3dfU, 0x29c5ec76U,
	0x0bf9f279U, 0xf453a7ddU, 0x8ef47a3dU, 0x74582c16U,
	0x82fc7e3fU, 0xb2dc6e37U, 0x73a9da6dU, 0x90e07038U,
	0xb1de6fb9U, 0x37d1e673U, 0x4c83cfe9U, 0xbed46a35U,
	0xe349aa55U, 0x3bd9e271U, 0x07f1f67bU, 0x0f0a058cU,
	0x31d5e472U, 0x171a0d88U, 0x0efff1f6U, 0xfca8542aU,
	0x84f87c3eU, 0xd965bc5eU, 0xd29c4e27U, 0x89058c46U,
	0x2830180cU, 0x4389ca65U, 0x6dbdd068U, 0x5b99c261U,
	0x0a0c0603U, 0xbc239fc1U, 0xef41ae57U, 0xce7fb1d6U,
	0xec43afd9U, 0xcd7db058U, 0xea47add8U, 0x4985cc66U,
	0xc87bb3d7U, 0x9ce8743aU, 0x8a078dc8U, 0x88f0783cU,
	0x26cfe9faU, 0x53623196U, 0xf5a653a7U, 0x775a2d98U,
	0x5297c5ecU, 0xb7da6db8U, 0xa83b93c7U, 0xc38241aeU,
	0x6bb9d269U, 0xa731964bU, 0xdd964babU, 0xd19e4fa9U,
	0x4f81ce67U, 0x3c28140aU, 0x8f018e47U, 0x16eff9f2U,
	0x99ee77b5U, 0xcc884422U, 0x64b3d7e5U, 0x5e9fc1eeU,
	0xa3c261beU, 0xfaac562bU, 0x213e1f81U, 0x6c482412U,
	0x2d361b83U, 0x5a6c361bU, 0x24381c0eU, 0xca8c4623U,
	0x04f3f7f5U, 0x83098a45U, 0xc6844221U, 0x9e1f81ceU,
	0xab399249U, 0xe8b0582cU, 0x2cc3eff9U, 0x6ebfd1e6U,
	0x93e271b6U, 0xf0a05028U, 0x725c2e17U, 0x2b321982U,
	0x5c68341aU, 0x1d160b8bU, 0x3edfe1feU, 0x1b12098aU,
	0x36241209U, 0x8c038fc9U, 0x35261387U, 0xb9259c4eU,
	0x7ca3dfe1U, 0xe4b85c2eU, 0x62b7d5e4U, 0x7aa7dde0U,
	0x408bcbebU, 0x477a3d90U, 0xffaa55a4U, 0x44783c1eU,
	0x392e1785U, 0x5d9dc060U, 0x00000000U, 0xde944a25U,
	0x02f7f5f4U, 0x1ce3fff1U, 0x5f6a3594U, 0x3a2c160bU,
	0x68bbd3e7U, 0x23c9ea75U, 0x589bc3efU, 0xb8d06834U,
	0xa6c46231U, 0xc277b5d4U, 0xda67bdd0U, 0x33221186U,
	0x19e5fc7eU, 0xc98e47adU, 0x34d3e7fdU, 0xf6a45229U,
	0xa0c06030U, 0x9aec763bU, 0x6546239fU, 0x2ac7edf8U,
	0xae3f91c6U, 0x6a4c2613U, 0x14180c06U, 0x1e140a05U,
	0xa43397c5U, 0x66442211U, 0x2fc1ee77U, 0x15edf87cU,
	0x01f5f47aU, 0x0dfdf078U, 0xb4d86c36U, 0x4870381cU,
	0x96e47239U, 0xcb79b259U, 0x50603018U, 0xe945ac56U,
	0x8df67bb3U, 0x87fa7db0U, 0xd8904824U, 0xc0804020U,
	0x8bf279b2U, 0x4b723992U, 0xedb65ba3U, 0xba279dc0U,
	0x850d8844U, 0x5195c462U, 0x60402010U, 0x9fea75b4U,
	0x3f2a1584U, 0x97118643U, 0x4d763b93U, 0xb62f99c2U,
	0xa135944aU, 0xa9ce67bdU, 0x0506038fU, 0xeeb45a2dU,
	0xafca65bcU, 0x6f4a259cU, 0x61b5d46aU, 0x9d1d8040U,
	0x981b83cfU, 0xebb259a2U, 0x273a1d80U, 0xbf219e4fU,
	0x427c3e1fU, 0x860f89caU, 0xdb9249aaU, 0x91158442U,
};

static const u32 T4[256] = {
	0xbabababaU, 0x54545454U, 0x2f2f2f2fU, 0x74747474U,
	0x53535353U, 0xd3d3d3d3U, 0xd2d2d2d2U, 0x4d4d4d4dU,
	0x50505050U, 0xacacacacU, 0x8d8d8d8dU, 0xbfbfbfbfU,
	0x70707070U, 0x52525252U, 0x9a9a9a9aU, 0x4c4c4c4cU,
	0xeaeaeaeaU, 0xd5d5d5d5U, 0x97979797U, 0xd1d1d1d1U,
	0x33333333U, 0x51515151U, 0x5b5b5b5bU, 0xa6a6a6a6U,
	0xdedededeU, 0x48484848U, 0xa8a8a8a8U, 0x99999999U,
	0xdbdbdbdbU, 0x32323232U, 0xb7b7b7b7U, 0xfcfcfcfcU,
	0xe3e3e3e3U, 0x9e9e9e9eU, 0x91919191U, 0x9b9b9b9bU,
	0xe2e2e2e2U, 0xbbbbbbbbU, 0x41414141U, 0x6e6e6e6eU,
	0xa5a5a5a5U, 0xcbcbcbcbU, 0x6b6b6b6bU, 0x95959595U,
	0xa1a1a1a1U, 0xf3f3f3f3U, 0xb1b1b1b1U, 0x02020202U,
	0xccccccccU, 0xc4c4c4c4U, 0x1d1d1d1dU, 0x14141414U,
	0xc3c3c3c3U, 0x63636363U, 0xdadadadaU, 0x5d5d5d5dU,
	0x5f5f5f5fU, 0xdcdcdcdcU, 0x7d7d7d7dU, 0xcdcdcdcdU,
	0x7f7f7f7fU, 0x5a5a5a5aU, 0x6c6c6c6cU, 0x5c5c5c5cU,
	0xf7f7f7f7U, 0x26262626U, 0xffffffffU, 0xededededU,
	0xe8e8e8e8U, 0x9d9d9d9dU, 0x6f6f6f6fU, 0x8e8e8e8eU,
	0x19191919U, 0xa0a0a0a0U, 0xf0f0f0f0U, 0x89898989U,
	0x0f0f0f0fU, 0x07070707U, 0xafafafafU, 0xfbfbfbfbU,
	0x08080808U, 0x15151515U, 0x0d0d0d0dU, 0x04040404U,
	0x01010101U, 0x64646464U, 0xdfdfdfdfU, 0x76767676U,
	0x79797979U, 0xddddddddU, 0x3d3d3d3dU, 0x16161616U,
	0x3f3f3f3fU, 0x37373737U, 0x6d6d6d6dU, 0x38383838U,
	0xb9b9b9b9U, 0x73737373U, 0xe9e9e9e9U, 0x35353535U,
	0x55555555U, 0x71717171U, 0x7b7b7b7bU, 0x8c8c8c8cU,
	0x72727272U, 0x88888888U, 0xf6f6f6f6U, 0x2a2a2a2aU,
	0x3e3e3e3eU, 0x5e5e5e5eU, 0x27272727U, 0x46464646U,
	0x0c0c0c0cU, 0x65656565U, 0x68686868U, 0x61616161U,
	0x03030303U, 0xc1c1c1c1U, 0x57575757U, 0xd6d6d6d6U,
	0xd9d9d9d9U, 0x58585858U, 0xd8d8d8d8U, 0x66666666U,
	0xd7d7d7d7U, 0x3a3a3a3aU, 0xc8c8c8c8U, 0x3c3c3c3cU,
	0xfafafafaU, 0x96969696U, 0xa7a7a7a7U, 0x98989898U,
	0xececececU, 0xb8b8b8b8U, 0xc7c7c7c7U, 0xaeaeaeaeU,
	0x69696969U, 0x4b4b4b4bU, 0xababababU, 0xa9a9a9a9U,
	0x67676767U, 0x0a0a0a0aU, 0x47474747U, 0xf2f2f2f2U,
	0xb5b5b5b5U, 0x22222222U, 0xe5e5e5e5U, 0xeeeeeeeeU,
	0xbebebebeU, 0x2b2b2b2bU, 0x81818181U, 0x12121212U,
	0x83838383U, 0x1b1b1b1bU, 0x0e0e0e0eU, 0x23232323U,
	0xf5f5f5f5U, 0x45454545U, 0x21212121U, 0xcecececeU,
	0x49494949U, 0x2c2c2c2cU, 0xf9f9f9f9U, 0xe6e6e6e6U,
	0xb6b6b6b6U, 0x28282828U, 0x17171717U, 0x82828282U,
	0x1a1a1a1aU, 0x8b8b8b8bU, 0xfefefefeU, 0x8a8a8a8aU,
	0x09090909U, 0xc9c9c9c9U, 0x87878787U, 0x4e4e4e4eU,
	0xe1e1e1e1U, 0x2e2e2e2eU, 0xe4e4e4e4U, 0xe0e0e0e0U,
	0xebebebebU, 0x90909090U, 0xa4a4a4a4U, 0x1e1e1e1eU,
	0x85858585U, 0x60606060U, 0x00000000U, 0x25252525U,
	0xf4f4f4f4U, 0xf1f1f1f1U, 0x94949494U, 0x0b0b0b0bU,
	0xe7e7e7e7U, 0x75757575U, 0xefefefefU, 0x34343434U,
	0x31313131U, 0xd4d4d4d4U, 0xd0d0d0d0U, 0x86868686U,
	0x7e7e7e7eU, 0xadadadadU, 0xfdfdfdfdU, 0x29292929U,
	0x30303030U, 0x3b3b3b3bU, 0x9f9f9f9fU, 0xf8f8f8f8U,
	0xc6c6c6c6U, 0x13131313U, 0x06060606U, 0x05050505U,
	0xc5c5c5c5U, 0x11111111U, 0x77777777U, 0x7c7c7c7cU,
	0x7a7a7a7aU, 0x78787878U, 0x36363636U, 0x1c1c1c1cU,
	0x39393939U, 0x59595959U, 0x18181818U, 0x56565656U,
	0xb3b3b3b3U, 0xb0b0b0b0U, 0x24242424U, 0x20202020U,
	0xb2b2b2b2U, 0x92929292U, 0xa3a3a3a3U, 0xc0c0c0c0U,
	0x44444444U, 0x62626262U, 0x10101010U, 0xb4b4b4b4U,
	0x84848484U, 0x43434343U, 0x93939393U, 0xc2c2c2c2U,
	0x4a4a4a4aU, 0xbdbdbdbdU, 0x8f8f8f8fU, 0x2d2d2d2dU,
	0xbcbcbcbcU, 0x9c9c9c9cU, 0x6a6a6a6aU, 0x40404040U,
	0xcfcfcfcfU, 0xa2a2a2a2U, 0x80808080U, 0x4f4f4f4fU,
	0x1f1f1f1fU, 0xcacacacaU, 0xaaaaaaaaU, 0x42424242U,
};

static const u32 T5[256] = {
	0x00000000U, 0x01020608U, 0x02040c10U, 0x03060a18U,
	0x04081820U, 0x050a1e28U, 0x060c1430U, 0x070e1238U,
	0x08103040U, 0x09123648U, 0x0a143c50U, 0x0b163a58U,
	0x0c182860U, 0x0d1a2e68U, 0x0e1c2470U, 0x0f1e2278U,
	0x10206080U, 0x11226688U, 0x12246c90U, 0x13266a98U,
	0x142878a0U, 0x152a7ea8U, 0x162c74b0U, 0x172e72b8U,
	0x183050c0U, 0x193256c8U, 0x1a345cd0U, 0x1b365ad8U,
	0x1c3848e0U, 0x1d3a4ee8U, 0x1e3c44f0U, 0x1f3e42f8U,
	0x2040c01dU, 0x2142c615U, 0x2244cc0dU, 0x2346ca05U,
	0x2448d83dU, 0x254ade35U, 0x264cd42dU, 0x274ed225U,
	0x2850f05dU, 0x2952f655U, 0x2a54fc4dU, 0x2b56fa45U,
	0x2c58e87dU, 0x2d5aee75U, 0x2e5ce46dU, 0x2f5ee265U,
	0x3060a09dU, 0x3162a695U, 0x3264ac8dU, 0x3366aa85U,
	0x3468b8bdU, 0x356abeb5U, 0x366cb4adU, 0x376eb2a5U,
	0x387090ddU, 0x397296d5U, 0x3a749ccdU, 0x3b769ac5U,
	0x3c7888fdU, 0x3d7a8ef5U, 0x3e7c84edU, 0x3f7e82e5U,
	0x40809d3aU, 0x41829b32U, 0x4284912aU, 0x43869722U,
	0x4488851aU, 0x458a8312U, 0x468c890aU, 0x478e8f02U,
	0x4890ad7aU, 0x4992ab72U, 0x4a94a16aU, 0x4b96a762U,
	0x4c98b55aU, 0x4d9ab352U, 0x4e9cb94aU, 0x4f9ebf42U,
	0x50a0fdbaU, 0x51a2fbb2U, 0x52a4f1aaU, 0x53a6f7a2U,
	0x54a8e59aU, 0x55aae392U, 0x56ace98aU, 0x57aeef82U,
	0x58b0cdfaU, 0x59b2cbf2U, 0x5ab4c1eaU, 0x5bb6c7e2U,
	0x5cb8d5daU, 0x5dbad3d2U, 0x5ebcd9caU, 0x5fbedfc2U,
	0x60c05d27U, 0x61c25b2fU, 0x62c45137U, 0x63c6573fU,
	0x64c84507U, 0x65ca430fU, 0x66cc4917U, 0x67ce4f1fU,
	0x68d06d67U, 0x69d26b6fU, 0x6ad46177U, 0x6bd6677fU,
	0x6cd87547U, 0x6dda734fU, 0x6edc7957U, 0x6fde7f5fU,
	0x70e03da7U, 0x71e23bafU, 0x72e431b7U, 0x73e637bfU,
	0x74e82587U, 0x75ea238fU, 0x76ec2997U, 0x77ee2f9fU,
	0x78f00de7U, 0x79f20befU, 0x7af401f7U, 0x7bf607ffU,
	0x7cf815c7U, 0x7dfa13cfU, 0x7efc19d7U, 0x7ffe1fdfU,
	0x801d2774U, 0x811f217cU, 0x82192b64U, 0x831b2d6cU,
	0x84153f54U, 0x8517395cU, 0x86113344U, 0x8713354cU,
	0x880d1734U, 0x890f113cU, 0x8a091b24U, 0x8b0b1d2cU,
	0x8c050f14U, 0x8d07091cU, 0x8e010304U, 0x8f03050cU,
	0x903d47f4U, 0x913f41fcU, 0x92394be4U, 0x933b4decU,
	0x94355fd4U, 0x953759dcU, 0x963153c4U, 0x973355ccU,
	0x982d77b4U, 0x992f71bcU, 0x9a297ba4U, 0x9b2b7dacU,
	0x9c256f94U, 0x9d27699cU, 0x9e216384U, 0x9f23658cU,
	0xa05de769U, 0xa15fe161U, 0xa259eb79U, 0xa35bed71U,
	0xa455ff49U, 0xa557f941U, 0xa651f359U, 0xa753f551U,
	0xa84dd729U, 0xa94fd121U, 0xaa49db39U, 0xab4bdd31U,
	0xac45cf09U, 0xad47c901U, 0xae41c319U, 0xaf43c511U,
	0xb07d87e9U, 0xb17f81e1U, 0xb2798bf9U, 0xb37b8df1U,
	0xb4759fc9U, 0xb57799c1U, 0xb67193d9U, 0xb77395d1U,
	0xb86db7a9U, 0xb96fb1a1U, 0xba69bbb9U, 0xbb6bbdb1U,
	0xbc65af89U, 0xbd67a981U, 0xbe61a399U, 0xbf63a591U,
	0xc09dba4eU, 0xc19fbc46U, 0xc299b65eU, 0xc39bb056U,
	0xc495a26eU, 0xc597a466U, 0xc691ae7eU, 0xc793a876U,
	0xc88d8a0eU, 0xc98f8c06U, 0xca89861eU, 0xcb8b8016U,
	0xcc85922eU, 0xcd879426U, 0xce819e3eU, 0xcf839836U,
	0xd0bddaceU, 0xd1bfdcc6U, 0xd2b9d6deU, 0xd3bbd0d6U,
	0xd4b5c2eeU, 0xd5b7c4e6U, 0xd6b1cefeU, 0xd7b3c8f6U,
	0xd8adea8eU, 0xd9afec86U, 0xdaa9e69eU, 0xdbabe096U,
	0xdca5f2aeU, 0xdda7f4a6U, 0xdea1febeU, 0xdfa3f8b6U,
	0xe0dd7a53U, 0xe1df7c5bU, 0xe2d97643U, 0xe3db704bU,
	0xe4d56273U, 0xe5d7647bU, 0xe6d16e63U, 0xe7d3686bU,
	0xe8cd4a13U, 0xe9cf4c1bU, 0xeac94603U, 0xebcb400bU,
	0xecc55233U, 0xedc7543bU, 0xeec15e23U, 0xefc3582bU,
	0xf0fd1ad3U, 0xf1ff1cdbU, 0xf2f916c3U, 0xf3fb10cbU,
	0xf4f502f3U, 0xf5f704fbU, 0xf6f10ee3U, 0xf7f308ebU,
	0xf8ed2a93U, 0xf9ef2c9bU, 0xfae92683U, 0xfbeb208bU,
	0xfce532b3U, 0xfde734bbU, 0xfee13ea3U, 0xffe338abU,
};

static const u32 rc[] = {
	0xba542f74U, 0x53d3d24dU, 0x50ac8dbfU, 0x70529a4cU,
	0xead597d1U, 0x33515ba6U, 0xde48a899U, 0xdb32b7fcU,
	0xe39e919bU, 0xe2bb416eU, 0xa5cb6b95U, 0xa1f3b102U,
	0xccc41d14U, 0xc363da5dU, 0x5fdc7dcdU, 0x7f5a6c5cU,
	0xf726ffedU, 0xe89d6f8eU, 0x19a0f089U,
};

static int anubis_setkey(void *ctx_arg, const u8 *in_key,
			 unsigned int key_len, u32 *flags)
{
	const __be32 *key = (const __be32 *)in_key;
	int N, R, i, r;
	u32 kappa[ANUBIS_MAX_N];
	u32 inter[ANUBIS_MAX_N];

	struct anubis_ctx *ctx = ctx_arg;

	switch (key_len)
	{
		case 16: case 20: case 24: case 28:
		case 32: case 36: case 40:
			break;
		default:
			*flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
			return - EINVAL;
	}

	ctx->key_len = key_len * 8;
	N = ctx->key_len >> 5;
	ctx->R = R = 8 + N;

	/* * map cipher key to initial key state (mu): */
	for (i = 0; i < N; i++)
		kappa[i] = be32_to_cpu(key[i]);

	/*
	 * generate R + 1 round keys:
	 */
	for (r = 0; r <= R; r++) {
		u32 K0, K1, K2, K3;
		/*
		 * generate r-th round key K^r:
		 */
		K0 = T4[(kappa[N - 1] >> 24)       ];
		K1 = T4[(kappa[N - 1] >> 16) & 0xff];
		K2 = T4[(kappa[N - 1] >>  8) & 0xff];
		K3 = T4[(kappa[N - 1]      ) & 0xff];
		for (i = N - 2; i >= 0; i--) {
			K0 = T4[(kappa[i] >> 24)       ] ^
				(T5[(K0 >> 24)       ] & 0xff000000U) ^
				(T5[(K0 >> 16) & 0xff] & 0x00ff0000U) ^
				(T5[(K0 >>  8) & 0xff] & 0x0000ff00U) ^
				(T5[(K0      ) & 0xff] & 0x000000ffU);
			K1 = T4[(kappa[i] >> 16) & 0xff] ^
				(T5[(K1 >> 24)       ] & 0xff000000U) ^
				(T5[(K1 >> 16) & 0xff] & 0x00ff0000U) ^
				(T5[(K1 >>  8) & 0xff] & 0x0000ff00U) ^
				(T5[(K1      ) & 0xff] & 0x000000ffU);
			K2 = T4[(kappa[i] >>  8) & 0xff] ^
				(T5[(K2 >> 24)       ] & 0xff000000U) ^
				(T5[(K2 >> 16) & 0xff] & 0x00ff0000U) ^
				(T5[(K2 >>  8) & 0xff] & 0x0000ff00U) ^
				(T5[(K2      ) & 0xff] & 0x000000ffU);
			K3 = T4[(kappa[i]      ) & 0xff] ^
				(T5[(K3 >> 24)       ] & 0xff000000U) ^
				(T5[(K3 >> 16) & 0xff] & 0x00ff0000U) ^
				(T5[(K3 >>  8) & 0xff] & 0x0000ff00U) ^
				(T5[(K3      ) & 0xff] & 0x000000ffU);
		}

		ctx->E[r][0] = K0;
		ctx->E[r][1] = K1;
		ctx->E[r][2] = K2;
		ctx->E[r][3] = K3;

		/*
		 * compute kappa^{r+1} from kappa^r:
		 */
		if (r == R) {
			break;
		}
		for (i = 0; i < N; i++) {
			int j = i;
			inter[i]  = T0[(kappa[j--] >> 24)       ];
			if (j < 0) j = N - 1;
			inter[i] ^= T1[(kappa[j--] >> 16) & 0xff];
			if (j < 0) j = N - 1;
			inter[i] ^= T2[(kappa[j--] >>  8) & 0xff];
			if (j < 0) j = N - 1;
			inter[i] ^= T3[(kappa[j  ]      ) & 0xff];
		}
		kappa[0] = inter[0] ^ rc[r];
		for (i = 1; i < N; i++) {
			kappa[i] = inter[i];
		}
	}

	/*
	 * generate inverse key schedule: K'^0 = K^R, K'^R =
	 * 				  K^0, K'^r = theta(K^{R-r}):
	 */
	for (i = 0; i < 4; i++) {
		ctx->D[0][i] = ctx->E[R][i];
		ctx->D[R][i] = ctx->E[0][i];
	}
	for (r = 1; r < R; r++) {
		for (i = 0; i < 4; i++) {
			u32 v = ctx->E[R - r][i];
			ctx->D[r][i] =
				T0[T4[(v >> 24)       ] & 0xff] ^
				T1[T4[(v >> 16) & 0xff] & 0xff] ^
				T2[T4[(v >>  8) & 0xff] & 0xff] ^
				T3[T4[(v      ) & 0xff] & 0xff];
		}
	}

	return 0;
}

static void anubis_crypt(u32 roundKey[ANUBIS_MAX_ROUNDS + 1][4],
		u8 *ciphertext, const u8 *plaintext, const int R)
{
	const __be32 *src = (const __be32 *)plaintext;
	__be32 *dst = (__be32 *)ciphertext;
	int i, r;
	u32 state[4];
	u32 inter[4];

	/*
	 * map plaintext block to cipher state (mu)
	 * and add initial round key (sigma[K^0]):
	 */
	for (i = 0; i < 4; i++)
		state[i] = be32_to_cpu(src[i]) ^ roundKey[0][i];

	/*
	 * R - 1 full rounds:
	 */

	for (r = 1; r < R; r++) {
		inter[0] =
			T0[(state[0] >> 24)       ] ^
			T1[(state[1] >> 24)       ] ^
			T2[(state[2] >> 24)       ] ^
			T3[(state[3] >> 24)       ] ^
			roundKey[r][0];
		inter[1] =
			T0[(state[0] >> 16) & 0xff] ^
			T1[(state[1] >> 16) & 0xff] ^
			T2[(state[2] >> 16) & 0xff] ^
			T3[(state[3] >> 16) & 0xff] ^
			roundKey[r][1];
		inter[2] =
			T0[(state[0] >>  8) & 0xff] ^
			T1[(state[1] >>  8) & 0xff] ^
			T2[(state[2] >>  8) & 0xff] ^
			T3[(state[3] >>  8) & 0xff] ^
			roundKey[r][2];
		inter[3] =
			T0[(state[0]      ) & 0xff] ^
			T1[(state[1]      ) & 0xff] ^
			T2[(state[2]      ) & 0xff] ^
			T3[(state[3]      ) & 0xff] ^
			roundKey[r][3];
		state[0] = inter[0];
		state[1] = inter[1];
		state[2] = inter[2];
		state[3] = inter[3];
	}

	/*
	 * last round:
	 */

	inter[0] =
		(T0[(state[0] >> 24)       ] & 0xff000000U) ^
		(T1[(state[1] >> 24)       ] & 0x00ff0000U) ^
		(T2[(state[2] >> 24)       ] & 0x0000ff00U) ^
		(T3[(state[3] >> 24)       ] & 0x000000ffU) ^
		roundKey[R][0];
	inter[1] =
		(T0[(state[0] >> 16) & 0xff] & 0xff000000U) ^
		(T1[(state[1] >> 16) & 0xff] & 0x00ff0000U) ^
		(T2[(state[2] >> 16) & 0xff] & 0x0000ff00U) ^
		(T3[(state[3] >> 16) & 0xff] & 0x000000ffU) ^
		roundKey[R][1];
	inter[2] =
		(T0[(state[0] >>  8) & 0xff] & 0xff000000U) ^
		(T1[(state[1] >>  8) & 0xff] & 0x00ff0000U) ^
		(T2[(state[2] >>  8) & 0xff] & 0x0000ff00U) ^
		(T3[(state[3] >>  8) & 0xff] & 0x000000ffU) ^
		roundKey[R][2];
	inter[3] =
		(T0[(state[0]      ) & 0xff] & 0xff000000U) ^
		(T1[(state[1]      ) & 0xff] & 0x00ff0000U) ^
		(T2[(state[2]      ) & 0xff] & 0x0000ff00U) ^
		(T3[(state[3]      ) & 0xff] & 0x000000ffU) ^
		roundKey[R][3];

	/*
	 * map cipher state to ciphertext block (mu^{-1}):
	 */

	for (i = 0; i < 4; i++)
		dst[i] = cpu_to_be32(inter[i]);
}

static void anubis_encrypt(void *ctx_arg, u8 *dst, const u8 *src)
{
	struct anubis_ctx *ctx = ctx_arg;
	anubis_crypt(ctx->E, dst, src, ctx->R);
}

static void anubis_decrypt(void *ctx_arg, u8 *dst, const u8 *src)
{
	struct anubis_ctx *ctx = ctx_arg;
	anubis_crypt(ctx->D, dst, src, ctx->R);
}

static struct crypto_alg anubis_alg = {
	.cra_name		=	"anubis",
	.cra_flags		=	CRYPTO_ALG_TYPE_CIPHER,
	.cra_blocksize		=	ANUBIS_BLOCK_SIZE,
	.cra_ctxsize		=	sizeof (struct anubis_ctx),
	.cra_alignmask		=	3,
	.cra_module		=	THIS_MODULE,
	.cra_list		=	LIST_HEAD_INIT(anubis_alg.cra_list),
	.cra_u			=	{ .cipher = {
	.cia_min_keysize	=	ANUBIS_MIN_KEY_SIZE,
	.cia_max_keysize	=	ANUBIS_MAX_KEY_SIZE,
	.cia_setkey		= 	anubis_setkey,
	.cia_encrypt		=	anubis_encrypt,
	.cia_decrypt		=	anubis_decrypt } }
};

static int __init init(void)
{
	int ret = 0;
	
	ret = crypto_register_alg(&anubis_alg);
	return ret;
}

static void __exit fini(void)
{
	crypto_unregister_alg(&anubis_alg);
}

module_init(init);
module_exit(fini);

MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Anubis Cryptographic Algorithm");
