Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kakwa/uts-server
Micro RFC 3161 Time-Stamp server written in C.
https://github.com/kakwa/uts-server
c civetweb cryptography openssl rfc-3161 security time-stamp
Last synced: about 2 months ago
JSON representation
Micro RFC 3161 Time-Stamp server written in C.
- Host: GitHub
- URL: https://github.com/kakwa/uts-server
- Owner: kakwa
- License: mit
- Created: 2015-12-16T21:13:06.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2021-09-22T08:09:10.000Z (over 3 years ago)
- Last Synced: 2024-04-16T18:34:02.423Z (9 months ago)
- Topics: c, civetweb, cryptography, openssl, rfc-3161, security, time-stamp
- Language: C
- Homepage: http://uts-server.readthedocs.org/en/latest/
- Size: 349 KB
- Stars: 74
- Watchers: 8
- Forks: 20
- Open Issues: 6
-
Metadata Files:
- Readme: README.rst
- Changelog: ChangeLog.rst
- License: LICENSE
Awesome Lists containing this project
README
uts-server
==========.. image:: https://github.com/kakwa/uts-server/blob/master/docs/assets/logo_64.png?raw=true
|
.. image:: https://travis-ci.org/kakwa/uts-server.svg?branch=master
:target: https://travis-ci.org/kakwa/uts-server.. image:: https://readthedocs.org/projects/uts-server/badge/?version=latest
:target: http://uts-server.readthedocs.org/en/latest/?badge=latest
:alt: Documentation Status.. image:: https://jenkins.kakwalab.ovh/buildStatus/icon?job=kakwa/uts-server/master
:target: https://jenkins.kakwalab.ovh/blue/organizations/jenkins/kakwa%2Futs-server/branches/
:alt: Jenkins StatusMicro `RFC 3161 Time-Stamp `_ server written in C.
----
:Doc: `Uts-Server documentation on ReadTheDoc `_
:Dev: `Uts-Server source code on GitHub `_
:License: MIT
:Author: Pierre-Francois Carpentier - copyright © 2019----
Demo
----A demo is accessible here: https://uts-server.kakwalab.ovh/
License
-------Released under the MIT Public License
What is RFC 3161?
-----------------An RFC 3161 time-stamp is basically a cryptographic signature with a date attached.
Roughly, it works as follow:
1. A client application sends an hash of the data it wants to time-stamp to a Time-Stamp authority server.
2. The Time-Stamp authority server retrieves the current date, concatenates it with the hash and uses its private key to create the time-stamp (kind of like a signature).
3. The Time-Stamp authority server returns the generated time-stamp to the client application.Then a client can verify the piece of data with the time-stamp using the Certificate Authority of the time-stamp key pair (X509 certificates).
It gives a cryptographic proof of a piece of data content, for example a file, at a given time.
Some use cases:
* time-stamp log files at rotation time.
* time-stamp file at upload to prove it was delivered in due time or not.Quick (and dirty) Testing
-------------------------Here a few steps to quickly try out uts-server, for production setup, please compile civetweb externally and create proper CA and certificates:
.. sourcecode:: bash
# Building with civetweb embedded (will recover civetweb from github).
# Note: the BUNDLE_CIVETWEB option is only here for fast testing purpose
# The recommended way to deploy uts-server in production is to build civetweb
# separatly and to link against it.
$ cmake . -DBUNDLE_CIVETWEB=ON
$ make
# Create some test certificates.
$ ./tests/cfg/pki/create_tsa_certs
# Launching the time-stamp server with test configuration in debug mode.
$ ./uts-server -c tests/cfg/uts-server.cnf -D
# In another shell, launching a time-stamp script on the README.md file.
$ ./goodies/timestamp-file.sh -i README.rst -u http://localhost:2020 -r -O "-cert";# Verify the time-stamp.
$ openssl ts -verify -in README.rst.tsr -data README.rst -CAfile ./tests/cfg/pki/tsaca.pem# Display the time-stamp content.
$ openssl ts -reply -in README.rst.tsr -textPowered by
----------
.. image:: https://raw.githubusercontent.com/openssl/web/master/img/openssl-64.png
:target: https://www.openssl.org/.. image:: https://github.com/civetweb/civetweb/blob/658c8d48b3bcdb34338dae1b83167a8d7836e356/resources/[email protected]?raw=true
:target: https://github.com/civetweb/civetweb