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.
- data/bin/pw +48 -0
- 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: []
|