Commit Graph

667 Commits

Author SHA1 Message Date
Steffen Jaeckel
65dc00e23a align HASH_PROCESS() macro 2017-08-08 19:05:59 +02:00
Karel Miko
f647baa778 OCBv3: ocb3_init taglen check 2017-08-07 18:24:59 +02:00
Karel Miko
af63d0a55f OCBv3: improved handling of taglen in ocb3_done 2017-08-07 18:24:59 +02:00
Steffen Jaeckel
ac4687d88d also put LTC_TEST_DBG in crypt_build_settings 2017-08-07 16:18:15 +02:00
Steffen Jaeckel
7a59f71af8 fix warning
warning: 'ltc_asn1_type {aka enum ltc_asn1_type_}' is promoted to 'int' when passed through '...'
        type = va_arg(args, ltc_asn1_type);
note: (so you should pass 'int' not 'ltc_asn1_type {aka enum ltc_asn1_type_}' to 'va_arg')
note: if this code is reached, the program will abort
2017-08-07 16:04:57 +02:00
Steffen Jaeckel
32355d04bb fix endianness detection for some versions of gcc
This fixes #254
2017-08-07 16:04:57 +02:00
Steffen Jaeckel
9f020b17df limit malloc'ed data in eax_decrypt_verify_memory() 2017-08-07 16:04:36 +02:00
Karel Miko
6ac1c5fa34 OCBv3: fix demos/timing failures 2017-08-07 07:48:21 +02:00
Steffen Jaeckel
3ecd18763b OCBv3: better taglen limitation 2017-08-03 13:40:57 +02:00
Steffen Jaeckel
3b4d39ea45 OCBv3: improve a bit when ARGCHK'ing pointers
* it didn't really make sense to check that the _in_ pointer is NULL
* instead we should check that _in_ and _out_ are not NULL when there's
  something to process
2017-08-03 13:40:26 +02:00
Steffen Jaeckel
868c5a82c3 OCBv3: fix handling of empty plaintext 2017-08-03 13:19:12 +02:00
Steffen Jaeckel
0c2ff4a1b0 OCBv3: small review
* better LTC_ARGCHK()
* move unnecessary functions from API to be static
* limit malloc'ed data in ocb3_decrypt_verify_memory()
2017-08-02 18:55:34 +02:00
Steffen Jaeckel
d77cf0e248 OCBv3: implement RFC7253 compliance
This fixes #256
2017-08-02 17:45:59 +02:00
Steffen Jaeckel
1aaa5abb33 ocb3: check the length of the nonce 2017-08-02 14:41:46 +02:00
Steffen Jaeckel
b2448c593a ocb3: properly handle empty AAD
* allow passing "no additional data" to ocb3_decrypt_verify_memory() and
  ocb3_encrypt_authenticate_memory()
