Introduction

DEScoder - Freeware Lisp encryption utility for BricsCAD

This software provides strong BlowFish encryption for AutoLISP files - these encrypted AutoLISP files can only be used and loaded by BricsCAD system.

DEScoder is mainly designed to support AutoLISP application developers, providing a maximum comfort for the development cycle, and to protect the application code.

Main functional features

  • single file mode to encrypt specified file using BlowFish algorithm
  • project mode to create encrypted "container" file, wrapping multiple AutoLISP, DCL and Text files into a single encrypted file
    (similar to AutoCAD VLX application files)
  • VLX compatible *.prv and *.prj project files - this allows to use the project file for BricsCAD and AutoCAD, to create *.vlx application file for AutoCAD, and *.des application file for BricsCAD, based on the same, identical project definition
  • Lisp and DCL compression to reduce file size, providing faster application load

Main convenience features

  • drag & drop support for all relevant dialog controls
  • command line support for batch processing
  • wildcard support for file specification in command line mode
  • program dialog is resizable and persistent (size and positions are maintained across sessions)
  • singe file history for last-used 30 Lisp source files for quick access to most often used Lisp files
  • project history for last-used 30 projects for quick access to most often used projects
  • automatically reload last-used project at startup, to quickly rebuild that last-used project with a single click
  • tooltips provide assistance for beginners, can be disabled

For a detailed description please refer to chapter Using DEScoder .

Copyright © 2003 - 2014, TM-CAD Engineering Torsten Moses


License

Introduction ››

DEScoder - License Agreement

