tfa 0.0.15 → 0.0.16

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: 52029ca9bbebb7b6ab081fd31be7b65b3cc3d5e0f4057ec62f5414d5b0fa95e7
4
+ data.tar.gz: d9306a0af514d29298e5174b23a9fd59e661c9db189a552cc815c612fb976c5d
5
5
  SHA512:
6
- metadata.gz: 32a5d58eddc632ed57af8f8701bd65b61fd3fcc1373ea8ad121f9dbdc650a5351bf62217a66e05a41a57fd6936a67f5855d4322e6243390150452c9cc30a8695
7
- data.tar.gz: 347a0f07c968bb4b295f0c2caac950a71b68baee36b677efd91d2e8fb360ed9a15201acc9ee8fb26cb1e028d89e51b1508314e60f96d7bf5c719ec385ebd2755
6
+ metadata.gz: bd97e3856571be9be51a8af4a5a1dbc361faa18ad93480161c6209f7048d0a10ef99a02ba1d16b113d7ef7dacac130ad0e43761266516580771c08652d1fda21
7
+ data.tar.gz: b57086be2337c4e19a8c28047598ac5798573686f48fb9454d36143ac742d14a400643c2aaefd3f5ab372e7f41ae75c415634d0b1d30767c7252a58ef0b01c13
@@ -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
@@ -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
@@ -1,3 +1,3 @@
1
1
  module TFA
2
- VERSION = "0.0.15".freeze
2
+ VERSION = "0.0.16".freeze
3
3
  end
@@ -23,6 +23,7 @@ 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 "rqrcode", "~> 0.10"
26
27
  spec.add_dependency "thor", "~> 0.20"
27
28
  spec.add_development_dependency "bundler", "~> 1.6"
28
29
  spec.add_development_dependency "rake", "~> 12.3"
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.0.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - mo khan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-17 00:00:00.000000000 Z
11
+ date: 2018-12-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rotp
@@ -24,6 +24,20 @@ 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
@@ -125,7 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
139
  version: '0'
126
140
  requirements: []
127
141
  rubyforge_project:
128
- rubygems_version: 2.7.5
142
+ rubygems_version: 2.7.6
129
143
  signing_key:
130
144
  specification_version: 4
131
145
  summary: A CLI to manage your time based one time passwords.