#ifndef X509AC_SUPP #define X509AC_SUPP /* defines for debugging and error reporting */ #define ONELINELEN 128 #define d2i_X509AC_bio(bp,x) (X509AC *)ASN1_d2i_bio((char *(*)()) \ X509AC_new,(char *(*)())d2i_X509AC, (bp),\ (unsigned char **)(x)) void handle_error (const char *file, int lineno, const char *msg); #define int_error(msg) handle_error(__FILE__, __LINE__, msg) /* should be in pem/pem.h */ #define PEM_STRING_X509AC "ATTRIBUTE CERTIFICATE" //#define PEM_read_X509AC(fp,x,cb,u) (X509AC *)PEM_ASN1_read( \ (char *(*)())d2i_X509AC,PEM_STRING_X509AC,fp,(char **)x,cb,u) #define PEM_write_bio_X509AC(bp,x) \ PEM_ASN1_write_bio((int (*)())i2d_X509AC,PEM_STRING_X509AC,bp, \ (char *)x, NULL,NULL,0,NULL,NULL) //#define PEM_write_X509AC(fp,x) \ PEM_ASN1_write((int (*)())i2d_X509AC,PEM_STRING_X509AC,fp, \ (char *)x, NULL,NULL,0,NULL,NULL) #define PEM_write_X509AC(fp,x) PEM_ASN1_write((int (*)())i2d_X509AC,PEM_STRING_X509AC,fp,(char *)x, NULL,NULL,0,NULL, NULL) //#define PEM_write_bio_X509(bp,x) // PEM_ASN1_write_bio((int (*)())i2d_X509,PEM_STRING_X509,bp,(char *)x, NULL,NULL,0,NULL) //#define PEM_read_bio_X509(bp,x,cb) // (X509 *)PEM_ASN1_read_bio((char *(*)())d2i_X509,PEM_STRING_X509,bp,(char **)x,cb) #define PEM_read_X509AC(fp,x,cb) (X509AC *)PEM_ASN1_read((char *(*)())d2i_X509AC,PEM_STRING_X509AC,fp,(char **)x,cb, NULL) /* functions in X509AC-supp.c */ #define X509AC_get_notBefore(x) ((x)->info->validity->notBefore) #define X509AC_get_notAfter(x) ((x)->info->validity->notAfter) int X509AC_set_version(X509AC *x, long version); int X509AC_set_serialNumber(X509AC *x, ASN1_INTEGER *serial); int X509AC_sign(X509AC *x, EVP_PKEY *pkey, const EVP_MD *md); X509_NAME *X509AC_get_issuer_name(X509AC *a); X509_NAME *X509AC_get_holder_name(X509AC *a); int X509AC_verify_cert(X509_STORE_CTX * verify_ctx, X509AC * ac); void X509AC_print(X509AC *ac); static X509AC* B64_read_X509AC(BIO *bio) { BIO *b64; X509AC *x; if(!(b64 = BIO_new(BIO_f_base64()))) { fprintf(stderr,"PKCS7_F_B64_READ_PKCS7,ERR_R_MALLOC_FAILURE"); return 0; } bio = BIO_push(b64, bio); if(!(x = d2i_X509AC_bio(bio, NULL))) fprintf(stderr, "PKCS7_F_B64_READ_PKCS7,PKCS7_R_DECODE_ERROR"); BIO_flush(bio); bio = BIO_pop(bio); BIO_free(b64); return x; } #endif