* ensure that the caller didn't want to add AAD
2017-08-01 14:44:37 +02:00
Steffen Jaeckel
4805c89adb add ARGTYPE to crypt_build_settings 2017-08-01 14:21:11 +02:00
Steffen Jaeckel
129bc7175f beautify dh & rsa 2017-07-21 10:16:19 +02:00
Steffen Jaeckel
61eb98b76e add compile-time check for sprng requirements 2017-07-20 12:47:19 +02:00
Steffen Jaeckel
a46d6eb819 remove define of LTC_NO_FILE when defining LTC_NOTHING
it doesn't make sense to define this opt-out option especially
since there's no way to undefine it again.
2017-07-19 16:44:37 +02:00
Karel Miko
909b4954a9 fix MS Windows/64bit related warnings 2017-07-14 19:59:03 +02:00
Steffen Jaeckel
535358ec28 bump version 2017-07-13 14:57:45 +02:00
Steffen Jaeckel
24e69b2956 more printf() clean-up
* remove last occurences in non-test code
* minimize in tests
2017-07-11 15:29:45 +02:00
Francois Perrad
37de73db01 add static _chc_process like in its prototype 2017-07-11 15:29:45 +02:00
Francois Perrad
53c62b3670 remove redundant prototypes
already declared in src/headers/tomcrypt_hash.h
2017-07-11 15:29:45 +02:00
Steffen Jaeckel
1819a02d5a update comments
[skip ci]
2017-07-11 10:32:53 +02:00
Karel Miko
e20e204b8c dh_set_key + dsa_set_key API change described in #248 2017-07-11 00:13:26 +02:00
Karel Miko
0792e3701e GCM allow skipping gcm_add_aad and gcm_process 2017-07-10 22:35:42 +02:00
Karel Miko
2aa42f002f fix: chmod -x 2017-07-09 16:22:28 +02:00
Steffen Jaeckel
68bf547f9c use rsa_free() on error in rsa_make_key() 2017-07-09 16:02:11 +02:00
Steffen Jaeckel
fa5acee802 bump version 2017-07-05 14:30:17 +02:00
Steffen Jaeckel
ac6fb72ef1 fix some doxygen headers 2017-07-05 14:27:05 +02:00
Steffen Jaeckel
7d60fd2bfe don't expose der_length_sequence_ex() 2017-07-05 11:52:46 +02:00
Karel Miko
4bc1489584 small ASN.1 changes extracted from ECC stuff 2017-07-05 11:34:27 +02:00
Steffen Jaeckel
c2f50459e2 better doc of radix_to_bin() 2017-07-05 10:25:01 +02:00
Steffen Jaeckel
4221c44fbc rename rand_bn_range() to rand_bn_upto() 2017-07-05 10:03:56 +02:00
Steffen Jaeckel
22919cd4f2 rand_bn_range(): count bits once 2017-07-04 10:58:10 +02:00
Steffen Jaeckel
a6aef23438 dh_make_key() is now dh_generate_key() 2017-07-04 10:30:39 +02:00
Steffen Jaeckel
e647f9a0e4 not good to check that prng is non-NULL
e.g. sprng() lives w/o context
2017-07-04 10:25:38 +02:00
Steffen Jaeckel
a0f2abc5b5 re-format 2017-07-04 10:25:38 +02:00
Steffen Jaeckel
a80abb1222 put dh_set_pg_dhparam() in own c file 2017-07-04 10:25:38 +02:00
Steffen Jaeckel
5640f8afc7 put dsa_set_pqg_dsaparam() in own c file 2017-07-04 10:25:38 +02:00
Steffen Jaeckel
3c2e0d6686 dsa_make_key_ex() is now dsa_generate_key() 2017-07-04 10:25:38 +02:00
Steffen Jaeckel
dbeaefd65b remove LTC_{DH,DSA}_KEY_INITIALIZER 2017-07-04 10:25:38 +02:00
Steffen Jaeckel
d1ecd82a42 use rand_bn_range() where possible 2017-06-28 20:50:21 +02:00
Steffen Jaeckel
bdfecc5f3c more doc updates 2017-06-28 16:45:29 +02:00
Steffen Jaeckel
d64880eeb1 add dsa_set_pqg_dsaparam() 2017-06-28 16:07:54 +02:00
Steffen Jaeckel
35e0c5fc71 clean-up a bit around DSA
* comments
* dsa_test()
* order of alloc/free of key parts
2017-06-28 16:07:32 +02:00
Steffen Jaeckel
cfff656e25 re-factor dsa_make_key() etc. 2017-06-28 14:40:30 +02:00
Steffen Jaeckel
24946d08b7 use mp_cleanup_multi() 2017-06-28 14:40:30 +02:00
Steffen Jaeckel
76b9bba857 introduce mp_cleanup_multi() 2017-06-28 14:40:30 +02:00
Steffen Jaeckel
f2f113880b also rename file 2017-06-27 22:10:07 +02:00
Steffen Jaeckel
c493a2a0a3 re-factor dh_export_radix() to dh_export_key() 2017-06-27 22:09:21 +02:00
Steffen Jaeckel
9d6689fc08 re-factor dh_make_key() and variants 2017-06-27 22:00:13 +02:00
Steffen Jaeckel
fbc54756c1 replace dh_import_radix() by dh_set_{pg,key} 2017-06-27 21:53:02 +02:00
Karel Miko
f60e2902ed dh_make_key_ex dh_export_radix dh_import_radix 2017-06-27 20:11:52 +02:00
Steffen Jaeckel
627f6696cb add radix_to_bin() 2017-06-27 20:05:36 +02:00
Steffen Jaeckel
6b798ca6a6 replace rsa_import_radix() by rsa_set_{key,factors,crt_params}() 2017-06-27 20:05:36 +02:00
Steffen Jaeckel
05e9f0ee79 Revert "use ltc_pk_part in rsa_import_radix()"
This reverts commit 023e4a2c23641d852cf47000948fa29a53249457.
2017-06-27 20:05:36 +02:00
Steffen Jaeckel
083e8af78b Revert "also test binary import"
This reverts commit 8b6f8c8cce325fa1ce3b61805aa80cdabc1826b4.
2017-06-27 20:05:36 +02:00
Steffen Jaeckel
4afc024f6a also test binary import 2017-06-27 20:05:36 +02:00
Steffen Jaeckel
00a5212d99 use ltc_pk_part in rsa_import_radix() 2017-06-27 20:05:36 +02:00
Steffen Jaeckel
0a6af8d333 rsa_exptmod(): verify that p and q are valid before going the CRT path 2017-06-27 19:01:56 +02:00
Steffen Jaeckel
f5b8cc9dae this should really implement a patch for the illegal access 2017-06-27 12:35:39 +02:00
Steffen Jaeckel
1a3880fda5 Revert "re-factor size checks in blake2 implementations"
This reverts commit af38b1830e.
2017-06-27 12:33:40 +02:00
Steffen Jaeckel
af38b1830e re-factor size checks in blake2 implementations 2017-06-26 14:02:52 +02:00
Steffen Jaeckel
3cfb2a5e2e hide some of the 'new since 1.17' internal functions 2017-06-23 14:14:05 +02:00
Steffen Jaeckel
a80d3c00a8 no need for DH_BUF_SIZE 2017-06-23 14:05:57 +02:00
Francois Perrad
446fec1bc4 refactor switch with default 2017-06-22 17:13:40 +02:00
Steffen Jaeckel
e3937a2906 fix compile warning when building w/o tests 2017-06-22 14:21:14 +02:00
Steffen Jaeckel
11338d2496 introduce XMEMMOVE and check for its usage 2017-06-22 14:21:14 +02:00
Steffen Jaeckel
e9c90e7f63 no need to use XMEM_NEQ() in PK crypto 2017-06-22 14:21:14 +02:00
Steffen Jaeckel
ae698927ff improve mem_neq() documentation 2017-06-22 14:21:14 +02:00
Steffen Jaeckel
1bf42ea99a update some of the static functions 2017-06-22 14:21:14 +02:00
Steffen Jaeckel
27b3ffc627 use compare_testvector() instead of XMEMCMP() in tests 2017-06-22 14:21:14 +02:00
Steffen Jaeckel
05e28d6cfa fix potential timing attacks in rsa, eax, ocb and ocb3 2017-06-22 14:21:14 +02:00
Karel Miko
243a1dc33e drop _dh_make_key_ex 2017-06-22 13:19:48 +02:00
Karel Miko
cba1569c82 fix tomcrypt_pk.h 2017-06-22 13:19:48 +02:00
Karel Miko
5eaff56d90 remove dh_export_radix.c dh_import_radix.c 2017-06-22 13:19:47 +02:00
Karel Miko
771d67e102 DH facelift part1 2017-06-22 13:19:47 +02:00
Steffen Jaeckel
26b57032e7 use correct amount of M-R tests in dsa_make_params() 2017-06-22 11:55:08 +02:00
Steffen Jaeckel
7453eddae9 improve ltc_math_descriptor a bit
* introduce LTC_MILLER_RABIN_REPS which is used as default value
  in the isprime() implementations
