Module: OpenSSL::PKCS5
- Defined in:
- ossl_pkcs5.c
Defined Under Namespace
Classes: PKCS5Error
Class Method Summary collapse
-
.pbkdf2_hmac(pass, salt, iter, keylen, digest) ⇒ String
Parameters *
pass- string *salt- string *iter- integer - should be greater than 1000. -
.pbkdf2_hmac_sha1(pass, salt, iter, keylen) ⇒ String
Parameters *
pass- string *salt- string *iter- integer - should be greater than 1000.
Class Method Details
.pbkdf2_hmac(pass, salt, iter, keylen, digest) ⇒ String
Parameters
-
pass- string -
salt- string -
iter- integer - should be greater than 1000. 2000 is better. -
keylen- integer -
digest- a string or OpenSSL::Digest object.
Available in OpenSSL 0.9.9?.
Digests other than SHA1 may not be supported by other cryptography libraries.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'ossl_pkcs5.c', line 25
static VALUE
ossl_pkcs5_pbkdf2_hmac(VALUE self, VALUE pass, VALUE salt, VALUE iter, VALUE keylen, VALUE digest)
{
#ifdef HAVE_PKCS5_PBKDF2_HMAC
VALUE str;
const EVP_MD *md;
int len = NUM2INT(keylen);
StringValue(pass);
StringValue(salt);
md = GetDigestPtr(digest);
str = rb_str_new(0, 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)
ossl_raise(ePKCS5, "PKCS5_PBKDF2_HMAC");
return str;
#else
rb_notimplement();
#endif
}
|
.pbkdf2_hmac_sha1(pass, salt, iter, keylen) ⇒ String
Parameters
-
pass- string -
salt- string -
iter- integer - should be greater than 1000. 2000 is better. -
keylen- integer
This method is available almost any version OpenSSL.
Conforms to rfc2898.
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'ossl_pkcs5.c', line 63
static VALUE
ossl_pkcs5_pbkdf2_hmac_sha1(VALUE self, VALUE pass, VALUE salt, VALUE iter, VALUE keylen)
{
#ifdef HAVE_PKCS5_PBKDF2_HMAC_SHA1
VALUE str;
int len = NUM2INT(keylen);
StringValue(pass);
StringValue(salt);
str = rb_str_new(0, len);
if (PKCS5_PBKDF2_HMAC_SHA1(RSTRING_PTR(pass), RSTRING_LEN(pass), RSTRING_PTR(salt), RSTRING_LEN(salt), NUM2INT(iter), len, RSTRING_PTR(str)) != 1)
ossl_raise(ePKCS5, "PKCS5_PBKDF2_HMAC_SHA1");
return str;
#else
rb_notimplement();
#endif
}
|