All Projects → anvilresearch → Webcrypto

anvilresearch / Webcrypto

Licence: mit
W3C Web Cryptography API for Node.js

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Webcrypto

Go Jose
An implementation of JOSE standards (JWE, JWS, JWT) in Go
Stars: ✭ 1,849 (+2240.51%)
Mutual labels:  encryption, signing, jose
Jose
JSON Object Signing and Encryption for Node.js and the browser
Stars: ✭ 25 (-68.35%)
Mutual labels:  encryption, signing, jose
Lazysodium Android
An Android implementation of the Libsodium cryptography library. For the lazy dev.
Stars: ✭ 69 (-12.66%)
Mutual labels:  hashing, cryptography, encryption
Joseswift
A framework for the JOSE standards JWS, JWE, and JWK written in Swift.
Stars: ✭ 114 (+44.3%)
Mutual labels:  encryption, signing, jose
Cli
🧰 A zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc.
Stars: ✭ 2,151 (+2622.78%)
Mutual labels:  cryptography, encryption, jose
Easycrypt
Android cryptography library with SecureRandom patches.
Stars: ✭ 102 (+29.11%)
Mutual labels:  hashing, cryptography, encryption
jose-simple
Jose-Simple allows the encryption and decryption of data using the JOSE (JSON Object Signing and Encryption) standard.
Stars: ✭ 50 (-36.71%)
Mutual labels:  encryption, signing, jose
Enigma
Enigma cipher tool
Stars: ✭ 13 (-83.54%)
Mutual labels:  cryptography, encryption
Featherduster
An automated, modular cryptanalysis tool; i.e., a Weapon of Math Destruction
Stars: ✭ 876 (+1008.86%)
Mutual labels:  cryptography, encryption
Sephia Five
A secure and PGP enabled webmail module for Phosphorus Five
Stars: ✭ 21 (-73.42%)
Mutual labels:  cryptography, encryption
Esecurity
MSc Module
Stars: ✭ 49 (-37.97%)
Mutual labels:  hashing, cryptography
Halite
High-level cryptography interface powered by libsodium
Stars: ✭ 933 (+1081.01%)
Mutual labels:  cryptography, encryption
Virgil Crypto Php
Virgil PHP Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.
Stars: ✭ 22 (-72.15%)
Mutual labels:  cryptography, encryption
Pki.js
PKI.js is a pure JavaScript library implementing the formats that are used in PKI applications (signing, encryption, certificate requests, OCSP and TSP requests/responses). It is built on WebCrypto (Web Cryptography API) and requires no plug-ins.
Stars: ✭ 960 (+1115.19%)
Mutual labels:  encryption, signing
Simon speck ciphers
Implementations of the Simon and Speck Block Ciphers
Stars: ✭ 74 (-6.33%)
Mutual labels:  cryptography, encryption
Java Crypto Utils
Java Cryptographic, Encoding and Hash Utilities
Stars: ✭ 15 (-81.01%)
Mutual labels:  cryptography, encryption
Fernet Java8
Java 8 implementation of the Fernet Specification
Stars: ✭ 24 (-69.62%)
Mutual labels:  cryptography, encryption
Node Argon2
Node.js bindings for Argon2 hashing algorithm
Stars: ✭ 1,008 (+1175.95%)
Mutual labels:  hashing, encryption
Fhe Toolkit Linux
IBM Fully Homomorphic Encryption Toolkit For Linux. This toolkit is a Linux based Docker container that demonstrates computing on encrypted data without decrypting it! The toolkit ships with two demos including a fully encrypted Machine Learning inference with a Neural Network and a Privacy-Preserving key-value search.
Stars: ✭ 1,123 (+1321.52%)
Mutual labels:  cryptography, encryption
Wolfssl
wolfSSL (formerly CyaSSL) is a small, fast, portable implementation of TLS/SSL for embedded devices to the cloud. wolfSSL supports up to TLS 1.3!
Stars: ✭ 1,098 (+1289.87%)
Mutual labels:  cryptography, encryption

