1f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#ifndef TOMCRYPT_H_
2f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#define TOMCRYPT_H_
3f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#include <assert.h>
4f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#include <stdio.h>
5f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#include <string.h>
6f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#include <stdlib.h>
7f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#include <time.h>
8f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#include <ctype.h>
9f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#include <limits.h>
10f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
11f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project/* use configuration data */
12f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#include <tomcrypt_custom.h>
13f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
14f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#ifdef __cplusplus
15f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Projectextern "C" {
16f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#endif
17f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
18f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project/* version */
19f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#define CRYPT   0x0116
20f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#define SCRYPT  "1.16"
21f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
22f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project/* max size of either a cipher/hash block or symmetric key [largest of the two] */
23f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#define MAXBLOCKSIZE  128
24f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
25f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project/* descriptor table size */
26f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project/* Dropbear change - this should be smaller, saves some size */
27f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#define TAB_SIZE    4
28f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
29f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project/* error codes [will be expanded in future releases] */
30f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Projectenum {
31f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_OK=0,             /* Result OK */
32f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_ERROR,            /* Generic Error */
33f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_NOP,              /* Not a failure but no operation was performed */
34f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
35f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_INVALID_KEYSIZE,  /* Invalid key size given */
36f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_INVALID_ROUNDS,   /* Invalid number of rounds */
37f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_FAIL_TESTVECTOR,  /* Algorithm failed test vectors */
38f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
39f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_BUFFER_OVERFLOW,  /* Not enough space for output */
40f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_INVALID_PACKET,   /* Invalid input packet given */
41f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
42f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_INVALID_PRNGSIZE, /* Invalid number of bits for a PRNG */
43f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_ERROR_READPRNG,   /* Could not read enough from PRNG */
44f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
45f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_INVALID_CIPHER,   /* Invalid cipher specified */
46f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_INVALID_HASH,     /* Invalid hash specified */
47f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_INVALID_PRNG,     /* Invalid PRNG specified */
48f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
49f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_MEM,              /* Out of memory */
50f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
51f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_PK_TYPE_MISMATCH, /* Not equivalent types of PK keys */
52f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_PK_NOT_PRIVATE,   /* Requires a private PK key */
53f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
54f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_INVALID_ARG,      /* Generic invalid argument */
55f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_FILE_NOTFOUND,    /* File Not Found */
56f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
57f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_PK_INVALID_TYPE,  /* Invalid type of PK key */
58f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_PK_INVALID_SYSTEM,/* Invalid PK system specified */
59f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_PK_DUP,           /* Duplicate key already in key ring */
60f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_PK_NOT_FOUND,     /* Key not found in keyring */
61f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_PK_INVALID_SIZE,  /* Invalid size input for PK parameters */
62f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
63f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_INVALID_PRIME_SIZE,/* Invalid size of prime requested */
64f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   CRYPT_PK_INVALID_PADDING /* Invalid padding on input */
65f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project};
66f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
67f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#include <tomcrypt_cfg.h>
68f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#include <tomcrypt_macros.h>
69f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#include <tomcrypt_cipher.h>
70f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#include <tomcrypt_hash.h>
71f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#include <tomcrypt_mac.h>
72f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#include <tomcrypt_prng.h>
73f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#include <tomcrypt_pk.h>
74f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#include <tomcrypt_math.h>
75f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#include <tomcrypt_misc.h>
76f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#include <tomcrypt_argchk.h>
77f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#include <tomcrypt_pkcs.h>
78f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
79f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#ifdef __cplusplus
80f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   }
81f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#endif
82f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
83f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#endif /* TOMCRYPT_H_ */
84f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
85f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
86f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project/* $Source: /cvs/libtom/libtomcrypt/src/headers/tomcrypt.h,v $ */
87f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project/* $Revision: 1.20 $ */
88f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project/* $Date: 2006/11/26 01:45:14 $ */
89