diff --git a/src/common/crypto.c b/src/common/crypto.c index 53c261b142..cdf827d0dd 100644 --- a/src/common/crypto.c +++ b/src/common/crypto.c @@ -664,7 +664,14 @@ int crypto_pk_asn1_encode(crypto_pk_env_t *pk, char *dest, int dest_len) crypto_pk_env_t *crypto_pk_asn1_decode(const char *str, int len) { RSA *rsa; + /* This ifdef suppresses a type warning. Take out the first case once + * everybody is using openssl 0.9.7 or later. + */ +#if OPENSSL_VERSION_NUMBER < 0x00907000l + rsa = d2i_RSAPublicKey(NULL, (unsigned char**)&str, len); +#else rsa = d2i_RSAPublicKey(NULL, (const unsigned char**)&str, len); +#endif if (!rsa) return NULL; /* XXXX log openssl error */ return _crypto_new_pk_env_rsa(rsa);