This directory contains various per-hash values that are used in the testsuite.

Each file contains lines containing a key-value pair; blank lines and lines
starting with `#` are ignored.  The key and value are separated by whitespace
(specifically, those whitespace in the default `$IFS`).  The key consists only
of shell identifier characters, and the value consists of a hash algorithm,
colon, and value.  The hash algorithm also consists only of shell identifier
characters; it should match the value in sha1-file.c.

For example, the following lines map the key "rawsz" to "20" if SHA-1 is in use
and to "32" if SHA-256 is in use:

----
rawsz sha1:20
rawsz sha256:32
----

The keys and values used here are loaded by `test_oid_init` (see the README file
in the "t" directory) and are used by calling `test_oid`.
