0.0.5 • Published 12 years ago

nrsa v0.0.5

Weekly downloads
10
License
-
Repository
github
Last release
12 years ago
  • Node RSA This module provides access to RSA public-key routines from OpenSSL. Support is limited to encryption with a public key, decryption with a private key. Implementation uses OpenSSL RSA keys encoded by using ASN.1 and Base64. ** Implementation Notes

    • This module was originally implemented by [http://github.com/chrisa/node-rsa].
    • Configurable padding feature was implemented by [http://github.com/elaberge/node-rsa].
    • Katyo was found what native encoding feature has bugs, so base64 throws a segmentation fault. Therefore native encoding feature was replaced by implementation which uses NodeJS Buffer object for this purpose. Installation /By using NPM it's simply:/ : npm install nrsa Usage Importing : var RSA = require('nrsa'); Initialization
    • Automated : var options = { : publicKey: "RSA Public Key Data (for encryption only)", : privateKey: "RSA Private Key Data", : passphrase: "RSA Private Key Passphrase (optional)", : padding: "RSA Encription Padding (oaep by default)" : }; : var keypair = RSA.createRsaKeypair(options);

    • Manual : var keypair = new RSA.RsaKeypair(); : keypair.setPublicKey("RSA Public Key Data (for encryption only)"); : keypair.setPrivateKey("RSA Private Key Data", "RSA Private Key Passphrase (optional)"); : keypair.setPadding("RSA Encription Padding (oaep by default)"); *** Application

    • Encryption : var encrypted = keypair.encrypt("source data", "source encoding", "encrypted encoding");

    • Decryption : var decrypted = keypair.decrypt("encrypted data", "encrypted encoding", "decrypted encoding");

      See test/test.js and test/getters.js. Description * Padding Next OpenSSL paddings supported: | Padding | OpenSSL constant | |---------+------------------------| | oaep | RSA_PKCS1_OAEP_PADDING | | pkcs1 | RSA_PKCS1_PADDING | | sslv23 | RSA_SSLV23_PADDING | | none | RSA_NO_PADDING | Note: RSA Encryption without padding insecure. * Keys Keys must be in PEM format (ASN.1 and Base64 encoded). Node Versions This module should work on both Node.js 0.4.x and 0.6.x. ** Licence BSD, see LICENCE.