This is message-digest.egg.info, produced by makeinfo version 4.7 from
eggdoc-output.texi.

INFO-DIR-SECTION The Algorithmic Language Scheme
START-INFO-DIR-ENTRY
* message-digest.egg: (message-digest.egg).		Message Digest Support
END-INFO-DIR-ENTRY


File: message-digest.egg.info,  Node: Top,  Next: About this egg,  Up: (dir)

message-digest egg
******************

Message Digest Support

Written by Kon Lovett (mailto:klovett@pacbell.net)

   This manual corresponds to version 1.5 of the message-digest
extension library for Chicken Scheme.

* Menu:

* About this egg::
* Documentation::
* License::
* Index::


File: message-digest.egg.info,  Node: About this egg,  Next: Documentation,  Prev: Top,  Up: Top

1 About this egg
****************

* Menu:

* Version history::
* Usage::


File: message-digest.egg.info,  Node: Version history,  Next: Usage,  Up: About this egg

1.1 Version history
===================

`1.5'
     Exports

`1.4'
     Removed ->integer

`1.3'
     Added name field to primitive record

`1.2'
     Added Auxiallary Procedures

`1.1'
     Added un-managed context object support

`1.0'
     Initial release


File: message-digest.egg.info,  Node: Usage,  Prev: Version history,  Up: About this egg

1.2 Usage
=========

Load this egg like so:

   `(require-extension message-digest)'


File: message-digest.egg.info,  Node: Documentation,  Next: License,  Prev: About this egg,  Up: Top

2 Documentation
***************

Message Digest provides support for message digest primitives.  			A
message-digest is a function taking arbitrary-length input and
returning a fixed-length hash.

 -- procedure: make-binary-message-digest
          (make-binary-message-digest OBJECT CONTEXT-INFO DIGEST-LENGTH INIT UPDATE FINAL [CALLER])

     Returns the message-digest for `OBJECT' as a 					binary string.
     `CALLER' is the symbol for the calling 					context.

     Acceptable objects are string, input-port, byte-vector, or
     anything that can be converted into a byte-vector. Lists,
     vectors, and homogeneous-vectors can be converted. Lists and
     vectors must only be composed of characters, fixnums, or
     booleans. A boolean is converted as #f = 0 and #t = 1. An
     input-port is not closed, but is read to end-of-file.

     The arguments `CONTEXT-INFO DIGEST-LENGTH INIT UPDATE
     FINAL' are the components of a generic message-digest
     primitive. The return value of the phase procedures is
     ignored.

      -- procedure: INIT
               (INIT CONTEXT)

          Initialization phase procedure. Usually sets up the `CONTEXT'.

      -- procedure: UPDATE
               (UPDATE CONTEXT BYTES COUNT)

          Accumulation phase procedure. Must accumulate the `COUNT'
          `BYTES'. Will be called one or 							more times.

      -- procedure: FINAL
               (FINAL CONTEXT RESULT)

          Finalization phase procedure. Must build the resulting
          message-digest in the supplied `RESULT' 							string.

    `CONTEXT-INFO'
          When a fixnum, the size in bytes of the memory block
          to contain the state between the phases. When a
          procedure, it returns the context object.

    `DIGEST-LENGTH'
          The fixnum count of bytes in the result string.

     The optional `CALLER' should be the name of the calling procedure.

 -- procedure: make-message-digest
          (make-message-digest OBJECT CONTEXT-INFO DIGEST-LENGTH INIT UPDATE FINAL [CALLER])

     Exactly as above but returns the message-digest for `OBJECT' as a
     hexadecimal encoded string of length 2 * `DIGEST-LENGTH'.

 -- record: message-digest-primitive
          (message-digest-primitive context-info digest-length init update final name)

     The meaning of the fields are exactly as above. `name' is an
     optional string or symbol for identification.  					The usual generated
     record procedures are available, except 					'*-set!'. An
     immutable object.

 -- procedure: message-digest-primitive-apply
          (message-digest-primitive-apply MESSAGE-DIGEST-PRIMITIVE OBJECT [CALLER])

     Returns a binary-message-digest of `OBJECT' using
     `MESSAGE-DIGEST-PRIMITIVE'.

* Menu:

* Auxillary Procedures::


File: message-digest.egg.info,  Node: Auxillary Procedures,  Up: Documentation

2.1 Auxillary Procedures
========================

 -- procedure: string->substring-list/shared
          (string->substring-list/shared STRING CHUNK-SIZE [START [END]])

     Returns a list of `CHUNK-SIZE' substrings of `STRING', on the
     interval [`START' `END'). Defaults are [0 string-length). Any
     remaining 					substring less than chunk-size is appended to
     the list.

     The substrings share storage with the `STRING'!

 -- procedure: string->substring-list
          (string->substring-list STRING CHUNK-SIZE [START [END]])

     Returns a list of `CHUNK-SIZE' substrings of `STRING', on the
     interval [`START' `END'). Defaults are [0 string-length). Any
     remaining 					substring less than chunk-size is appended to
     the list.

 -- procedure: ->byte-vector
          (->byte-vector OBJECT)

     Converts the `OBJECT' into a byte-vector.

 -- procedure: string->hexadecimal
          (string->hexadecimal STRING [LENGTH])

     Returns the `STRING' as a hex-encoded string.  					When `LENGTH'
     missing string-length is used. The 					returned string is 2 *
     string-length.


File: message-digest.egg.info,  Node: License,  Next: Index,  Prev: Documentation,  Up: Top

3 License
*********


Copyright (c) 2006, Kon Lovett.  All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the Software),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED ASIS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.


File: message-digest.egg.info,  Node: Index,  Prev: License,  Up: Top

Index
*****

 [index ]
* Menu:

* ->byte-vector:                         Auxillary Procedures. (line 25)
* FINAL:                                 Documentation.        (line 40)
* INIT:                                  Documentation.        (line 29)
* make-binary-message-digest:            Documentation.        (line 11)
* make-message-digest:                   Documentation.        (line 56)
* message-digest-primitive:              Documentation.        (line 62)
* message-digest-primitive-apply:        Documentation.        (line 70)
* string->hexadecimal:                   Auxillary Procedures. (line 30)
* string->substring-list:                Auxillary Procedures. (line 17)
* string->substring-list/shared:         Auxillary Procedures. (line  7)
* UPDATE:                                Documentation.        (line 34)



Tag Table:
Node: Top250
Node: About this egg617
Node: Version history792
Node: Usage1144
Node: Documentation1322
Node: Auxillary Procedures4212
Node: License5412
Node: Index6603

End Tag Table
