{"id":37215380,"url":"https://github.com/anonymouse64/sha3_arm","last_synced_at":"2026-01-15T00:54:44.966Z","repository":{"id":61627116,"uuid":"124449182","full_name":"anonymouse64/sha3_arm","owner":"anonymouse64","description":"Fastpath implementation for SHA3 in Golang on ARM devices","archived":false,"fork":false,"pushed_at":"2018-05-08T18:36:00.000Z","size":653,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-06-20T00:44:34.548Z","etag":null,"topics":["arm","crypto","golang","sha3"],"latest_commit_sha":null,"homepage":null,"language":"Assembly","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/anonymouse64.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":"2018-03-08T21:17:51.000Z","updated_at":"2024-06-20T00:44:34.549Z","dependencies_parsed_at":"2022-10-19T19:15:18.127Z","dependency_job_id":null,"html_url":"https://github.com/anonymouse64/sha3_arm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/anonymouse64/sha3_arm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anonymouse64%2Fsha3_arm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anonymouse64%2Fsha3_arm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anonymouse64%2Fsha3_arm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anonymouse64%2Fsha3_arm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anonymouse64","download_url":"https://codeload.github.com/anonymouse64/sha3_arm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anonymouse64%2Fsha3_arm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28440773,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-15T00:34:46.850Z","status":"ssl_error","status_checked_at":"2026-01-15T00:34:46.551Z","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":["arm","crypto","golang","sha3"],"created_at":"2026-01-15T00:54:44.192Z","updated_at":"2026-01-15T00:54:44.957Z","avatar_url":"https://github.com/anonymouse64.png","language":"Assembly","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SHA3 Keccak Library\n\nThis library is a Golang wrapper for the libkeccak functions implemented here : https://github.com/gvanas/KeccakCodePackage. It provides 3-5 times faster performance (on specicially ARM) than the current implementation of the SHA3 functionality implemented here : https://godoc.org/golang.org/x/crypto/sha3. It does this by using the hand tuned assembly available in the KeccakCodePackage.\n\n## Building\n\nAs this package is a Go wrapper around assembly, it uses cgo, and as such you must have a recent C compiler and CMake available. The first step is to build libkeccak (this is something that I intend to do automatically in CMake, but haven't implemented quite yet).\n\nTo build libkeccak (on linux for example):\n```\n$ git clone https://github.com/gvanas/KeccakCodePackage.git\n$ cd KeccakCodePackage\n$ make asmX86-64/libkeccak.a\n```\n\nAnd then provide the path to the built version of libkeccak :\n```\n$ git clone https://github.com/anonymouse64/sha3_arm.git\n$ cd sha3_arm\n$ mkdir build \u0026\u0026 cd build\n$ cmake .. -DLIBKECCAK_LOCATION=/path/to/folder/\n$ make\n```\n\n## Supported platforms\n\n### Linux\nThis has been tested with Ubuntu 17.10 on x86. It has comparable performance to the native go implementation however, so there's not much advantage to using it over the standard library.\n\n### Mac OS X\nThis hasn't been tested on Mac, but should work so long as libkeccak compiles properly.\n\n### ARM \nThis has been tested on Raspberry Pi 3 v1.2 running Raspbian with gcc 6.3, as well on Raspberry Pi 2 B running Ubuntu Server 17.10 with gcc 7.2. Older versions of gcc may not link the static libkeccak library correctly.\n\n### Windows\nIt may be possible to build libkeccak on Windows (perhaps using msys or WSL), but I haven't tried it, so for now Windows is not supported. However, the Go code should still work if one is somehow able to get libkeccak to compile properly on Windows.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanonymouse64%2Fsha3_arm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanonymouse64%2Fsha3_arm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanonymouse64%2Fsha3_arm/lists"}