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