xref: /optee_os/core/lib/libtomcrypt/src/headers/tomcrypt.h (revision 2a65ecaf7d6f855e24ce1a117fe1931f7378f82c)
18411e6adSJerome Forissier /* LibTomCrypt, modular cryptographic library -- Tom St Denis */
28411e6adSJerome Forissier /* SPDX-License-Identifier: Unlicense */
35a913ee7SJerome Forissier 
45a913ee7SJerome Forissier #ifndef TOMCRYPT_H_
55a913ee7SJerome Forissier #define TOMCRYPT_H_
65a913ee7SJerome Forissier #include <assert.h>
75a913ee7SJerome Forissier #include <stdio.h>
85a913ee7SJerome Forissier #include <string.h>
95a913ee7SJerome Forissier #include <stdlib.h>
105a913ee7SJerome Forissier #include <stddef.h>
115a913ee7SJerome Forissier #include <time.h>
125a913ee7SJerome Forissier #include <ctype.h>
135a913ee7SJerome Forissier #include <limits.h>
145a913ee7SJerome Forissier 
155a913ee7SJerome Forissier /* use configuration data */
168411e6adSJerome Forissier #include "tomcrypt_custom.h"
175a913ee7SJerome Forissier 
185a913ee7SJerome Forissier #ifdef __cplusplus
195a913ee7SJerome Forissier extern "C" {
205a913ee7SJerome Forissier #endif
215a913ee7SJerome Forissier 
225a913ee7SJerome Forissier /* version */
235a913ee7SJerome Forissier #define CRYPT   0x0118
245a913ee7SJerome Forissier #define SCRYPT  "1.18.2-develop"
255a913ee7SJerome Forissier 
265a913ee7SJerome Forissier /* max size of either a cipher/hash block or symmetric key [largest of the two] */
275a913ee7SJerome Forissier #define MAXBLOCKSIZE  144
285a913ee7SJerome Forissier 
295a913ee7SJerome Forissier #ifndef TAB_SIZE
305a913ee7SJerome Forissier /* descriptor table size */
31*2a65ecafSJens Wiklander #define TAB_SIZE      48
325a913ee7SJerome Forissier #endif
335a913ee7SJerome Forissier 
345a913ee7SJerome Forissier /* error codes [will be expanded in future releases] */
355a913ee7SJerome Forissier enum {
365a913ee7SJerome Forissier    CRYPT_OK=0,             /* Result OK */
375a913ee7SJerome Forissier    CRYPT_ERROR,            /* Generic Error */
385a913ee7SJerome Forissier    CRYPT_NOP,              /* Not a failure but no operation was performed */
395a913ee7SJerome Forissier 
405a913ee7SJerome Forissier    CRYPT_INVALID_KEYSIZE,  /* Invalid key size given */
415a913ee7SJerome Forissier    CRYPT_INVALID_ROUNDS,   /* Invalid number of rounds */
425a913ee7SJerome Forissier    CRYPT_FAIL_TESTVECTOR,  /* Algorithm failed test vectors */
435a913ee7SJerome Forissier 
445a913ee7SJerome Forissier    CRYPT_BUFFER_OVERFLOW,  /* Not enough space for output */
455a913ee7SJerome Forissier    CRYPT_INVALID_PACKET,   /* Invalid input packet given */
465a913ee7SJerome Forissier 
475a913ee7SJerome Forissier    CRYPT_INVALID_PRNGSIZE, /* Invalid number of bits for a PRNG */
485a913ee7SJerome Forissier    CRYPT_ERROR_READPRNG,   /* Could not read enough from PRNG */
495a913ee7SJerome Forissier 
505a913ee7SJerome Forissier    CRYPT_INVALID_CIPHER,   /* Invalid cipher specified */
515a913ee7SJerome Forissier    CRYPT_INVALID_HASH,     /* Invalid hash specified */
525a913ee7SJerome Forissier    CRYPT_INVALID_PRNG,     /* Invalid PRNG specified */
535a913ee7SJerome Forissier 
545a913ee7SJerome Forissier    CRYPT_MEM,              /* Out of memory */
555a913ee7SJerome Forissier 
565a913ee7SJerome Forissier    CRYPT_PK_TYPE_MISMATCH, /* Not equivalent types of PK keys */
575a913ee7SJerome Forissier    CRYPT_PK_NOT_PRIVATE,   /* Requires a private PK key */
585a913ee7SJerome Forissier 
595a913ee7SJerome Forissier    CRYPT_INVALID_ARG,      /* Generic invalid argument */
605a913ee7SJerome Forissier    CRYPT_FILE_NOTFOUND,    /* File Not Found */
615a913ee7SJerome Forissier 
625a913ee7SJerome Forissier    CRYPT_PK_INVALID_TYPE,  /* Invalid type of PK key */
635a913ee7SJerome Forissier 
645a913ee7SJerome Forissier    CRYPT_OVERFLOW,         /* An overflow of a value was detected/prevented */
655a913ee7SJerome Forissier 
665a913ee7SJerome Forissier    CRYPT_PK_ASN1_ERROR,    /* An error occurred while en- or decoding ASN.1 data */
675a913ee7SJerome Forissier 
685a913ee7SJerome Forissier    CRYPT_INPUT_TOO_LONG,   /* The input was longer than expected. */
695a913ee7SJerome Forissier 
705a913ee7SJerome Forissier    CRYPT_PK_INVALID_SIZE,  /* Invalid size input for PK parameters */
715a913ee7SJerome Forissier 
725a913ee7SJerome Forissier    CRYPT_INVALID_PRIME_SIZE,/* Invalid size of prime requested */
735a913ee7SJerome Forissier    CRYPT_PK_INVALID_PADDING, /* Invalid padding on input */
745a913ee7SJerome Forissier 
755a913ee7SJerome Forissier    CRYPT_HASH_OVERFLOW      /* Hash applied to too many bits */
765a913ee7SJerome Forissier };
775a913ee7SJerome Forissier 
788411e6adSJerome Forissier #include "tomcrypt_cfg.h"
798411e6adSJerome Forissier #include "tomcrypt_macros.h"
808411e6adSJerome Forissier #include "tomcrypt_cipher.h"
818411e6adSJerome Forissier #include "tomcrypt_hash.h"
828411e6adSJerome Forissier #include "tomcrypt_mac.h"
838411e6adSJerome Forissier #include "tomcrypt_prng.h"
848411e6adSJerome Forissier #include "tomcrypt_pk.h"
858411e6adSJerome Forissier #include "tomcrypt_math.h"
868411e6adSJerome Forissier #include "tomcrypt_misc.h"
878411e6adSJerome Forissier #include "tomcrypt_argchk.h"
888411e6adSJerome Forissier #include "tomcrypt_pkcs.h"
895a913ee7SJerome Forissier 
905a913ee7SJerome Forissier #ifdef __cplusplus
915a913ee7SJerome Forissier    }
925a913ee7SJerome Forissier #endif
935a913ee7SJerome Forissier 
945a913ee7SJerome Forissier #endif /* TOMCRYPT_H_ */
955a913ee7SJerome Forissier 
96