superauther 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []