Skip to content

Commit

Permalink
dox(hsh): updated documentation and source code comments
Browse files Browse the repository at this point in the history
  • Loading branch information
sebastienrousseau committed May 16, 2023
1 parent 7e6470b commit b6992ef
Show file tree
Hide file tree
Showing 8 changed files with 152 additions and 129 deletions.
1 change: 0 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ name: 🧪 Release
on: [push, pull_request]

jobs:

# Build the project for all the targets and generate artifacts.
build:
# This job builds the project for all the targets and generates a
Expand Down
1 change: 0 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,5 +54,4 @@ If you've identified a bug or have a specific code improvement in mind, we welco

We hope that this guide has been helpful in explaining how you can contribute to Hash (HSH). Thank you for your interest and involvement in our project!

[1]: https://github.com/sebastienrousseau/dtt
[2]: https://github.com/sebastienrousseau/dtt/issues/new
9 changes: 2 additions & 7 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,10 @@
authors = ["Sebastien Rousseau <[email protected]>"]
build = "build.rs"
categories = ["algorithms", "data-structures", "cryptography"]
description = "Quantum-Resistant Cryptographic Hash Library for Password Hashing and Verification in Rust"
description = "Quantum-Resistant Cryptographic Hash Library for Password Encryption and Verification in Rust"
documentation = "https://docs.rs/hsh"
edition = "2021"
exclude = [
"/.git/*",
"/.github/*",
"/.gitignore",
"/.vscode/*"
]
exclude = ["/.git/*", "/.github/*", "/.gitignore", "/.vscode/*"]
homepage = "https://minifunctions.com/"
keywords = ["argon2rs", "hash", "hashing-algorithm", "hsh", "post-quantum"]
license = "MIT OR Apache-2.0"
Expand Down
68 changes: 38 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,41 +32,49 @@ Verification

## Overview 📖

The Hash (HSH) library is a cryptographic hash library for password
hashing and verification in Rust, designed to provide robust security
for passwords, utilizing the latest advancements in quantum-resistant
cryptography.

The library is designed to be easy to use, with a simple API that allows
for the generation, retrieval, and verification of password hashes.

It supports the following hash algorithms:

