Ruby 2.4

Net::IMAP::CramMD5Authenticator

Net::IMAP::CramMD5Authenticator类

Parent:Object

“CRAM-MD5”为身份验证类型的身份验证器。请参阅authenticate()。

公共类方法

new(user, password) Show source

# File lib/net/imap.rb, line 3472 def initialize(user, password) @user = user @password = password end

公共实例方法

process(challenge) Show source

# File lib/net/imap.rb, line 3465 def process(challenge) digest = hmac_md5(challenge, @password) return @user + " " + digest end

私有实例方法

hmac_md5(text, key) Show source

# File lib/net/imap.rb, line 3477 def hmac_md5(text, key) if key.length > 64 key = Digest::MD5.digest(key) end k_ipad = key + "\0" * (64 - key.length) k_opad = key + "\0" * (64 - key.length) for i in 0..63 k_ipad[i] = (k_ipad[i].ord ^ 0x36).chr k_opad[i] = (k_opad[i].ord ^ 0x5c).chr end digest = Digest::MD5.digest(k_ipad + text) return Digest::MD5.hexdigest(k_opad + digest) end