Hi,

> If I call MD5_Update / Final / SHA_Update/ final ... all these
> functions are replaced by macros or ... ?


No. The functions are there just fine.
_Implementing_ them uses the macros.

> #define HASH_UPDATE SHA1_Update "
>
> HASH_UPDATE will be replaced by the SHA1_Update .. is it so ?


No, it's the other way round: To define what SHA1_Update
does, the more general "HASH_UPDATE" macro is used.

> if some thing like that where can find definition for SHA1_Update


As Gerrit already said:

> When you look for SHA1_Update you'll find that crypto/sha will
> apply the
> same mechanism:
>
> #define HASH_UPDATE SHA1_Update
>
> and one more #include of md32_common.h, thus actually reusing the
> code
> in md32_common.h .


So the definition for SHA1_Update is in that file with the
#define HASH_UPDATE SHA1_Update
It just internally uses the macro to implement it.
It somewhat confusing, but you can use your preprocessor
to understand what's going on. Passing a "-E" (or "/E") instead
of "-c" (or "/c") to the command line that compiles the actual
file should give you the preprocessor output, i.e. the code that
the compiler actually gets to see after the macro substitutions
did take place - that might help to understand what's actually
going on...

HTH,
Stefan


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