@@ -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