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