{"id":22296192,"url":"https://github.com/kakwa/uts-server","last_synced_at":"2025-07-26T15:14:56.615Z","repository":{"id":46864493,"uuid":"48135518","full_name":"kakwa/uts-server","owner":"kakwa","description":"Micro RFC 3161 Time-Stamp server written in C.","archived":false,"fork":false,"pushed_at":"2021-09-22T08:09:10.000Z","size":357,"stargazers_count":77,"open_issues_count":6,"forks_count":22,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-05T05:51:10.961Z","etag":null,"topics":["c","civetweb","cryptography","openssl","rfc-3161","security","time-stamp"],"latest_commit_sha":null,"homepage":"http://uts-server.readthedocs.org/en/latest/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kakwa.png","metadata":{"files":{"readme":"README.rst","changelog":"ChangeLog.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-12-16T21:13:06.000Z","updated_at":"2024-11-01T08:22:04.000Z","dependencies_parsed_at":"2022-09-11T15:11:11.916Z","dependency_job_id":null,"html_url":"https://github.com/kakwa/uts-server","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/kakwa/uts-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kakwa%2Futs-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kakwa%2Futs-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kakwa%2Futs-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kakwa%2Futs-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kakwa","download_url":"https://codeload.github.com/kakwa/uts-server/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kakwa%2Futs-server/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267184146,"owners_count":24049127,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","civetweb","cryptography","openssl","rfc-3161","security","time-stamp"],"created_at":"2024-12-03T17:44:33.223Z","updated_at":"2025-07-26T15:14:56.568Z","avatar_url":"https://github.com/kakwa.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"uts-server \n==========\n\n.. image:: https://github.com/kakwa/uts-server/blob/master/docs/assets/logo_64.png?raw=true\n\n|\n\n.. image:: https://travis-ci.org/kakwa/uts-server.svg?branch=master\n    :target: https://travis-ci.org/kakwa/uts-server\n\n.. image:: https://readthedocs.org/projects/uts-server/badge/?version=latest\n    :target: http://uts-server.readthedocs.org/en/latest/?badge=latest\n    :alt: Documentation Status\n\n.. image:: https://jenkins.kakwalab.ovh/buildStatus/icon?job=kakwa/uts-server/master\n    :target: https://jenkins.kakwalab.ovh/blue/organizations/jenkins/kakwa%2Futs-server/branches/\n    :alt: Jenkins Status\n\nMicro `RFC 3161 Time-Stamp \u003chttps://www.ietf.org/rfc/rfc3161.txt\u003e`_ server written in C.\n\n----\n\n:Doc:    `Uts-Server documentation on ReadTheDoc \u003chttp://uts-server.readthedocs.org/en/latest/\u003e`_\n:Dev:    `Uts-Server source code on GitHub \u003chttps://github.com/kakwa/uts-server\u003e`_\n:License: MIT\n:Author:  Pierre-Francois Carpentier - copyright © 2019\n\n----\n\nDemo\n----\n\nA demo is accessible here: https://uts-server.kakwalab.ovh/\n\nLicense\n-------\n\nReleased under the MIT Public License\n\nWhat is RFC 3161?\n-----------------\n\nAn RFC 3161 time-stamp is basically a cryptographic signature with a date attached.\n\nRoughly, it works as follow:\n\n1. A client application sends an hash of the data it wants to time-stamp to a Time-Stamp authority server.\n2. 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).\n3. The Time-Stamp authority server returns the generated time-stamp to the client application.\n\nThen a client can verify the piece of data with the time-stamp using the Certificate Authority of the time-stamp key pair (X509 certificates).\n\nIt gives a cryptographic proof of a piece of data content, for example a file, at a given time.\n\nSome use cases:\n\n* time-stamp log files at rotation time.\n* time-stamp file at upload to prove it was delivered in due time or not.\n\nQuick (and dirty) Testing\n-------------------------\n\nHere a few steps to quickly try out uts-server, for production setup, please compile civetweb externally and create proper CA and certificates:\n\n.. sourcecode:: bash\n\n    # Building with civetweb embedded (will recover civetweb from github).\n    # Note: the BUNDLE_CIVETWEB option is only here for fast testing purpose\n    # The recommended way to deploy uts-server in production is to build civetweb\n    # separatly and to link against it.\n    $ cmake . -DBUNDLE_CIVETWEB=ON\n    $ make\n    \n    # Create some test certificates.\n    $ ./tests/cfg/pki/create_tsa_certs\n    \n    # Launching the time-stamp server with test configuration in debug mode.\n    $ ./uts-server -c tests/cfg/uts-server.cnf -D\n    \n    # In another shell, launching a time-stamp script on the README.md file.\n    $ ./goodies/timestamp-file.sh -i README.rst -u http://localhost:2020 -r -O \"-cert\";\n\n    # Verify the time-stamp.\n    $ openssl ts -verify -in README.rst.tsr -data README.rst -CAfile ./tests/cfg/pki/tsaca.pem\n\n    # Display the time-stamp content.\n    $ openssl ts -reply -in README.rst.tsr -text\n\nPowered by\n----------\n    \n.. image:: https://raw.githubusercontent.com/openssl/web/master/img/openssl-64.png\n    :target: https://www.openssl.org/\n\n.. image:: https://github.com/civetweb/civetweb/blob/658c8d48b3bcdb34338dae1b83167a8d7836e356/resources/civetweb_32x32@2.png?raw=true\n    :target: https://github.com/civetweb/civetweb\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkakwa%2Futs-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkakwa%2Futs-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkakwa%2Futs-server/lists"}