boringssl/crypto
David Benjamin 8b8d22c961 Parse PKCS#12 files more accurately.
Mercifully, PKCS#12 does not actually make ContentInfo and SafeBag
mutually recursive. The top-level object in a PKCS#12 is a SEQUENCE of
data or encrypted data ContentInfos. Their payloads are a SEQUENCE of
SafeBags (aka SafeContents).

SafeBag is a similar structure to ContentInfo but not identical (it has
attributes in it which we ignore) and actually carries the objects.
There is only recursion if the SafeContents bag type is used, which we
do not process.

This means we don't need to manage recursion depth. This also no longer
allows trailing data after the SEQUENCE and removes the comment about
NSS. The test file still passes, so I'm guessing something else was
going on?

Change-Id: I68e2f8a5cc4b339597429d15dc3588bd39267e0a
Reviewed-on: https://boringssl-review.googlesource.com/13071
Reviewed-by: Adam Langley <agl@google.com>
2017-01-12 16:56:05 +00:00
..
aes Test invalid inputs for AES_unwrap_key. 2017-01-04 04:37:46 +00:00
asn1 Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
base64 Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
bio Don't chain to next_bio for buffer BIO BIO_[w]pending. 2016-12-21 23:08:22 +00:00
bn Remove BN_FLG_CONSTTIME. 2017-01-12 02:00:44 +00:00
buf Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
bytestring Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
chacha Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
cipher Fix AES-GCM-SIV on large inputs. 2017-01-04 01:45:31 +00:00
cmac Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
conf Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
curve25519 Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
des Fix up macros. 2016-10-18 18:28:23 +00:00
dh Remove BN_FLG_CONSTTIME. 2017-01-12 02:00:44 +00:00
digest Decouple EVP_get_digestbyobj from the giant OID table. 2017-01-10 23:45:00 +00:00
dsa Remove BN_FLG_CONSTTIME. 2017-01-12 02:00:44 +00:00
ec Remove 'pivot element' from wNAF code. 2017-01-12 16:45:23 +00:00
ecdh Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
ecdsa Don't use BN_mod_inverse for inverses mod p in RSA keygen. 2017-01-04 13:56:11 +00:00
engine Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
err Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
evp Import RSA decryption tests from upstream. 2017-01-04 01:47:53 +00:00
hkdf Convert hkdf_test to C++. 2017-01-04 01:40:44 +00:00
hmac Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
lhash Remove lh_new's default hash and comparator. 2017-01-04 01:44:10 +00:00
md4 Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
md5 Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
modes Fix AES-GCM-SIV on large inputs. 2017-01-04 01:45:31 +00:00
obj Reimplement objects.pl in Go. 2016-12-21 22:14:13 +00:00
pem Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
perlasm perlasm/x86_64-xlate.pl: refine sign extension in ea package. 2016-12-14 17:36:29 +00:00
pkcs8 Parse PKCS#12 files more accurately. 2017-01-12 16:56:05 +00:00
poly1305 Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
pool Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
rand Fix fuzzer mode build. 2016-12-22 03:17:59 +00:00
rc4 Simplify RC4 code and remove assembly. 2016-08-30 15:32:31 +00:00
rsa Remove BN_FLG_CONSTTIME. 2017-01-12 02:00:44 +00:00
sha Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
stack Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
test Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
x509 ASN1_UTCTIME_print: fix, comment, test. 2017-01-10 23:32:12 +00:00
x509v3 Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
CMakeLists.txt Convert constant_time_test and refcount_test to C++. 2017-01-04 01:36:49 +00:00
constant_time_test.cc Convert constant_time_test and refcount_test to C++. 2017-01-04 01:36:49 +00:00
cpu-aarch64-linux.c Rewrite ARM feature detection. 2016-03-26 04:54:44 +00:00
cpu-arm-linux.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
cpu-arm.c Rewrite ARM feature detection. 2016-03-26 04:54:44 +00:00
cpu-intel.c Wrap MSVC-only warning pragmas in a macro. 2016-06-09 21:29:36 +00:00
cpu-ppc64le.c Add PPC64LE assembly for AES-GCM. 2016-09-27 18:43:20 +00:00
crypto.c Add PPC64LE assembly for AES-GCM. 2016-09-27 18:43:20 +00:00
ex_data.c Use C99 for size_t loops. 2016-09-12 19:44:24 +00:00
internal.h Fix comment on OPENSSL_memcmp, etc. 2016-12-21 21:47:24 +00:00
mem.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
refcount_c11.c
refcount_lock.c Split unlock functions into read/write variants. 2016-05-31 21:09:29 +00:00
refcount_test.cc Convert constant_time_test and refcount_test to C++. 2017-01-04 01:36:49 +00:00
thread_none.c Split unlock functions into read/write variants. 2016-05-31 21:09:29 +00:00
thread_pthread.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
thread_test.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
thread_win.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
thread.c Remove a bunch of unnecessary includes. 2016-06-28 20:31:14 +00:00
time_support.c Remove some mingw support cruft. 2016-01-25 23:05:45 +00:00