Skip to content

ApelegHQ/c-sha2

Repository files navigation

🔒 SHA-2 implementation in C

Reliability Rating Vulnerabilities Bugs Security Rating Maintainability Rating NPM Downloads


🚀 Features

  • C implementation
  • JavaScript compiled from C
  • No dependencies
  • No async required
  • Supports SHA-256 (and SHA-512, but that's currently not part of the NPM package)
  • Can export the digest state
  • Can easily work with streams

💻 Installation

The C library can be compiled from source using cmake.

To install the JavaScript package, you can use npm or yarn:

npm install @exact-realty/sha2

or

yarn add @exact-realty/sha2

📚 Usage

Decrypting Data

import sha2 from '@exact-realty/sha2';

// Create a SHA-256 instance
const hasher = sha2();

// Update the hash with data
hasher.update(Buffer.from('Hello, world!'));

// Finalize the hash and get the result
const hashResult = hasher.finish();
// ArrayBuffer {
//  [Uint8Contents]: <31 5f 5b db 76 d0 78 c4 3b 8a c0 06 4e 4a 01 64 61 2b 1f
//    ce 77 c8 69 34 5b fc 94 c7 58 94 ed d3>,
//  byteLength: 32
// }

// Export the current state
const exportedState = hasher.exportState();
// ArrayBuffer {
//  [Uint8Contents]: <6a 09 e6 67 bb 67 ae 85 3c 6e f3 72 a5 4f f5 3a 51 0e 52
//    7f 9b 05 68 8c 1f 83 d9 ab 5b e0 cd 19 00 00 00 00 00 00 00 00 00 00 00 00
//    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
//    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
//    00 00 00 00 00 00 ... 4 more bytes>,
//  byteLength: 104
// }

// Import a previously exported state
hasher.importState(exportedState);

// Scrub the hash state
hasher.scrub();

🤝 Contributing

We welcome any contributions and feedback! Please feel free to submit pull requests, bug reports or feature requests to our GitHub repository.

📜 License

This project is released under the Apache 2.0 license. Check out the LICENSE file for more information.

About

No description, website, or topics provided.

Resources

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published