Select Git revision
-
Henrik (Grubba) Grubbström authored
Rev: src/acconfig.h:1.19 Rev: src/alloca.c:1.2 Rev: src/array.c:1.31 Rev: src/array.h:1.12 Rev: src/backend.h:1.6 Rev: src/build_modlist_h:1.2 Rev: src/builtin_functions.h:1.7 Rev: src/callback.c:1.14 Rev: src/callback.h:1.7 Rev: src/compilation.h:1.8 Rev: src/constants.c:1.13 Rev: src/constants.h:1.6 Rev: src/cpp.c:1.21 Rev: src/cpp.h:1.4 Rev: src/crypt.c:1.2 Rev: src/cyclic.c:1.3 Rev: src/cyclic.h:1.3 Rev: src/dmalloc.h:1.5 Rev: src/docode.h:1.5 Rev: src/dynamic_buffer.c:1.8 Rev: src/dynamic_buffer.h:1.6 Rev: src/dynamic_load.c:1.25 Rev: src/dynamic_load.h:1.3 Rev: src/efun.h:1.3 Rev: src/encode.c:1.18 Rev: src/encode.h:1.2 Rev: src/error.c:1.14 Rev: src/error.h:1.14 Rev: src/fd_control.c:1.17 Rev: src/fd_control.h:1.3 Rev: src/fdlib.c:1.16 Rev: src/fdlib.h:1.13 Rev: src/fsort.c:1.9 Rev: src/fsort.h:1.2 Rev: src/fsort_template.h:1.3 Rev: src/gc.c:1.30 Rev: src/gc.h:1.16 Rev: src/global.h:1.20 Rev: src/hashtable.c:1.4 Rev: src/hashtable.h:1.5 Rev: src/install-sh:1.4 Rev: src/interpret.h:1.20 Rev: src/las.h:1.13 Rev: src/lex.h:1.10 Rev: src/main.h:1.7 Rev: src/mapping.h:1.10 Rev: src/module.c:1.8 Rev: src/module.h:1.4 Rev: src/module_support.c:1.9 Rev: src/module_support.h:1.6 Rev: src/modules/Gdbm/Makefile.in:1.3 Rev: src/modules/Gdbm/configure.in:1.2 Rev: src/modules/Gdbm/testsuite.in:1.4 Rev: src/modules/Gmp/Makefile.in:1.8 Rev: src/modules/Gmp/configure.in:1.2 Rev: src/modules/Gmp/gmp_machine.h.in:1.2 Rev: src/modules/Gmp/my_gmp.h:1.3 Rev: src/modules/Gmp/next_prime.c:1.6 Rev: src/modules/Gmp/prime_table.c:1.3 Rev: src/modules/Gmp/testsuite.in:1.12 Rev: src/modules/Gz/Makefile.in:1.3 Rev: src/modules/Gz/configure.in:1.10 Rev: src/modules/Gz/testsuite.in:1.4 Rev: src/modules/Image/Makefile:1.8 Rev: src/modules/Image/Makefile.in:1.14 Rev: src/modules/Image/configure.in:1.8 Rev: src/modules/Image/encodings/Makefile.in:1.14 Rev: src/modules/Image/encodings/configure.in:1.4 Rev: src/modules/Image/testsuite.in:1.5 Rev: src/modules/MIME/Makefile.in:1.2 Rev: src/modules/MIME/acconfig.h:1.2 Rev: src/modules/MIME/configure.in:1.3 Rev: src/modules/MIME/testsuite.in:1.5 Rev: src/modules/Msql/Makefile.in:1.3 Rev: src/modules/Msql/test_msqlmod.pike:1.2 Rev: src/modules/Mysql/dummy.c:1.4 Rev: src/modules/Pipe/Makefile.in:1.3 Rev: src/modules/Pipe/configure.in:1.4 Rev: src/modules/Postgres/extras/test_notify.pike:1.2 Rev: src/modules/Postgres/extras/test_schema.pike:1.2 Rev: src/modules/Postgres/pg_types.h:1.3 Rev: src/modules/Postgres/pgresult.c:1.5 Rev: src/modules/Postgres/pgresult.h:1.2 Rev: src/modules/Regexp/Makefile.in:1.5 Rev: src/modules/Regexp/configure.in:1.5 Rev: src/modules/Regexp/glue.c:1.10 Rev: src/modules/Regexp/pike_regexp.c:1.12 Rev: src/modules/Regexp/pike_regexp.h:1.3 Rev: src/modules/Regexp/testsuite.in:1.3 Rev: src/modules/Ssleay/Makefile.in:1.3 Rev: src/modules/Ssleay/acconfig.h:1.2 Rev: src/modules/Ssleay/configure.in:1.4 Rev: src/modules/Yp/Makefile.in:1.3 Rev: src/modules/Yp/configure.in:1.5 Rev: src/modules/Yp/yp.c:1.12 Rev: src/modules/_Crypto/.build_lobotomized_crypto:1.6 Rev: src/modules/_Crypto/.exportable_files:1.3 Rev: src/modules/_Crypto/Makefile.in:1.16 Rev: src/modules/_Crypto/configure.in:1.5 Rev: src/modules/_Crypto/include/.exportable_files:1.2 Rev: src/modules/_Crypto/include/RCSID.h:1.6 Rev: src/modules/_Crypto/include/cast.h:1.2 Rev: src/modules/_Crypto/include/crypto_types.h:1.5 Rev: src/modules/_Crypto/include/idea.h:1.4 Rev: src/modules/_Crypto/include/md5.h:1.2 Rev: src/modules/_Crypto/include/rc4.h:1.3 Rev: src/modules/_Crypto/include/sha.h:1.4 Rev: src/modules/_Crypto/lib/.exportable_files:1.2 Rev: src/modules/_Crypto/lib/cast.c:1.2 Rev: src/modules/_Crypto/lib/cast_sboxes.h:1.2 Rev: src/modules/_Crypto/precompiled_crypto.h:1.17 Rev: src/modules/_Crypto/sha.c:1.10 Rev: src/modules/_Image_PNG/Makefile.in:1.2 Rev: src/modules/_Image_PNG/configure.in:1.2 Rev: src/modules/_Image_PNG/testsuite.in:1.3 Rev: src/modules/_Image_XFace/Makefile.in:1.2 Rev: src/modules/_Image_XFace/configure.in:1.2 Rev: src/modules/_Image_XFace/testsuite.in:1.2 Rev: src/modules/configure.in:1.5 Rev: src/modules/module_configure.in:1.5 Rev: src/modules/module_makefile:1.3 Rev: src/multiset.c:1.10 Rev: src/multiset.h:1.7 Rev: src/object.h:1.17 Rev: src/opcodes.c:1.16 Rev: src/opcodes.h:1.4 Rev: src/operators.h:1.4 Rev: src/otable.h:1.2 Rev: src/peep.c:1.19 Rev: src/peep.h:1.4 Rev: src/peep.in:1.12 Rev: src/pike_macros.h:1.6 Rev: src/pike_memory.c:1.18 Rev: src/pike_memory.h:1.4 Rev: src/pike_types.h:1.11 Rev: src/port.c:1.15 Rev: src/port.h:1.18 Rev: src/program.h:1.35 Rev: src/run_autoconfig:1.21 Rev: src/rusage.c:1.10 Rev: src/rusage.h:1.3 Rev: src/signal_handler.c:1.41 Rev: src/signal_handler.h:1.6 Rev: src/stralloc.c:1.30 Rev: src/stralloc.h:1.15 Rev: src/stuff.c:1.6 Rev: src/stuff.h:1.5 Rev: src/svalue.c:1.21 Rev: src/svalue.h:1.14 Rev: src/threads.h:1.40 Rev: src/time_stuff.h:1.8 Rev: src/ualarm.c:1.2 Rev: src/version.c:1.34 Rev: src/version.h:1.3
Henrik (Grubba) Grubbström authoredRev: src/acconfig.h:1.19 Rev: src/alloca.c:1.2 Rev: src/array.c:1.31 Rev: src/array.h:1.12 Rev: src/backend.h:1.6 Rev: src/build_modlist_h:1.2 Rev: src/builtin_functions.h:1.7 Rev: src/callback.c:1.14 Rev: src/callback.h:1.7 Rev: src/compilation.h:1.8 Rev: src/constants.c:1.13 Rev: src/constants.h:1.6 Rev: src/cpp.c:1.21 Rev: src/cpp.h:1.4 Rev: src/crypt.c:1.2 Rev: src/cyclic.c:1.3 Rev: src/cyclic.h:1.3 Rev: src/dmalloc.h:1.5 Rev: src/docode.h:1.5 Rev: src/dynamic_buffer.c:1.8 Rev: src/dynamic_buffer.h:1.6 Rev: src/dynamic_load.c:1.25 Rev: src/dynamic_load.h:1.3 Rev: src/efun.h:1.3 Rev: src/encode.c:1.18 Rev: src/encode.h:1.2 Rev: src/error.c:1.14 Rev: src/error.h:1.14 Rev: src/fd_control.c:1.17 Rev: src/fd_control.h:1.3 Rev: src/fdlib.c:1.16 Rev: src/fdlib.h:1.13 Rev: src/fsort.c:1.9 Rev: src/fsort.h:1.2 Rev: src/fsort_template.h:1.3 Rev: src/gc.c:1.30 Rev: src/gc.h:1.16 Rev: src/global.h:1.20 Rev: src/hashtable.c:1.4 Rev: src/hashtable.h:1.5 Rev: src/install-sh:1.4 Rev: src/interpret.h:1.20 Rev: src/las.h:1.13 Rev: src/lex.h:1.10 Rev: src/main.h:1.7 Rev: src/mapping.h:1.10 Rev: src/module.c:1.8 Rev: src/module.h:1.4 Rev: src/module_support.c:1.9 Rev: src/module_support.h:1.6 Rev: src/modules/Gdbm/Makefile.in:1.3 Rev: src/modules/Gdbm/configure.in:1.2 Rev: src/modules/Gdbm/testsuite.in:1.4 Rev: src/modules/Gmp/Makefile.in:1.8 Rev: src/modules/Gmp/configure.in:1.2 Rev: src/modules/Gmp/gmp_machine.h.in:1.2 Rev: src/modules/Gmp/my_gmp.h:1.3 Rev: src/modules/Gmp/next_prime.c:1.6 Rev: src/modules/Gmp/prime_table.c:1.3 Rev: src/modules/Gmp/testsuite.in:1.12 Rev: src/modules/Gz/Makefile.in:1.3 Rev: src/modules/Gz/configure.in:1.10 Rev: src/modules/Gz/testsuite.in:1.4 Rev: src/modules/Image/Makefile:1.8 Rev: src/modules/Image/Makefile.in:1.14 Rev: src/modules/Image/configure.in:1.8 Rev: src/modules/Image/encodings/Makefile.in:1.14 Rev: src/modules/Image/encodings/configure.in:1.4 Rev: src/modules/Image/testsuite.in:1.5 Rev: src/modules/MIME/Makefile.in:1.2 Rev: src/modules/MIME/acconfig.h:1.2 Rev: src/modules/MIME/configure.in:1.3 Rev: src/modules/MIME/testsuite.in:1.5 Rev: src/modules/Msql/Makefile.in:1.3 Rev: src/modules/Msql/test_msqlmod.pike:1.2 Rev: src/modules/Mysql/dummy.c:1.4 Rev: src/modules/Pipe/Makefile.in:1.3 Rev: src/modules/Pipe/configure.in:1.4 Rev: src/modules/Postgres/extras/test_notify.pike:1.2 Rev: src/modules/Postgres/extras/test_schema.pike:1.2 Rev: src/modules/Postgres/pg_types.h:1.3 Rev: src/modules/Postgres/pgresult.c:1.5 Rev: src/modules/Postgres/pgresult.h:1.2 Rev: src/modules/Regexp/Makefile.in:1.5 Rev: src/modules/Regexp/configure.in:1.5 Rev: src/modules/Regexp/glue.c:1.10 Rev: src/modules/Regexp/pike_regexp.c:1.12 Rev: src/modules/Regexp/pike_regexp.h:1.3 Rev: src/modules/Regexp/testsuite.in:1.3 Rev: src/modules/Ssleay/Makefile.in:1.3 Rev: src/modules/Ssleay/acconfig.h:1.2 Rev: src/modules/Ssleay/configure.in:1.4 Rev: src/modules/Yp/Makefile.in:1.3 Rev: src/modules/Yp/configure.in:1.5 Rev: src/modules/Yp/yp.c:1.12 Rev: src/modules/_Crypto/.build_lobotomized_crypto:1.6 Rev: src/modules/_Crypto/.exportable_files:1.3 Rev: src/modules/_Crypto/Makefile.in:1.16 Rev: src/modules/_Crypto/configure.in:1.5 Rev: src/modules/_Crypto/include/.exportable_files:1.2 Rev: src/modules/_Crypto/include/RCSID.h:1.6 Rev: src/modules/_Crypto/include/cast.h:1.2 Rev: src/modules/_Crypto/include/crypto_types.h:1.5 Rev: src/modules/_Crypto/include/idea.h:1.4 Rev: src/modules/_Crypto/include/md5.h:1.2 Rev: src/modules/_Crypto/include/rc4.h:1.3 Rev: src/modules/_Crypto/include/sha.h:1.4 Rev: src/modules/_Crypto/lib/.exportable_files:1.2 Rev: src/modules/_Crypto/lib/cast.c:1.2 Rev: src/modules/_Crypto/lib/cast_sboxes.h:1.2 Rev: src/modules/_Crypto/precompiled_crypto.h:1.17 Rev: src/modules/_Crypto/sha.c:1.10 Rev: src/modules/_Image_PNG/Makefile.in:1.2 Rev: src/modules/_Image_PNG/configure.in:1.2 Rev: src/modules/_Image_PNG/testsuite.in:1.3 Rev: src/modules/_Image_XFace/Makefile.in:1.2 Rev: src/modules/_Image_XFace/configure.in:1.2 Rev: src/modules/_Image_XFace/testsuite.in:1.2 Rev: src/modules/configure.in:1.5 Rev: src/modules/module_configure.in:1.5 Rev: src/modules/module_makefile:1.3 Rev: src/multiset.c:1.10 Rev: src/multiset.h:1.7 Rev: src/object.h:1.17 Rev: src/opcodes.c:1.16 Rev: src/opcodes.h:1.4 Rev: src/operators.h:1.4 Rev: src/otable.h:1.2 Rev: src/peep.c:1.19 Rev: src/peep.h:1.4 Rev: src/peep.in:1.12 Rev: src/pike_macros.h:1.6 Rev: src/pike_memory.c:1.18 Rev: src/pike_memory.h:1.4 Rev: src/pike_types.h:1.11 Rev: src/port.c:1.15 Rev: src/port.h:1.18 Rev: src/program.h:1.35 Rev: src/run_autoconfig:1.21 Rev: src/rusage.c:1.10 Rev: src/rusage.h:1.3 Rev: src/signal_handler.c:1.41 Rev: src/signal_handler.h:1.6 Rev: src/stralloc.c:1.30 Rev: src/stralloc.h:1.15 Rev: src/stuff.c:1.6 Rev: src/stuff.h:1.5 Rev: src/svalue.c:1.21 Rev: src/svalue.h:1.14 Rev: src/threads.h:1.40 Rev: src/time_stuff.h:1.8 Rev: src/ualarm.c:1.2 Rev: src/version.c:1.34 Rev: src/version.h:1.3
aes-set-encrypt-key.c 1.75 KiB
/* aes-set-encrypt-key.c
Key setup for the aes/rijndael block cipher.
Copyright (C) 2000, 2001, 2002 Rafael R. Sevilla, Niels Möller
Copyright (C) 2013 Niels Möller
This file is part of GNU Nettle.
GNU Nettle is free software: you can redistribute it and/or
modify it under the terms of either:
* the GNU Lesser General Public License as published by the Free
Software Foundation; either version 3 of the License, or (at your
option) any later version.
or
* 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.
or both in parallel, as here.
GNU Nettle is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received copies of the GNU General Public License and
the GNU Lesser General Public License along with this program. If
not, see http://www.gnu.org/licenses/.
*/
#if HAVE_CONFIG_H
# include "config.h"
#endif
#include <assert.h>
#include "aes-internal.h"
void
aes_set_encrypt_key(struct aes_ctx *ctx,
size_t keysize, const uint8_t *key)
{
unsigned nk, nr;
assert(keysize >= AES_MIN_KEY_SIZE);
assert(keysize <= AES_MAX_KEY_SIZE);
/* Truncate keysizes to the valid key sizes provided by Rijndael */
if (keysize == AES256_KEY_SIZE) {
nk = 8;
nr = _AES256_ROUNDS;
} else if (keysize >= AES192_KEY_SIZE) {
nk = 6;
nr = _AES192_ROUNDS;
} else { /* must be 16 or more */
nk = 4;
nr = _AES128_ROUNDS;
}
ctx->rounds = nr;
_aes_set_key (nr, nk, ctx->keys, key);
}