Remove preservation and use of cached DER/BER encodings in the d2i/i2d paths
authorjob <job@openbsd.org>
Fri, 28 Apr 2023 17:59:53 +0000 (17:59 +0000)
committerjob <job@openbsd.org>
Fri, 28 Apr 2023 17:59:53 +0000 (17:59 +0000)
commitdf1261f9e246b2c867172a7dd4ec7d82a2adf62a
treeea6c0502d1baf4e30b2fb5682b7588f1c77c915a
parent2d55822ffc70ec19c502b48f1a172fefbd3fda9c
Remove preservation and use of cached DER/BER encodings in the d2i/i2d paths

A long time ago a workflow was envisioned for X509, X509_CRL, and X509_REQ
structures in which only fields modified after deserialization would need to
be re-encoded upon serialization.

Unfortunately, over the years, authors would sometimes forget to add code in
setter functions to trigger invalidation of previously cached DER encodings.

The presence of stale versions of structures can lead to very hard-to-debug
issues and cause immense sorrow.

Fully removing the concept of caching DER encodings ensures stale versions
of structures can never rear their ugly heads again.

OK tb@ jsing@
lib/libcrypto/asn1/tasn_dec.c
lib/libcrypto/asn1/tasn_enc.c