Currently, the only EXTERN type is X509_NAME. Implicitly tagging an X509_NAME didn't work anyway because of the cached encoding. Moreover, even if it did work, it'd be invalid. Name in RFC 5280 is actually a one-element CHOICE type, and CHOICE types can never be implicitly tagged. So just remove support. One thing of note: I'm thinking EXTERN can be used later to retain ASN1_ITEM compatibility, once X509 and friends no longer use the template machinery. That means we're not only assuming X509_NAME is never implicitly tagged, but also that external callers using <openssl/asn1t.h> won't implicitly tag a built-in type. This removes a case we need to handle in the rewritten tasn_enc.c. (In particular, crypto/asn1 and crypto/bytestring use a different tag representation and I'd like to minimum the number of conversions we need.) Update-Note: IMPLEMENT_EXTERN_ASN1 can no longer be used outside the library. I found no callers using this machinery, and we're better off gradually migrating every <openssl/asn1t.h> user to CBS/CBB anyway. Bug: 548 Change-Id: I0aab531077d25960dd3f16183656f318d78a0806 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/56186 Reviewed-by: Bob Beck <bbe@google.com> Commit-Queue: David Benjamin <davidben@google.com>fips-20230428
parent
1df70cea5d
commit
afa460c7b9
5 changed files with 45 additions and 46 deletions
Loading…
Reference in new issue