sha1

  1. sha1
  2. Documentation
    1. SHA1 API
  3. Usage
    1. Constants
    2. init
    3. update
    4. raw-update
    5. final
    6. SHA1 Primitive
  4. Usage
    1. sha1-primitive
  5. Example
  6. Usage
  7. Requirements
  8. Notes
  9. Author
  10. Version history
  11. 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.

Example

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

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

Usage

(use sha1)

Requirements

message-digest-primitive

Notes

Author

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

Version history

4.1.0
Split into appi & 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