Commit Graph
85 Commits
Author SHA1 Message Date
Tobias Brunner ebc665be4d asn1: Support dates before 1970-01-01 (i.e. when time_t gets negative)
On x86 we allow "overflows" around 1969/1970 but not for other dates.

Fixes #509.
2014-02-12 13:54:05 +01:00
Tobias Brunner addc34d5f0 asn1: Add additional validation for parsed ASN.1 date/time values 2014-02-12 13:53:57 +01:00
Andreas Steffen 7817d88e1a unit-tests: 100% function coverage for asn1.c 2013-11-03 17:40:51 +01:00
Andreas Steffen c3103700fc Some minor refactoring in asn1.c 2013-11-02 21:17:46 +01:00
Andreas Steffen 1347c936bd Do not free zero-length integer 2013-11-02 02:11:32 +01:00
Tobias Brunner b3393c88c1 asn1: Fix handling of invalid ASN.1 length in is_asn1()
Fixes CVE-2013-5018.
2013-07-31 22:16:58 +02:00
Tobias Brunner c734c2d875 Extract function to convert ASN.1 INTEGER object to u_int64_t 2013-05-08 14:53:08 +02:00
Tobias Brunner f05b427265 Moved debug.[ch] to utils folder 2012-10-24 16:00:51 +02:00
Tobias Brunner 82e526ce81 Properly encode 0 in ASN.1.
According to X.690 an INTEGER object always has at least one content
octet.
2012-06-11 17:09:20 +02:00
Tobias Brunner e8120632ae Don't use chunk_skip() in asn1_length().
chunk_skip() returns chunk_empty if the length of the chunk is equal to
the number of bytes to skip, this is problematic as asn1_length() modifies
the original chunk.  asn1_parser_t for instance uses the modified chunk to
later calculate the length of the resulting ASN.1 object which produces
incorrect results if it is based on chunk_empty.
2012-06-11 17:09:20 +02:00
Tobias Brunner fd1ff46f61 Added support for PKCS#5 v2 schemes when decrypting PKCS#8 files. 2012-02-01 18:27:46 +01:00
Tobias Brunner cab127cba6 Added support for encrypted PKCS#8 files (for some PKCS#5 v1.5 schemes). 2012-02-01 18:27:46 +01:00
Tobias Brunner 25c6d26c1d Return parsed parameters from algorithmIdentifier if they are an OID (aka EC named curve).
Explicit EC parameters are not supported with this function, but before this
change no parameters were actually ever returned.
2012-02-01 18:27:45 +01:00
Tobias Brunner e86b685da5 Allow callers to force ASN.1 date encoding as GENERALIZEDTIME. 2011-12-23 18:07:39 +01:00
Tobias Brunner f4095fdc8a Avoid integer overflow when parsing ASN.1 dates.
This only works properly if sizeof(time_t) > 4.
2011-12-23 16:38:28 +01:00
Tobias Brunner 1267127c11 Properly ASN.1 encode dates in certificates depending on the year. 2011-12-23 16:29:41 +01:00
Tobias Brunner c7f3a056dd Log ASN.1 parsing in new ASN debug group. 2011-12-16 16:44:38 +01:00
Andreas Steffen 19897724d3 fixed asn1_oid_from_string(), allowing it to handle up to 32 bit node numbers 2011-03-12 13:46:14 +01:00
Andreas Steffen fc01176a7d output unknown OIDs in dot string notation 2011-03-11 11:48:22 +01:00
Andreas Steffen f813069e89 fixed asn1_oid_to_string() conversion 2011-03-09 15:36:05 +01:00
Martin Willi feac4a8162 Added conversion functions between string OIDs and its DER encoding 2011-01-05 16:46:02 +01:00
Martin Willi 37c2aac89d Double-check that a blob passed to is_asn1() is not empty 2010-05-05 11:35:53 +02:00
Tobias Brunner 8b0e09103b Adding DBG_LIB to all calls of libstrongswan's version of DBG*. 2010-04-06 12:47:40 +02:00
Tobias Brunner fac3bfa5cd Fixing some includes by replacing <> with "".
I changed only the includes needed to fix the build on Android, which has an utils.h system header file, but we should probably change all the local includes in libstrongswan to "" and relative paths.
2010-03-02 10:38:58 +01:00
Tobias Brunner 89ec5bef08 Whitespace cleanup. 2009-12-23 17:03:41 +01:00
Tobias Brunner 4a5a5dd290 Using the thread wrapper in charon, libstrongswan and their plugins. 2009-12-23 17:03:41 +01:00
Andreas Steffen 9f0327e652 define TIME_32_BITS_SIGNED_MAX in utils.h 2009-11-08 18:55:52 +01:00
Martin Willi 3b878dae7e Removed chunk_from_buf() in favor of a simpler chunk_from_chars() macro 2009-09-11 15:39:35 +02:00
Martin Willi 323f9f990f replaces four spaces by tabs, where appropriate 2009-09-04 14:50:23 +02:00
Martin Willi 7daf5226b7 removed trailing spaces ([[:space:]]+$) 2009-09-04 13:46:09 +02:00
Martin Willi 3e15f99189 accept octet strings in is_asn1() check 2009-09-03 15:35:05 +02:00
Andreas Steffen 78aa4ebd62 OID_EC_PUBLICKEY has a parameters field, defining the elliptic curve 2009-08-27 16:34:16 +02:00
Andreas Steffen 263872c47d added OID_EC_PUBLIC_KEY algorithmIdentifier 2009-08-27 16:07:59 +02:00
Martin Willi 7ef310f5b4 do not append a NULL paramter to ECDSA algorithmIdentifiers 2009-08-27 15:28:21 +02:00
Martin Willi eb73685dac create algorithmIdentifier dynamically from OID database 2009-08-27 13:59:30 +02:00
Martin Willi 957d116328 in addition to 'm'/'c' mode, asn1_wrap accepts a 's' mode clearing sensitive information 2009-08-26 11:23:51 +02:00
Martin Willi 596e0540a5 asn1_unwrap() function to parse ASN.1 objects with length/type 2009-07-06 13:15:28 +02:00
Martin Willi 90855e965a added additional sanity checks to asn1_length() parsing 2009-07-03 09:26:48 +02:00
Andreas Steffen 355bab380c additional check in case of non-positive months 2009-06-10 15:33:39 +02:00
Andreas Steffen c04bf43363 fixed typo in asn1.c 2009-06-10 12:00:26 +02:00
Andreas Steffen 95c00dfcf9 fixed DoS vulnerability in the parsing of ASN.1 time strings 2009-06-10 11:39:17 +02:00
Andreas Steffen b29832c74f fixed DoS vulnerability in the parsing of distinguished names 2009-06-09 22:03:33 +02:00
Andreas Steffen 8b799d55ce pluto and scepclient use private and public key plugins of libstrongswan 2009-06-09 11:03:32 +02:00
Tobias Brunner 5020a456c0 more intuitive leap year check 2009-05-15 09:36:55 +02:00
Andreas Steffen 13bb168485 fixed 32 bit overflow check 2009-05-14 15:39:31 +02:00
Andreas Steffen 30a896173b compute ASN.1 to UTC time without time functions 2009-05-14 13:55:55 +02:00
Tobias Brunner 65ea37abcd fixed timezone compensation when parsing ASN.1 dates 2009-05-08 15:23:50 +02:00
Tobias Brunner 8c5d72cd0b removing svn keyword $Id$ from all files 2009-04-30 13:19:35 +00:00
Tobias Brunner d24a74c5b4 merging changes from portability branch back to trunk
important change for developers: %Y replaces %D to print identities!
2009-04-30 11:37:54 +00:00
Andreas Steffen 08b2d288a1 scepclient and pluto use asn1 from libstrongswan 2009-04-20 20:53:38 +00:00