2017-06-22 11:55:08 +02:00
Karel Miko
b8f22157b3 PK_MAX_RETRIES 2017-06-21 13:38:39 +02:00
Karel Miko
0c115a162d whitespace 2017-06-21 13:26:52 +02:00
Karel Miko
fff832091f ecc_sign_hash max_iterations 2017-06-21 13:25:06 +02:00
Karel Miko
cdf04b6140 fix mp_montgomery_setup 2017-06-21 13:01:22 +02:00
Karel Miko
a937f23821 static functions name fix 2017-06-21 12:49:19 +02:00
Karel Miko
67200b641d ecc_sign+verify_hash_raw > ecc_sign+verify_hash_rfc7518 2017-06-21 12:11:35 +02:00
Steffen Jaeckel
6fc0a90a1e fix headers & footers in demos & tests 2017-06-20 15:16:11 +02:00
Steffen Jaeckel
4cd1355b8f more clean-up of headers/footers 2017-06-20 15:16:11 +02:00
Steffen Jaeckel
fe19dad623 replace SVN tags 2017-06-20 15:16:11 +02:00
Steffen Jaeckel
66527b3e5e include "tomcrypt.h", not <tomcrypt.h>
we want to include the local version of the header, not the system-version
2017-06-20 15:16:11 +02:00
Steffen Jaeckel
fb35d5be54 more clean-up of headers 2017-06-20 15:16:11 +02:00
Steffen Jaeckel
4dc211e19d clean-up headers 2017-06-20 15:16:11 +02:00
Steffen Jaeckel
f2076f0700 use zeromem() where appropriate 2017-06-15 01:07:44 +02:00
Steffen Jaeckel
258de3cecc use ltc_mp_digit instead of unsigned long 2017-06-15 01:07:44 +02:00
Steffen Jaeckel
98b500e873 update crypt_build_settings et al. 2017-06-15 01:07:44 +02:00
Steffen Jaeckel
0cf7c49045 sync ltc_math_descriptor from doc 2017-06-15 00:46:50 +02:00
Francois Perrad
0bc0d55245 refactor REGISTER_* 2017-06-12 20:07:23 +02:00
Francois Perrad
ec51f880b5 Right hand side of assignment needs parenthesis 2017-06-12 20:07:23 +02:00
Francois Perrad
f40bda7cb3 fix indentation 2017-06-12 20:07:23 +02:00
Steffen Jaeckel
fec05471ae the latest tfm version has fp_rand() available, so we can test this now 2017-06-12 18:45:24 +02:00
Steffen Jaeckel
48e4ec07be use LTC_ARGCHK() for all mutex operations 2017-06-12 17:19:43 +02:00
Karel Miko
4f12e41d29 fix trailing ; 2017-06-12 16:35:27 +02:00
Karel Miko
114b694735 trying to fix dh_shared_secret - #119 2017-06-11 23:20:46 +02:00
Karel Miko
bc4236d90f tuning dh_make_key 2017-06-11 21:12:14 +02:00
Karel Miko
361778d2ac another dh_make_key redesign 2017-06-11 19:43:08 +02:00
Karel Miko
71884788e3 fix warning: comparison between signed and unsigned integer 2017-06-11 10:12:18 +02:00
Karel Miko
532c511f52 improved dh_make_key 2017-06-10 23:02:30 +02:00
Steffen Jaeckel
c9f4628693 don't call rng_make_prng() from dh_make_key()
While testing with multiple threads I had spurious errors where some tests
can't read from the PRNG.
If I tracked it down correctly that's caused by `dh_make_key()`
calling `rng_make_prng()` which re-initializes the selected PRNG.

