Skip to content

Commit c1e8c8d

Browse files
committed
crypto: Pass encodings to C++ for Sign/Verify
1 parent 430dc39 commit c1e8c8d

1 file changed

Lines changed: 12 additions & 6 deletions

File tree

src/node_crypto.cc

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3054,6 +3054,11 @@ class Sign : public ObjectWrap {
30543054
ASSERT_IS_BUFFER(args[0]);
30553055
ssize_t len = Buffer::Length(args[0]);
30563056

3057+
enum encoding encoding = BUFFER;
3058+
if (args.Length() >= 2) {
3059+
encoding = ParseEncoding(args[1]->ToString(), BUFFER);
3060+
}
3061+
30573062
char* buf = new char[len];
30583063
ssize_t written = DecodeWrite(buf, len, args[0], BUFFER);
30593064
assert(written == len);
@@ -3069,7 +3074,8 @@ class Sign : public ObjectWrap {
30693074

30703075
delete [] buf;
30713076

3072-
outString = Encode(md_value, md_len, BUFFER);
3077+
outString = StringBytes::Encode(
3078+
reinterpret_cast<const char*>(md_value), md_len, encoding);
30733079

30743080
delete [] md_value;
30753081
return scope.Close(outString);
@@ -3290,21 +3296,21 @@ class Verify : public ObjectWrap {
32903296
ssize_t hlen = StringBytes::Size(args[1], encoding);
32913297

32923298
if (hlen < 0) {
3293-
delete [] kbuf;
3299+
delete[] kbuf;
32943300
Local<Value> exception = Exception::TypeError(String::New("Bad argument"));
32953301
return ThrowException(exception);
32963302
}
32973303

32983304
unsigned char* hbuf = new unsigned char[hlen];
3299-
ssize_t hwritten = DecodeWrite((char*)hbuf, hlen, args[1], BINARY);
3305+
ssize_t hwritten = StringBytes::Write(
3306+
reinterpret_cast<char*>(hbuf), hlen, args[1], BINARY);
33003307
assert(hwritten == hlen);
33013308

33023309
int r;
3303-
33043310
r = verify->VerifyFinal(kbuf, klen, hbuf, hlen);
33053311

3306-
delete [] kbuf;
3307-
delete [] hbuf;
3312+
delete[] kbuf;
3313+
delete[] hbuf;
33083314

33093315
return Boolean::New(r && r != -1);
33103316
}

0 commit comments

Comments
 (0)