diff options
author | 2016-09-08 11:09:45 -0700 | |
---|---|---|
committer | 2016-09-08 11:09:45 -0700 | |
commit | 40f5ea3c4242f8f92d511596778f980671972d7f (patch) | |
tree | a271152c69adc3c891deda1cfcc5a533ed00279a /src/sha1.sig | |
parent | 51ac19f565fa935eec6d9dd1f7119c6227383a3c (diff) |
Use hash instead of timestamp in app.js filename
Makes Ur/Web project builds reproducible without sacrificing HTTP
caching. Uses a public domain SHA1 implementation by tom7. See #38.
Diffstat (limited to 'src/sha1.sig')
-rw-r--r-- | src/sha1.sig | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/sha1.sig b/src/sha1.sig new file mode 100644 index 00000000..7fda97f5 --- /dev/null +++ b/src/sha1.sig @@ -0,0 +1,31 @@ + +(* Implementation the SHA-1 hash function. + Written by Tom 7 in 2004; code in the public domain. *) + +signature SHA1 = +sig + + (* Perform the SHA-1 hash function on a message. + Returns the 160 bit (20 byte) hash. + + recall that string = CharVector.vector. + The input string may contain non-ascii data; + the output certainly will. *) + + val hash : string -> string + + (* pass in a stream as stateful function that returns + SOME s for some non-empty prefix of the remainder of + the stream, or NONE when the stream has ended. *) + val hash_stream : (unit -> string option) -> string + + (* XXX move to hashutil *) + (* convert a binary string to one built of hex digits *) + val bintohex : string -> string + + (* Parse a hexadecimal SHA-1 string. Uppercase and lowercase + are permitted. If the string is not the right length or + contains invalid characters, returns NONE. *) + val parse_hex : string -> string option + +end |