lib/oplop.rb in oplop-0.0.2 vs lib/oplop.rb in oplop-0.0.3
- old
+ new
@@ -8,33 +8,35 @@
#
# Oplop.password(:master => 'p@ssw0rd', :label => 'github')
#
def self.password(args={})
unless (args.keys.include?(:master) && args.keys.include?(:label))
- raise ArgumentError.new "Master and label are required arguments."
+ raise ArgumentError.new 'Master and label are required arguments.'
end
- master_label = "%s%s" % [ args.delete(:master), args.delete(:label) ]
+ master_label = '%s%s' % [ args.delete(:master), args.delete(:label) ]
- raise ArgumentError.new "Unknown keys #{args.keys.join(",")}." if args.keys.any?
+ raise ArgumentError.new "Unknown keys #{args.keys.join(',')}." if args.keys.any?
- password = urlsafe_b64encode(master_label)
+
+ password = urlsafe_b64encode(Digest::MD5.digest(master_label))
if password.respond_to?(:encode)
password = password.encode('UTF-8')
end
if m = password.match(/\d+/)
- password = "%s%s" % [ m[0], password ] if (m.begin(0) >= LENGTH)
+ password = '%s%s' % [ m[0], password ] if (m.begin(0) >= LENGTH)
else
- password = "1%s" % password
+ password = '1%s' % password
end
password[0,LENGTH]
end
# See http://www.ietf.org/rfc/rfc4648.txt
+ # Ruby 1.8.x does not have this as part of the Base64 lib
def self.urlsafe_b64encode(string)
- Base64.encode64(Digest::MD5.digest(string)).tr('+/', '-_').gsub("\n",'')
+ Base64.encode64(string).tr('+/', '-_')
end
end