I was unable to compile XCA ( http://sourceforge.net/projects/xca )
using libssl-dev 0.9.8g on ubuntu 8.04 amd64, here are the errors:


x509rev.cpp: In constructor ‘x509rev::x509rev(const X509_REVOKED*)’:
x509rev.cpp:27: error: invalid conversion from ‘void*’ to ‘char*’
x509rev.cpp:27: error: initializing argument 3 of ‘void* ASN1_dup(int
(*)(void*, unsigned char**), void* (*)(void**, const unsigned char**,
long int), char*)’
x509rev.cpp: In member function ‘x509rev& x509rev::set(const
X509_REVOKED*)’:
x509rev.cpp:45: error: invalid conversion from ‘void*’ to ‘char*’
x509rev.cpp:45: error: initializing argument 3 of ‘void* ASN1_dup(int
(*)(void*, unsigned char**), void* (*)(void**, const unsigned char**,
long int), char*)’
x509rev.cpp: In member function ‘X509_REVOKED* x509rev::get() const’:
x509rev.cpp:89: error: invalid conversion from ‘void*’ to ‘char*’
x509rev.cpp:89: error: initializing argument 3 of ‘void* ASN1_dup(int
(*)(void*, unsigned char**), void* (*)(void**, const unsigned char**,
long int), char*)’


caused by the fact that on x86_64 platform void* and char* are not
interchangeable, I've resolved the issue by modifying the definition of
ASN1_dup in asn1.h:


$> diff asn1.h asn1_new.h
915c915
< void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, char *x);
---
> void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x);



I hope this could help, best regards

Marco Puggelli



__________________________________________________ ____________________
OpenSSL Project http://www.openssl.org
Development Mailing List openssl-dev@openssl.org
Automated List Manager majordomo@openssl.org