https://github.com/basedwon/crpdo
A unified cryptographic library integrating diverse modules to provide robust and versatile cryptographic solutions for Node.js and the browser.
https://github.com/basedwon/crpdo
cryptography encryption hashing tweetnacl
Last synced: 6 months ago
JSON representation
A unified cryptographic library integrating diverse modules to provide robust and versatile cryptographic solutions for Node.js and the browser.
- Host: GitHub
- URL: https://github.com/basedwon/crpdo
- Owner: basedwon
- License: mit
- Created: 2023-07-31T10:09:23.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-11-02T04:23:29.000Z (over 2 years ago)
- Last Synced: 2025-08-09T04:03:39.225Z (6 months ago)
- Topics: cryptography, encryption, hashing, tweetnacl
- Language: JavaScript
- Homepage:
- Size: 38.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Contributing: docs/contributing.md
- License: LICENSE
Awesome Lists containing this project
README
# crpdo
> those who know, crpdo
[](https://www.npmjs.com/package/crpdo)
[](https://gitlab.com/basedwon/crpdo/-/pipelines)
[](https://gitlab.com/basedwon/crpdo/-/blob/master/LICENSE)
[](https://www.npmjs.com/package/crpdo)
[](https://gitlab.com/basedwon/crpdo)
[](https://github.com/basedwon/crpdo)
[](https://twitter.com/basdwon)
[](https://discordapp.com/users/basedwon)
Crpdo, a unified cryptographic library, eases the intricacies of cryptographic tasks by integrating a diverse set of submodules. Each module - Crypto, Key, Merkle, and others - serves a unique purpose, and when combined, they deliver a robust cryptographic solution that caters to various security requirements.
## Features
- Comprehensive suite of cryptographic methods
- Incorporates an array of modules including `coins`, `crypto`, `key`, `merkle` and `time`, and more...
- Extensive test coverage to ensure functionality and security
- Cross-environment support: Node.js and the browser
## Modules
Under a common namespace, Crpdo re-exports these submodules, thus offering a streamlined interface for engaging with a broad array of cryptographic operations.
### Crypto
`@crpdo/crypto`, the Crypto module, constitutes the cornerstone of the Crpdo library, furnishing an assortment of cryptographic utilities. The Crpdo class enhances these functionalities to include encryption, decryption, and key manipulation.
### Key
The Key module, `@crpdo/key`, presents tools to generate and handle cryptographic keys, encompassing the creation of signing keys, boxing keys, and multi-keys.
### Merkle
The Merkle module, `@crpdo/merkle`, focuses on the construction of Merkle trees, a crucial data structure in numerous cryptographic systems.
### Time
The Time module, `@crpdo/time`, provides utilities revolving around time-based one-time password (TOTP) generation, verification, and Network Time Protocol (NTP) computations.
### Coins
The Coins module, `@crpdo/coins`, offers a host of methods to manage a variety of cryptocurrencies, such as deriving paths for coin symbols, obtaining coin type IDs, and generating Bitcoin or Ethereum addresses for specific public keys.
## Installation
```sh
npm install crpdo
```
## Usage
Import the crpdo library directly:
```js
const Crypto = require('crpdo')
const hash = Crypto.hash('foo')
// much much more...
const fooHash = hash('foo')
// many algos
const secureFoo = hash.sha3('foo')
```
Import the submodules and crpdo through destructuring:
```js
const { Crypto, Key, Merkle } = require('crpdo')
// Now you can use Crypto, Key, and Merkle...
```
```js
const { Time, Crypto } = Crypto
const secret = 'my_secret'
// Generate a TOTP
const totp = Time.code(secret)
console.log(`Generated TOTP: ${totp}`)
// Validate the TOTP
const isValid = Time.verify(totp, secret)
console.log(`Valid TOTP: ${isValid}`) // => Valid TOTP: true
// Many more functions...
```
## Documentation
- [API Reference](/docs/api.md)
## Tests
In order to run the test suite, simply clone the repository and install its dependencies:
```bash
git clone https://gitlab.com/basedwon/crpdo.git
cd basd
npm install
```
To run the tests:
```bash
npm test
```
## Contributing
Thank you! Please see our [contributing guidelines](/docs/contributing.md) for details.
## Donations
If you find this project useful and want to help support further development, please send us some coin. We greatly appreciate any and all contributions. Thank you!
**Bitcoin (BTC):**
```
1JUb1yNFH6wjGekRUW6Dfgyg4J4h6wKKdF
```
**Monero (XMR):**
```
46uV2fMZT3EWkBrGUgszJCcbqFqEvqrB4bZBJwsbx7yA8e2WBakXzJSUK8aqT4GoqERzbg4oKT2SiPeCgjzVH6VpSQ5y7KQ
```
## License
crpdo is [MIT licensed](https://gitlab.com/basedwon/crpdo/-/blob/master/LICENSE).