JavaScript Cryptography Toolkit

                                                           Titaniumcore Project
================================================================================
Atsushi Oka [ http://oka.nu/ ]                                       Jan 10,2009


This library is an object oriented cryptography toolkit that implements several
fundamental cryptographic algorithms including TWOFISH, SERPENT, RIJNDAEL, RSA
with key-generation and SHA(SHA-1,224,256,384,512) for JavaScript. This library
works in ActionScript as well. The unique feature of this library is
asynchronous processing. A heavyweight process such as 4096bit RSA key
generation will be done asynchronously so that this library does not cause
problems such as freezing browsers, "slow-downing" warning dialogs, etc.


Demonstration

    Block-Cipher Demonstration
        Cipher.sample.html

    RSA Key-Generation and Encryption/Decryption
        RSA.sample1.html
        RSA.sample2.html

    SHA Digest Calculation Demonstration
        SHA.sample.html


Contents

    Cipher.js
        Contains Cipher class which implements some block-cipher algorithms.
        See Cipher.readme.txt

    RSA.init1.js
    RSA.init2.js
    RSA.init3.js
    RSA.init4.js
        Contains RSA class which implements RSA encryption,decryption and
        key-generation with asynchronous processing feature.
        See RSA.readme.txt

    BigInteger.init1.js
    BigInteger.init2.js
    BigInteger.init3.js
        Contains BigInteger class which implements calculation of variable
        length integer.
        See BigInteger.readme.txt

    SecureRandom.js
        Contains SecureRandom class which implements Arcfour pseudo random
        generator.
        See SecureRandom.readme.txt

    BitPadding.js
        Contains a class that implements "bit-padding" padding-scheme.
        See BitPadding.readme.txt

    SOAEP.js
        Contains a class that implements a padding-scheme SOAEP. SOAEP is an
        original scheme that I have designed for Titaniumcore project.
        See SOAEP.readme.txt

    RSAKeyFormat.js
        Contains some methods that convert RSA key and a binary string.
        See RSAKeyFormat.readme.txt

    RSAMessageFormat.js
        Defining facade methods for RSA encryption/decryption.
        See RSAMessageFormat.readme.txt

    SHA.js
        Contains SHA class that calculates various SHA hash value.

        See SHA.readme.txt

    jsSHA.js
    jsSHA.class.js
        Contains the core methods for SHA calculation.
        See jsSHA.readme.txt 

        SPECIAL THANKS to Brian Turek [ http://sourceforge.net/users/caligatio ]

Notice
    - Dependency
      Most of above scripts depend on "tools" scripts and "nonstructured.js".

        - "tools" scripts
          "tools" is a set of utility scripts.  See readme.txt.

        - nonstructured.js
          "nonstructured.js" is a framework for asynchronous execution.
          See nonstructured.readme.txt 


    - Data Conversion 
    
      This library does not support utf-8 conversion nor base64
      conversion directly. Most of functions in this library only take byte
      arrays as their parameters and their result is as a byte array object.
      This library does not implement conversions.  This is intended to keep
      higher reusability. 
    
      When data conversion between utf-8 or base64 to binary data is
      necessary, use binary.js" or another conversion library.
      binary.js is included in "tools" directory.

      See binary.readme.txt for further information.


Acknowledgment
================================================================================

    The core algorithm of Cipher.js is originally written by
    Michiel van Everdingen.

        The original form can be referred at 
            http://home.versatel.nl/MAvanEverdingen/Code/code.html

        Contact of the Author
            Michiel van Everdingen
            http://home.versatel.nl/MAvanEverdingen/index.html

        See Cipher.readme.txt


    ---

    Following files were originally written by Tom Wu :

        SecureRandom.js
        BigInteger.init1.js
        BigInteger.init2.js
        BigInteger.init3.js
        RSA.init1.js
        RSA.init2.js
        RSA.init3.js

        Copyright (c) 2005  Tom Wu
        All Rights Reserved.
        http://www-cs-students.stanford.edu/~tjw/jsbn/

        See "LICENSE" for details.
        http://www-cs-students.stanford.edu/~tjw/jsbn/LICENSE

        See RSA.readme.txt

    ---

    jsSHA.js is written by Brian Turek [ http://sourceforge.net/users/caligatio ].

        > A JavaScript implementation of the SHA family of hashes, 
        > as defined in FIPS PUB 180-2
        > Version 1.1 Copyright Brian Turek 2008
        > Distributed under the BSD License
        > See http://jssha.sourceforge.net/ for more information
        >
        > Several functions taken from Paul Johnson

        See jsSHA.readme.txt



================================================================================
This library is distributed under LGPL.

// vim:expandtab: