diff options
author | Simon Josefsson <simon@josefsson.org> | 2004-08-24 17:21:54 +0200 |
---|---|---|
committer | Niels Möller <nisse@lysator.liu.se> | 2004-08-24 17:21:54 +0200 |
commit | cc17439cb145cc24bbbbb5339264abf221d8ff5b (patch) | |
tree | bb40f37ec1a0e52423465984d4c9d42007ed3c41 /arctwo.h | |
parent | ffcdc8c6d2ea0730de2291f352571418a537a155 (diff) | |
download | nettle-cc17439cb145cc24bbbbb5339264abf221d8ff5b.tar.gz |
New file.
Rev: src/nettle/arctwo-meta.c:1.1
Rev: src/nettle/arctwo.c:1.1
Rev: src/nettle/arctwo.h:1.1
Rev: src/nettle/testsuite/arctwo-test.c:1.1
Diffstat (limited to 'arctwo.h')
-rw-r--r-- | arctwo.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/arctwo.h b/arctwo.h new file mode 100644 index 00000000..4f2a93f4 --- /dev/null +++ b/arctwo.h @@ -0,0 +1,76 @@ +/* arctwo.h + * + * The arctwo/rfc2268 block cipher. + */ + +/* nettle, low-level cryptographics library + * + * Copyright (C) 2004 Simon Josefsson + * Copyright (C) 2002, 2004 Niels Möller + * + * The nettle library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or (at your + * option) any later version. + * + * The nettle library 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 Lesser General Public + * License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the nettle library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + * MA 02111-1307, USA. + */ + +#ifndef NETTLE_ARCTWO_H_INCLUDED +#define NETTLE_ARCTWO_H_INCLUDED + +#include "nettle-types.h" + +/* Name mangling */ +#define arctwo_set_key nettle_arctwo_set_key +#define arctwo_set_key_ebk nettle_arctwo_set_key_ebk +#define arctwo_encrypt nettle_arctwo_encrypt +#define arctwo_decrypt nettle_arctwo_decrypt +#define arctwo_set_key_gutmann nettle_arctwo_set_key_gutmann + +#define ARCTWO_BLOCK_SIZE 8 + +/* Variable key size from 1 byte to 128 bytes. */ +#define ARCTWO_MIN_KEY_SIZE 1 +#define ARCTWO_MAX_KEY_SIZE 128 + +#define ARCTWO_KEY_SIZE 8 + +struct arctwo_ctx +{ + uint16_t S[64]; +}; + +/* Key expansion function that takes the "effective key bits", 1-1024, + as an explicit argument. 0 means maximum key bits. */ +void +arctwo_set_key_ebk (struct arctwo_ctx *ctx, + unsigned length, const uint8_t * key, unsigned ebk); + +/* Equvivalent to arctwo_set_key_ebk, with ebk = 8 * length */ +void +arctwo_set_key (struct arctwo_ctx *ctx, unsigned length, const uint8_t *key); + +/* Equvivalent to arctwo_set_key_ebk, with ebk = 1024 */ +/* FIXME: Is this function really needed, and if so, what's the right + name for it? */ +void +arctwo_set_key_gutmann (struct arctwo_ctx *ctx, + unsigned length, const uint8_t *key); + +void +arctwo_encrypt (struct arctwo_ctx *ctx, + unsigned length, uint8_t *dst, const uint8_t *src); +void +arctwo_decrypt (struct arctwo_ctx *ctx, + unsigned length, uint8_t *dst, const uint8_t *src); + +#endif /* NETTLE_ARCTWO_H_INCLUDED */ |