This manual page is for Mac OS X version 10.6.3

If you are running a different version of Mac OS X, view the documentation locally:

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • For more information about the manual page format, see the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Reference Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.




rc4(n)                                        RC4 Stream Cipher                                       rc4(n)



____________________________________________________________________________________________________________

NAME
       rc4 - Impementation of the RC4 stream cipher

SYNOPSIS
       package require Tcl  8.2

       package require rc4  ?1.1.0?

       ::rc4::rc4  ?-hex?  -key  keyvalue  ?-command  lst? ?-out channel? [ -in channel | -infile filename |
       string ]

       ::rc4::RC4Init keydata

       ::rc4::RC4 Key data

       ::rc4::RC4Final Key

____________________________________________________________________________________________________________

DESCRIPTION
       This package is an implementation in Tcl of the RC4 stream cipher developed by Ron Rivest of RSA Data
       Security  Inc.  The  cipher was a trade secret of RSA but was reverse-engineered and published to the
       internet in 1994. It is used in a number of network protocols for securing communications.  To  evade
       trademark restrictions this cipher is sometimes known as ARCFOUR.

COMMANDS
       ::rc4::rc4  ?-hex?  -key  keyvalue  ?-command  lst? ?-out channel? [ -in channel | -infile filename |
       string ]
              Perform the RC4 algorithm on either the data provided by the argument or on the data read from
              the -in channel. If an -out channel is given then the result will be written to this  channel.
              Giving the -hex option will return a hexadecimal encoded version of the result if not using an
              -out channel.

              The data to be processes can be specified either as a string argument to the rc4  command,  or
              as  a  filename  or  a  pre-opened  channel. If the -infile argument is given then the file is
              opened, the data read and processed and the file is closed. If the -in argument is given  then
              data  is  read  from the channel until the end of file. The channel is not closed. If the -out
              argument is given then the processing result is written to this channel.

              If -command is provided then the rc4 command does not return  anything.  Instead  the  command
              provided is called with the rc4 result data appended as the final parameter. This is most use-ful useful
              ful when reading from Tcl channels as a fileevent is setup on the channel and  the  data  pro-cessed processed
              cessed in chunks

              Only one of -infile, -in or string should be given.


PROGRAMMING INTERFACE
       ::rc4::RC4Init keydata
              Initialize  a  new RC4 key. The keydata is any amount of binary data and is used to initialize
              the cipher internal state.

       ::rc4::RC4 Key data
              Encrypt or decrypt the input data using the key obtained by calling RC4Init.

       ::rc4::RC4Final Key
              This should be called to clean up resources associated with Key. Once this function  has  been
              called the key is destroyed.


EXAMPLES
       % set keydata [binary format H* 0123456789abcdef]
       % rc4::rc4 -hex -key $keydata HelloWorld
       3cf1ae8b7f1c670b612f
       % rc4::rc4 -hex -key $keydata [binary format H* 3cf1ae8b7f1c670b612f]
       HelloWorld


        set Key [rc4::RC4Init "key data"]
        append ciphertext [rc4::RC4 $Key $plaintext]
        append ciphertext [rc4::RC4 $Key $additional_plaintext]
        rc4::RC4Final $Key


        proc ::Finish {myState data} {
            DoStuffWith $myState $data
        }
        rc4::rc4 -in $socket -command [list ::Finish $ApplicationState]


AUTHORS
       Pat Thoyts

BUGS, IDEAS, FEEDBACK
       This  document,  and  the  package  it  describes,  will undoubtedly contain bugs and other problems.
       Please  report  such  in   the   category   rc4   of   the   Tcllib   SF   Trackers   [http://source-
       forge.net/tracker/?group_id=12883].   Please  also report any ideas for enhancements you may have for
       either package and/or documentation.

SEE ALSO
       aes(n), blowfish(n), des(n)

KEYWORDS
       arcfour,, data integrity, encryption, rc4, security, stream cipher

COPYRIGHT
       Copyright (c) 2003, Pat Thoyts <patthoyts@users.sourceforge.net>




rc4                                                 1.1.0                                             rc4(n)

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation with the feedback links below.
Bug reports
Report bugs in the functionality of the described tool or API through Bug Reporter.
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.

Did this document help you? Yes It's good, but... Not helpful...