Skip to content
/ mipher Public

Mobile Cipher library written in clean TypeScript

License

Notifications You must be signed in to change notification settings

mpaland/mipher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mipher

npm npm Dependency Status Github Issues Github Releases GitHub license

Mobile Cipher crypto library written in clean TypeScript

Highligths and design goals

There are a lot of crypto libs in JS around, but I needed a clean, lightweight, reliable, fast and simple lib for mobile devices in TypeScript. That's mipher.
A collection of common crypto algorithms, optimized for speed, security and size.

  • Only usage of modern typed arrays like Uint8Array and Uint32Array as message/data types
  • Fast and simple, no dependencies
  • Own crypto random generator (using a FORTUNA implementation)
  • Extensive passing test suite
  • MIT license

Supported algorithms

  • AES
  • Serpent
  • Chacha20
  • Curve25519, Ed25519
  • HMAC
  • PBKDF2
  • SHA-1, SHA-256, SHA-512, SHA-3, Keccak, SHAKE
  • UUID
  • Random generator
  • Blockmodes (ECB, CBC, CTR)
  • Padding (PKCS5, PKCS7, zero padding)
  • Format converter (bin, number, hex, base64, string)
  • Utils (xor, cryptocompare etc.)

Usage

Import the mipher module as mipher and create your according crypto object:

import * as mipher from 'mipher';

let aes = new mipher.AES();
let ct  = aes.encrypt(key, pt);

Test suite

mipher is using the mocha test suite for testing. To do all tests just run npm run test.

Contributing

If you find any bugs, have any comments, improvements or suggestions:

  1. Create an issue and describe your idea
  2. Fork it
  3. Create your feature branch (git checkout -b my-new-feature)
  4. Commit your changes (git commit -am 'Add some feature')
  5. Publish the branch (git push origin my-new-feature)
  6. Create a new pull request
  7. Profit! ✅

License

mipher is written under the MIT license.