Skip to content

Commit 920ac8b

Browse files
committed
Use secp256k1-node v3.0.0
1 parent 4a6e15d commit 920ac8b

18 files changed

+327
-562
lines changed

README.md

Lines changed: 2 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -89,109 +89,8 @@ identity.
8989

9090
## Examples
9191

92-
Example server
93-
94-
```javascript
95-
var express = require('express');
96-
var bodyParser = require('body-parser');
97-
var rawBody = require('../lib/middleware/rawbody');
98-
var bitauth = require('../lib/middleware/bitauth');
99-
100-
var users = {
101-
'Tf7UNQnxB8SccfoyZScQmb34V2GdEtQkzDz': {name: 'Alice'},
102-
'Tf22EUFxHWh4wmA3sDuw151W5C5g32jgph2': {name: 'Bob'}
103-
};
104-
105-
var pizzas = [];
106-
107-
var app = express();
108-
app.use(rawBody);
109-
app.use(bodyParser());
110-
111-
112-
app.get('/user', bitauth, function(req, res) {
113-
if(!req.sin || !users[req.sin]) return res.send(401, {error: 'Unauthorized'});
114-
res.send(200, users[req.sin]);
115-
});
116-
117-
app.post('/pizzas', bitauth, function(req, res) {
118-
if(!req.sin || !users[req.sin]) return res.send(401, {error: 'Unauthorized'});
119-
var pizza = req.body;
120-
pizza.owner = users[req.sin].name;
121-
pizzas.push(pizza);
122-
res.send(200, req.body);
123-
});
124-
125-
app.get('/pizzas', function(req, res) {
126-
res.send(200, pizzas);
127-
});
128-
129-
app.listen(3000);
130-
```
131-
132-
Example client
133-
134-
```javascript
135-
var request = require('request');
136-
var bitauth = require('../lib/bitauth');
137-
138-
// These can be generated with bitauth.generateSin()
139-
var keys = {
140-
alice: '38f93bdda21a5c4a7bae4eb75bb7811cbc3eb627176805c1009ff2099263c6ad',
141-
bob: '09880c962437080d72f72c8c63a69efd65d086c9e7851a87b76373eb6ce9aab5'
142-
};
143-
144-
// GET
145-
146-
for(k in keys) {
147-
var url = 'http://localhost:3000/user';
148-
var dataToSign = url;
149-
var options = {
150-
url: url,
151-
headers: {
152-
'x-identity': bitauth.getPublicKeyFromPrivateKey(keys[k]),
153-
'x-signature': bitauth.sign(dataToSign, keys[k])
154-
}
155-
};
156-
157-
request.get(options, function(err, response, body) {
158-
if(err) {
159-
console.log(err);
160-
}
161-
if(body) {
162-
console.log(body);
163-
}
164-
});
165-
}
166-
167-
var pizzas = ['pepperoni', 'sausage', 'veggie', 'hawaiian'];
168-
169-
// POST
170-
171-
for(k in keys) {
172-
var url = 'http://localhost:3000/pizzas';
173-
var data = {type: pizzas[Math.floor(Math.random() * pizzas.length)]};
174-
var dataToSign = url + JSON.stringify(data);
175-
var options = {
176-
url: url,
177-
headers: {
178-
'x-identity': bitauth.getPublicKeyFromPrivateKey(keys[k]),
179-
'x-signature': bitauth.sign(dataToSign, keys[k])
180-
},
181-
json: data
182-
};
183-
184-
request.post(options, function(err, response, body) {
185-
if(err) {
186-
console.log(err);
187-
}
188-
if(body) {
189-
console.log(body);
190-
}
191-
});
192-
}
193-
194-
```
92+
* [server](https://github.com/bitpay/bitauth/blob/master/examples/server.js)
93+
* [client](https://github.com/bitpay/bitauth/blob/master/examples/client.js)
19594

19695
## Middleware
19796
BitAuth exposes a connect middleware for use in connect or ExpressJS applications. Use:

benchmarks/index.js

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,60 @@
11
'use strict';
22

3-
var assert = require('assert');
43
var benchmark = require('benchmark');
5-
var bitauth = require('../lib/bitauth-node');
4+
var bitauth = require('../lib/bitauth');
65
var async = require('async');
76

87
var maxTime = 10;
98

109
async.series([
11-
function(next) {
12-
13-
var privkey = '9b3bdba1c7910017dae5d6cbfb2e86aafdccfbcbea518d1b984c45817b6c655b';
14-
var privkeyBuffer = new Buffer(privkey, 'hex');
10+
function (next) {
11+
// var privkey = '9b3bdba1c7910017dae5d6cbfb2e86aafdccfbcbea518d1b984c45817b6c655b';
12+
// var privkeyBuffer = new Buffer(privkey, 'hex');
1513
var pubkey = '03ff368ca67364d1df4c0f131b6a454d4fa14c00538357f03235917feabc1a9cb6';
1614
var pubkeyBuffer = new Buffer(pubkey, 'hex');
1715
var contract = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer vestibulum nibh neque, ac fermentum nunc pharetra in. Aenean orci velit, facilisis a gravida eu, ullamcorper feugiat dui. Sed quis eros sed sem egestas sagittis non sit amet arcu. Nulla feugiat purus et sem tempus convallis. Ut a odio consequat, vulputate nisl a, venenatis lectus. Aenean mi diam, pulvinar sed vehicula pulvinar, commodo quis justo. Pellentesque quis elementum eros. Sed ligula tellus, interdum non interdum eget, ultricies in ipsum. Maecenas vitae lectus sit amet ante volutpat malesuada. Nulla condimentum iaculis sem sit amet rhoncus. Mauris at vestibulum felis, a porttitor elit. Pellentesque rhoncus faucibus condimentum. Praesent auctor auctor magna, nec consectetur mi suscipit eget. Nulla sit amet ligula enim. Ut odio augue, auctor ac quam vel, aliquet mattis nisi. Curabitur orci lectus, viverra at hendrerit at, feugiat at magna. Morbi rhoncus bibendum erat, quis dapibus felis eleifend vitae. Etiam vel sapien consequat, tempor libero non, lobortis purus. Maecenas finibus pretium augue a ullamcorper. Donec consectetur sed nunc sed convallis. Phasellus eu magna a nisl lobortis finibus. Quisque hendrerit at arcu tempus gravida. Donec fringilla pulvinar sapien at porta. Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed dui metus, rhoncus at iaculis nec, porta at nunc. Donec in purus pellentesque, lacinia erat eget, congue massa. In a magna molestie tellus convallis dictum. Etiam id magna laoreet, suscipit leo non, egestas turpis. Sed dolor orci, pellentesque eget tempor ut, tincidunt at magna. Duis quis imperdiet sapien.';
1816
var contractBuffer = new Buffer(contract);
1917
var signature = '3045022100db71942a5a6dd1443cbf7519b2bc16a041aff8d4830bd42599f03ce503b8bf700220281989345617548d2512391a4b04450761df9add920d83043f9e21cb5baeb703';
2018
var signatureBuffer = new Buffer(signature, 'hex');
2119

22-
function nodebitauthVerify() {
20+
function nodebitauthVerify () {
2321
bitauth.verifySignature(contractBuffer, pubkeyBuffer, signatureBuffer);
2422
}
2523

2624
// #verifySignature
2725
var suite = new benchmark.Suite();
2826
suite.add('bitauth#verifySignature', nodebitauthVerify, { maxTime: maxTime });
2927
suite
30-
.on('cycle', function(event) {
28+
.on('cycle', function (event) {
3129
console.log(String(event.target));
3230
})
33-
.on('complete', function() {
31+
.on('complete', function () {
3432
console.log('---------------------------------------');
3533
next();
3634
})
3735
.run();
3836
},
39-
function(next) {
40-
37+
function (next) {
4138
// invalid checksum
4239
var sinbad = 'Tf1Jc1xSbqasm5QLwwSQc5umddx2h7mAMhX';
4340

44-
function nodebitauthValidateSin() {
41+
function nodebitauthValidateSin () {
4542
bitauth.validateSin(sinbad);
4643
}
4744

4845
// #validateSin
4946
var suite = new benchmark.Suite();
5047
suite.add('bitauth#validateSin', nodebitauthValidateSin, { maxTime: maxTime });
5148
suite
52-
.on('cycle', function(event) {
49+
.on('cycle', function (event) {
5350
console.log(String(event.target));
5451
})
55-
.on('complete', function() {
52+
.on('complete', function () {
5653
console.log('---------------------------------------');
5754
next();
5855
})
5956
.run();
6057
}
61-
], function(err) {
62-
console.log('Finished');
58+
], function (err) {
59+
console.log('Finished', err);
6360
});

browser.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
'use strict';
22

3-
module.exports = require('./lib/bitauth-browserify');
3+
var bitauth = require('./lib/bitauth');
4+
module.exports = bitauth;

examples/client.js

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ var keys = {
99

1010
// GET
1111

12-
for(k in keys) {
12+
for (var k in keys) {
1313
var url = 'http://localhost:3000/user';
1414
var dataToSign = url;
1515
var options = {
@@ -20,25 +20,20 @@ for(k in keys) {
2020
}
2121
};
2222

23-
request.get(options, function(err, response, body) {
24-
if(err) {
25-
console.log(err);
26-
}
27-
if(body) {
28-
console.log(body);
29-
}
23+
request.get(options, function (err, response, body) {
24+
console.log(err !== null ? err : body);
3025
});
3126
}
3227

3328
var pizzas = ['pepperoni', 'sausage', 'veggie', 'hawaiian'];
3429

3530
// POST
3631

37-
for(k in keys) {
38-
var url = 'http://localhost:3000/pizzas';
32+
for (k in keys) {
33+
url = 'http://localhost:3000/pizzas';
3934
var data = {type: pizzas[Math.floor(Math.random() * pizzas.length)]};
40-
var dataToSign = url + JSON.stringify(data);
41-
var options = {
35+
dataToSign = url + JSON.stringify(data);
36+
options = {
4237
url: url,
4338
headers: {
4439
'x-identity': bitauth.getPublicKeyFromPrivateKey(keys[k]),
@@ -47,12 +42,7 @@ for(k in keys) {
4742
json: data
4843
};
4944

50-
request.post(options, function(err, response, body) {
51-
if(err) {
52-
console.log(err);
53-
}
54-
if(body) {
55-
console.log(body);
56-
}
45+
request.post(options, function (err, response, body) {
46+
console.log(err !== null ? err : body);
5747
});
5848
}

examples/server.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,26 @@ var app = express();
1414
app.use(rawBody);
1515
app.use(bodyParser());
1616

17+
app.get('/user', bitauthMiddleware, function (req, res) {
18+
if (!req.sin || !users[req.sin]) {
19+
return res.send(401, {error: 'Unauthorized'});
20+
}
1721

18-
app.get('/user', bitauthMiddleware, function(req, res) {
19-
if(!req.sin || !users[req.sin]) return res.send(401, {error: 'Unauthorized'});
2022
res.send(200, users[req.sin]);
2123
});
2224

23-
app.post('/pizzas', bitauthMiddleware, function(req, res) {
24-
if(!req.sin || !users[req.sin]) return res.send(401, {error: 'Unauthorized'});
25+
app.post('/pizzas', bitauthMiddleware, function (req, res) {
26+
if (!req.sin || !users[req.sin]) {
27+
return res.send(401, {error: 'Unauthorized'});
28+
}
29+
2530
var pizza = req.body;
2631
pizza.owner = users[req.sin].name;
2732
pizzas.push(pizza);
2833
res.send(200, req.body);
2934
});
3035

31-
app.get('/pizzas', function(req, res) {
36+
app.get('/pizzas', function (req, res) {
3237
res.send(200, pizzas);
3338
});
3439

0 commit comments

Comments
 (0)