{"id":37910639,"url":"https://github.com/simcap/rockverify","last_synced_at":"2026-01-16T17:19:09.867Z","repository":{"id":64303684,"uuid":"232280995","full_name":"simcap/rockverify","owner":"simcap","description":"Tool using Ethereum and Rockside to add an extra layer of verification when downloading files from URL","archived":false,"fork":false,"pushed_at":"2020-01-22T13:25:26.000Z","size":8649,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-06-20T17:34:36.774Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/simcap.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-01-07T08:40:21.000Z","updated_at":"2023-02-01T11:40:07.000Z","dependencies_parsed_at":"2023-01-15T10:00:34.243Z","dependency_job_id":null,"html_url":"https://github.com/simcap/rockverify","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/simcap/rockverify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simcap%2Frockverify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simcap%2Frockverify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simcap%2Frockverify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simcap%2Frockverify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simcap","download_url":"https://codeload.github.com/simcap/rockverify/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simcap%2Frockverify/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28480098,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-01-16T17:19:09.197Z","updated_at":"2026-01-16T17:19:09.860Z","avatar_url":"https://github.com/simcap.png","language":"Go","readme":"# RockVerify\n\nRockVerify is a command line interface that leverages the Ethereum blockchain to add an extra layer of verification \nwhen downloading files from URL.\n\nTo interact easily with the blockchain, we use [Rockside](https://www.rockside.io).\n\n## Example\n\nYou want a third party to download securely content from a URL you have. \n\n_First_, register on the blockchain the fingerprint of the URL with:\n\n```sh\n# note the URL does not become public as only its fingerprints is registered on the blockchain\nrockverify register https://example.com/releases/1.5.4/binary\n```\n\n_Secondly_, send to your third party the following command to run:\n\n```sh\nrockverify https://example.com/releases/1.5.4/binary \n```\n\nYour third party will get the content automatically \u0026 securely on its local machine, according to the following output:\n\n```console\nrockverify https://example.com/releases/1.5.4/binary\n[+] normalizing given URL\n[+] reading blockchain entry for 'https://example.com/releases/1.5.4/binary'\n[+] content downloaded to local file /tmp/rockverify-131833903\n[+] fingerprint of downloaded content matches registered fingerprint on blockchain\n[+] verification is successful. Thanks Rockside!\n```\n\n(For HTTPS authentication based accessible content see below.)\n\n## What are we trying to solve?\n\nWhen we advertise on a website a file to be downloaded and the corresponding file fingerprint to be verified after download,\nwe try to mitigate an in transit corruption of the file or a man in the middle attack. \n\nUnfortunately, the fingerprint is not always a guarantee and can even add false confidence. \n\nIndeed, a motivated attacker that finds a way to replace maliciously the file on your servers will have no difficulty replacing also the file fingerprint, \ntherefore rendering your fingerprint verification silently useless.\n\nHere RockVerify allows to simply register the fingerprints of the URL and content on the blockchain, making it easily downloadable later on while removing\nthe possibility of the attacker scenario above happening.\n\n## Register an entry on the blockchain\n\nIn order to perform the command `rockverify register ...`, you will need to get a [Rockside API key](https://www.rockside.io) \nsince we need to write on the blockchain.\n\nOnce you have one, do: \n \n```sh\nexport ROCKSIDE_API_KEY=....\nrockverify register https://...\n``` \n\n## Install\n\nTo install the CLI locally, grab the latest linux/windows [binaries here](https://github.com/simcap/rockverify/releases). Or if you have GO just run `go get github.com/simcap/rockverify` \n\n## HTTPS Basic Authentication\n\nIf your content is protected with HTTPS basic authentication, use the `basic-auth-username` flag (password being asked via prompt).\n\nFor example:\n\n```console\nrockverify --basic-auth-username john register https://example.com/releases/1.5.4/binary\n[+] normalizing given URL\n[+] computing fingerprint of content found at 'https://example.com/releases/1.5.4/binary'\nEnter Password: \n\n```\n\nThen on the download side of things:\n\n```console\nrockverify --basic-auth-username john https://example.com/releases/1.5.4/binary\n[+] normalizing given URL\n[+] reading blockchain entry for 'https://example.com/releases/1.5.4/binary'\nEnter Password:\n\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimcap%2Frockverify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimcap%2Frockverify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimcap%2Frockverify/lists"}