tfa 0.0.15 → 0.1.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4986f1db7a233768d23cc39c31e8c7f7257c5291b99edc2bb62256dee75c75a6
4
- data.tar.gz: 9b1421af345917ceee7775fb3f74abef84e7e33394af904199c4a1fbe66fbbb0
3
+ metadata.gz: 82ff2e20b19366b66416e4f061988f83ca23fd6b727696ee2552f644e5ac93c5
4
+ data.tar.gz: 0e76dc8cf3afd4c9cf4cdc0e337cefe43baea82138faa3a264a37b1b4812e9be
5
5
  SHA512:
6
- metadata.gz: 32a5d58eddc632ed57af8f8701bd65b61fd3fcc1373ea8ad121f9dbdc650a5351bf62217a66e05a41a57fd6936a67f5855d4322e6243390150452c9cc30a8695
7
- data.tar.gz: 347a0f07c968bb4b295f0c2caac950a71b68baee36b677efd91d2e8fb360ed9a15201acc9ee8fb26cb1e028d89e51b1508314e60f96d7bf5c719ec385ebd2755
6
+ metadata.gz: 83ab82f8373a1297ce87390dc0df23424952b19fd1747658a20707feef70432e04fd90712bec18e88252f7b0459417e43f124b19052412635fa677cdf12f4a5e
7
+ data.tar.gz: 6c799d24bb703a954965c061f812bd0d4791692ecfc520f7322d6cdcc211c88a5cb33c25da5ab4032bbc088a0f274d6075222b3c833ad2506c9a2cef9691cc13
data/.travis.yml CHANGED
@@ -1,6 +1,5 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.2.9
4
- - 2.3.6
5
- - 2.4.3
6
- - 2.5.0
3
+ - 2.3.8
4
+ - 2.4.5
5
+ - 2.5.3
data/Rakefile CHANGED
@@ -2,4 +2,4 @@ require "bundler/gem_tasks"
2
2
  require "rspec/core/rake_task"
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
- task :default => :spec
5
+ task default: :spec
data/lib/tfa/cli.rb CHANGED
@@ -1,4 +1,7 @@
1
- require "thor"
1
+ require 'rqrcode'
2
+ require 'socket'
3
+ require 'thor'
4
+ require 'uri'
2
5
 
3
6
  module TFA
4
7
  class CLI < Thor
@@ -19,12 +22,24 @@ module TFA
19
22
  end
20
23
 
21
24
  desc "show NAME", "shows the secret for the given key"
25
+ method_option :format, default: "raw", enum: ["raw", "qrcode", "uri"], desc: "The format to export"
22
26
  def show(name = nil)
23
- name ? storage.secret_for(name) : storage.all
27
+ return storage.all.map { |x| x.keys }.flatten.sort unless name
28
+
29
+ case options[:format]
30
+ when "qrcode"
31
+ RQRCode::QRCode.new(uri_for(name, storage.secret_for(name))).as_ansi(
32
+ light: "\033[47m", dark: "\033[40m", fill_character: ' ', quiet_zone_size: 1
33
+ )
34
+ when "uri"
35
+ uri_for(name, storage.secret_for(name))
36
+ else
37
+ storage.secret_for(name)
38
+ end
24
39
  end
25
40
 
26
41
  desc "totp NAME", "generate a Time based One Time Password using the secret associated with the given NAME."
27
- def totp(name = nil)
42
+ def totp(name)
28
43
  TotpCommand.new(storage).run(name)
29
44
  end
30
45
 
@@ -127,5 +142,9 @@ module TFA
127
142
  def upgraded?
128
143
  !File.exist?(pstore_path) && File.exist?(secure_path)
129
144
  end
145
+
146
+ def uri_for(issuer, secret)
147
+ URI.encode("otpauth://totp/#{issuer}/#{ENV['LOGNAME']}@#{Socket.gethostname}?secret=#{secret}&issuer=#{issuer}")
148
+ end
130
149
  end
131
150
  end
data/lib/tfa/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module TFA
2
- VERSION = "0.0.15".freeze
2
+ VERSION = "0.1.0".freeze
3
3
  end
data/tfa.gemspec CHANGED
@@ -23,7 +23,8 @@ Gem::Specification.new do |spec|
23
23
  spec.required_ruby_version = "~> 2.0"
24
24
 
25
25
  spec.add_dependency "rotp", "~> 3.3"
26
- spec.add_dependency "thor", "~> 0.20"
26
+ spec.add_dependency "rqrcode", "~> 0.10"
27
+ spec.add_dependency "thor", "~> 1.0"
27
28
  spec.add_development_dependency "bundler", "~> 1.6"
28
29
  spec.add_development_dependency "rake", "~> 12.3"
29
30
  spec.add_development_dependency "rspec", "~> 3.7"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tfa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.15
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - mo khan
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-17 00:00:00.000000000 Z
11
+ date: 2023-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rotp
@@ -24,20 +24,34 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rqrcode
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.10'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.10'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: thor
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: '0.20'
47
+ version: '1.0'
34
48
  type: :runtime
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: '0.20'
54
+ version: '1.0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -109,7 +123,7 @@ homepage: https://github.com/mokhan/tfa/
109
123
  licenses:
110
124
  - MIT
111
125
  metadata: {}
112
- post_install_message:
126
+ post_install_message:
113
127
  rdoc_options: []
114
128
  require_paths:
115
129
  - lib
@@ -124,9 +138,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
138
  - !ruby/object:Gem::Version
125
139
  version: '0'
126
140
  requirements: []
127
- rubyforge_project:
128
- rubygems_version: 2.7.5
129
- signing_key:
141
+ rubygems_version: 3.4.4
142
+ signing_key:
130
143
  specification_version: 4
131
144
  summary: A CLI to manage your time based one time passwords.
132
145
  test_files: []