Francois Perrad
c22acc2d07
remove useless include
2017-02-24 16:23:15 +01:00
Francois Perrad
7b48f4d5f7
fix indentation
2017-02-24 16:23:10 +01:00
Karel Miko
979e9a9d15
fix for #90 ltc_ecc_mul2add.c integer sign issue (sjaeckel's way)
2017-02-24 00:18:55 +01:00
Karel Miko
0c226834cc
introducing LTC_INLINE
2017-02-23 23:47:56 +01:00
Karel Miko
a2c87f54de
adding rsa_import_radix
2017-02-21 16:55:09 +01:00
Karel Miko
10545366d2
adding dsa_import_radix
2017-02-21 16:54:10 +01:00
Karel Miko
bcf7753a26
use MIN macro
2017-02-21 16:36:17 +01:00
Karel Miko
ecbac7324e
DSA: properly handle FIPS 186-4 (4.6 + 4.7)
2017-02-21 16:36:17 +01:00
zeromus
32f19995f8
do it differently
2017-02-21 11:49:35 +01:00
zeromus
793ff08986
do it differently
2017-02-21 11:49:35 +01:00
Steffen Jaeckel
8fc1af1b7e
make implementation easier to read
...
damn you negated logic...
2017-02-15 23:15:43 +01:00
Karel Miko
6ad5225268
removing forgotten debug comment
2016-07-07 15:03:33 +02:00
Steffen Jaeckel
10e577e24a
there's no need to check out on function entry
...
...someone could then do something like this...
unsigned char* out = NULL;
unsigned long len = 0;
while(ecc_ansi_x963_export(key, out, &len) == CRYPT_BUFFER_OVERFLOW &&
len == 0) {
out = malloc(len);
}
...as if someone would ever like to do something like that...
2016-01-14 21:32:33 +01:00
Karel Miko
42bad9f580
fix for issue #58 - possible overflow in ecc_ansi_x963_export
2016-01-11 00:25:13 +01:00
Karel Miko
8cf7eb1801
fix for issue #91 - redefinition of macro "setbit"
2016-01-10 18:45:04 +01:00
Steffen Jaeckel
318dbbccc3
fix wrongly used LTC_ARGCHK/LTC_ARGCHKVD macros
2015-12-05 14:31:37 +01:00
Steffen Jaeckel
460b8716c9
fix clang-analyzer warnings
...
This fixes #80
2015-12-05 14:31:01 +01:00
Steffen Jaeckel
16f397d55c
prevent segfault in case we hit an empty sequence
2015-09-10 19:17:42 +02:00
Steffen Jaeckel
01f1845402
harden RSA CRT by implementing the proposed countermeasure
...
... from ch. 1.3 of [1]
[1] https://people.redhat.com/~fweimer/rsa-crt-leaks.pdf
2015-09-08 02:44:17 +02:00
Pascal Brand
3605983f09
Introduce ECC raw algorithms for sign and verify
...
As it is performed on dsa, raw sign and verify on ECC
are introduced.
Signed-off-by: Pascal Brand <pascal.brand@st.com>
2015-08-21 22:14:03 +02:00
Pascal Brand
f20b5daf39
Use XMEM_NEQ instead of mem_neq
...
mem_neq is no more used directly. XMEM_NEQ is used instead,
in the same way XMEMCMP, XMEMCPY,... are.
Signed-off-by: Pascal Brand <pascal.brand@st.com>
2015-02-27 08:54:30 +01:00
Steffen Jaeckel
90e968a202
der_decode_subject_public_key_info: fix compile error
...
also make it possible to define min/max RSA key sizes externally
This closes #59
2015-02-15 16:32:12 +01:00
Steffen Jaeckel
9782c09a3a
use XMEM{CMP, CPY, SET} macros instead of standard versions
2015-01-20 22:36:06 +01:00
Steffen Jaeckel
1e9e98aa0d
make pkcs#1 decode functions constant-time
...
as proposed in RFC 3447 only one error return code is used when there are
errors while decoding the pkcs#1 format.
also, all steps are executed and only the "output" is skipped if something
went wrong.
Sorry this could break backwards compatibility, since there's no more
BUFFER_OVERFLOW messaging.
Former error-handling code could also be affected because now there's only
OK as return code in cases where "res" is also set to '1'.
2014-11-13 22:26:59 +01:00
Steffen Jaeckel
e57c92fd23
replace calls to standard memcmp with constant memcmp where necessary
2014-11-13 22:09:45 +01:00
Steffen Jaeckel
ed28703804
der_decode_sequence_multi: calm coverity
2014-10-10 01:07:58 +02:00
Steffen Jaeckel
ee1631f8b3
dsa import: no output on stderr please
2014-10-06 19:00:50 +02:00
Steffen Jaeckel
6bd6319fb0
der flexi decoder: implement decoding of context-specific data
2014-10-06 18:57:42 +02:00
Steffen Jaeckel
2d8933e4f1
der: add new enum element for context-specific encodings
2014-10-06 18:57:42 +02:00
Steffen Jaeckel
f0a1235614
der flexi decoder: remove duplicate code
2014-10-06 18:57:41 +02:00
Steffen Jaeckel
3d1231ab15
der flexi decoder: improve CONSTRUCTED type decoding
...
remove all teh flags
save the entire original identifier
2014-10-06 17:51:25 +02:00
Steffen Jaeckel
eea24fe2c0
bring back possibility to import/export old DSA key format
2014-09-29 23:44:47 +02:00
Steffen Jaeckel
f58c87866e
add possibility to export RSA public key in SubjectPublicKeyInfo format
2014-09-29 23:44:47 +02:00
Pascal Brand
a6e89d58d4
RSA in CRT optimization parameters are empty
2014-09-28 22:48:21 +02:00
Pascal Brand
2bb3f0246f
RSA in case CRT optimization parameters are not populated
...
rsa_exptmod(), ran on the private key, makes use of CRT optimization
parameters. In some use-cases, the given key does not include the
optimization parameters.
This patch allows rsa_exptmod() to run without the CRT parameters,
using directly mp_exptmod().
Signed-off-by: Pascal Brand <pascal.brand@st.com>
2014-09-28 22:45:46 +02:00
Steffen Jaeckel
f597f29ece
math: change get_digit() return value
...
unsigned long is 32bit wide when compiling with the compiler flag "-mx32"
but the digit size of the math libraries is still 64 bit which lead to
the buggy ecc code.
Therefore define a new type ltc_mp_digit with the correct width and use
that as return value of get_digit()
Has been tested with all three math providers
2014-09-10 16:15:35 +02:00
Steffen Jaeckel
67b9cd8a95
trim trailing spaces
2014-09-02 02:17:43 +02:00
Steffen Jaeckel
ee4c00b753
some more ASN.1 fixes
...
these should have been in #49
2014-08-31 18:26:14 +02:00
Steffen Jaeckel
7a5ea10e60
add missing ASN1 types in der_encode_set()
2014-08-28 14:02:57 +02:00
Steffen Jaeckel
ddede01d16
trim trailing spaces
2014-08-28 14:02:57 +02:00
Steffen Jaeckel
b06270645e
add missing check of the OID
2014-08-28 14:02:57 +02:00
Steffen Jaeckel
6bba3a2a70
change the ASN1 type to be a typedef
...
replace all 'default' cases in the switch statements
2014-08-28 14:02:57 +02:00
Steffen Jaeckel
00c111b1c8
add missing types to decode routines
2014-08-28 14:02:57 +02:00
Steffen Jaeckel
800182338e
unwind conditional expressions
...
I prefer readability
2014-08-28 14:02:57 +02:00
Christopher Brown
3cdb64eca6
bypass constructed type identification for sets / sequences
2014-08-28 14:02:56 +02:00
Christopher Brown
678b6d9641
fix constructed type identifier check
2014-08-28 14:02:56 +02:00
Steffen Jaeckel
171eae5378
asn1: use LTC_SET_ASN1 macro to access ltc_asn1_list elements
2014-08-28 14:02:56 +02:00
Steffen Jaeckel
8ce125f8a8
mp_rand() assumes the number of digits and not the bitsize as parameter
2014-08-28 13:30:26 +02:00
Steffen Jaeckel
d51715db72
pkcs#1 v1.5 decode: fix missing check of PS length in EMSA mode
2014-08-28 13:30:26 +02:00
Steffen Jaeckel
5eb9743410
rsa_verify_hash: fix possible bleichenbacher signature attack
2014-08-28 13:30:26 +02:00