Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/simplito/privmx-crypto-js
Javascript crypto library ...
https://github.com/simplito/privmx-crypto-js
aes cryptography ecc nodejs rsa srp web
Last synced: about 12 hours ago
JSON representation
Javascript crypto library ...
- Host: GitHub
- URL: https://github.com/simplito/privmx-crypto-js
- Owner: simplito
- License: mit
- Created: 2017-10-20T12:47:19.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-10-31T08:16:29.000Z (15 days ago)
- Last Synced: 2024-10-31T09:20:28.329Z (15 days ago)
- Topics: aes, cryptography, ecc, nodejs, rsa, srp, web
- Language: JavaScript
- Homepage:
- Size: 1.71 MB
- Stars: 5
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# PrivMX Crypto Java Script ....
## Information
...
Keywords: Hash HMAC AES XTEA RSA KeyDerivation ECC BIP39 SRP Random ...
This software is licensed under the MIT License.
Projects which use the library: [PrivMX WebMail](https://privmx.com), ...
## Installation
...
## Implementation details
...
## API description
### Hash functions
| Name | Description | Params | Result |
|:-----|:------------|:-------|:-------|
| sha1 | SHA-1 (20 bytes long) | Buffer data | Promise<Buffer>
| sha256 | SHA-256 (32 bytes long) | Buffer data | Promise<Buffer>
| sha512 | SHA-512 (64 bytes long) | Buffer data | Promise<Buffer>### Hmac functions
| Name | Description | Params | Result |
|:-----|:------------|:-------|:-------|
| hmacSha1 | HMAC-SHA-1 | Buffer key
Buffer data | Promise<Buffer> |
| hmacSha256 | HMAC-SHA-256 | Buffer key
Buffer data | Promise<Buffer> |
| hmacSha512 | HMAC-SHA-512 | Buffer key
Buffer data | Promise<Buffer> |### AES encryption
| Name | Description | Params | Result |
|:-----|:------------|:-------|:-------|
| aes256Ecb | AES-256-ECB | Buffer data
Buffer key | Promise<Buffer> |
| aes256EcbDecrypt | AES-256-ECB | Buffer data
Buffer key | Promise<Buffer> |
| aes256CbcPcks7Encrypt | AES-256-CBC with PKCS7 padding encryption | Buffer data
Buffer key
Buffer iv | Promise<Buffer> |
| aes256CbcPcks7Decrypt | AES-256-CBC with PKCS7 padding decryption | Buffer data
Buffer key
Buffer iv | Promise<Buffer> |
| aes256CbcHmac256Encrypt | AES-256-CBC with PKCS7 padding and SHA-256 HMAC with NIST compatible KDF | Buffer data
Buffer key
bool deterministic, default: false
number taglen, default: 16 | Promise<Buffer> |
| aes256CbcHmac256Decrypt | AES-256-CBC with PKCS7 padding and SHA-256 HMAC with NIST compatible KDF | Buffer data
Buffer key
number taglen, default: 16 | Promise<Buffer> |### XTEA encryption
| Name | Description | Params | Result |
|:-----|:------------|:-------|:-------|
| xteaEcbPkcs7Encrypt | XTEA-ECB with PKCS7 padding encryption | Buffer data
Buffer key | Promise<Buffer> |
| xteaEcbPkcs7Decrypt | XTEA-ECB with PKCS7 padding decryption | Buffer data
Buffer key | Promise<Buffer> |### RSA encryption
| Name | Description | Params | Result |
|:-----|:------------|:-------|:-------|
| rsaGenerateKey | | number bits | Promise<string> |
| rsaOaepEncrypt | | string key
Buffer data | Promise<Buffer> |
| rsaOaepDecrypt | | string key
Buffer data | Promise<Buffer> |
| rsaSign | | string key
Buffer data | Promise<Buffer> |
| rsaVerify | | string key
Buffer signature
Buffer data | Promise<boolean> |
| encryptPrivateKey | | string key
string passphrase | Promise<string> |
| decryptPrivateKey | | string enckey
string passphrase | Promise<string> |### Key derivation
| Name | Description | Params | Result |
|:-----|:------------|:-------|:-------|
| pbkdf2 | | string password
Buffer salt
number rounds
number length
string algorithm | Promise<Buffer> |
| prf_tls12 | | Buffer key
Buffer seed
number length | Promise<Buffer> |### ECC functions
| Name | Description | Params | Result |
|:-----|:------------|:-------|:-------|
| signToCompactSignature | | Ecc.PrivateKey key
Buffer message | Promise<Buffer> |
| verifyCompactSignature | | Ecc.PublicKey key
Buffer data
Buffer signature | Promise<bool> |
| signToCompactSignatureWithHash | | Ecc.PrivateKey key
Buffer message | Promise<Buffer> |
| verifyCompactSignatureWithHash | | Ecc.PublicKey key
Buffer data
Buffer signature | Promise<bool> |
| getSharedKey | | Ecc.PrivateKey private
Ecc.PublicKey public | Promise<Buffer> |
| deriveHardened | | Ecc.ExtKey key
number index | Promise<Ecc.ExtKey> |
| eciesEncrypt | | Ecc.PrivateKey private
Ecc.PublicKey public
Buffer data | Promise<Buffer> |
| eciesDecrypt | | Ecc.PrivateKey private
Ecc.PublicKey public
Buffer data | Promise<Buffer> |### BIP39 functions
```javascript
interface Bip39Result {
entropy: Buffer;
mnemonic: Buffer;
extKey: Ecc.ExtKey;
};
```| Name | Description | Params | Result |
|:-----|:------------|:-------|:-------|
| bip39Generate | | number strength
string password | Promise<Bip39Result> |
| bip39FromEntropy | | Buffer entropy
string password | Promise<Bip39Result> |
| bip39FromMnemonic | | Buffer entropy
string password | Promise<Bip39Result> |
| bip39GetExtKey | | Buffer entropy
string password | Promise<Ecc.ExtKey> |### SRP functions
```javascript
interface RegisterResult {
s: Buffer;
v: Buffer;
};interface LoginStep1Result {
A: Buffer;
K: Buffer;
M1: Buffer;
M2: Buffer;
};
```| Name | Description | Params | Result |
|:-----|:------------|:-------|:-------|
| srpRegister | | Buffer N
Buffer g
string I
string P | Promise<RegisterResult> |
| srpLoginStep1 | | Buffer N
Buffer g
Buffer s
Buffer B
Buffer k
string I
string P | Promise<LoginStep1Result> |
| srpLoginStep2 | | Buffer clientM2
Buffer serverM2 | Promise<void> |### Random generation
| Name | Description | Params | Result |
|:-----|:------------|:-------|:-------|
| randomFeed | | Buffer feed | void |
| randomInt32 | | void | number |
| randomDouble | | void | number |
| randomBytes | | number count | Buffer |
| randomBits | | number count | Buffer |
| randomBN | | BN max | BN |### Misc.
| Name | Description | Params | Result |
|:-----|:------------|:-------|:-------|
| reductKey | Reducts 32-bytes long key to 16-bytes long by SHA-256 and takes first 16 bytes | Buffer key | Promise<Buffer> |
| generateIv | Generates IV from index for AES (16 bytes long) | Buffer key
number index | Promise<Buffer> |### Build
```
gulp
```### Test
#### Browser tests
```
npm start
```
and browse http://localhost:8123/#### Mocha tests
```
npm test
```