EVP_MD_CTX_type returns a type, so applying EVP_MD_type on its result goes too
far. The compilation error on tru64 UNIX (ex Digital UNIX, ex OSF) is:
cc: Error: openssl_digest.xs, line 48: In this statement, "((((ctx)->digest)->type))"
has a signed int type, but occurs in a context that requires a pointer. (needpointer)
RETVAL.dptr=OBJ_nid2ln(EVP_MD_type(EVP_MD_CTX_type(ctx)));
---------------------------------------^
The output of -E on the source shows:
# 48 "openssl_digest.xs"
RETVAL.dptr=OBJ_nid2ln( ( ( ( ( ( ctx ) -> digest ) -> type ) ) ->
type ) );
The suggested fix, assuming a "type" is needed by OBJ_nid2ln:
grover:~/openssl-0.9.5a/perl> diff -r openssl_digest.xs{~,}
48c48
< RETVAL.dptr=OBJ_nid2ln(EVP_MD_type(EVP_MD_CTX_type(ctx)));
---
> RETVAL.dptr=OBJ_nid2ln(EVP_MD_CTX_type(ctx));
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]