Unknown option: "-3" Unix manual page for sha. (host=minya system=Darwin)
sha(n)                                                                  sha(n)

______________________________________________________________________________

NAME
       sha - Message digest "sha"

SYNOPSIS
       package require Tcl ?8.2?

       package require Trf ?2.1.4?

       sha ?options...? ?data?

_________________________________________________________________

DESCRIPTION
       The command sha is one of several message digests provided by the pack-
       age trf. See trf-intro for an overview of the whole package.

       sha ?options...? ?data?
              The options listed below are understood by  the  digest  if  and
              only  if the digest is attached to a channel.  See section IMME-
              DIATE versus ATTACHED for an explanation of the term attached.

              -mode absorb|write|transparent
                     This option has to be  present.  The  specified  argument
                     determines  the behaviour of the digest in attached mode.

                     Beyond the argument values listed above all unique abbre-
                     viations  are  recognized too. Their meaning is explained
                     below:

                     absorb All data written to the channel is used to  calcu-
                            late  the  value  of  the  message digest and then
                            passed unchanged to the next level in the stack of
                            transformations  for  the  channel  the  digest is
                            attached to.  When the channel is closed the  com-
                            pleted  digest  is  written  out  too, essentially
                            attaching the  vlaue  of  the  diggest  after  the
                            information actually written to the channel.

                            When  reading  from  the  channel  a value for the
                            digest is computed too, and after closing  of  the
                            channel compared to the digest which was attached,
                            i.e. came behind  the  actual  data.   The  option
                            -matchflag  has to be specified so that the digest
                            knows where to store the result of  said  compari-
                            son.  This  result is a string and either "ok", or
                            "failed".

                     write  All data read from or written to the  channel  the
                            digest  is attached to is ignored and thrown away.
                            Only a value for the digest of the  data  is  com-
                            puted.   When  the  channel is closed the computed
                            values are stored as ordered through  the  options
                            -write-destination,   -write-type,  -read-destina-
                            tion, and -read-type.

                     transparent
                            This mode is a mixture of both  absorb  and  write
                            modes.  As  for  absorb all data, read or written,
                            passes through the digest unchanged. The generated
                            values  for  the digest however are handled in the
                            same way as for write.

              -matchflag varname
                     This option can be used if and only if the option  "-mode
                     absorb" is present. In that situation the argument is the
                     name of a global or namespaced variable. The digest  will
                     write the result of comparing two digest values into this
                     variable. The option will be ignored if  the  channel  is
                     write-only, because in that case there will be no compar-
                     ison of digest values.

              -write-type variable|channel
                     This option can be used for  digests  in  mode  write  or
                     transparent.  Beyond  the  values  listed above all their
                     unique abbreviations are also allowed as argument values.
                     The  option determines the type of the argument to option
                     -write-destination. It defaults to variable.

              -read-type variable|channel
                     Like option -write-type, but  for  option  -read-destina-
                     tion.

              -write-destination data
                     This  option  can  be  used  for digests in mode write or
                     transparent.  The value data is  either  the  name  of  a
                     global  (or  namespaced)  variable  or  the  handle  of a
                     writable  channel,  dependent  on  the  value  of  option
                     -write-type. The message digest computed for data written
                     to the attached channel is  written  into  it  after  the
                     attached  channel  was  closed.  The option is ignored if
                     the channel is read-only.

                     Note that using a variable may  yield  incorrect  results
                     under tcl 7.6, due to embedded \0's.

              -read-destination data
                     This  option  can  be  used  for digests in mode write or
                     transparent.  The value data is  either  the  name  of  a
                     global  (or  namespaced)  variable  or  the  handle  of a
                     writable channel, dependent on the value of option -read-
                     type.  The message digest computed for data read from the
                     attached channel is written into it  after  the  attached
                     channel was closed.  The option is ignored if the channel
                     is write-only.

                     Note that using a variable may  yield  incorrect  results
                     under tcl 7.6, due to embedded \0's.

       The  options listed below are always understood by the digest, attached
       versus immediate does not matter. See section IMMEDIATE versus ATTACHED
       for explanations of these two terms.

              -attach channel
                     The  presence/absence  of this option determines the main
                     operation mode of the transformation.

                     If present the transformation will be  stacked  onto  the
                     channel  whose  handle was given to the option and run in
                     attached mode. More about this in section IMMEDIATE ver-
                     sus ATTACHED.

                     If  the  option  is  absent the transformation is used in
                     immediate mode and the options listed  below  are  recog-
                     nized.  More  about  this  in  section  IMMEDIATE versus
                     ATTACHED.

              -in channel
                     This options is legal if and only if  the  transformation
                     is  used in immediate mode. It provides the handle of the
                     channel the data to transform has to be read from.

                     If the transformation  is  in  immediate  mode  and  this
                     option is absent the data to transform is expected as the
                     last argument to the transformation.

              -out channel
                     This options is legal if and only if  the  transformation
                     is  used in immediate mode. It provides the handle of the
                     channel the generated transformation  result  is  written
                     to.

                     If  the  transformation  is  in  immediate  mode and this
                     option is absent the generated data is  returned  as  the
                     result of the command itself.

IMMEDIATE VERSUS ATTACHED
       The  transformation  distinguishes  between  two main ways of using it.
       These are the immediate and attached operation modes.

       For the attached mode the option  -attach  is  used  to  associate  the
       transformation  with  an  existing channel. During the execution of the
       command no transformation is performed, instead the channel is  changed
       in  such  a  way, that from then on all data written to or read from it
       passes through the transformation and is modified by  it  according  to
       the  definition above.  This attachment can be revoked by executing the
       command unstack for the chosen channel. This is the only way to do this
       at the Tcl level.

       In  the  second  mode,  which  can be detected by the absence of option
       -attach, the transformation immediately takes data from either its com-
       mandline  or a channel, transforms it, and returns the result either as
       result of the command, or writes it into a channel.  The mode is  named
       after the immediate nature of its execution.

       Where  the  data  is  taken  from, and delivered to, is governed by the
       presence and absence of the options -in and -out.  It should  be  noted
       that this ability to immediately read from and/or write to a channel is
       an historic artifact which was introduced at  the  beginning  of  Trf's
       life when Tcl version 7.6 was current as this and earlier versions have
       trouble to deal with \0 characters embedded into either input  or  out-
       put.

SEE ALSO
       adler, crc, crc-zlib, haval, md2, md5, md5_otp, ripemd-128, ripemd-160,
       sha, sha1, sha1_otp, trf-intro

KEYWORDS
       authentication, hash, hashing, mac, message digest, sha

COPYRIGHT
       Copyright (c) 1996-2003, Andreas Kupries <andreas_kupries@users.sourceforge.net>

Trf transformer commands             2.1.4                              sha(n)