class OsslRsa::Generator
generator class
Public Class Methods
generate(options)
click to toggle source
generate OpenSSL::PKey::RSA instance. generate rsa instance by options. options : key size options : pem or der options : password @param [Hash] options generate options. @return [OpenSSL::PKey::RSA] rsa instance.
# File lib/ossl_rsa/generator.rb, line 16 def self.generate(options) rsa = nil # if size and private exist, raise error. if (!options[:size].nil? && !options[:obj].nil?) raise OpenSSL::PKey::RSAError.new("size and obj is nil.") end # if exist size, generate use size, cipher. unless options[:size].nil? rsa = generate_rsa_by_size(options[:size]) end # if exist obj, generate use obj, pass. unless options[:obj].nil? rsa = generate_rsa_by_key(options[:obj], options[:pass]) end # raise Error if rsa.nil? raise OpenSSL::PKey::RSAError.new("fail create rsa instance.") end rsa end
Private Class Methods
generate_rsa_by_key(obj, pass=nil)
click to toggle source
generate rsa. @param [String] pem / der. @param [String] pass password @return [OpenSSL::PKey::RSA] rsa instance.
# File lib/ossl_rsa/generator.rb, line 60 def self.generate_rsa_by_key(obj, pass=nil) rsa = OpenSSL::PKey::RSA.new(obj, pass) rsa end
generate_rsa_by_size(size)
click to toggle source
generate rsa. @param [integer] size key size. @return [OpenSSL::PKey::RSA] rsa instance.
# File lib/ossl_rsa/generator.rb, line 47 def self.generate_rsa_by_size(size) # add seed. OpenSSL::Random.seed(SecureRandom.hex(8)) # generate rsa instance. rsa = OpenSSL::PKey::RSA.new(size) rsa end