UNPKG

ig-trader

Version:

A client to programmatically spreadbet with IG

104 lines (69 loc) 2.94 kB
[Pidcrypt](https://www.pidder.de/pidcrypt/) (JS encryption library) for node.js/browserify ========================================================================================== This is a copy of the [pidCrypt javascript crypto library](https://www.pidder.de/pidcrypt/) with some modifications to make it compatible with node.js and browserify. Pidcrypt submodules are all accessible via `require`, and will automatically pull in any other submodule dependencies if needed. Installation ============ ``` bash npm install --save pidcrypt ``` Usage: ====== ### Encrypting text via AES (CBC) AES CBC is a relatively easy to use symmetric encryption method that has the added convenience of being compatible with `openssl` (included on almost any \*nix machine as well) ``` javascript // Require seedrandom.js first to increase randomness for stronger encryption require("pidcrypt/seedrandom") var pidCrypt = require("pidcrypt") require("pidcrypt/aes_cbc") var aes = new pidCrypt.AES.CBC() var pw = "some password"; var encrypted = aes.encryptText("some text", pw); console.log("Encrypted text is: '%s'", encrypted); // Encrypted text is: 'U2FsdGVkX19yGT01gBIBMJCEM7cBW6vc3ND06CyKu1w=' var decrypted = aes.decryptText(encrypted, pw); console.log("Original text was: '%s'", decrypted); // Original text was 'some text' ``` To perform the same encryption via openssl you'd use: ``` bash echo "some text" | openssl enc -aes-256-cbc -a -pass 'pass:some password' ``` ### Decyrpting text via AES (CBC) ``` javascript // Require seedrandom.js first to increase randomness for stronger encryption require("pidcrypt/seedrandom") var pidCrypt = require("pidcrypt") require("pidcrypt/aes_cbc") var aes = new pidCrypt.AES.CBC() var pw = "some password"; var encryptedText = 'U2FsdGVkX19yGT01gBIBMJCEM7cBW6vc3ND06CyKu1w='; var decrypted = aes.decryptText(encryptedText, pw); console.log("Decrypted text is: '%s'", decrypted); // Decrypted text is: 'some text' ``` To decrypt this via `openssl` you'd use: ``` bash echo U2FsdGVkX19yGT01gBIBMJCEM7cBW6vc3ND06CyKu1w= | openssl enc -aes-256-cbc -d -a -pass 'pass:some password' ``` Other encryption formats ======================== You can load any of the modules included with pidcrypt in the same manner as the `aes_cbc` module. For convenience here are all the included encryption/decryption modules: - `aes_cbc` - `aes_ctr` - `asn1` - `jsbn` - `md5` - `prng4` - `rsa` - `sha1` - `sha256` - `sha512` You can use any module in the same manner as above: ``` javascript // load pidcrypt var pidCrypt = require("pidcrypt"); // grab your module require("pidcrypt/<your module>"); // do stuff as per the pidcrypt documentation for that module... ``` See documentation on the [pidcrypt site](https://www.pidder.de/pidcrypt/) for more details.