By using, copying or distributing DEScoder and its documentation (the application code and documentation are collectively referred to as „the software"), you indicate your acceptance of the following license terms :

1. Usage

Except where otherwise noted, all of the documentation and software included in the DEScoder package is copyrighted by TM-CAD Engineering.

TM-CAD Engineering grants you (the licensee) the permission to use the software without any cost, for both commercial and non-commercial purposes on any computer in your possession. You are also allowed to make copies and distribute the software according to requirements of section 2 below.

2. Distribution

As used in this License Agreement, the term "distribute" (and its variants) includes making the Software available (either by intention or unintentionally) to third parties for copying or use. For any distributed copy of this software, you may not impose any further restrictions on the recipients' exercise of the rights granted herein.

You may distribute the software under the following conditions :

  • You may not modify the binary executable files, especially you may not modify any copyright statement inside or related to the software.
  • You may not distribute the software for a fee (by payment of money or otherwise, whether direct or indirect). In particular (but not limited to), you may not charge for the software to recover media costs associated with its distribution, you may not charge for a product or compilation the software is a part of, you may not provide a paid download of the software and you may not require a registration of some kind (for example, on your website) for downloading the software.
  • You must include this Licence Agreement in original form on all copies of the software distributed.
  • You must not distribute the software in a manner, which provides the impression that this software is not Freeware, but involves fees for its usage.

As an exception to the condition above,

  • You may personally install this software as part of a free or paid commercial service.
  • You may distribute this software along with computer hardware.

3. Warranties and Disclaimer

The software and any support from TM-CAD Engineering are provided "AS IS" and without any warranty, express or implied.

TM-CAD Engineering specifically disclaim any implied warranties of merchantability and correctness for a particular purpose. In no case TM-CAD Engineering will be liable for any damages, including and not limited to any lost profits, lost savings or any incidental or consequential damages, whether resulting from impaired or lost data, software or computer failure or any other cause, or for any other claim by the user or for any third party claim.

4. Limit of Liability

Subject to any liability which may not be excluded or limited by law the licensor shall not be liable and hereby expressly excludes all liability for loss or damage howsoever and whenever caused to you.

5. Termination

The rights granted to you under this licence shall terminate automatically upon any breach by the licensee of the terms of this Licence Agreement. Individuals or entities who have received the software from you under this licence, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses.


Installation

Introduction ››

DEScoder is provided as a simple ZIP archive - original download is available from our website www.LT-Extender.com .

Installing from ZIP archive

To install using the ZIP archive, please follow these simple steps :

    • unzip as a separate folder, to any suitable location as preferred
    • if necessary, create a shortcut on your desktop (use drag & drop with DEScoder.exe, using right mouse button, and select "Create Shortcut" from context menu)

»»» this is all - nothing more to be done.

Remarks :

DEScoder only consists of a single executable, and does not need any special preparations at all - the software directly runs from any location. There is no technical problem or conflict to have multiple instances of DEScoder.exe file.


Using DEScoder

DEScoder provides both dialog and command line interface to provide a maximum flexibility for developers.

Please refer to Command Line switches for all details how to run DEScoder in batch mode.

DEScoder dialog provides 2 main operational modes - the Single File mode offers to encrypt a specified Lisp file;
the Project Mode allows to create and manage AutoCAD VLX compatible projects, to compile a single application file ("container" file).

User Interface

DEScoder dialog is resizable, and will always start with last size and position.
Additionally, all relevant dialog input fields support Drag & Drop.

Tooltips

The dialog shows tooltips to display hints regarding the dialog elements - here, we use an extended tooltip window, which is able to show a normal and (alternatively) a long tooltip text.

The tooltip window opens with the normal hint text - if there is an extended hint available, a small black triangle is shown at the right edge.

You can move the mouse pointer into the tooltip window - it will show the extended hint text, if available; moving the mouse pointer outside the tooltip window will switch back to the normal hint text.

The number of tooltips using this extended hint text will be increased by continued development.

Documentation

We provide this documentation in 3 formats :

  1. as compiled HTMLHelp file (*.chm)
  2. as standard HTML web page (*.htm)
  3. as PDF file (*.pdf)

Remarks regarding CHM help access in Windows 7

Unfortunately, Windows 7 does no longer install the HTMLHelp runtime system (to display CHM files) by default.
In this case, or whenever you encounter a problem to display CHM help file, you can download and install the latest version of HTMLHelp from Microsoft using these download links :

HTMLHelp download #1

HTMLHelp download #2

After download, please run the installer.


Single File Mode

Using DEScoder ››

Single File Mode encrypts a single AutoLISP file into same.named *.des file.
This encrypted Lisp file can only be loaded and used in Bricscad, it can not be loaded with AutoCAD !

Code Compression

for troubleshooting; if disabled, Lisp and DCL source file(s) are not compressed.

Keep intermediate Files

for troubleshooting; if enabled, all intermediate files are not deleted automatically.

ToolTips

if enabled, tooltips will be shown for dialog controls, to provide hints and explanations

all settings are persistent, and will be be used for next start as default

Source

specify the Lisp file to be encrypted - use the file dialog button [image] , or drag the source file into the edit field (Drag & Drop);
the source file can have any file extension, *.lsp is not required.

Target

the name of encrypted target file is automatically determined by DEScoder - it uses the name of the source file, using *.des filename extension; if necessary, the encrypted file can be renamed later.

Encrypt

creates the encrypted target file - there is NO warning, if the file already exists, it is overwritten with the new file


Project Mode

Using DEScoder ››

In Project Mode, a single encrypted "container" file will be created from multiple Lisp, DCL and Text files.
This encrypted *.des "container" file can only be loaded and used in Bricscad, it can not be loaded with AutoCAD !

The dialog allows to create, manage and use *.prv project files, compatible with AutoCAD VLX project files - providing the comfort to use a single *.prv project file to create encrypted "container" files for both Bricscad (*.des) and for AutoCAD (*.vlx).

Code Compression

for troubleshooting; if disabled, Lisp and DCL source file(s) are not compressed.

Keep intermediate Files

for troubleshooting; if enabled, all intermediate files are not deleted automatically.

ToolTips

if enabled, tooltips will be shown for dialog controls, to provide hints and explanations

all settings are persistent, and will be be used for next start as default

Project

specifies the actual "container" project to be compiled - use the file dialog button [image] , or drag an existing project file into the edit field (Drag & Drop) to open an existing project;
the project file must have file extension *.prv !
To create a new project, you can either edit the existing project filename, or use [image] button to specify the location and name (this creates a copy of existing file).
The popup box also contains the last used projects files (up to 30) - so you can easily access former projects.
At start, the last used project is automatically selected and preset, to allow quick turnaround cycles.

embedded FAS

if the VLX / DES project file (.prv) contains an embedded FAS project file (.prj), then the name is specified here; saving the VLX / DES project file automatically uses the embedded .prj FAS project to save the Lisp file names there;
optionally you can also clear that embedded .prv file using the [image] button - in this case, the names of the Lisp source files are directly stored in VLX / DES project file, without using an embedded .prv FAS project definition;
Note : AutoCAD can still use such VLX / DES project file to generate a VLX container file, the embedded .prj FAS project is optionally only.

Target

the name of encrypted target file is automatically determined by DEScoder - it uses the name of the source file, using *.des filename extension; if necessary, you can specify another filename using the [image] button.

Compile

creates the encrypted target file - there is NO warning, if the file already exists, it is overwritten with the new file

Lisp Files to be included in target "container" file

Add File [image] use the file selection dialog, or drag an existing Lisp file into the list; the Lisp files can have any file extension, *.lsp is not required.

Remove File [image] removes the highlighted file from the project and "container";

Move Up [image] moves the highlighted file up for 1 position

Move Down [image] moves the highlighted file down for 1 position

Remarks :

All source Lisp files will be merged into a single Lisp file, using the displayed order, and then included in target *.des "container" file - as result, the Lisp code from the files is loaded in exactly that sequence. Therefore, that order can effect the Lisp code in its functionality !

Resource Files to be included in target "container" file

Add File [image] use the file selection dialog, or drag an existing DCL/Text file into the list; the DCL files must have *.dcl file extension, Text files can have any file extension.

Remove File [image] removes the highlighted file from the project and "container";


Command Line switches

To offer maximum comfort and flexibility to developers, DEScoder provides a complete command line interface.
Thus, all main operations can be run using command line parameters. Both single file encryption and project compilation are available.

In generally, all switches can be specified using - or / indicators, switches are not case-sensitive, and there should be no extra space around the - and / indicators.

Common switches

-keep or /keep

this option forces to keep "intermediate" files after encryption;
during encryption, a number of internal files are created for several compression and encryption stages - normally, these files are deleted automatically;
for troubleshooting, if the encrypted Lisp does not work properly, but the original Lisp file does, those "intermediate" files can be kept for analysis;
normally, Lisp developers will not need to use this option

-nocompress or /nocompress

this option disables "Lisp Code Compression", which is by default active;
before encryption, the Lisp and DCL source file(s) are compressed to remove all unnecessary white-space characters and linefeeds;
for troubleshooting, if the compressed and encrypted Lisp / DCL does not work properly, but the original Lisp / DCL file does, this option can be used to disable compression, to ensure that the final Lisp / DCL code still works;
if such cases are encountered, please send us a sample file as feedback (as this indicates a program error) !

Single File mode

there is no particular command line switch necessary !

any filename provided as command line argument is interpreted as Lisp source file by default; except for filenames using .prv;
filenames using .prv extensions are treated as project definition files;
=> if filename is an existing project filename, the project is compiled, creating target filename as defined by the project;
=> if filename is an existing Lisp file, the Lisp file is encrypted, creating .des filename in same folder as source file.

Wildcards are supported for Single File mode !

you can specify wildcards in usual way to encrypt a set of Lisp source files;

Project mode

-project or /project

this option instructs DEScoder to treat the provided filename as the name of a project definition, regardless of the filename extension;
this option is only necessary, if the project filename is given without .prv extension, or when using an extension other than .prv;

Examples

Single file mode

DEScoder.exe d:\Lisp\Dictionary.lsp

creates encrypted Lisp file d:\Lisp\Dictionary.des

DEScoder.exe d:\Lisp\Dictionary.src

creates encrypted Lisp file d:\Lisp\Dictionary.des

DEScoder.exe d:\Lisp\Dict*.lsp

creates encrypted Lisp files *.des for all Lisp source files matching d:\Lisp\Dict*.lsp pattern

DEScoder.exe -keep d:\Lisp\Dictionary.lsp

creates encrypted Lisp file d:\Lisp\Dictionary.des and keeps intermediate files in same folder d:\Lisp\

Project mode

DEScoder.exe d:\Lisp\Dictionary.prv

compiles the project d:\Lisp\Dictionary.prv and creates the encrypted target file as specified in project

DEScoder.exe /keep d:\Lisp\Dictionary.prv

compiles the project d:\Lisp\Dictionary.prv, creates the encrypted target file as specified in project and keeps intermediate files

DEScoder.exe /project d:\Lisp\Dictionary

compiles the project d:\Lisp\Dictionary.prv and creates the encrypted target file as specified in project;
as .prv filename extension is not specified, the /project option is necessary


Technical Details

Encrypted Lisp Compatibility

Encrypted Lisp files, as well as encrypted "container" files are both upward and downward compatible.
In opposite to AutoCAD's VLX "container" files, DEScoder also encrypts embedded DCL and Text resources.

The following table shows the relations between DEScoder versions and Bricscad versions :

 | Bricscad V8, V9, V10 | Bricscad V11 (and higher)
DEScoder before V2.0 - encrypted Lisp files | Yes | Yes
DEScoder V2.0 and higher - encrypted Lisp files (no DCL, no Text) - encrypted Lisp "container" (incl. DCL, Text) | Yes Yes (ignores embedded resources) | Yes Yes

All DCL and Text resources are included into the encrypted "container" file as a special kind of Lisp comment - in result, all Lisp engines of Bricscad V8, V9 and V10 can load such encrypted "container" files, but will simply ignore embedded DCL and Text resources.

New Bricscad V11 version does recognize and use embedded DCL and Text resources.

Encrypted "container" files without included DCL and Text files are not different to normal encrypted files at all - so any Bricscad Lisp engine will completely load and use the files.

Windows Registry

DEScoder stores dialog related settings and MRU file list under :

HKEY_CURRENT_USER\Software\TM-CAD Engineering\DEScoder

If necessary, this main Registry entry can be removed without any risk.


Tips & Tricks

Some tips around Lisp files

If developers would like to provide one installation for both AutoCAD and Bricscad, encrypted Lisp files should use standard *.des filename extension - this ensures, that AutoCAD will load the normal *.fas/*.vlx files, and Bricscad will load *.des files.

For this scenario, developers should always use the (load "name") function syntax, excluding the filename extension - Bricscad uses the following searching order :

1. <filename>.des

2. <filename>.lsp

3. <filename>.prt (for protected lisp files, generated by Protect.exe)

4. <filename>.klv (Kelvinated lisp files)

This searching order ensures that encrypted Lisp files *.des are primarily used under Bricscad (if present) - thus, preventing conflicts with existing fas/vlx files (if also present). With this design we hope to offer most compatible Lisp loading technology together with smallest impact to Lisp developers.


Feedback

Send us Feedback !

For any problem you encounter, or for any idea, wish or hint, please send us an email to

feedback@LT-Extender.com

or

torsten.moses@bricsys.com

We will do our best to fix all problems, and to integrate customer ideas and wishes - many thanks in advance.