# Product OS : Security
Product OS : Security provides a suite of helper tools to easily perform cryptograhpic operations including generating hashes, encrypting and decryting content.
### What is Product OS?
Product OS is a collection of packages that provide different tools and features that can work together to build products more easily for the Rust ecosystem.
## Installation
Use the Rust crate package manager [cargo](https://www.rust-lang.org/tools/install) to install Product OS : Security.
```bash
cargo add product-os-security
```
or add Product OS : Security to your cargo.toml ```[packages]``` section.
```rust
product-os-security = { version = "0.0.28", features = [], default-features = true, optional = false }
```
## Features
Product OS Security supports a number of features leveraging existing Rust libraries to help perform cryptographic operations including:
- Creating and verifying authentication requests
- Creating salted hashes
- Hex encoder and decoder
- Blake 2 Hash and MAC generator
- JWT token generator and claim manager
- JWT token verifier
- Certificate management
- Public and private key generator
- Public key signer and verifier
- Public and private key encryption and decryption
- Symmetric key encryption and decryption
- Diffie Hellman key management
- Secure key exchange using Diffie Hellman
- Time-based OTP generation
- Password hashing using Argon 2
- URI encoding and decoding for string safety
- Supports no_std with alloc only environments for most features
Note: the following features do not support no_std:
- jwt_encrypt_decrypt_std
- diffie_hellman_client_server_key_store
- public_private_encrypt_decrypt
- public_private_sign_verify
- certificates_openssl
- vendored-openssl
```rust
// Feature samples TODO
```
## Usage
```rust
// Examples TODO
```
## Contributing
Contributions are not currently available but will be available on a public repository soon.
## License
[GNU AGPLv3](https://choosealicense.com/licenses/agpl-3.0/)