#api-bindings #timestamp

bin+lib freetsa

Client library and CLI utility for acquiring timestamps from freetsa.org

4 releases

0.1.3 Oct 11, 2022
0.1.2 Oct 10, 2022
0.1.1 Oct 10, 2022
0.1.0 Oct 10, 2022

#505 in Authentication


159 lines

FreeTSA Unofficial Client Library and CLI Utility

Crate Info API Docs Rustc Version 1.60+

See https://freetsa.org for more information on this public timestamp service.

Note: To verify timestamps, you will need to fetch copies of FreeTSA's certificates from their website.

Using CLI

$ cargo install freetsa

$ freetsa timestamp file \
    --data some_file \
    --reply-out some_file.tsr \
    --query-out some_file.tsq

$ openssl ts -verify \
    -in some_file.tsr \
    -queryfile some_file.tsq \
    -CAfile cacert.pem \
    -untrusted tsa.crt

Using Library

use freetsa::prelude::*;

// timestamp a hash that you generate
let hash: Vec<u8> = _generate_your_hash_somehow();
let TimestampResponse { reply, .. } = timestamp_hash(hash).await.unwrap();

// timestamp a sha512 hash generated for you from a file you specify
let TimestampResponse { query, reply } = timestamp_file("path/to/my/file").await.unwrap();

Example code is available for timestamping a file or timestamping a hash. You can run them using just with just example-file and just example-hash, respectively.


~287K SLoC