2 * FIPS-46-3 compliant 3DES implementation
4 * Copyright (C) 2001-2003 Christophe Devine
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28 uint32_t esk
[32]; /* DES encryption subkeys */
29 uint32_t dsk
[32]; /* DES decryption subkeys */
35 uint32_t esk
[96]; /* Triple-DES encryption subkeys */
36 uint32_t dsk
[96]; /* Triple-DES decryption subkeys */
40 int des_set_key( des_context
*ctx
, uint8_t key
[8] );
41 void des_encrypt( des_context
*ctx
, uint8_t input
[8], uint8_t output
[8] );
42 void des_decrypt( des_context
*ctx
, uint8_t input
[8], uint8_t output
[8] );
44 int des3_set_2keys( des3_context
*ctx
, const uint8_t key1
[8], const uint8_t key2
[8] );
45 int des3_set_3keys( des3_context
*ctx
, const uint8_t key1
[8], const uint8_t key2
[8],
46 const uint8_t key3
[8] );
48 void des3_encrypt( des3_context
*ctx
, uint8_t input
[8], uint8_t output
[8] );
49 void des3_decrypt( des3_context
*ctx
, uint8_t input
[8], uint8_t output
[8] );