boringssl/crypto/bytestring
David Benjamin 1db42fb3ca Clarify CBS/CBB with respect to high tag number form.
We may need to implement high tag number form someday. CBS_get_asn1 has
an unsigned output to allow for this, but CBB_add_asn1 takes a uint8_t
(I think this might be my fault). Fix that which also fixes a
-Wconversion warning.

Simply leaving room in tag representation will still cause troubles
because the class and constructed bits overlap with bits for tag numbers
above 31. Probably the cleanest option would be to shift them to the top
3 bits of a u32 and thus not quite match the DER representation. Then
CBS_get_asn1 and CBB_add_asn1 will internally munge that into the DER
representation and consumers may continue to write things like:

   tag_number | CBS_ASN1_CONTEXT_SPECIFIC

I haven't done that here, but in preparation for that, document that
consumers need to use the values and should refrain from assuming the
correspond to DER.

Change-Id: Ibc76e51f0bc3b843e48e89adddfe2eaba4843d12
Reviewed-on: https://boringssl-review.googlesource.com/10502
Reviewed-by: Adam Langley <agl@google.com>
Commit-Queue: Adam Langley <agl@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-08-26 17:48:48 +00:00
..
asn1_compat.c Add a convenience function for i2d compatibility wrappers. 2016-02-16 19:40:53 +00:00
ber.c Add CBS_ASN1_UTF8STRING define. 2016-03-23 19:29:49 +00:00
bytestring_test.cc Adding ARRAY_SIZE macro for getting the size of constant arrays. 2016-08-19 19:30:39 +00:00
cbb.c Clarify CBS/CBB with respect to high tag number form. 2016-08-26 17:48:48 +00:00
cbs.c Make tls_open_record always in-place. 2016-06-08 18:39:07 +00:00
CMakeLists.txt Add a convenience function for i2d compatibility wrappers. 2016-02-16 19:40:53 +00:00
internal.h Add a convenience function for i2d compatibility wrappers. 2016-02-16 19:40:53 +00:00