Reword ASN1_BOOLEAN exception. There are potentially more than three ASN1_BOOLEAN ASN1_ITEMs. ASN1_BOOLEAN may be wrapped by explicit or implicit tagging into another ASN1_ITEM. (I also suspect SEQUENCE OF BOOLEAN is just unrepresentable in this library, but I will leave that rabbithole alone.) Bug: 426 Change-Id: I3e58bfb63ee5c7a6d112b4a16e0f13fbacaea93a Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/49925 Reviewed-by: Adam Langley <agl@google.com>
diff --git a/include/openssl/asn1.h b/include/openssl/asn1.h index 2fee2c5..a211019 100644 --- a/include/openssl/asn1.h +++ b/include/openssl/asn1.h
@@ -189,13 +189,12 @@ // |ASN1_ITEM_rptr(ASN1_OCTET_STRING)|. // // Each |ASN1_ITEM| has a corresponding C type, typically with the same name, -// which represents values in the ASN.1 type. With the exception of -// |ASN1_BOOLEAN|, this type is a pointer type. NULL pointers represent omitted +// which represents values in the ASN.1 type. This type is either a pointer type +// or |ASN1_BOOLEAN|. When it is a pointer, NULL pointers represent omitted // values. For example, an OCTET STRING value is declared with the C type // |ASN1_OCTET_STRING*| and uses the |ASN1_ITEM| named |ASN1_OCTET_STRING|. An // OPTIONAL OCTET STRING uses the same C type and represents an omitted value -// with a NULL pointer. |ASN1_BOOLEAN| uses a different representation, -// described in a later section. +// with a NULL pointer. |ASN1_BOOLEAN| is described in a later section. // DECLARE_ASN1_ITEM declares an |ASN1_ITEM| with name |name|. The |ASN1_ITEM| // may be referenced with |ASN1_ITEM_rptr|. Uses of this macro should document @@ -230,8 +229,8 @@ // an empty string. Note, however, that this default state sometimes omits // required values, such as with CHOICE types. // -// This function may not be used with |ASN1_BOOLEAN|, |ASN1_TBOOLEAN|, or -// |ASN1_FBOOLEAN|, whose C representations are not pointers. +// This function may not be used with |ASN1_ITEM|s whose C type is +// |ASN1_BOOLEAN|. // // WARNING: Casting the result of this function to the wrong type is a // potentially exploitable memory error. Callers must ensure the value is used @@ -242,8 +241,8 @@ // ASN1_item_free releases memory associated with |val|, which must be an object // of the C type corresponding to |it|. // -// This function may not be used with |ASN1_BOOLEAN|, |ASN1_TBOOLEAN|, or -// |ASN1_FBOOLEAN|, whose C representations are not pointers. +// This function may not be used with |ASN1_ITEM|s whose C type is +// |ASN1_BOOLEAN|. // // WARNING: Passing a pointer of the wrong type into this function is a // potentially exploitable memory error. Callers must ensure |val| is consistent @@ -260,8 +259,8 @@ // resolved, we will need to pick which type |*out| is (probably |T*|). Do not // use a non-NULL |out| to avoid ending up on the wrong side of this question. // -// This function may not be used with |ASN1_BOOLEAN|, |ASN1_TBOOLEAN|, or -// |ASN1_FBOOLEAN|, whose C representations are not pointers. +// This function may not be used with |ASN1_ITEM|s whose C type is +// |ASN1_BOOLEAN|. // // WARNING: Casting the result of this function to the wrong type, or passing a // pointer of the wrong type into this function, are potentially exploitable @@ -274,8 +273,8 @@ // ASN1_item_i2d marshals |val| as the ASN.1 type associated with |it|, as // described in |i2d_SAMPLE|. // -// This function may not be used with |ASN1_BOOLEAN|, |ASN1_TBOOLEAN|, or -// |ASN1_FBOOLEAN|, whose C representations are not pointers. +// This function may not be used with |ASN1_ITEM|s whose C type is +// |ASN1_BOOLEAN|. // // WARNING: Passing a pointer of the wrong type into this function is a // potentially exploitable memory error. Callers must ensure |val| is consistent @@ -315,9 +314,8 @@ OPENSSL_EXPORT int i2d_ASN1_BOOLEAN(ASN1_BOOLEAN a, unsigned char **outp); // The following |ASN1_ITEM|s have ASN.1 type BOOLEAN and C type |ASN1_BOOLEAN|. -// These are the only |ASN1_ITEM|s with non-pointer types. |ASN1_TBOOLEAN| and -// |ASN1_FBOOLEAN| must be marked OPTIONAL. When omitted, they are parsed as -// TRUE and FALSE, respectively, rather than -1. +// |ASN1_TBOOLEAN| and |ASN1_FBOOLEAN| must be marked OPTIONAL. When omitted, +// they are parsed as TRUE and FALSE, respectively, rather than -1. DECLARE_ASN1_ITEM(ASN1_BOOLEAN) DECLARE_ASN1_ITEM(ASN1_TBOOLEAN) DECLARE_ASN1_ITEM(ASN1_FBOOLEAN)