###############################################################################
#                                                                             #
#   V I R U S   S C A N   A D A P T E R   ( V S A )   -   S D K    2 . 0      #
#                                                                             #
###############################################################################


    (C) Copyright SAP AG, Walldorf 2013, All Rights reserved

    SAP AG DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
    INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
    EVENT SHALL SAP AG BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
    DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
    PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
    ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
    OF THIS SOFTWARE.
 
    15th January 2013

Intro:
======
This package contains the "Virus Scan Adapter" (VSA) SDK (version 2) of SAP AG. 
The example VSA (in sub folder vssap) within this SDK should help external 
AV vendors or other security solution provider companies to understand the
requirements of a VSA for certification.
A vendor of a virus scan product can use this SDK to implement an integration
based on his own internal API (if such is existing) and a security solution
provider can use this SDK to implement a SAP integration solution. This could
be done either based on public APIs like Sophos provides with their SAVI or
based on a OEM partnership with an AV vendor (McAfee, Symantec, Trend Micro,
and so on).

Questions, comments and bug reports can be sent to:
   - The author in cases the example coding is affected.
   - If you are SAP customer, you can open a ticket on http://service.sap.com/
     on component BC-SEC-VIR
   - SAP Integration and Certification Center (ICC, icc@sap.com) in cases
     you want certify your own virus scan adapter to be SAP certified.
     In this case you should also ask for the VSATEST program to test your
     implementation.
   - For Further security questions you should use the SDN forum "Security":
     https://www.sdn.sap.com/irj/sdn/forum?forumID=208&start=0 

Start:
=====
    It is recommended that you first read the document "VSATEST-Readme".
    In the sub dirctory vsatest there are scripts for WINDOWS/UNIX to start
    the test program "vsatest" with the required options to run a simple
    test with the included example adapter "vssap".
    Example: 1. go to folder vsatest
             2. type "go"
    There are also integrated test scenarios which are available with the
    command "smoke".
    For such a small certification test run:
             vsatest smoke -V vssap.dll
             
             
Test:
=====
    The test program vsatest includes also the SAP internal API for virus 
    scanning. This means with the commands "scan" and "scanbyte" you can
    excatly test your adapter with the calls, an ABAP or J2EE system on SAP
    side would invoke.
    Example for scanning a file:
             vsatest scan -V vssap.dll eicar.com
    Example for scanning a byte array:
             vsatest scanbyte -V vssap.dll
    These commands need no extra XML file with any configuration and therefore
    it can be used from any directory. For example if you have problems 
    with your installation of Virus Scan Server then run vsatest exactly with
    the same settings from the directory where the Virus Scan Server is started.    

Index:
======
/doc
    /VSA-Specification.pdf  
                       Specification of a Virus Scan Adapter 
                       library in PDF format.
    /VSATEST-Readme.pdf
                       Readme document of VSATEST
    /vsa.hlp           Generated online reference of header file vsaxxtyp.h
    /vsa.doc           VSA online reference in RTF format.
    /vsa.html          VSA online reference in one HTML file.
    
/include
    /vsaxxtyp.h        Main header file with VSA data type definition
    /vsaxxvir.h        Header with test virus patterns 
       
/vsatest
    /data
        /clean         Clean test files for the scan
        /infected      EICAR test files for the scan
        /active        Files which contain active content inside
        /mime          File used to check MIME detection
    /opt
       /ntamd64
          /vsatest.exe Test program for a Windows x64
       /linuxx86_64
          /vsatest     Test program for a Linux AMD64
       /sun_64
          /vsatest     Test program for a Solaris Sparc 64 bit
       /...  (further platforms)
          /vsatest
          
    /etc
       /vsa-cert.xml   XML input file for a certification run of VSATEST
       /vsa-smoke.xml  XML input file for a smoketest of VSATEST
    /log               Directory with trace files of vsatest
    /out               Directory with the ouput of vsatest

/vssap
   /include
       /vsaxxtyp.h     Main header file with VSA data type definition
       /vsaxxvir.h     Test virus definitons 
   /src
       /vssap.c        Source of the adapter library
       /vssap.h        Header of the adpater library
       /csdecompr.c    Source of the SAR decompression module
       /csdecompr.h    Header of the SAR decompression module
       /vssap.rc       Ressource file of the WINDOWS adapter library
       /makefile       GNU make file
       /vsa.sln        Microsoft Visual Studio solution file
       /vssap.vcproj   Microsoft Visual Studio .Net 2003 project file    
   /dbg
       /ntintel
           /vssap.dll  Example debug VSA DLL for windows platforms                           
       /linuxintel
           /vssap.so   Example debug shared library for Linux platforms (32-bit)
       /sun
           /vssap.so   Example debug shared library for Solaris Sparc platforms (32-bit)
       /sun_64
           /vssap.so   Example shared library for Solaris Sparc platforms (64-bit)     
       /...  (further platforms)
           /vssap.so
   /opt
       /ntintel
           /vssap.dll  Example VSA DLL for windows platforms                           
       /linuxintel
           /vssap.so   Example shared library for Linux platforms (32-bit)
       /sun
           /vssap.so   Example shared library for Solaris SPARC platforms (32-bit)
       /sun_64
           /vssap.so   Example shared library for Solaris SPARC platforms (64-bit)
       /...  (further platforms)
           /vssap.so
