Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80556 views
1
var createHash = require('create-hash');
2
module.exports = function evp(password, salt, keyLen) {
3
keyLen = keyLen/8;
4
var ki = 0;
5
var ii = 0;
6
var key = new Buffer(keyLen);
7
var addmd = 0;
8
var md, md_buf;
9
var i;
10
while (true) {
11
md = createHash('md5');
12
if(addmd++ > 0) {
13
md.update(md_buf);
14
}
15
md.update(password);
16
md.update(salt);
17
md_buf = md.digest();
18
i = 0;
19
if(keyLen > 0) {
20
while(true) {
21
if(keyLen === 0) {
22
break;
23
}
24
if(i === md_buf.length) {
25
break;
26
}
27
key[ki++] = md_buf[i++];
28
keyLen--;
29
}
30
}
31
if(keyLen === 0) {
32
break;
33
}
34
}
35
for(i=0;i<md_buf.length;i++) {
36
md_buf[i] = 0;
37
}
38
return key;
39
};
40