Class: BCryptPbkdf::Engine
- Inherits:
-
Object
- Object
- BCryptPbkdf::Engine
- Defined in:
- ext/mri/bcrypt_pbkdf_ext.c
Class Method Summary collapse
- .__bc_crypt_hash(pass, salt) ⇒ Object
-
.__bc_crypt_pbkdf(pass, salt, keylen, rounds) ⇒ Object
Given a secret and a salt a key and the number of rounds and returns the encrypted secret.
Class Method Details
.__bc_crypt_hash(pass, salt) ⇒ Object
26 27 28 29 30 31 32 33 34 |
# File 'ext/mri/bcrypt_pbkdf_ext.c', line 26 static VALUE bc_crypt_hash(VALUE self, VALUE pass, VALUE salt) { u_int8_t hash[BCRYPT_HASHSIZE]; if (RSTRING_LEN(pass) != 64U) return Qnil; if (RSTRING_LEN(salt) != 64U) return Qnil; bcrypt_hash((const u_int8_t*)StringValuePtr(pass), (const u_int8_t*)StringValuePtr(salt), hash); return rb_str_new((const char*)hash, sizeof(hash)); } |
.__bc_crypt_pbkdf(pass, salt, keylen, rounds) ⇒ Object
Given a secret and a salt a key and the number of rounds and returns the encrypted secret
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'ext/mri/bcrypt_pbkdf_ext.c', line 9 static VALUE bc_crypt_pbkdf(VALUE self, VALUE pass, VALUE salt, VALUE keylen, VALUE rounds) { size_t okeylen = NUM2ULONG(keylen); u_int8_t* okey = xmalloc(keylen); VALUE out; int ret = bcrypt_pbkdf( StringValuePtr(pass), RSTRING_LEN(pass), (const u_int8_t*)StringValuePtr(salt), RSTRING_LEN(salt), okey, okeylen, NUM2ULONG(rounds)); if (ret < 0) return Qnil; out = rb_str_new((const char*)okey, okeylen); xfree(okey); return out; } |