-
Notifications
You must be signed in to change notification settings - Fork 43
/
README
48 lines (34 loc) · 1.45 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
node-crypto
===========
A wrapper around openssl for node.js, currently exposing Hashing, Signing
and Verifying methods.
Version 0.0.3 : Added cipher / decipher, thanks to Frans-Willem Hardijzer.
To install, ensure that you have openssl installed, and run:
node-waf configure
node-waf build
This will put the crypto.node binary module in build/default.
The hashing, signing and verifying methods can work with binary, hex or
base64 encoded strings.
The encrypt / decrypt methods work with binary, hex or base64 encodings,
with streaming.
Quick example
-------------
var sys=require("sys");
var posix=require('posix');
var crypto=require("./crypto");
// Test hashing
var h1 = (new crypto.Hash).init("sha1").update("Test123").digest("hex");
var h2 = (new crypto.Hash).init("sha1").update("Test").update("123").digest("hex");
sys.puts(h1===h2);
// Load our public and private keys
var keyPem = posix.cat("test_key.pem").wait();
var certPem = posix.cat("test_cert.pem").wait();
// Test signing and verifying
var s1 = (new crypto.Sign).init("RSA-SHA256").update("Test123").sign(keyPem, "base64");
sys.puts((new crypto.Verify).init("RSA-SHA256").update("Test").update("123").verify(certPem, s1, "base64"));
// Test encryption and decryption
var plaintext="Keep this a secret? No! Tell everyone about node.js!";
var cipher=(new crypto.Cipher).init("aes192", "MySecretKey123");
var ciph=cipher.update(plaintext, 'utf8', 'hex');
ciph+=cipher.final('hex');
sys.puts(ciph);