crypto: make pbkdf2() compatible with domains
This commit is contained in:
parent
d1eff9ab68
commit
7d0543c128
@ -4201,7 +4201,7 @@ struct pbkdf2_req {
|
|||||||
size_t iter;
|
size_t iter;
|
||||||
char* key;
|
char* key;
|
||||||
size_t keylen;
|
size_t keylen;
|
||||||
Persistent<Function> callback;
|
Persistent<Object> obj;
|
||||||
};
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -4236,16 +4236,13 @@ EIO_PBKDF2After(uv_work_t* req) {
|
|||||||
argv[1] = Local<Value>::New(Undefined());
|
argv[1] = Local<Value>::New(Undefined());
|
||||||
}
|
}
|
||||||
|
|
||||||
// XXX There should be an object connected to this that
|
MakeCallback(request->obj, "ondone", ARRAY_SIZE(argv), argv);
|
||||||
// we can attach a domain onto.
|
|
||||||
MakeCallback(Context::GetCurrent()->Global(),
|
|
||||||
request->callback,
|
|
||||||
ARRAY_SIZE(argv), argv);
|
|
||||||
|
|
||||||
delete[] request->pass;
|
delete[] request->pass;
|
||||||
delete[] request->salt;
|
delete[] request->salt;
|
||||||
delete[] request->key;
|
delete[] request->key;
|
||||||
request->callback.Dispose();
|
request->obj.Dispose();
|
||||||
|
request->obj.Clear();
|
||||||
|
|
||||||
delete request;
|
delete request;
|
||||||
}
|
}
|
||||||
@ -4267,6 +4264,7 @@ PBKDF2(const Arguments& args) {
|
|||||||
Local<Function> callback;
|
Local<Function> callback;
|
||||||
pbkdf2_req* request = NULL;
|
pbkdf2_req* request = NULL;
|
||||||
uv_work_t* req = NULL;
|
uv_work_t* req = NULL;
|
||||||
|
Persistent<Object> obj;
|
||||||
|
|
||||||
if (args.Length() != 5) {
|
if (args.Length() != 5) {
|
||||||
type_error = "Bad parameter";
|
type_error = "Bad parameter";
|
||||||
@ -4324,7 +4322,8 @@ PBKDF2(const Arguments& args) {
|
|||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
callback = Local<Function>::Cast(args[4]);
|
obj = Persistent<Object>::New(Object::New());
|
||||||
|
obj->Set(String::New("ondone"), args[4]);
|
||||||
|
|
||||||
request = new pbkdf2_req;
|
request = new pbkdf2_req;
|
||||||
request->err = 0;
|
request->err = 0;
|
||||||
@ -4335,7 +4334,7 @@ PBKDF2(const Arguments& args) {
|
|||||||
request->iter = iter;
|
request->iter = iter;
|
||||||
request->key = key;
|
request->key = key;
|
||||||
request->keylen = keylen;
|
request->keylen = keylen;
|
||||||
request->callback = Persistent<Function>::New(callback);
|
request->obj = obj;
|
||||||
|
|
||||||
req = new uv_work_t();
|
req = new uv_work_t();
|
||||||
req->data = request;
|
req->data = request;
|
||||||
|
@ -34,3 +34,4 @@ crypto.randomBytes(8);
|
|||||||
crypto.randomBytes(8, function() {});
|
crypto.randomBytes(8, function() {});
|
||||||
crypto.pseudoRandomBytes(8);
|
crypto.pseudoRandomBytes(8);
|
||||||
crypto.pseudoRandomBytes(8, function() {});
|
crypto.pseudoRandomBytes(8, function() {});
|
||||||
|
crypto.pbkdf2('password', 'salt', 8, 8, function() {});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user