Take any string of characters (e.g. the result of a SHA hash) and reversibly convert it to a valid filename.
Decrypt AES-encrypted data.
Convert an encrypted, store-relative path to its original form.
Deterministically encrypt the input string using AES.
Generate a quasi-unique ID for this peer using a hash (SHA-256, which currently has no known collisions) of the owner’s public key “salted” with 32 random bits.
Store IDs are meant to uniquely identify a store/user. They are essentially the RSA public key, but we use use their SHA-256 hash to “flatten” them to a shorter, predictable length.
A convenience function for adding a signature to generated revision data.
Convenience function to load a peer’s public key.
Convenience function to load a store’s public key .
Convenience primative for computing a signature for any string.
Convenience primative for verifying the signature associated with a string.
Verify the validity and signature of revision data.