krypton 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 173c51e066179dbd94a2562ed5f2bb3d77fb4b85
4
- data.tar.gz: 48d3d1bfb54697117dd0a57ad04ccaf5792e715c
3
+ metadata.gz: df8d76a7d0868d48cb51b7c73c616ca50a22d804
4
+ data.tar.gz: 114459207d514a6c5d60de262967576f5302622a
5
5
  SHA512:
6
- metadata.gz: 537b61b1d63be44f4192ef74f7c2ba0831af95657b3386f66adf5287b8681879d3ce62c0e89f8a27118f6681d24db78e23efb8301efa3ec05d00804950ccddb2
7
- data.tar.gz: ead0f9afb331fdcabd3c9e705602fad7395e3681da908656ad978b2b242c3c8dcf5967e40635009eb24904fa58de97082fe6b95959527fdcb10a37d11664e5f5
6
+ metadata.gz: 3dcd5bdb5539898a6bfdc5054572ffcdc3b8a60ba85a12f8a8024466538eb0958ab4eb8ee68ec63a3bcc5e5414276ea7a821ce8bdf64ed158552ce1f907f62a0
7
+ data.tar.gz: 56923959b8abfca059c9ddbcb641fa2eb6230c66421f989737f12cc1325471e9878269e76be707160113ee69665319f2116d1a8b7422ecff35922638d80049f5
@@ -1,11 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- krypton (0.1.4)
4
+ krypton (0.1.5)
5
5
  aes
6
6
  colorize
7
7
  commander
8
8
  paint
9
+ rotp
9
10
 
10
11
  GEM
11
12
  remote: https://rubygems.org/
@@ -18,6 +19,7 @@ GEM
18
19
  highline (1.7.10)
19
20
  paint (2.0.1)
20
21
  rake (10.5.0)
22
+ rotp (3.3.1)
21
23
  rspec (3.8.0)
22
24
  rspec-core (~> 3.8.0)
23
25
  rspec-expectations (~> 3.8.0)
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- <p align="center"><img src="https://raw.githubusercontent.com/cbrnrd/krypton/master/img/krypton-readme-header.png"></p>
1
+ <p align="center"><img src="https://github.com/cbrnrd/krypton/raw/88b44a70de4829c3dd77dc8fbeb0395f89668b07/img/krypton-readme-header.png"></p>
2
2
 
3
3
 
4
4
  ## Installation
@@ -13,10 +13,35 @@ Or you can install the `periodic-cli` gem:
13
13
 
14
14
  ## Usage
15
15
 
16
- To encrypt a string, the command looks like this:
16
+ All krypton functions use the same basic syntax: `krypton [cmd] {[message/secret]{[key]}}`
17
17
 
18
- $ krypton encrypt "mymessage" "mykey"
19
- mymessage => ckhJWXcyTE1leENLOWpBQzJWbElMdz09Cg==
18
+ * `encrypt` - Encrypt a string
19
+
20
+ $ krypton encrypt "mymessage" "mykey"
21
+ mymessage => ckhJWXcyTE1leENLOWpBQzJWbElMdz09Cg==
22
+
23
+ * `decrypt` - Decrypt a string
24
+
25
+ $ krypton decrypt "ckhJWXcyTE1leENLOWpBQzJWbElMdz09Cg" "mykey"
26
+ ckhJWXcyTE1leENLOWpBQzJWbElMdz09Cg => mymessage
27
+
28
+ * `hash` - Hash a string or piped data
29
+
30
+ $ krypton hash "mymessage"
31
+ mymessage => S3ONp9WM7/rCMeuUnvWDzp5dxbuSVsOV6bI5AJvRqCc=
32
+
33
+ $ echo "mymessage" | krypton hash
34
+ mymessage => S3ONp9WM7/rCMeuUnvWDzp5dxbuSVsOV6bI5AJvRqCc=
35
+
36
+ * `uuid` - Generate a secure [uuid](https://en.wikipedia.org/wiki/Universally_unique_identifier)
37
+
38
+ $ krypton uuid
39
+ b6ff36d2-3f7e-4077-8ba5-5066f0a205a5
40
+
41
+ * `totp` - Generate a [time-based one-time password](https://en.wikipedia.org/wiki/Time-based_One-time_Password_algorithm)
42
+
43
+ $ krypton totp "myawesomesecret"
44
+ myawesomesecret => 997820
20
45
 
21
46
  ## Contributing
22
47
 
@@ -83,6 +83,19 @@ while (opt = ARGV.shift) do
83
83
  exit 0
84
84
  when 'uuid'
85
85
  puts Paint[SecureRandom.uuid, '#2ecc71']
86
+ when 'totp'
87
+ if ARGV.length == 2
88
+ puts "You need a secret to generate a totp."
89
+ exit 1
90
+ else
91
+ secret = ARGV[ARGV.length - 1] || gets
92
+ if options[:std]
93
+ puts ROTP::TOTP.new(secret).now
94
+ else
95
+ puts "#{secret + ' => ' + Paint[ROTP::TOTP.new(secret).now,'#2ecc71']}"
96
+ end
97
+ exit 0
98
+ end
86
99
  else
87
100
  puts "#{opt} is not a valid action!"
88
101
  exit 1
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
20
20
  spec.add_runtime_dependency "paint"
21
21
  spec.add_runtime_dependency "aes"
22
22
  spec.add_runtime_dependency "commander"
23
+ spec.add_runtime_dependency "rotp"
23
24
 
24
25
  spec.add_development_dependency "bundler", "~> 1.16"
25
26
  spec.add_development_dependency "rake", "~> 10.0"
@@ -3,6 +3,7 @@ require 'base64'
3
3
  require 'optparse'
4
4
  require 'paint'
5
5
  require 'securerandom'
6
+ require 'rotp'
6
7
 
7
8
  # lib files
8
9
  require_relative './core/constants.rb'
@@ -1,4 +1,4 @@
1
- VERSION = "0.1.5"
1
+ VERSION = "0.1.6"
2
2
  AUTHORS = {
3
3
  'Carter Brainerd' => '0xCB[at]protonmail[dot]com'
4
4
  }
@@ -8,8 +8,10 @@ TASKS_HELP =
8
8
  decrypt Decrypt the message with the given key (AES).
9
9
  hash Hash a given message with SHA256.
10
10
  uuid Generate a random UUID.
11
+ totp Generate a Time-based One Time Password.
11
12
 
12
13
  #{Paint['Examples', '#95a5a6']}
13
14
  #{Paint['$ krypton encrypt "mymessage" "mykey"', '#2ecc71']} #{Paint['=> ckhJWXcyTE1leENLOWpBQzJWbElMdz09Cg==', '#95a5a6']}
14
15
  #{Paint['$ krypton hash "mymessage"', '#2ecc71']} => #{Paint['S3ONp9WM7/rCMeuUnvWDzp5dxbuSVsOV6bI5AJvRqCc=', '#95a5a6']}
16
+ #{Paint['$ krypton totp "mygreatsecret"']} => #{Paint['778501', '#95a5a6']}
15
17
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: krypton
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - cbrnrd
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-25 00:00:00.000000000 Z
11
+ date: 2018-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rotp
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: bundler
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -129,7 +143,6 @@ files:
129
143
  - bin/console
130
144
  - bin/krypton
131
145
  - bin/setup
132
- - img/krypton-readme-header.png
133
146
  - krypton.gemspec
134
147
  - lib/core.rb
135
148
  - lib/core/aes.rb