sha1

  1. sha1
  2. Documentation
    1. SHA1 API
      1. Usage
      2. Constants
      3. init
      4. update
      5. raw-update
      6. final
    2. SHA1 Primitive
      1. Usage
      2. sha1-primitive
  3. Usage
  4. Example
  5. Notes
  6. Requirements
  7. Author
  8. Repository
  9. Version history
  10. License

Documentation

Computes SHA1 (FIPS-180-1) checksums

See message-digest-primitive for more information.

SHA1 API

Component export

Usage

(use sha1-api)

Constants

name
algorithm name ; symbol
version
algorithm version ; string
context-size
context byte length ; fixnum
digest-length
final byte length ; fixnum
block-length
buffer byte length ; fixnum

Note that block-length is informational only.

init

[procedure] (init CTX)

Initializes a SHA1 CTX, with at least context-size byte size.

update

[procedure] (update CTX OBJ LEN)

Accumulate LEN bytes from the Scheme OBJ into CTX.

raw-update

[procedure] (raw-update CTX PTR LEN)

Accumulate LEN bytes from the byte PTR into CTX.

final

[procedure] (final CTX OBJ)

Finalize the CTX into a Scheme OBJ with at least digest-length byte size. The target is usually a blob, u8vector, or string.

SHA1 Primitive

Packaged export

Usage

(use sha1-primitive)

sha1-primitive

[procedure] (sha1-primitive) -> message-digest-primitive

Returns the SHA1 checksum digest primitive object.

Usage

(import sha1)

Example

(import sha1-primitive message-digest-byte-vector)

(message-digest-string (sha1-primitive) "abc")
;=> "a9993e364706816aba3e25717850c26c9cd0d89d"

Notes

Requirements

message-digest-primitive

Author

Steve Reid, packaged for Chicken by Peter Bex, C5 by kon lovett

Repository

This egg is hosted on the CHICKEN Subversion repository:

https://anonymous@code.call-cc.org/svn/chicken-eggs/release/5/sha1

If you want to check out the source code repository of this egg and you are not familiar with Subversion, see this page.

Version history

4.1.0
Split into api & primitive modules.
4.0.0
CHICKEN 5 release.
3.2.0
Add raw-update. Kon Lovett
3.1.0
Add block-length. Kon Lovett
3.0.0
Remove deprecated procedures. Kon Lovett
2.3
Make function declarations static in order to avoid conflicts with those from libc if the OS supplies them. This makes SHA-1 work on OpenBSD (thanks to Alan Post and Christian Kellermann)
2.2.2
Change deprecated pointer foreign type specifier to scheme-pointer to make it work under chickens newer than 4.6.0.
2.2.1
Fix for test, wrong context allocation size. Kon Lovett
2.2
a message-digest-primitive has no "state". Kon Lovett
2.1
Replaced GPL code with common public domain code.
2.0.0
Initial Chicken 4 release Kon Lovett

License

 SHA-1 in C
 By Steve Reid <steve@edmweb.com>
 100% Public Domain