https://github.com/juliacrypto/sha.jl

A performant, 100% native-julia SHA1, SHA2, and SHA3 implementation

https://github.com/juliacrypto/sha.jl

Science Score: 23.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    5 of 29 committers (17.2%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.3%) to scientific vocabulary

Keywords

cryptography hash-functions julia sha1 sha2 sha3

Keywords from Contributors

numerical julialang programming-language ida tabular-data dataframes data-frame differential-equations hybrid-differential-equations optim
Last synced: 6 months ago · JSON representation

Repository

A performant, 100% native-julia SHA1, SHA2, and SHA3 implementation

Basic Info
  • Host: GitHub
  • Owner: JuliaCrypto
  • License: other
  • Language: Julia
  • Default Branch: master
  • Homepage:
  • Size: 179 KB
Statistics
  • Stars: 49
  • Watchers: 8
  • Forks: 36
  • Open Issues: 5
  • Releases: 10
Topics
cryptography hash-functions julia sha1 sha2 sha3
Created over 11 years ago · Last pushed 9 months ago
Metadata Files
Readme License

README.md

SHA

Build Status codecov.io

Setup

Enter the Julia package manager by typing ] into your REPL. Then type: julia (@v1.6) pkg> add SHA

Usage

```julia julia> using SHA

julia> bytes2hex(sha256("test")) "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08" ```

Each exported function (at the time of this writing, SHA-1, SHA-2 224, 256, 384 and 512, and SHA-3 224, 256, 384 and 512 functions are implemented) takes in either an Vector{UInt8}, a ByteString or an IO object. This makes it trivial to checksum a file:

```julia shell> cat /tmp/test.txt test julia> using SHA

julia> open("/tmp/test.txt") do f sha2_256(f) end 32-element Vector{UInt8}: 0x9f 0x86 0xd0 0x81 0x88 0x4c 0x7d 0x65 ⋮ 0x5d 0x6c 0x15 0xb0 0xf0 0x0a 0x08 ```

Note the lack of a newline at the end of /tmp/text.txt. Julia automatically inserts a newline before the julia> prompt.

Due to the colloquial usage of sha256 to refer to sha2_256, convenience functions are provided, mapping shaxxx() function calls to sha2_xxx(). For SHA-3, no such colloquialisms exist and the user must use the full sha3_xxx() names.

shaxxx() takes AbstractString and array-like objects (NTuple and Vector) with elements of type UInt8.

Note that, at the time of this writing, the SHA3 code is not optimized, and as such is roughly an order of magnitude slower than SHA2. Pull requests are welcome.

Owner

  • Name: JuliaCrypto
  • Login: JuliaCrypto
  • Kind: organization
  • Location: Everywhere

Cryptography made easy in Julia

GitHub Events

Total
  • Issues event: 6
  • Watch event: 1
  • Delete event: 3
  • Issue comment event: 20
  • Push event: 12
  • Pull request review event: 3
  • Pull request review comment event: 2
  • Pull request event: 16
  • Fork event: 1
  • Create event: 3
Last Year
  • Issues event: 6
  • Watch event: 1
  • Delete event: 3
  • Issue comment event: 20
  • Push event: 12
  • Pull request review event: 3
  • Pull request review comment event: 2
  • Pull request event: 16
  • Fork event: 1
  • Create event: 3

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 139
  • Total Committers: 29
  • Avg Commits per committer: 4.793
  • Development Distribution Score (DDS): 0.727
Past Year
  • Commits: 8
  • Committers: 4
  • Avg Commits per committer: 2.0
  • Development Distribution Score (DDS): 0.375
Top Committers
Name Email Commits
Elliot Saba s****t@g****m 38
woclass g****t@w****n 32
Tony Kelman t****y@k****t 8
Yichao Yu y****2@g****m 8
Mus M m****m@o****m 7
dependabot[bot] 4****] 4
Jake Bolewski j****i@g****m 4
Dilum Aluthge d****m@a****m 4
Ian Butterworth i****h@g****m 4
immoschuett 8****t 3
Andreas Noack a****n@g****m 2
Iain Dunning i****g@g****m 2
Keno Fischer k****o@a****u 2
Logan Kilpatrick 2****3@g****m 2
Lyndon White o****x@u****u 2
Steven G. Johnson s****j@m****u 2
ranjanan b****n@g****m 2
Guido Kraemer g****r 2
Lilith Hafner L****r@g****m 1
Jaka Smrekar v****x@o****m 1
Daniel C. Jones d****s@c****u 1
Jakob Nybo Nissen j****n@g****m 1
Julia TagBot 5****t 1
Kristoffer Carlsson k****n@c****e 1
Max Horn m****x@q****e 1
Rafael Fourquet f****l@g****m 1
Sacha Verweij s****a@s****u 1
chris-b1 c****k@g****m 1
张实唯 y****w@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 35
  • Total pull requests: 90
  • Average time to close issues: 7 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 24
  • Total pull request authors: 33
  • Average comments per issue: 2.31
  • Average comments per pull request: 2.29
  • Merged pull requests: 77
  • Bot issues: 0
  • Bot pull requests: 4
Past Year
  • Issues: 2
  • Pull requests: 12
  • Average time to close issues: 40 minutes
  • Average time to close pull requests: 3 days
  • Issue authors: 1
  • Pull request authors: 4
  • Average comments per issue: 0.5
  • Average comments per pull request: 2.0
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • inkydragon (8)
  • gdkrmr (3)
  • DilumAluthge (2)
  • jakobnissen (2)
  • erich-9 (2)
  • davidanthoff (1)
  • kmsquire (1)
  • andrewcooke (1)
  • omus (1)
  • staticfloat (1)
  • Cyvadra (1)
  • simonbyrne (1)
  • Robert-j7 (1)
  • tkelman (1)
  • pixel27 (1)
Pull Request Authors
  • inkydragon (27)
  • staticfloat (13)
  • yuyichao (7)
  • dependabot[bot] (7)
  • musm (7)
  • IanButterworth (5)
  • Keno (3)
  • martinholters (3)
  • immoschuett (3)
  • gdkrmr (2)
  • jakebolewski (2)
  • oxinabox (2)
  • tkelman (2)
  • IainNZ (2)
  • ghost (2)
Top Labels
Issue Labels
enhancement (2)
Pull Request Labels
dependencies (7) bug (2)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 40 total
  • Total dependent packages: 39
  • Total dependent repositories: 39
  • Total versions: 3
juliahub.com: SHA

A performant, 100% native-julia SHA1, SHA2, and SHA3 implementation

  • Versions: 3
  • Dependent Packages: 39
  • Dependent Repositories: 39
  • Downloads: 40 Total
Rankings
Dependent repos count: 1.0%
Dependent packages count: 3.5%
Forks count: 3.8%
Average: 5.5%
Stargazers count: 13.7%
Last synced: 6 months ago

Dependencies

.github/workflows/CI.yml actions
  • actions/checkout v2 composite
  • codecov/codecov-action v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia latest composite
  • julia-actions/setup-julia v1 composite
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite