3.0.0. IMPLEMENT_ASN1_FUNCTIONS missing _it prototypes

Ken Goldman kgoldman at us.ibm.com
Fri Aug 27 16:40:58 UTC 2021


On 8/24/2021 5:56 AM, Matt Caswell wrote:
> 
> 
> On 23/08/2021 20:42, Ken Goldman wrote:
>> I get warnings on all my ASN1_SEQUENCE_END, a missing prototype for the _it functions.
>> The code is working, but I'd like a clean compile.
>>
>> 3.0.0 only, 1.0.2 and 1.1.1 are OK.
>>
>> Example:
>>
>> #include <openssl/asn1.h>
>> #include <openssl/asn1t.h>
>> #include <openssl/x509.h>
>> #include <openssl/x509v3.h>
>>
>> typedef struct {
>>      ASN1_TIME *notBefore;
>>      ASN1_TIME *notAfter;
>> } TPM_PARTIAL_CERT_VALIDITY;
>>
>> ASN1_SEQUENCE(TPM_PARTIAL_CERT_VALIDITY) = {
>>      ASN1_SIMPLE(TPM_PARTIAL_CERT_VALIDITY, notBefore, ASN1_TIME),
>>      ASN1_SIMPLE(TPM_PARTIAL_CERT_VALIDITY, notAfter, ASN1_TIME),
>> } ASN1_SEQUENCE_END(TPM_PARTIAL_CERT_VALIDITY) 
> 
> Change this line to:
> 
> } static_ASN1_SEQUENCE_END(TPM_PARTIAL_CERT_VALIDITY)
> 
>
static_ worked on 3.0, 1.1.1, and 1.0.2.  I found that
it failed on 1.0.1e with:

certifyx509.c:125: error: expected ',' or ';' before 'static_ASN1_SEQUENCE_END'
certifyx509.c:128: warning: no previous prototype for 'TPM_ADDTOCERT_new'

If this makes sense, I can add an ifdef.

(Support for 1.0.1 is a requirement. Sorry.)




More information about the openssl-users mailing list