Boinc Core Client - HTTPS implementation
========================================

This document describes how to compile a BOINC client
that uses Secure Socket Layer (SSL) to communicate with servers.
This is not currently supported.

BUILD PROCEDURES

1    Build OpenSSL Static library which works with Boinc Client on Windows

1-1)    Install Perl (to compile OpenSSL)

    Download package.
    URL: http://aspn.activestate.com/ASPN/Downloads/ActivePerl/index/

    install.bat will start installation.

1-2)    Download and install OpenSSL

    URL: http://www.openssl.org/source/
    2798433 Mar 17 13:13:26 2004 openssl-0.9.7d.tar.gz (PGP sign)  [LATEST]

1-3)    Download Assembler (to compile sslelay32.lib, libeay32.lib)

    Download nasm.exe, and put it in some directory where %PATH% can find.
    http://sourceforge.net/project/showfiles.php?group_id=6208        

    (Configure)

    C:\openssl-0.9.7d>perl Configure VC-WIN32

    (Build assembler code)

    C:\openssl-0.9.7d>ms\do_nasm

        * To compile debug library, need to add 'debug' option
        in file 'do_nasm'.
        perl util\mk1mf.pl debug nasm VC-WIN32 >ms\nt.mak

    (Build main code)

    C:\openssl-0.9.7d>nmake -f ms\nt.mak

        * Before executing nt.mak, change make file 'nt.mak' 
        as follows:

        For release build:    /MD     /MT, and
        For debug build:    /MDd    /MTd

    (Check library)

    C:\openssl-0.9.7d>cd out32
    C:\openssl-0.9.7d\out32>..\ms\test.bat
    
        * If successfully build, you will see 'passed all tests' 
        messages


2    Build BOINC Client

     To discriminate the libraries, rename library files:
      -  libeay32_release.lib ssleay32_release.lib for release build,
      -  and libeay32_debug.lib ssleay32_debug.lib for debug build.

2-1) Put all ssl libraries in the new directory 'SSL_Use'
     (or other directories)

        Directory: \boinc\SSL_Use\

    (Optional) To discriminate core client executables, create new 
               .Net project and directory for executables:

        BoincClient CUI:
            Project name - boinc_cli_SSL ,
            executables - 
            \boinc-2.19\SSL_Use\Build\Debug\boinc_cli_SSL.exe
            \boinc-2.19\SSL_Use\Build\Release\boinc_cli_SSL.exe

        BoincClient GUI
            Project name - boinc_gui_SSL ,
            executables -
            \boinc-2.19\SSL_Use\Build\Debug\boinc_gui_SSL.exe
            \boinc-2.19\SSL_Use\Build\Release\boinc_gui_SSL.exe


2-2) Change project configuration for boinc_gui_SSL and boinc_cli_SSL

        [boinc_xxx_SSL project]-[properties]-[Linker]-[Input]
        -[Additional Dependencies]

        For release build:
            (add) libeay32_release.lib ssleay32_release.lib
        For debug build:
            (add) libeay32_debug.lib ssleay32_debug.lib

        [boinc_xxx_SSL project]-[properties]-[C/C++]-[General]
        -[Additional Include Directories]

        For release build:
            (add) ../openssl-0.9.7d/inc32/
        For debug build:
            (add) ../openssl-0.9.7d/inc32/
                            
2-3) Build projects
