



<!-- Generated from file 'trf.man' by tcllib/doctools with format 'tmml' -->
<manpage id='trf' cat='cmd' title='trf-intro' version='2.1.3' package=''>
<head>
<info key='copyright' value='Copyright (c) 1996-2003, Andreas Kupries &lt;andreas_kupries@users.sourceforge.net&gt;'/>
</head>
<namesection>
<name>trf-intro</name>
<desc>Introduction to Trf</desc>

</namesection>








<synopsis>
<syntax>
package require <package>Tcl</package> <o>8.2</o>
package require <package>Trf</package> <o>2.1.3</o>
</syntax>
</synopsis>
<section id='section1'>
<title>DESCRIPTION</title>

The package <package>Trf</package> provides a number of commands which take
data and transform them in various ways.

</section>
<section id='section2'>
<title>BACKGROUND</title>

The implementation of Trf began as proof-of-concept of the validity
and usefulness of the "stacked channel" patches to the core. These
patches allow the writing of extensions to the generic I/O system of
the core which are able to intercept all read/write operations on
designated channels, thus giving it the ability to transform the data
flowing through these channels as desired.


<p>

This allows things like transparent encryption, compression, charset
recoding, etc.

</p>
<p>

Since version 8.2 of the tcl core the aforementioned patches are part
of the tcl core itself, changing the status of <package>trf</package> from
"extension requiring core patches" to "normal extension".

</p>
<p>

Other packages built upon either the stackd channels directly, or Trf
are:

</p>
<ol>

<li>
<package>TrfCrypt</package>, by myself, contains various encryption systems 
</li>
<li>
<package>TLS</package>, an SSL/TLS implementation by Matt Newman. 
</li>
<li>
<package>Tcl MIME</package> by Marshall Rose. 
</li>

</ol>


</section>
<section id='section3'>
<title>API</title>

The commands provide by <package>trf</package> can be placed into the three
categories listed below. Note that all commands are added to the
global namespace.


<dl>


<dle>
<dt><term>Encodings</term></dt>
<dd>

The encoding commands either take some data and return the same data
in encoded form, or take encoded data and return a decoded result.


<ol>

<li>
<cmd>oct</cmd>
</li>
<li>
<cmd>hex</cmd>
</li>
<li>
<cmd>oct</cmd>
</li>
<li>
<cmd>base64</cmd>
</li>
<li>
<cmd>uuencode</cmd>
</li>
<li>
<cmd>ascii85</cmd>
</li>
<li>
<cmd>otp_words</cmd>
</li>
<li>
<cmd>quoted-printable</cmd>
</li>

</ol>
<br/>

</dd>
</dle>
<dle>
<dt><term>Message Digests</term></dt>
<dd>

The second category are message digests in general, simple ones like
<cmd>crc</cmd>, and cryptographically strong algorithms like <cmd>md5</cmd>.


<ol>

<li>
<cmd>crc-zlib</cmd>
</li>
<li>
<cmd>crc</cmd>
</li>
<li>
<cmd>adler</cmd>
</li>
<li>
<cmd>md2</cmd>
</li>
<li>
<cmd>md5</cmd>
</li>
<li>
<cmd>md5_otp</cmd>
</li>
<li>
<cmd>sha</cmd>
</li>
<li>
<cmd>sha1</cmd>
</li>
<li>
<cmd>sha1_otp</cmd>
</li>
<li>
<cmd>haval</cmd>
</li>
<li>
<cmd>ripemd-160</cmd>
</li>
<li>
<cmd>ripemd-128</cmd>
</li>

</ol>
<br/>

</dd>
</dle>
<dle>
<dt>Miscellaneous</dt>
<dd>

At last a number of commands not readily placed into categories
providing password crypting, general transformations, data
compression, error correction and others.


<ol>

<li>
<cmd>crypt</cmd>
</li>
<li>
<cmd>md5crypt</cmd>
</li>
<li>
<cmd>transform</cmd>
</li>
<li>
<cmd>rs_ecc</cmd>
</li>
<li>
<cmd>zip</cmd>
</li>
<li>
<cmd>bz2</cmd>
</li>
<li>
<cmd>unstack</cmd>
</li>

</ol>

</dd>
</dle>

</dl>



</section>
<seealso>
<ref>oct</ref>
<ref>hex</ref>
<ref>oct</ref>
<ref>base64</ref>
<ref>uuencode</ref>
<ref>ascii85</ref>
<ref>otp_words</ref>
<ref>quoted-printable</ref>
<ref>crc-zlib</ref>
<ref>crc</ref>
<ref>adler</ref>
<ref>md2</ref>
<ref>md5</ref>
<ref>md5_otp</ref>
<ref>sha</ref>
<ref>sha1</ref>
<ref>sha1_otp</ref>
<ref>haval</ref>
<ref>ripemd-160</ref>
<ref>ripemd-128</ref>
<ref>crypt</ref>
<ref>md5crypt</ref>
<ref>transform</ref>
<ref>rs_ecc</ref>
<ref>zip</ref>
<ref>bz2</ref>
</seealso>
<keywords>
<keyword>transformation</keyword>
<keyword>encoding</keyword>
<keyword>message digest</keyword>
<keyword>compression</keyword>
<keyword>error correction</keyword>
</keywords>

</manpage>



