# JavaScrypt: Source Distribution

## Downloading and Installing

The JavaScrypt source distribution contains everything you need to install JavaScrypt on your own computer. To install a local copy of JavaScrypt which you can use even when not connected to the Web, start by downloading the source distribution archive.

> #### Download JavaScrypt Source Distribution (`javascrypt.zip`)

This is a Zipped archive; copy it into the newly created directory (folder) where you wish to install JavaScrypt, then extract the contents with an unzip utility. Once the files are extracted you may then, if you wish, delete the archive.

## Running Your Local Copy of JavaScrypt

JavaScrypt works precisely the same whether installed on your local computer or accessed over the Web. The only difference is that you use a "`file:`" URL to direct your browser to the local directory containing JavaScrypt rather than an "`http:`" URL pointing to a Web site. If you use a Unix (Linux, etc.) machine, and you've installed JavaScrypt in a directory named, say, "`/home/boris/utils/JavaScrypt`", you'd launch the JavaScrypt home page with the URL:

> `file:/home/boris/utils/JavaScrypt/index.html`

A Windows user who had installed JavaScrypt in a directory named "`C:\natasha\myprogs\JavaScrypt`" would use a URL of:

> `file:/C:/natasha/myprogs/JavaScrypt/index.html`

Note that when using a "`file:`" URL you must specify the `index.html` home page file name: if omitted, you'll see a directory listing, not the home page an "`http:`" URL would default to.

From the home page, you can navigate to the other pages just as if you were connected to the Web. You may wish to add bookmarks to the local "`file:`" URL so you don't have to type it in every time you wish to run JavaScrypt.

## Contents of the Source Distribution

Files included in the source distribution are as follows. Files with names in grey type are development tools, test programs, documentation, and other ancillaries which are not part of the user JavaScrypt package.

`aes.js`
  Advanced Encryption Standard (AES) implementation.
`aesprng.js`
  Pseudorandom number generator based on AES encryption.
`aesprng_test.html`
  Page which permits testing `aesprng.js` by generating pseudorandom sequences suitable for evaluation with the XD and ENT programs.
`armour.js`
  Utilities to "armour" binary data as various forms of ASCII text, and to "disarm" (decode) such text into the original binary.
`distribution.html`
  This file.
`entropy.js`
  Tools for "entropy collection", which monitor events (time and date, mouse motion, key presses) etc. to create a difficult-to-guess seed for pseudorandom sequence generation.
`example.html`
  JavaScrypt tutorial.
`index.html`
  JavaScrypt home page.
`javascrypt.html`
  Encryption/Decryption page.
`jscrypt.html`
  "Lean" version of the Encryption/Decryption page. This version is created from `javascrypt.html` by embedding all the external JavaScript files it references, removing explanatory text, and compressing the JavaScript code by eliding comments and nonessential white space.
`jscrypt.js`
  JavaScript functions used by the Encryption/Decryption page.
`lecuyer.js`
  Pseudorandom number generator based on L'Ecuyer's modular algorithm with a Bays-Durham shuffle. Used for non-security-related pseudorandom sequence generation.
`log.html`
  Development log.
`md5.js`
  JavaScript implementation of the MD5 message digest algorithm.
`pass_phrase.html`
  Pass Phrase Generator page.
`stegodict.js`
  Dictionary for Steganography page (`stego.html`). The dictionary is compressed by sorting words by length and concatenating into strings of equal length with no delimiters between words.
`stego.html`
  Steganography page.
`utf-8.js`
  Utilities for encoding and decoding Unicode strings in the UTF-8 byte stream representation.
`wordtab.js`
  Dictionary of words used by the Pass Phrase Generator (`pass_phrase.html`). The dictionary is compressed by sorting words by length and concatenating into strings of equal length with no delimiters between words. The dictionary differs from that in `stegodict.js` in excluding words longer than 8 characters.

### Back to JavaScrypt

This document is in the public domain.