File: rc4.man

package info (click to toggle)
tcllib 1.8-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 13,628 kB
  • ctags: 4,897
  • sloc: tcl: 88,012; sh: 7,856; ansic: 4,174; xml: 1,765; yacc: 753; perl: 84; f90: 84; makefile: 60; python: 33; ruby: 13; php: 11
file content (95 lines) | stat: -rw-r--r-- 2,941 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
[comment {-*- tcl -*- doctools manpage}]
[manpage_begin rc4 n 1.0.1]
[copyright {2003, Pat Thoyts <patthoyts@users.sourceforge.net>}]
[moddesc   {RC4 Stream Cipher}]
[titledesc {Impementation of the RC4 stream cipher}]
[require Tcl 8.2]
[require rc4 [opt 1.0.1]]
[description]
[para]

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.

[section {COMMANDS}]

[list_begin definitions]

[call [cmd "::rc4::rc4"] \
        [opt "[arg -hex]"] \
        [arg "-key keyvalue" ] \
        [opt [arg "-out channel"]] \
        [lb] [arg "-in channel"] | \
        [arg "-infile filename"] | [arg "string"] [rb]]

Perform the RC4 algorithm on either the data provided by the argument
or on the data read from the [arg "-in"] channel. If an [arg "-out"]
channel is given then the result will be written to this channel.
Giving the [arg "-hex"] option will return a hexadecimal encoded
version of the result if not using an [arg -out] channel.

[nl]

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 
[arg "-infile"] argument is given then the file is opened, the data read
and processed and the file is closed. If the [arg "-in"] argument is
given then data is read from the channel until the end of file. The
channel is not closed. If the [arg "-out"] argument is given then the
processing result is written to this channel.

[nl]

Only one of [arg "-infile"], [arg "-in"] or [arg "string"] should be given.

[list_end]

[section "PROGRAMMING INTERFACE"]

[list_begin definitions]

[call [cmd "::rc4::RC4Init"] [arg "keydata"]]

Initialize a new RC4 key. The [arg keydata] is any amount of binary
data and is used to initialize the cipher internal state. 

[call [cmd "::rc4::RC4"] [arg "Key"] [arg "data"]]

Encrypt or decrypt the input data using the key obtained by calling
[cmd RC4Init].

[call [cmd "::rc4::RC4Final"] [arg "Key"]]

This should be called to clean up resources associated with 
[arg Key]. Once this function has been called the key is destroyed.

[list_end]

[section "EXAMPLES"]

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

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

[see_also des(n) aes(n) blowfish(n)]

[section "AUTHORS"]
Pat Thoyts

[keywords rc4 arcfour, {stream cipher} security encryption {data integrity}]
[manpage_end]