Most of these can be found in the corresponding crypto\ subdirectories, e.g. crypto\md5 and crypto\sha, in the source dump (I assume you mean the source code archives available at openssl.org; if not, what are you looking at?).

Looking for functions is simple once you take into account that some of them are specified through the use of macros to aid in code reuse (Forget about that assembly stuff Richard mentioned for now; it's not mandatory to have a fully functional SSL library, but only helps to provide additional speed improvements for selected platforms, where available):

grepping for MD5_Update for instance (a.k.a.: 'find in files' in your editor of choice, e.g. UltraEdit32) will turn up the line

#define HASH_UPDATE      MD5_Update

used in crypto\md5\ code to instantiate the MD5 implementation of a common hash routine, which, can be found as the generic
HASH_UPDATE(...) routine written in md32_common.h

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 . You will find these practices throughout OpenSSL to help in preventing a particularly nasty type of copy&paste software bugs.

HTH

Regards,

Ger


I've ported SSL to embedded environments before; it's rather easy unless you target systems with a very limited (or non-existent) C standard run-time library (i.e. when they lack things like printf() et al) or - of course - when special conditions apply.





Konark ch wrote:
Thanks for the quick response , but i'm on windows environment.

Basically i want to port Openssl to mobile platforms

Please help me .

Thanks in advance .

\\konark

On 6/5/07, *Richard Salz* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    >   I'm not able to find code for some of the digest functions like
    > MD5_Update() ,SHA1_Update().
    > in the latest source dump.

    Many OpenSSL functions are implemented in non-traditional manners,
    such as
    via macro's, assembly language, etc.

    If you are on a Unix/Linux platform, using something like "nm -o
    libcrypto.a | grep SHA1_Update" will get you started.  In this case,
    sha1dgst.c.

    Good luck figuring it out.

            /r$

    --
    STSM, Senior Security Architect
    DataPower SOA Appliances
    http://www.ibm.com/software/integration/datapower/
    <http://www.ibm.com/software/integration/datapower/>

    ______________________________________________________________________
    OpenSSL Project                                 http://www.openssl.org
Development Mailing List [email protected] <mailto:[email protected]> Automated List Manager [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to