class R509::MessageDigest
MessageDigest
allows you to specify MDs in a more friendly fashion
Constants
- DEFAULT_MD
this constant defines the default message digest if it is not supplied or an invalid digest is passed
- KNOWN_MDS
a list of message digests that this class understands
Attributes
digest[R]
name[R]
Public Class Methods
new(arg = nil)
click to toggle source
@param [String,OpenSSL::Digest] arg
# File lib/r509/message_digest.rb, line 16 def initialize(arg = nil) if arg.is_a?(String) @name = arg.downcase @digest = translate_name_to_digest elsif arg.nil? @name = DEFAULT_MD @digest = translate_name_to_digest else @digest = arg @name = translate_digest_to_name end end
Private Instance Methods
translate_digest_to_name()
click to toggle source
@return [String]
# File lib/r509/message_digest.rb, line 47 def translate_digest_to_name case @digest when OpenSSL::Digest::SHA1 then 'sha1' when OpenSSL::Digest::SHA224 then 'sha224' when OpenSSL::Digest::SHA256 then 'sha256' when OpenSSL::Digest::SHA384 then 'sha384' when OpenSSL::Digest::SHA512 then 'sha512' when OpenSSL::Digest::MD5 then 'md5' else raise ArgumentError, "Unknown digest" end end
translate_name_to_digest()
click to toggle source
@return [OpenSSL::Digest]
# File lib/r509/message_digest.rb, line 32 def translate_name_to_digest case @name when 'sha1' then OpenSSL::Digest::SHA1.new when 'sha224' then OpenSSL::Digest::SHA224.new when 'sha256' then OpenSSL::Digest::SHA256.new when 'sha384' then OpenSSL::Digest::SHA384.new when 'sha512' then OpenSSL::Digest::SHA512.new when 'md5' then OpenSSL::Digest::MD5.new else @name = DEFAULT_MD.downcase translate_name_to_digest end end