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.)