superauther 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/bin/pw +48 -0
  2. metadata +69 -0
data/bin/pw ADDED
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env ruby
2
+ require "digest"
3
+ require "digest/hmac"
4
+ require "highline/import"
5
+ require "paint"
6
+
7
+ ROUNDS = 100
8
+
9
+ begin
10
+ unless ARGV.any?
11
+ puts "Usage: pw <domain> [<username>] [-L<length>]"
12
+ puts " Generates a secure password for <domain>, optionally tied to <username>"
13
+ exit
14
+ end
15
+
16
+ password = ask("Enter your master password: ") { |p| p.echo = false }
17
+
18
+ length = 24
19
+ if ARGV[1] =~ /-L(\d+)/
20
+ length = $1.to_i
21
+ ARGV.delete_at 1
22
+ end
23
+
24
+ system "echo '#{[*ARGV[0..1], password].*(ROUNDS).inject { |a,b| Digest::HMAC.base64digest a, b, Digest::SHA512 }[0..(length-1)]}' | pbcopy"
25
+ puts "Password copied to clipboard."
26
+
27
+ timer = 60
28
+ while timer >= 0
29
+ print "\r["
30
+ print Paint["#" * timer, case timer
31
+ when 0..20; :red
32
+ when 20..40; :yellow
33
+ when 40..60; :green
34
+ end, :bright]
35
+ print " " * (70 - timer)
36
+ print "]"
37
+ timer -= 1
38
+ sleep 0.1
39
+ end
40
+ print "\r"
41
+ print " " * 72
42
+ print "\r"
43
+ system "echo '' | pbcopy"
44
+ puts "Clipboard cleared"
45
+ rescue Interrupt
46
+ puts
47
+ end
48
+
metadata ADDED
@@ -0,0 +1,69 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: superauther
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Charlie Somerville
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-12-08 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: highline
16
+ requirement: &2160300880 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - =
20
+ - !ruby/object:Gem::Version
21
+ version: 1.6.8
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2160300880
25
+ - !ruby/object:Gem::Dependency
26
+ name: paint
27
+ requirement: &2160300400 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - =
31
+ - !ruby/object:Gem::Version
32
+ version: 0.8.3
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *2160300400
36
+ description: superauther is a tiny ruby script that generates passwords for websites
37
+ that don't need to be saved anywhere.
38
+ email: charlie@charliesomerville.com
39
+ executables:
40
+ - pw
41
+ extensions: []
42
+ extra_rdoc_files: []
43
+ files:
44
+ - bin/pw
45
+ homepage: http://github.com/charliesome/superauther
46
+ licenses: []
47
+ post_install_message:
48
+ rdoc_options: []
49
+ require_paths:
50
+ - lib
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ requirements: []
64
+ rubyforge_project:
65
+ rubygems_version: 1.8.10
66
+ signing_key:
67
+ specification_version: 3
68
+ summary: superauther is a better password manager for osx
69
+ test_files: []