diff options
Diffstat (limited to 'utils/tomcrypt/src/misc/crypt')
4 files changed, 138 insertions, 0 deletions
diff --git a/utils/tomcrypt/src/misc/crypt/crypt_argchk.c b/utils/tomcrypt/src/misc/crypt/crypt_argchk.c new file mode 100644 index 0000000000..a93962420e --- /dev/null +++ b/utils/tomcrypt/src/misc/crypt/crypt_argchk.c | |||
@@ -0,0 +1,27 @@ | |||
1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis | ||
2 | * | ||
3 | * LibTomCrypt is a library that provides various cryptographic | ||
4 | * algorithms in a highly modular and flexible manner. | ||
5 | * | ||
6 | * The library is free for all purposes without any express | ||
7 | * guarantee it works. | ||
8 | */ | ||
9 | #include "tomcrypt.h" | ||
10 | |||
11 | /** | ||
12 | @file crypt_argchk.c | ||
13 | Perform argument checking, Tom St Denis | ||
14 | */ | ||
15 | |||
16 | #if (ARGTYPE == 0) | ||
17 | void crypt_argchk(const char *v, const char *s, int d) | ||
18 | { | ||
19 | fprintf(stderr, "LTC_ARGCHK '%s' failure on line %d of file %s\n", | ||
20 | v, d, s); | ||
21 | abort(); | ||
22 | } | ||
23 | #endif | ||
24 | |||
25 | /* ref: HEAD -> master, tag: v1.18.2 */ | ||
26 | /* git commit: 7e7eb695d581782f04b24dc444cbfde86af59853 */ | ||
27 | /* commit time: 2018-07-01 22:49:01 +0200 */ | ||
diff --git a/utils/tomcrypt/src/misc/crypt/crypt_cipher_descriptor.c b/utils/tomcrypt/src/misc/crypt/crypt_cipher_descriptor.c new file mode 100644 index 0000000000..a9de9d6785 --- /dev/null +++ b/utils/tomcrypt/src/misc/crypt/crypt_cipher_descriptor.c | |||
@@ -0,0 +1,25 @@ | |||
1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis | ||
2 | * | ||
3 | * LibTomCrypt is a library that provides various cryptographic | ||
4 | * algorithms in a highly modular and flexible manner. | ||
5 | * | ||
6 | * The library is free for all purposes without any express | ||
7 | * guarantee it works. | ||
8 | */ | ||
9 | #include "tomcrypt.h" | ||
10 | |||
11 | /** | ||
12 | @file crypt_cipher_descriptor.c | ||
13 | Stores the cipher descriptor table, Tom St Denis | ||
14 | */ | ||
15 | |||
16 | struct ltc_cipher_descriptor cipher_descriptor[TAB_SIZE] = { | ||
17 | { NULL, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL } | ||
18 | }; | ||
19 | |||
20 | LTC_MUTEX_GLOBAL(ltc_cipher_mutex) | ||
21 | |||
22 | |||
23 | /* ref: HEAD -> master, tag: v1.18.2 */ | ||
24 | /* git commit: 7e7eb695d581782f04b24dc444cbfde86af59853 */ | ||
25 | /* commit time: 2018-07-01 22:49:01 +0200 */ | ||
diff --git a/utils/tomcrypt/src/misc/crypt/crypt_cipher_is_valid.c b/utils/tomcrypt/src/misc/crypt/crypt_cipher_is_valid.c new file mode 100644 index 0000000000..2ba32bf5e8 --- /dev/null +++ b/utils/tomcrypt/src/misc/crypt/crypt_cipher_is_valid.c | |||
@@ -0,0 +1,34 @@ | |||
1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis | ||
2 | * | ||
3 | * LibTomCrypt is a library that provides various cryptographic | ||
4 | * algorithms in a highly modular and flexible manner. | ||
5 | * | ||
6 | * The library is free for all purposes without any express | ||
7 | * guarantee it works. | ||
8 | */ | ||
9 | #include "tomcrypt.h" | ||
10 | |||
11 | /** | ||
12 | @file crypt_cipher_is_valid.c | ||
13 | Determine if cipher is valid, Tom St Denis | ||
14 | */ | ||
15 | |||
16 | /* | ||
17 | Test if a cipher index is valid | ||
18 | @param idx The index of the cipher to search for | ||
19 | @return CRYPT_OK if valid | ||
20 | */ | ||
21 | int cipher_is_valid(int idx) | ||
22 | { | ||
23 | LTC_MUTEX_LOCK(<c_cipher_mutex); | ||
24 | if (idx < 0 || idx >= TAB_SIZE || cipher_descriptor[idx].name == NULL) { | ||
25 | LTC_MUTEX_UNLOCK(<c_cipher_mutex); | ||
26 | return CRYPT_INVALID_CIPHER; | ||
27 | } | ||
28 | LTC_MUTEX_UNLOCK(<c_cipher_mutex); | ||
29 | return CRYPT_OK; | ||
30 | } | ||
31 | |||
32 | /* ref: HEAD -> master, tag: v1.18.2 */ | ||
33 | /* git commit: 7e7eb695d581782f04b24dc444cbfde86af59853 */ | ||
34 | /* commit time: 2018-07-01 22:49:01 +0200 */ | ||
diff --git a/utils/tomcrypt/src/misc/crypt/crypt_register_cipher.c b/utils/tomcrypt/src/misc/crypt/crypt_register_cipher.c new file mode 100644 index 0000000000..59fc042d89 --- /dev/null +++ b/utils/tomcrypt/src/misc/crypt/crypt_register_cipher.c | |||
@@ -0,0 +1,52 @@ | |||
1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis | ||
2 | * | ||
3 | * LibTomCrypt is a library that provides various cryptographic | ||
4 | * algorithms in a highly modular and flexible manner. | ||
5 | * | ||
6 | * The library is free for all purposes without any express | ||
7 | * guarantee it works. | ||
8 | */ | ||
9 | #include "tomcrypt.h" | ||
10 | |||
11 | /** | ||
12 | @file crypt_register_cipher.c | ||
13 | Register a cipher, Tom St Denis | ||
14 | */ | ||
15 | |||
16 | /** | ||
17 | Register a cipher with the descriptor table | ||
18 | @param cipher The cipher you wish to register | ||
19 | @return value >= 0 if successfully added (or already present), -1 if unsuccessful | ||
20 | */ | ||
21 | int register_cipher(const struct ltc_cipher_descriptor *cipher) | ||
22 | { | ||
23 | int x; | ||
24 | |||
25 | LTC_ARGCHK(cipher != NULL); | ||
26 | |||
27 | /* is it already registered? */ | ||
28 | LTC_MUTEX_LOCK(<c_cipher_mutex); | ||
29 | for (x = 0; x < TAB_SIZE; x++) { | ||
30 | if (cipher_descriptor[x].name != NULL && cipher_descriptor[x].ID == cipher->ID) { | ||
31 | LTC_MUTEX_UNLOCK(<c_cipher_mutex); | ||
32 | return x; | ||
33 | } | ||
34 | } | ||
35 | |||
36 | /* find a blank spot */ | ||
37 | for (x = 0; x < TAB_SIZE; x++) { | ||
38 | if (cipher_descriptor[x].name == NULL) { | ||
39 | XMEMCPY(&cipher_descriptor[x], cipher, sizeof(struct ltc_cipher_descriptor)); | ||
40 | LTC_MUTEX_UNLOCK(<c_cipher_mutex); | ||
41 | return x; | ||
42 | } | ||
43 | } | ||
44 | |||
45 | /* no spot */ | ||
46 | LTC_MUTEX_UNLOCK(<c_cipher_mutex); | ||
47 | return -1; | ||
48 | } | ||
49 | |||
50 | /* ref: HEAD -> master, tag: v1.18.2 */ | ||
51 | /* git commit: 7e7eb695d581782f04b24dc444cbfde86af59853 */ | ||
52 | /* commit time: 2018-07-01 22:49:01 +0200 */ | ||