{"id":33170483,"url":"https://github.com/bsi-group/nsrls","last_synced_at":"2026-01-21T19:16:14.165Z","repository":{"id":64305779,"uuid":"46863954","full_name":"bsi-group/nsrls","owner":"bsi-group","description":"nsrls is a server designed to provide access to the NSRL hash data set","archived":false,"fork":false,"pushed_at":"2015-11-26T09:09:52.000Z","size":1084,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-11-20T19:05:18.786Z","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/bsi-group.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":"2015-11-25T13:41:17.000Z","updated_at":"2021-03-11T06:36:59.000Z","dependencies_parsed_at":"2023-01-15T10:30:53.652Z","dependency_job_id":null,"html_url":"https://github.com/bsi-group/nsrls","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/bsi-group/nsrls","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsi-group%2Fnsrls","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsi-group%2Fnsrls/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsi-group%2Fnsrls/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsi-group%2Fnsrls/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bsi-group","download_url":"https://codeload.github.com/bsi-group/nsrls/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsi-group%2Fnsrls/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28640737,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T18:04:35.752Z","status":"ssl_error","status_checked_at":"2026-01-21T18:03:55.054Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":"2025-11-16T01:00:42.127Z","updated_at":"2026-01-21T19:16:14.146Z","avatar_url":"https://github.com/bsi-group.png","language":"Go","funding_links":[],"categories":["SIEM"],"sub_categories":["Various"],"readme":"nsrls (NSRL Server)\n===================\n\nnsrls is a server designed to provide access to the [National Software Reference Library (NSRL)](http://www.nsrl.nist.gov/Downloads.htm)  hash data set. There are \ntwo methods to access the data either running as a single process or using a JSON \nHTTP API. The HTTP JSON API can be used by the nsrlc (NSRL Client) or directly by \nother applications or processes.\n\n## Importing ##\n\nThe **nsrls** application can perform show data manipulation when importing the \ndata set. It can extract a specific field from a CSV file by using the **-s** or \n**--csvfield** parameters, so if the second field is to be used the use the value \n**2** for the parameter. If the import file has quotes around the hash data then \nthey can be removed when importing by using the **-r** or **--removequotes** parameters. \n\n## HTTP API ##\n\nThe HTTP API has two different acess methods; a single hash can be checked using \na HTTP GET request or a bulk request can be performed using a HTTP POST request.  \n\nThe IP local IP address and port that the HTTP server runs on are configured \nusing the config file (nsrls.config). The **show_requests** option in the config \nfile determines whether the HTTP requests against the server are displayed in the \nconsole. \n\nThe HTTP API is located by default at the following URL's:\n\n```\n    http://127.0.0.1:8080/single (GET)\n    http://127.0.0.1:8080/bulk   (POST)\n```\n\n### Single ###\n\nThe single API URL takes a hash value in the URL like so:\n\n```\n    http://127.0.0.1:8080/single/392126E756571EBF112CB1C1CDEDF926\n```\n\n### Bulk ###\n\nThe bulk API uses a HTTP POST request like so, with the hashes each separated \nby a hash (#) character:\n\n```\n    POST http://127.0.0.1:8080/bulk HTTP/1.1\n    Content-Type: application/x-www-form-urlencoded\n    Content-Length: 65\n    \n    392126E756571EBF112CB1C1CDEDF926#8E23576EF5AEF2D5457C8A24BF5F740A\n```\n\nThe NSRL client application by default sends up to 1000 hashes per batch.\n\n### Return Data ###\n\nThe HTTP API returns data in the JSON format as shown below:\n\n```\n    {\"Hash\":\"8E23576EF5AEF2D5457C8A24BF5F740A\",\"Exists\":true}\n```\n\n## Single Use (File) Mode ##\n\nThe server can be used to perform a single use lookup against a input file using\nthe **-m** parameter and a value of **f** (file). The server will import the hash\ndata, process the input file containing multiple hashes and extract the data to \nan output file.\n\n### Output ###\n\nWhen in single use mode, the application outputs directly to a file. The output \nformat can be defined by the command line parameters. The options for the output\nformat are:\n \n- i: Outputs only the identified hashes\n- u: Outputs only the unidentified hashes\n- a: Outputs both the identified and unidentified hashes, along with a status column\n\n## Configuration ##\n\n- Make sure all of the paths specified in the config file are fully qualified\n- Ensure that there is a log directory created, and that the user can write to it\n```\n     sudo mkdir /var/log/nsrls\n     sudo chown \u003cusername\u003e /var/log/nsrls\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbsi-group%2Fnsrls","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbsi-group%2Fnsrls","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbsi-group%2Fnsrls/lists"}