- [**Argon2i**](<https://en.wikipedia.org/wiki/Argon2>): A memory-
hard password hashing function designed to be secure against both
brute-force attacks and rainbow table attacks.
The `Hash (HSH)` Rust library provides an interface for implementing
secure hash and digest algorithms, specifically designed for password
encryption and verification.

The library provides a simple API that makes it easy to store and verify
hashed passwords. It enables robust security for passwords, using the
latest advancements in `Quantum-resistant cryptography`. Quantum-
resistant cryptography refers to cryptographic algorithms, usually
public-key algorithms, that are thought to be secure against an attack
by a quantum computer. As quantum computing continues to advance, this
feature of the library assures that the passwords managed through this
system remain secure even against cutting-edge computational
capabilities.

The library supports the following Password Hashing Schemes (Password
Based Key Derivation Functions):

- [**Argon2i**](<https://en.wikipedia.org/wiki/Argon2>): A cutting-edge
and highly secure key derivation function designed to protect against
both traditional brute-force attacks and rainbow table attacks.
(Recommended)
- [**Bcrypt**](<https://en.wikipedia.org/wiki/Bcrypt>): A password
hashing function designed to be secure against brute-force attacks.
It is a work-factor function, which means that it takes a certain
amount of time to compute. This makes it difficult to attack with a
brute-force algorithm.
hashing function designed to be secure against brute-force attacks.
It is a work-factor function, which means that it takes a certain
amount of time to compute. This makes it difficult to attack with a
brute-force algorithm.
- [**Scrypt**](<https://en.wikipedia.org/wiki/Scrypt>): A password
hashing function designed to be secure against both brute-force
attacks and rainbow table attacks. It is a memory-hard and work-
factor function, which means that it requires a lot of memory and
time to compute. This makes it very difficult to attack with a GPU
or other parallel computing device.
hashing function designed to be secure against both brute-force
attacks and rainbow table attacks. It is a memory-hard and work-
factor function, which means that it requires a lot of memory and
time to compute. This makes it very difficult to attack with a GPU
or other parallel computing device.

The library is a valuable tool for developers who need to store and
verify passwords in a secure manner. It is easy to use and can be
integrated into a variety of applications.

## Features ✨

- Generates string representations of the hash
- Includes methods for setting and verifying passwords against the hash
- Provides functions for generating hashes and salts
- Rust library for hashing and verifying passwords
- Supports external crates such as argon2rs, base64, bcrypt, scrypt, and
vrd.
- Supports multiple hash algorithms (argon2i, bcrypt, scrypt)
- Written in Rust for speed and security
- **Compliant with multiple Password Hashing Schemes (Password Based Key Derivation Functions) such as Argon2i, Bcrypt and Scrypt.** This makes the library more versatile and can be used in a variety of applications.
- **Quantum-resistant, making it secure against future attacks using quantum computers.** This is an important feature as quantum computers become more powerful.
- **Easy to use.** The library provides a simple API that makes it easy to store and verify hashed passwords.
- **Can be integrated into a variety of applications.** The library is written in Rust, which makes it easy to integrate into any Rust project and is fast, efficient, and secure.

### Secure password storage

Expand Down
87 changes: 27 additions & 60 deletions TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@
alt="Hash (HSH) logo" width="261" align="right" />

<!-- markdownlint-enable MD033 MD041 -->
# Hash (HSH)
# Hash (HSH) v0.0.4

Quantum-Resistant Cryptographic Hash Library for Password Hashing and
Verification in Rust 🦀
Verification

*Part of the [Mini Functions][0] family of libraries.*

<!-- markdownlint-disable MD033 MD041 -->
<center>
Expand All @@ -30,79 +32,40 @@ Verification in Rust 🦀

## Overview 📖

The Hash (HSH) library is a cryptographic hash library for password
hashing and verification in Rust, designed to provide robust security
for passwords, utilizing the latest advancements in quantum-resistant
cryptography.

The library is designed to be easy to use, with a simple API that allows
for the generation, retrieval, and verification of password hashes.

It supports the following hash algorithms:

- [**Argon2i**](<https://en.wikipedia.org/wiki/Argon2>): A memory-
hard password hashing function designed to be secure against both
brute-force attacks and rainbow table attacks.
- [**Bcrypt**](<https://en.wikipedia.org/wiki/Bcrypt>): A password
hashing function designed to be secure against brute-force attacks.
It is a work-factor function, which means that it takes a certain
amount of time to compute. This makes it difficult to attack with a
brute-force algorithm.
- [**Scrypt**](<https://en.wikipedia.org/wiki/Scrypt>): A password
hashing function designed to be secure against both brute-force
attacks and rainbow table attacks. It is a memory-hard and work-
factor function, which means that it requires a lot of memory and
time to compute. This makes it very difficult to attack with a GPU
or other parallel computing device.
The `Hash (HSH)` Rust library provides an interface for implementing secure hash and digest algorithms, specifically designed for password encryption and verification.

The library provides a simple API that makes it easy to store and verify hashed passwords. It enables robust security for passwords, using the latest advancements in **Quantum-resistant cryptography**. Quantum-resistant cryptography refers to cryptographic algorithms, that are thought to be secure against an attack by a quantum computer. As quantum computing continues to advance, this feature of the library assures that the passwords managed through this system remain secure even against cutting-edge computational capabilities.

The library supports the following Password Hashing Schemes (Password Based Key Derivation Functions):

- [**Argon2i**](<https://en.wikipedia.org/wiki/Argon2>): A cutting-edge and highly secure key derivation function designed to protect against both traditional brute-force attacks and rainbow table attacks. (Recommended)
- [**Bcrypt**](<https://en.wikipedia.org/wiki/Bcrypt>): A password hashing function designed to be secure against brute-force attacks. It is a work-factor function, which means that it takes a certain amount of time to compute. This makes it difficult to attack with a brute-force algorithm.
- [**Scrypt**](<https://en.wikipedia.org/wiki/Scrypt>): A password hashing function designed to be secure against both brute-force attacks and rainbow table attacks. It is a memory-hard and work-factor function, which means that it requires a lot of memory and time to compute. This makes it very difficult to attack with a GPU or other parallel computing device.

The library is a valuable tool for developers who need to store and verify passwords in a secure manner. It is easy to use and can be integrated into a variety of applications.

## Features ✨

- Generates string representations of the hash
- Includes methods for setting and verifying passwords against the hash
- Provides functions for generating hashes and salts
- Rust library for hashing and verifying passwords
- Supports external crates such as argon2rs, base64, bcrypt, scrypt, and
vrd.
- Supports multiple hash algorithms (argon2i, bcrypt, scrypt)
- Written in Rust for speed and security
- **Compliant with multiple Password Hashing Schemes (Password Based Key Derivation Functions) such as Argon2i, Bcrypt and Scrypt.** This makes the library more versatile and can be used in a variety of applications.
- **Quantum-resistant, making it secure against future attacks using quantum computers.** This is an important feature as quantum computers become more powerful.
- **Easy to use.** The library provides a simple API that makes it easy to store and verify hashed passwords.
- **Can be integrated into a variety of applications.** The library is written in Rust, which makes it easy to integrate into any Rust project and is fast, efficient, and secure.

### Secure password storage

Hash (HSH) provides a secure way to store and verify hashed passwords.
Passwords are hashed using the argon2i, bcrypt, scrypt algorithms, which
are considered one of the most secure hashing algorithms available
today. The library provides a simple interface for generating and
verifying hashes, making it easy to implement secure password storage
in any Rust application.
Hash (HSH) provides a secure way to store and verify hashed passwords. Passwords are hashed using the argon2i, bcrypt, scrypt algorithms, which are considered one of the most secure hashing algorithms available today. The library provides a simple interface for generating and verifying hashes, making it easy to implement secure password storage in any Rust application.

### Easy to use

Hash (HSH) includes simple functions for generating and verifying
password hashes, and managing password and salt values. Developers can
easily integrate the library into their Rust projects and start using
it right away. The library is designed to be intuitive and easy to use,
so developers can build apps without worrying about password security.
Hash (HSH) includes simple functions for generating and verifying password hashes, and managing password and salt values. Developers can easily integrate the library into their Rust projects and start using it right away. The library is designed to be intuitive and easy to use, so developers can build apps without worrying about password security.

### Flexible

Hash (HSH) allows users to customize the length of passwords and salts
used in generating hashes. This flexibility allows developers to tailor
the library to their specific needs, whether they require shorter or
longer password and salt values. The library also includes macros that
make it easy to work with the Hash structure, allowing developers to
quickly and easily set and retrieve password and salt values.
Hash (HSH) allows users to customize the length of passwords and salts used in generating hashes. This flexibility allows developers to tailor the library to their specific needs, whether they require shorter or longer password and salt values. The library also includes macros that make it easy to work with the Hash structure, allowing developers to quickly and easily set and retrieve password and salt values.

### Lightweight

Hash (HSH) is a lightweight library that can easily integrate into any
Rust project. The library has no external dependencies and is efficient.
It means that developers can add secure password storage to their
applications without having to worry about significant performance
overheads.

## Changelog 📚

-
Hash (HSH) is a lightweight library that can easily integrate into any Rust project. The library has no external dependencies and is efficient. It means that developers can add secure password storage to their applications without having to worry about significant performance overheads.

[0]: https://minifunctions.com/hsh
[2]: http://opensource.org/licenses/MIT
Expand All @@ -122,3 +85,7 @@ overheads.
[libs-badge]: https://img.shields.io/badge/lib.rs-v0.0.4-orange.svg?style=for-the-badge 'Lib.rs'
[license-badge]: https://img.shields.io/crates/l/hsh.svg?style=for-the-badge 'License'
[made-with-rust]: https://img.shields.io/badge/rust-f04041?style=for-the-badge&labelColor=c0282d&logo=rust 'Made With Rust'

## Changelog 📚

-
Loading

0 comments on commit b6992ef

Please sign in to comment.