NOTICE

We’re archiving Anvil Connect and all related packages. This code is entirely MIT Licensed. You’re free to do with it what you want. That said, we are recommending against using it, due to the potential for security issues arising from unmaintained software. For more information, see the announcement at anvil.io.

W3C Web Cryptography API (@trust/webcrypto)

standard-readme compliant Build Status

W3C Web Cryptography API for Node.js

W3C's Web Cryptography API defines a standard interface for performing cryptographic operations in JavaScript, such as key generation, hashing, signing, and encryption. This package implements the API for Node.js, in order to support universal crypto-dependent code required by protocols such as JOSE and OpenID Connect.

Table of Contents

Security

TBD

Background

The purpose of this package is to enable development of universal JavaScript libraries that depend on the availability of cryptographic primitives in order to implement cryptographic protocols. The long term goal of the project is to encourage or provide a native, if not core Web Cryptography module.

Install

@trust/webcrypto requires recent versions of node and npm to run. For key generation operations, it also requires OpenSSL to be installed on the system.

$ npm install @trust/webcrypto --save

Not for use in Webpack

This library is not for use in Webpack.

The whole point of this library is that it's an exact duplicate of the browser's WebCrypto API, for the server side.

For Webpacked web applications, you don't need it (and can't use it). If this module is transitively included by another dependency, you have to exclude it by adding it to the externals section in the Webpack config, such as this:

externals: {
  '@trust/webcrypto': 'crypto'
}

Usage

const crypto = require('@trust/webcrypto')

Develop

Install

$ git clone [email protected]:anvilresearch/webcrypto.git
$ cd webcrypto
$ npm install

Test

$ npm test

Supported Algorithms

Algorithm name encrypt decrypt sign verify digest generateKey deriveKey deriveBits importKey exportKey wrapKey unwrapKey
RSASSA-PKCS1-v1_5
RSA-PSS
RSA-OAEP
ECDSA
EDDSA
ECDH _ _ _ _ _
AES-CTR
AES-CBC
AES-GCM
AES-KW
HMAC
SHA-1
SHA-256
SHA-384
SHA-512
HKDF _ _ _
PBKDF2 _ _ _

Key:

Implemented _ Currently not implemented Partially implemented, only certain paramaters supported.

Partial Support

Only the following paramaters are supported for the corresponding algorithm.

Algorithm name Supported paramater
ECDSA K-256 (secp256k1), P-256, P-384, P-512
EDDSA ed25519
AES-CTR sha-1

API

See W3C Web Cryptography API specification and diafygi's webcrypto-examples.

Contribute

Issues

  • Please file issues :)
  • When writing a bug report, include relevant details such as platform, version, relevant data, and stack traces
  • Ensure to check for existing issues before opening new ones
  • Read the documentation before asking questions
  • It is strongly recommended to open an issue before hacking and submitting a PR
  • We reserve the right to close an issue for excessive bikeshedding

Pull requests

Policy

  • We're not presently accepting unsolicited pull requests
  • Create an issue to discuss proposed features before submitting a pull request
  • Create an issue to propose changes of code style or introduce new tooling
  • Ensure your work is harmonious with the overall direction of the project
  • Ensure your work does not duplicate existing effort
  • Keep the scope compact; avoid PRs with more than one feature or fix
  • Code review with maintainers is required before any merging of pull requests
  • New code must respect the style guide and overall architecture of the project
  • Be prepared to defend your work

Style guide

  • ES6
  • Standard JavaScript
  • jsdocs

Code reviews

  • required before merging PRs
  • reviewers MUST run and test the code under review

Collaborating

Weekly project meeting

  • Thursdays from 1:00 PM to 2:00 Eastern US time at [TBD]
  • Join remotely with Google Hangouts

Pair programming

  • Required for new contributors
  • Work directly with one or more members of the core development team

Code of conduct

Contributors

MIT License

Copyright (c) 2016 Anvil Research, Inc.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].