[macruby-changes] [5086] MacRuby/trunk/ext/openssl/ossl_pkcs5.c

source_changes at macosforge.org source_changes at macosforge.org
Mon Dec 27 15:38:09 PST 2010


Revision: 5086
          http://trac.macosforge.org/projects/ruby/changeset/5086
Author:   watson1978 at gmail.com
Date:     2010-12-27 15:38:05 -0800 (Mon, 27 Dec 2010)
Log Message:
-----------
Fixed the Bus Error within OpenSSL::PKCS5.pbkdf2_hmac(_sha1).

Test Script:
{{{
require 'openssl'

p OpenSSL::PKCS5.pbkdf2_hmac_sha1("password", "saltsalt", 1000, 16)
}}}

Modified Paths:
--------------
    MacRuby/trunk/ext/openssl/ossl_pkcs5.c

Modified: MacRuby/trunk/ext/openssl/ossl_pkcs5.c
===================================================================
--- MacRuby/trunk/ext/openssl/ossl_pkcs5.c	2010-12-27 23:37:59 UTC (rev 5085)
+++ MacRuby/trunk/ext/openssl/ossl_pkcs5.c	2010-12-27 23:38:05 UTC (rev 5086)
@@ -34,9 +34,10 @@
     StringValue(salt);
     md = GetDigestPtr(digest);
 
-    str = rb_str_new(0, len);
+    str = rb_bstr_new();
+    rb_bstr_resize(str, len);
 
-    if (PKCS5_PBKDF2_HMAC(RSTRING_PTR(pass), RSTRING_LEN(pass), RSTRING_PTR(salt), RSTRING_LEN(salt), NUM2INT(iter), md, len, RSTRING_PTR(str)) != 1)
+    if (PKCS5_PBKDF2_HMAC(RSTRING_PTR(pass), RSTRING_LEN(pass), RSTRING_PTR(salt), RSTRING_LEN(salt), NUM2INT(iter), md, len, rb_bstr_bytes(str)) != 1)
         ossl_raise(ePKCS5, "PKCS5_PBKDF2_HMAC");
 
     return str;
@@ -70,11 +71,12 @@
     StringValue(pass);
     StringValue(salt);
 
-    str = rb_str_new(0, len);
+    str = rb_bstr_new();
+    rb_bstr_resize(str, len);
 
     if (PKCS5_PBKDF2_HMAC_SHA1(RSTRING_PTR(pass), RSTRING_LEN(pass),
 			       (const unsigned char *)RSTRING_PTR(salt), RSTRING_LEN(salt), NUM2INT(iter),
-			       len, (unsigned char *)RSTRING_PTR(str)) != 1)
+			       len, (unsigned char *)rb_bstr_bytes(str)) != 1)
         ossl_raise(ePKCS5, "PKCS5_PBKDF2_HMAC_SHA1");
 
     return str;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20101227/24ea25c0/attachment-0001.html>


More information about the macruby-changes mailing list