Signing SAXFile


By signing your cab file, you are providing a statement of the code's authenticity. ActiveX security measures implemented in Internet Explorer are geared towards preventing the end user from downloading unsigned ActiveX controls. Because of this, you will need to distribute a signed version of the XFile cab file. SoftArtisans provides a SoftArtisans-signed cab file with built-in limitations, or you can create your own cab file with the fully-functional version of the XFile dlls and sign the cab file yourself.

XFile's automatic installation installs two sets of dlls. One set is wrapped in a cabinet file (SAXFile.cab in XFileSE and SAXFileEE.cab in XFileEE) that is signed by SoftArtisans, and the other set is a collection of individual dlls. XFile includes two sets of dlls (in a CAB file, and outside of a CAB file) for the following reasons:

  1. In order to use the XFile server-side/ASP code samples, the dlls must be registered on the server. This requires that there exist at least one set of dlls that exist outside of a CAB file.

  2. In order to use the XFile client side/HTML code samples, the dlls must be available in a downloadable CAB file, or distributed and installed by some other method, client-side. Since internet distribution is the most common scenario, a signed CAB file has been provided so that the client-side/HTML code samples can be run immediately.

  3. To discourage malicious use of the CAB file that is signed by SoftArtisans, those dlls have been altered so that they will always display a dialog asking if the user agrees to upload or download a file, regardless of any browser security settings.

  4. The individual dlls that are not included in the CAB file do not ask the user to accept uploads and downloads. This allows for completely hidden and silent file transfer. If an application is to be developed with these dlls and distributed via the internet, they will need to be placed in their own CAB file and signed accordingly.

The CAB file you receive with XFile (SAXFile.cab with XFileSEand SAXFileEE.cab with XFileEE) is signed by SoftArtisans. It will prompt the user in the case of a hidden upload through the visual upload control, or a hidden download through the visual download control. That is, if you try to transfer a file through the one of the visual controls without displaying the file name in the control (using AXFFile.XFRequest.AddFile or AXFFileDownload.XFRequest.AddFile), XFile will display a dialog asking the user to accept or refuse the upload or download.

Only the CAB version of SoftArtisans XFile will display the file-transfer confirmation dialog. If If the non-CAB version of XFile (the set of individual dlls) is installed on the user's machine, the dialog will not appear.

Signing your own CAB file allows you to,

  1. Prevent the display of the file-transfer confirmation box.
  2. Customize uploads through the Windows Explorer Shell Extension. To customize Shell Extension uploads, include SAXFShEx.dll in your CAB file.

The following table lists the files installed with each XFile editon:

XFileEE XFileSE Description
SAXFileEE.cab SAXFile.cab Cabinet file containing all XFile's dlls except SAXFShExEE.dll/SAXFShEx.dll.
SAXFileEE.dll SAXFile.dll Non-visual file-transfer engine
xfclient.dll xfclient.dll
SAAXFileEE.dll SAAXFile.dll Visual upload and download controls
SAXFShExEE.dll SAXFShEx.dll Shell extension
SAArch.dll SAArch.dll Archive file creation/extraction component
SAFilMgr.dll SAFilMgr.dll File management component

You can sign one CAB including all six dlls, or separate CABs for the following modules.

SoftArtisans XFile Module SAXFile.dll/SAXFileEE.dll, SAAXFile.dll/SAAXFileEE.dll, [SAXFShEx.dll/SAXFShExEE.dll], SAXFile.inf/SAXFileEE.inf


Inclusion of SAXFShEx.dll/SAXFShExEE.dll is optional. Add it to the CAB if
you want to Customize uploads through the Windows Explorer Shell Extension .
SoftArtisans Archive Module SAArch.dll, SAXFile.inf/SAXFileEE.inf
SoftArtisans FileManager Module  SAFilMgr.dll, SAXFile.inf/SAXFileEE.inf

If you intend to sign a CAB containing only one of the modules listed above, create a CAB containing the module's files, and remove from SAXFile.inf all references to dlls you are not including. For example, to sign a SoftArtisans Archive CAB:

  1. Create a CAB including SAArch.dll and SAXFile.inf.
  2. Remove from SAXFile.inf all references to SAXFile.dll, SAAXFile.dll, SAFilMgr.dll, and SAFmgPws.dll.

When creating a CAB for SoftArtisans Archive or SoftArtisans FileManager, remove from SAXFile.inf all references to SAXFShEx.dll, as well as references to SAXFile.dll and SAAXFile.dll.

If you are creating a CAB including SoftArtisans XFile (with or without SoftArtisans Archive and SoftArtisans FileManager), and want to prevent the display of the download confirmation box,

  1. Create a directory and extract SAXFile.cab/SAXFileEE.cab to the new directory.
  2. Find saxfile.dll/saxfileee.dll and saaxfile.dll/saaxfileee.dll in XFile's installation directory (usually, c:\program files\softartisans\SoftArtisans XFile).
  3. Copy the installation directory's saxfile.dll/saxfileee.dll and saaxfile.dll/saaxfileee.dll over the extracted saxfile.dll/saxfileee.dll and saaxfile.dll/saaxfileee.dll.
  4. Create a new CAB from the files in the extracted CAB directory.

To sign XFile you will need:

  1. A Code Signing Certificate
    To sign the applet, you must obtain a standard RSA certificate from a Certificate Authority such as Versign or Thawte.


  2. A Code Signing Tool
    To sign a .cab file for Internet Explorer with Microsoft VM, use Signcode.exe.


  3. XFile's Unsigned Dlls Files
    These are the individual dlls in XFile's installation directory (the same directory that contains SAXFile.cab/SAXFileEE.cab). The installation directory is usually C:\Program Files\Software Artisans\XFile.
CAB Signing Steps
  1. Obtain a standard RSA certificate from Verisign or Thawte.


  2. Obtain the code signing tool Signcode.exe.


  3. Locate XFile's unsigned dll files. These are the individual dlls in XFile's installation directory (the same directory that contains SAXFile.cab/SAXFileEE.cab). The installation directory is usually C:\Program Files\Software Artisans\XFile.


  4. Follow the instructions in How to Package Components for Internet Distribution .



Copyright © 2010 SoftArtisans, Inc. All rights reserved.