openssl/crypto/x509
Matt Caswell 8c7c1c84cb Add a generic SubjectPublicKeyInfo decoder
Previously all the SubjectPublicKeyInfo decoders were specific to a key
type. We would iterate over all them until a match was found for the correct
key type. Each one would fully decode the key before then testing whether
it was a match or not - throwing it away if not. This was very inefficient.

Instead we introduce a generic SubjectPublicKeyInfo decoder which figures
out what type of key is contained within it, before subsequently passing on
the data to a key type specific SubjectPublicKeyInfo decoder.

Fixes #15646

Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/15662)
2021-06-14 09:43:01 +01:00
..
build.info x509_trs.c: rename to x509_trust.c and correct comment in trust_compat() 2021-06-08 07:47:18 +02:00
by_dir.c
by_file.c Update copyright year 2021-05-20 14:22:33 +01:00
by_store.c
ext_dat.h
pcy_cache.c
pcy_data.c
pcy_lib.c
pcy_local.h
pcy_map.c
pcy_node.c
pcy_tree.c
standard_exts.h
t_crl.c
t_req.c
t_x509.c Add support for ISO 8601 datetime format 2021-06-11 12:39:46 +02:00
v3_addr.c x509: remove TODOs 2021-06-02 16:30:15 +10:00
v3_admis.c
v3_admis.h
v3_akeya.c
v3_akid.c
v3_asid.c
v3_bcons.c x509: remove TODOs 2021-06-02 16:30:15 +10:00
v3_bitst.c
v3_conf.c Add NCONF_get_section_names() 2021-06-02 12:40:02 +10:00
v3_cpols.c
v3_crld.c
v3_enum.c
v3_extku.c
v3_genn.c
v3_ia5.c
v3_info.c
v3_int.c
v3_ist.c
v3_lib.c
v3_ncons.c Check that we got the expected name type when verifying name constraints 2021-06-04 17:18:31 +01:00
v3_pci.c
v3_pcia.c
v3_pcons.c
v3_pku.c
v3_pmaps.c
v3_prn.c
v3_purp.c Improve the documentation of cert path building and validation 2021-06-08 07:47:41 +02:00
v3_san.c
v3_skid.c
v3_sxnet.c
v3_tlsf.c
v3_utf8.c
v3_utl.c x509: remove TODOs 2021-06-02 16:30:15 +10:00
v3err.c err: rename err_load_xxx_strings_int functions 2021-05-26 13:01:47 +10:00
x509_att.c
x509_cmp.c
x509_d2.c
x509_def.c
x509_err.c err: rename err_load_xxx_strings_int functions 2021-05-26 13:01:47 +10:00
x509_ext.c
x509_local.h
x509_lu.c x509: remove TODOs 2021-06-02 16:30:15 +10:00
x509_meth.c
x509_obj.c
x509_r2x.c
x509_req.c
x509_set.c Rename all getters to use get/get0 in name 2021-06-01 12:40:00 +02:00
x509_trust.c x509_trs.c: rename to x509_trust.c and correct comment in trust_compat() 2021-06-08 07:47:18 +02:00
x509_txt.c
x509_v3.c
x509_vfy.c Improve the documentation of cert path building and validation 2021-06-08 07:47:41 +02:00
x509_vpm.c
x509cset.c
x509name.c
x509rset.c
x509spki.c
x509type.c Rename all getters to use get/get0 in name 2021-06-01 12:40:00 +02:00
x_all.c X509_digest_sig: Handle RSA-PSS and EDDSA certificates 2021-06-08 09:20:15 +02:00
x_attrib.c
x_crl.c
x_exten.c
x_name.c
x_pubkey.c Add a generic SubjectPublicKeyInfo decoder 2021-06-14 09:43:01 +01:00
x_req.c Ensure libctx/propq is propagated when handling X509_REQ 2021-06-05 17:39:27 +10:00
x_x509.c d2i_X509: revert calling X509v3_cache_extensions() 2021-06-12 10:37:04 +02:00
x_x509a.c