I like the idea of "refreshing" the PRNG with entropy from a hopefully
secure RNG before generating a new key, but I don't think it's the duty
of a key-generation function to ensure that, but merely the application
that implements key-generation.
2017-06-09 18:56:04 +02:00
Steffen Jaeckel
f31d8ff864 implement smaller private key sizes 2017-06-09 18:33:51 +02:00
Karel Miko
f46b32ba2e better DH primes 2017-06-09 14:14:07 +02:00
Karel Miko
2a883b44c7 do not expose dsa_make_params as a public API 2017-06-09 13:01:30 +02:00
Steffen Jaeckel
ef450fe14a fix error handling 2017-06-08 23:34:16 +02:00
Karel Miko
52a496e9e1 rsa_import_pkcs8 - passwd is now "const void *" 2017-06-08 23:34:16 +02:00
Karel Miko
d96f4bdcff rsa_import_pkcs8 2017-06-08 23:34:16 +02:00
Steffen Jaeckel
4bbce780c4 always provide compare_testvector() as a function 2017-06-08 22:20:45 +02:00
Steffen Jaeckel
4e971a8518 don't use print_hex() from library 2017-06-08 22:20:45 +02:00
Steffen Jaeckel
4ceb82bf54 add register_all_{ciphers,hashes,prngs}() 2017-06-08 22:20:45 +02:00
Steffen Jaeckel
7f91e5ae65 requiring 'name != NULL' in find_cipher_any() doesn't make sense 2017-06-08 22:20:45 +02:00
Steffen Jaeckel
8c1d55f4c0 fix error when compiling w/ LTC_CLEAN_STACK but w/o LTC_FAST 2017-06-08 22:20:45 +02:00
Steffen Jaeckel
b78c5551f7 move compare_testvector() implementation to the library 2017-06-08 22:20:45 +02:00
Steffen Jaeckel
0a23c6d32e also check for cipher descriptors 2017-06-08 22:20:44 +02:00
Steffen Jaeckel
4929860641 fix file modes 2017-05-31 01:57:40 +02:00
Kelvin Sherlock
a8d81a7214 fix sha3 test numbers 2017-05-21 15:32:16 -04:00
Kelvin Sherlock
30f8aaad8c replace XMEMCMP with compare_testvector, other consistency cleanup in testing code. 2017-05-14 22:17:59 -04:00
Karel Miko
43e46a2efc fix clang static analyzer warnings/errors - see #217 2017-05-11 20:37:06 +02:00
Karel Miko
e2cf11da25 fix windows warnings - #212 and #213 2017-05-11 17:42:43 +02:00
Karel Miko
6d70827d1f Windows: fix warning: 'rng_nix' defined but not used 2017-05-11 17:42:43 +02:00
Karel Miko
91b61630be improved #ifdefs - related to: 'num' not referenced 2017-05-09 21:43:28 +02:00
Karel Miko
04262d3aec fix: local struct member 'poly_div' not referenced 2017-05-09 21:31:12 +02:00
Karel Miko
f6ea738fee fix: Loss of sign (initialization) (int to unsigned long long) 2017-05-09 21:30:44 +02:00
Karel Miko
421266cf5f fix void *orig 2017-05-05 19:57:20 +02:00
Karel Miko
adf0ad95c9 IBM xlc compiler does not like "static inline" (related to #209) 2017-05-05 19:57:20 +02:00
Steffen Jaeckel
31dcb9ff2a only set outlen on success 2017-05-03 18:10:45 +02:00
Karel Miko
4e66160ac2 one more readable for loop 2017-05-03 17:01:18 +02:00
Karel Miko
f831e27702 more readable for loops 2017-05-03 12:56:25 +02:00
Karel Miko
a1615daa3c shake be fix (hopefully final) 2017-05-03 12:56:25 +02:00
Karel Miko
961b6109d5 cosmetics 2017-05-03 12:56:25 +02:00
Karel Miko
da8501f55a sha3_shake_done another be fix 2017-05-03 12:56:25 +02:00
Karel Miko
c3f2e4530a declaration of ‘i’ shadows a previous local (better) 2017-05-03 12:56:25 +02:00
Karel Miko
df4e47978e declaration of ‘i’ shadows a previous local 2017-05-03 12:56:25 +02:00
Karel Miko
e5c0e7ffd3 SHAKE (SHA3 related) big endian fix 2017-05-03 12:56:25 +02:00
Steffen Jaeckel
67ca1c0b9a fix for compilation with LTC_DEBUG 2017-05-03 12:37:24 +02:00
Steffen Jaeckel
aa4bae5ae9 add option to do PKCS#1 v1.5 EMSA without ASN.1 around hash
Somehow someone forgot to add the OID in the signature field
of a SERVER_KEY_EXCHANGE message in early versions of the SSL protocol.
Therefore provide an option to be able to sign/verify a message
in that format.
2017-05-01 23:15:11 +02:00
Francois Perrad
a52b586ed2 Unusual use of a Boolean expression 2017-05-01 14:51:35 +02:00
Steffen Jaeckel
2858373e2e clean stack properly 2017-05-01 14:12:47 +02:00
Steffen Jaeckel
3e2ac192a1 Merge pull request #200 from fperrad/20170429_lint
LTC_PTHREAD: some linting
2017-05-01 14:08:59 +02:00
Karel Miko
87142382da lint fixes discussed in #199 2017-04-29 19:59:03 +02:00
Francois Perrad
7e72dafe5f remove useless semicolon
the macro LTC_MUTEX_TYPE already contains a semicolon
see https://github.com/libtom/libtomcrypt/blob/develop/src/headers/tomcrypt_custom.h#L552
2017-04-29 17:52:27 +02:00
Karel Miko
6417f96ea9 fortuna - import does not fail when input data are larger than export_size 2017-04-29 14:12:36 +02:00