Last active
December 10, 2015 08:48
-
-
Save milgner/4410238 to your computer and use it in GitHub Desktop.
Basic PKCS5 support in JRuby
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'java' | |
module OpenSSL | |
class PKCS5 | |
java_import org.bouncycastle.crypto.generators.PKCS5S2ParametersGenerator | |
java_import org.bouncycastle.crypto.digests.SHA1Digest | |
# it should probably support a non-bouncy-castle-digest as its 5th param, but nevermind | |
def self.pbkdf2_hmac(pass, salt, iter, keylen, digest) | |
generator = PKCS5S2ParametersGenerator.new | |
generator.init(pass.to_java_bytes, salt.to_java_bytes, iter) | |
parameters = generator.generateDerivedMacParameters(keylen*8) | |
String.from_java_bytes(parameters.getKey()) | |
end | |
def self.pbkdf2_hmac_sha1(pass, salt, iter, keylen) | |
digest = SHA1Digest.new | |
pbkdf2_hmac(pass, salt, iter, keylen, digest) | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Milgner - this really saved me thank you. Some tags to light the way.
jruby rails4 heroku jruby-1.7.1 uninitialized constant OpenSSL::PKCS5
had to add these two gems to the gemfile:
gem 'bouncy-castle-java'
gem 'jruby-openssl'