opensecret 0.0.988 → 0.0.9925
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 +5 -5
- data/README.md +56 -159
- data/bin/opensecret +2 -2
- data/bin/ops +17 -2
- data/lib/extension/string.rb +14 -16
- data/lib/{interpreter.rb → interprete.rb} +53 -29
- data/lib/keytools/binary.map.rb +49 -0
- data/lib/keytools/kdf.api.rb +249 -0
- data/lib/keytools/kdf.bcrypt.rb +64 -29
- data/lib/keytools/kdf.pbkdf2.rb +92 -83
- data/lib/keytools/kdf.scrypt.rb +190 -0
- data/lib/keytools/key.64.rb +326 -0
- data/lib/keytools/key.algo.rb +109 -0
- data/lib/keytools/key.api.rb +1281 -0
- data/lib/keytools/key.db.rb +265 -0
- data/lib/keytools/{key.module.rb → key.docs.rb} +55 -0
- data/lib/keytools/key.error.rb +110 -0
- data/lib/keytools/key.id.rb +271 -0
- data/lib/keytools/key.iv.rb +107 -0
- data/lib/keytools/key.local.rb +265 -0
- data/lib/keytools/key.mach.rb +248 -0
- data/lib/keytools/key.now.rb +402 -0
- data/lib/keytools/key.pair.rb +259 -0
- data/lib/keytools/key.pass.rb +120 -0
- data/lib/keytools/key.rb +428 -298
- data/lib/keytools/keydebug.txt +295 -0
- data/lib/logging/gem.logging.rb +3 -3
- data/lib/modules/cryptology/collect.rb +20 -0
- data/lib/session/require.gem.rb +1 -1
- data/lib/usecase/cmd.rb +417 -0
- data/lib/usecase/id.rb +36 -0
- data/lib/usecase/import.rb +174 -0
- data/lib/usecase/init.rb +78 -0
- data/lib/usecase/login.rb +70 -0
- data/lib/usecase/logout.rb +30 -0
- data/lib/usecase/open.rb +126 -0
- data/lib/{interprete → usecase}/put.rb +100 -47
- data/lib/usecase/read.rb +89 -0
- data/lib/{interprete → usecase}/safe.rb +0 -0
- data/lib/{interprete → usecase}/set.rb +0 -0
- data/lib/usecase/token.rb +111 -0
- data/lib/{interprete → usecase}/use.rb +0 -0
- data/lib/version.rb +1 -1
- data/opensecret.gemspec +4 -3
- metadata +39 -33
- data/lib/exception/cli.error.rb +0 -53
- data/lib/exception/errors/cli.errors.rb +0 -31
- data/lib/interprete/begin.rb +0 -232
- data/lib/interprete/cmd.rb +0 -621
- data/lib/interprete/export.rb +0 -163
- data/lib/interprete/init.rb +0 -205
- data/lib/interprete/key.rb +0 -119
- data/lib/interprete/open.rb +0 -148
- data/lib/interprete/seal.rb +0 -129
- data/lib/keytools/digester.rb +0 -245
- data/lib/keytools/key.data.rb +0 -227
- data/lib/keytools/key.derivation.rb +0 -341
- data/lib/modules/mappers/collateral.rb +0 -282
- data/lib/modules/mappers/envelope.rb +0 -127
- data/lib/modules/mappers/settings.rb +0 -170
- data/lib/notepad/scratch.pad.rb +0 -224
- data/lib/store-commands.txt +0 -180
@@ -28,27 +28,10 @@ module OpenSecret
|
|
28
28
|
# - a secret value is added against the key or updated if it already exists
|
29
29
|
# - a new session id and encryption key is generated and used to re-encrypt
|
30
30
|
#
|
31
|
-
# ==
|
32
|
-
#
|
33
|
-
# After the example commands we can visualize the <b><em>encrypted</em></b>
|
34
|
-
# bucket like this.
|
35
|
-
#
|
36
|
-
# [monica]
|
37
|
-
# surname = lewinsky
|
38
|
-
# from = April 1989
|
39
|
-
# to = September 1994
|
40
|
-
#
|
41
|
-
# [hilary]
|
42
|
-
# surname = clinton
|
43
|
-
# from = Feb 1982
|
44
|
-
# to = Present Day
|
45
|
-
#
|
46
|
-
# == Bill Clinton's Lady Friends
|
31
|
+
# == Example | Bill Clinton's Secrets
|
47
32
|
#
|
48
33
|
# In our fictitious example Bill Clinton uses opensecret to lock away the
|
49
|
-
# names and dates of his lady
|
50
|
-
#
|
51
|
-
# @example
|
34
|
+
# names and dates of his lady friends.
|
52
35
|
#
|
53
36
|
# $ opensecret init bill.clinton@example.com
|
54
37
|
# $ opensecret open my/friends
|
@@ -73,8 +56,10 @@ module OpenSecret
|
|
73
56
|
# - <b>peek</b>
|
74
57
|
class Put < Command
|
75
58
|
|
59
|
+
|
76
60
|
attr_writer :secret_id, :secret_value
|
77
61
|
|
62
|
+
|
78
63
|
# The <b>put use case</b> follows <b>open</b> and it adds secrets into an
|
79
64
|
# <em>(encrypted at rest)</em> envelope. Put can be called many times to
|
80
65
|
# add secrets. Finally the <b>lock use case</b> commits all opened secrets
|
@@ -100,34 +85,102 @@ module OpenSecret
|
|
100
85
|
# - a new session id and encryption key is generated and used to re-encrypt
|
101
86
|
def execute
|
102
87
|
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
88
|
+
## @todo - rename appdb_content as master_db
|
89
|
+
## @todo - rename appdb_content as master_db
|
90
|
+
## @todo - rename appdb_content as master_db
|
91
|
+
## @todo - rename appdb_content as master_db
|
92
|
+
## @todo - rename appdb_content as master_db
|
93
|
+
## @todo - rename appdb_content as master_db
|
94
|
+
## @todo - rename appdb_content as master_db
|
95
|
+
## @todo - rename appdb_content as master_db
|
96
|
+
## @todo - rename appdb_content as master_db
|
97
|
+
## @todo - rename appdb_content as master_db
|
98
|
+
## @todo - rename appdb_content as master_db
|
99
|
+
## @todo - rename appdb_content as master_db
|
100
|
+
## @todo - rename appdb_content as master_db
|
101
|
+
## @todo - rename appdb_content as master_db
|
102
|
+
|
103
|
+
return unless ops_key_exists?
|
104
|
+
appdb_content = OpenKey::KeyApi.read_app_content()
|
105
|
+
|
106
|
+
puts "---\n"
|
107
|
+
puts "--- The Master Database (Before)\n"
|
108
|
+
puts "---\n"
|
109
|
+
puts JSON.pretty_generate( appdb_content )
|
110
|
+
puts "---\n"
|
111
|
+
|
112
|
+
return if unopened_envelope?( appdb_content )
|
113
|
+
|
114
|
+
envelope_id = ENVELOPE_KEY_PREFIX + appdb_content[ ENV_PATH ]
|
115
|
+
has_content = OpenKey::KeyApi.content_exists?( appdb_content[ envelope_id ] )
|
116
|
+
|
117
|
+
# --
|
118
|
+
# -- To get hold of the content we must either
|
119
|
+
# --
|
120
|
+
# -- a) unlock it using the breadcrumbs or
|
121
|
+
# -- b) start afresh with a new content db
|
122
|
+
# --
|
123
|
+
content_box = OpenKey::KeyApi.content_unlock( appdb_content[ envelope_id ] ) if has_content
|
124
|
+
content_box = OpenKey::KeyDb.new() unless has_content
|
125
|
+
content_hdr = create_header()
|
126
|
+
|
127
|
+
# --
|
128
|
+
# -- If no content envelope exists we need to place
|
129
|
+
# -- an empty one inside the appdb content database.
|
130
|
+
# --
|
131
|
+
appdb_content[ envelope_id ] = {} unless has_content
|
132
|
+
|
133
|
+
# --
|
134
|
+
# -- This is the PUT use case so we append a
|
135
|
+
# --
|
136
|
+
# -- a) key for the new dictionary entry
|
137
|
+
# -- b) value for the new dictionary entry
|
138
|
+
# --
|
139
|
+
# -- into the current content envelope and write
|
140
|
+
# -- the envelope to the content filepath.
|
141
|
+
# --
|
142
|
+
crumbs_dict = appdb_content[ envelope_id ]
|
143
|
+
content_box.create_entry( appdb_content[ KEY_PATH ], @secret_id, @secret_value )
|
144
|
+
OpenKey::KeyApi.content_lock( crumbs_dict, content_box.to_json, content_hdr )
|
145
|
+
|
146
|
+
puts "---\n"
|
147
|
+
puts "--- The Master Database (After)\n"
|
148
|
+
puts "---\n"
|
149
|
+
puts JSON.pretty_generate( appdb_content )
|
150
|
+
puts "---\n"
|
151
|
+
|
152
|
+
# --
|
153
|
+
# -- Three envelope crumbs namely the external ID, the
|
154
|
+
# -- random iv and the crypt key are written afreshinto
|
155
|
+
# -- the master database.
|
156
|
+
# --
|
157
|
+
OpenKey::KeyApi.write_app_content( content_hdr, appdb_content )
|
158
|
+
print_put_success
|
159
|
+
|
160
|
+
return
|
161
|
+
|
162
|
+
|
163
|
+
# ---> secret_ids = @secret_id.split("/")
|
164
|
+
# ---> if ( envelope.has_key? secret_ids.first )
|
165
|
+
# ---> envelope[secret_ids.first][secret_ids.last] = @secret_value
|
166
|
+
# ---> else
|
167
|
+
# ---> envelope[secret_ids.first] = { secret_ids.last => @secret_value }
|
168
|
+
# ---> end
|
169
|
+
|
170
|
+
end
|
171
|
+
|
172
|
+
|
173
|
+
private
|
174
|
+
|
175
|
+
|
176
|
+
def print_put_success
|
177
|
+
|
178
|
+
puts ""
|
179
|
+
puts "Success putting a key/value pair into the open envelope."
|
180
|
+
puts "You can put more in and then close the envelope."
|
181
|
+
puts ""
|
182
|
+
puts " ops close"
|
183
|
+
puts ""
|
131
184
|
|
132
185
|
end
|
133
186
|
|
data/lib/usecase/read.rb
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
module OpenSecret
|
4
|
+
|
5
|
+
|
6
|
+
class Read < Command
|
7
|
+
|
8
|
+
|
9
|
+
def execute
|
10
|
+
|
11
|
+
return unless ops_key_exists?
|
12
|
+
appdb_content = OpenKey::KeyApi.read_app_content()
|
13
|
+
|
14
|
+
## @todo - rename appdb_content as master_db
|
15
|
+
## @todo - rename appdb_content as master_db
|
16
|
+
## @todo - rename appdb_content as master_db
|
17
|
+
## @todo - rename appdb_content as master_db
|
18
|
+
## @todo - rename appdb_content as master_db
|
19
|
+
## @todo - rename appdb_content as master_db
|
20
|
+
## @todo - rename appdb_content as master_db
|
21
|
+
## @todo - rename appdb_content as master_db
|
22
|
+
## @todo - rename appdb_content as master_db
|
23
|
+
## @todo - rename appdb_content as master_db
|
24
|
+
## @todo - rename appdb_content as master_db
|
25
|
+
## @todo - rename appdb_content as master_db
|
26
|
+
## @todo - rename appdb_content as master_db
|
27
|
+
## @todo - rename appdb_content as master_db
|
28
|
+
## @todo - rename appdb_content as master_db
|
29
|
+
|
30
|
+
return if unopened_envelope?( appdb_content )
|
31
|
+
|
32
|
+
envelope_id = ENVELOPE_KEY_PREFIX + appdb_content[ ENV_PATH ]
|
33
|
+
has_content = OpenKey::KeyApi.content_exists?( appdb_content[ envelope_id ] )
|
34
|
+
|
35
|
+
# --
|
36
|
+
# -- To get hold of the content we must either
|
37
|
+
# --
|
38
|
+
# -- a) unlock it using the breadcrumbs or
|
39
|
+
# -- b) start afresh with a new content db
|
40
|
+
# --
|
41
|
+
content_box = OpenKey::KeyApi.content_unlock( appdb_content[ envelope_id ] ) if has_content
|
42
|
+
content_box = content_box.fast_forward( appdb_content[ KEY_PATH ] )
|
43
|
+
content_box = OpenKey::KeyDb.new() unless has_content
|
44
|
+
|
45
|
+
puts ""
|
46
|
+
puts "--- ----------------------------------\n"
|
47
|
+
puts "--- envelope => #{appdb_content[ ENV_PATH ]}\n"
|
48
|
+
puts "--- key path => #{appdb_content[ KEY_PATH ]}\n"
|
49
|
+
puts "--- ----------------------------------\n"
|
50
|
+
puts JSON.pretty_generate( content_box )
|
51
|
+
puts "--- ----------------------------------\n"
|
52
|
+
puts ""
|
53
|
+
|
54
|
+
return
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
|
59
|
+
private
|
60
|
+
|
61
|
+
|
62
|
+
def print_put_success
|
63
|
+
|
64
|
+
puts ""
|
65
|
+
puts "Success putting a key/value pair into the open envelope."
|
66
|
+
puts "You can put more in and then close the envelope."
|
67
|
+
puts ""
|
68
|
+
puts " ops close"
|
69
|
+
puts ""
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
|
74
|
+
# Perform pre-conditional validations in preparation to executing the main flow
|
75
|
+
# of events for this use case. This method may throw the below exceptions.
|
76
|
+
#
|
77
|
+
# @raise [SafeDirNotConfigured] if the safe's url has not been configured
|
78
|
+
# @raise [EmailAddrNotConfigured] if the email address has not been configured
|
79
|
+
# @raise [StoreUrlNotConfigured] if the crypt store url is not configured
|
80
|
+
def pre_validation
|
81
|
+
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
|
86
|
+
end
|
87
|
+
|
88
|
+
|
89
|
+
end
|
File without changes
|
File without changes
|
@@ -0,0 +1,111 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
module OpenSecret
|
4
|
+
|
5
|
+
# The <tt>token use case</tt> prints out an encrypted session token tied
|
6
|
+
# to the workstation and shell environment. It should be called like this
|
7
|
+
# and <tt>printenv</tt> can be used to verify that a shell-scoped
|
8
|
+
# environment variable tying OPEN_SESSION_TOKEN to a 150 character session
|
9
|
+
# token, has been created.
|
10
|
+
#
|
11
|
+
# export OPEN_SESSION_TOKEN=`ops token`
|
12
|
+
# printenv
|
13
|
+
#
|
14
|
+
# Note the <b>back-ticks</b> surrounding the <tt>ops token</tt> call.
|
15
|
+
#
|
16
|
+
# When the shell closes OPEN_SESSION_TOKEN disappears forever. However if you want to
|
17
|
+
# continue using the same shell you can wipe this away.
|
18
|
+
#
|
19
|
+
# $ unset OPEN_SESSION_TOKEN # Delete the shell session token
|
20
|
+
# $ env | grep OPEN_SESSION_TOKEN # Check OPEN_SESSION_TOKEN is deleted
|
21
|
+
#
|
22
|
+
# You can also delete every env var created by this shell.
|
23
|
+
#
|
24
|
+
# $ env -i bash # Rewind to (after) login variables
|
25
|
+
#
|
26
|
+
# == How to instantiate a Command Line Session
|
27
|
+
#
|
28
|
+
# Initialize the session by generating a random high entropy shell token
|
29
|
+
# and then generating an obfuscator key which we use to lock the shell
|
30
|
+
# key and return a triply segmented text token that can be used to decrypt
|
31
|
+
# and deliver the shell key as long as the same shell on the same machine
|
32
|
+
# is employed to make the call.
|
33
|
+
#
|
34
|
+
# == The 3 Session Token Segments
|
35
|
+
#
|
36
|
+
# The session token is divided up into 3 segments with a total of 150
|
37
|
+
# characters.
|
38
|
+
#
|
39
|
+
# | -------- | ------------ | ------------------------------------- |
|
40
|
+
# | Segment | Length | Purpose |
|
41
|
+
# | -------- | ------------ | ------------------------------------- |
|
42
|
+
# | 1 | 16 bytes | AES Encrypt Initialization Vector(IV) |
|
43
|
+
# | 2 | 80 bytes | Cipher text from Random Key AES crypt |
|
44
|
+
# | 3 | 22 chars | Salt for obfuscator key derivation |
|
45
|
+
# | -------- | ------------ | ------------------------------------- |
|
46
|
+
# | Total | 150 chars | Session Token in Environment Variable |
|
47
|
+
# | -------- | ------------ | ------------------------------------- |
|
48
|
+
#
|
49
|
+
# Why is the <b>16 byte salt and the 80 byte BCrypt ciphertext</b> represented
|
50
|
+
# by <b>128 base64 characters</b>?
|
51
|
+
#
|
52
|
+
# 16 bytes + 80 bytes = 96 bytes
|
53
|
+
# 96 bytes x 8 bits = 768 bits
|
54
|
+
# 768 bits / 6 bits = 128 base64 characters
|
55
|
+
#
|
56
|
+
# == Other ways to instantiate the session token
|
57
|
+
#
|
58
|
+
# The session token environment variable can be delivered
|
59
|
+
#
|
60
|
+
# - with the export command
|
61
|
+
# - via a docker run ENV parameter
|
62
|
+
# - using the dot profile script
|
63
|
+
#
|
64
|
+
class Token < Command
|
65
|
+
|
66
|
+
|
67
|
+
# The <tt>token use case</tt> prints out an encrypted session token tied
|
68
|
+
# to the workstation and shell environment. It should be called like this
|
69
|
+
# and <tt>printenv</tt> can be used to verify that a shell-scoped
|
70
|
+
# environment variable tying OPEN_SESSION_TOKEN to an (approximately) 48 character
|
71
|
+
# session password, has been created.
|
72
|
+
#
|
73
|
+
# export OPEN_SESSION_TOKEN=`ops token`
|
74
|
+
# printenv
|
75
|
+
#
|
76
|
+
# Note the <b>back-ticks</b> surrounding the <tt>ops token</tt> call.
|
77
|
+
#
|
78
|
+
# <b>How to instantiate a Command Line Session</b>
|
79
|
+
#
|
80
|
+
# $ printenv
|
81
|
+
# $ export OPEN_SESSION_TOKEN=`ops token`
|
82
|
+
# $ printenv
|
83
|
+
#
|
84
|
+
# The 2nd printenv should reveal a shell specific environment variable.
|
85
|
+
#
|
86
|
+
# OPEN_SESSION_TOKEN=FvxETEpmoVUetyJ0jJk19aus1pQkzLZ8OVJccatYnC9GxDE4Iy3AyWNZ...
|
87
|
+
#
|
88
|
+
def execute
|
89
|
+
|
90
|
+
print OpenKey::KeyLocal.generate_shell_key_and_token()
|
91
|
+
|
92
|
+
end
|
93
|
+
|
94
|
+
|
95
|
+
# Perform pre-conditional validations in preparation to executing the main flow
|
96
|
+
# of events for this use case. This method may throw the below exceptions.
|
97
|
+
#
|
98
|
+
# @raise [SafeDirNotConfigured] if the safe's url has not been configured
|
99
|
+
# @raise [EmailAddrNotConfigured] if the email address has not been configured
|
100
|
+
# @raise [StoreUrlNotConfigured] if the crypt store url is not configured
|
101
|
+
def pre_validation
|
102
|
+
|
103
|
+
|
104
|
+
end
|
105
|
+
|
106
|
+
|
107
|
+
end
|
108
|
+
|
109
|
+
|
110
|
+
end
|
111
|
+
|
File without changes
|
data/lib/version.rb
CHANGED
data/opensecret.gemspec
CHANGED
@@ -11,8 +11,8 @@ Gem::Specification.new do |spec|
|
|
11
11
|
spec.email = ["apolloakora@gmail.com"]
|
12
12
|
|
13
13
|
spec.summary = %q{opensecret locks and unlocks secrets in a simple, secure and intuitive way.}
|
14
|
-
spec.description = %q{opensecret stashes uncrackable secrets
|
15
|
-
spec.homepage = "https://www.
|
14
|
+
spec.description = %q{opensecret stashes uncrackable secrets as encrypted material in plaintext files. After installing hte opensecret gem, you init, open, put and then look at your credentials, sensitive information and secrets.}
|
15
|
+
spec.homepage = "https://www.devops-hub.com/software/opensecret"
|
16
16
|
spec.license = "MIT"
|
17
17
|
|
18
18
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
@@ -23,10 +23,11 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.bindir = "bin"
|
24
24
|
spec.executables = ['opensecret', 'ops']
|
25
25
|
spec.require_paths = ["lib"]
|
26
|
+
spec.required_ruby_version = '>= 2.5.0'
|
26
27
|
|
27
28
|
spec.add_dependency 'inifile', '~> 3.0'
|
28
29
|
spec.add_dependency 'thor', '~> 0.2'
|
29
|
-
spec.add_dependency '
|
30
|
+
spec.add_dependency 'uuid'
|
30
31
|
spec.add_dependency 'bcrypt'
|
31
32
|
|
32
33
|
spec.add_development_dependency "bundler", "~> 1.16"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opensecret
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9925
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Apollo Akora
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-07-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: inifile
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0.2'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: uuid
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
@@ -80,10 +80,9 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '1.16'
|
83
|
-
description: opensecret stashes uncrackable secrets
|
84
|
-
|
85
|
-
|
86
|
-
Ansible, Terraform, Puppet and Chef.
|
83
|
+
description: opensecret stashes uncrackable secrets as encrypted material in plaintext
|
84
|
+
files. After installing hte opensecret gem, you init, open, put and then look at
|
85
|
+
your credentials, sensitive information and secrets.
|
87
86
|
email:
|
88
87
|
- apolloakora@gmail.com
|
89
88
|
executables:
|
@@ -102,39 +101,38 @@ files:
|
|
102
101
|
- Rakefile
|
103
102
|
- bin/opensecret
|
104
103
|
- bin/ops
|
105
|
-
- lib/exception/cli.error.rb
|
106
|
-
- lib/exception/errors/cli.errors.rb
|
107
104
|
- lib/extension/array.rb
|
108
105
|
- lib/extension/dir.rb
|
109
106
|
- lib/extension/file.rb
|
110
107
|
- lib/extension/hash.rb
|
111
108
|
- lib/extension/string.rb
|
112
109
|
- lib/factbase/facts.opensecret.io.ini
|
113
|
-
- lib/interprete
|
114
|
-
- lib/interprete/cmd.rb
|
115
|
-
- lib/interprete/export.rb
|
116
|
-
- lib/interprete/init.rb
|
117
|
-
- lib/interprete/key.rb
|
118
|
-
- lib/interprete/open.rb
|
119
|
-
- lib/interprete/put.rb
|
120
|
-
- lib/interprete/safe.rb
|
121
|
-
- lib/interprete/seal.rb
|
122
|
-
- lib/interprete/set.rb
|
123
|
-
- lib/interprete/use.rb
|
124
|
-
- lib/interpreter.rb
|
110
|
+
- lib/interprete.rb
|
125
111
|
- lib/keytools/binary.map.rb
|
126
|
-
- lib/keytools/digester.rb
|
127
112
|
- lib/keytools/doc.conversion.to.ones.and.zeroes.ruby
|
128
113
|
- lib/keytools/doc.rsa.radix.binary-mapping.ruby
|
129
114
|
- lib/keytools/doc.star.schema.strategy.txt
|
130
115
|
- lib/keytools/doc.using.pbkdf2.kdf.ruby
|
131
116
|
- lib/keytools/doc.using.pbkdf2.pkcs.ruby
|
117
|
+
- lib/keytools/kdf.api.rb
|
132
118
|
- lib/keytools/kdf.bcrypt.rb
|
133
119
|
- lib/keytools/kdf.pbkdf2.rb
|
134
|
-
- lib/keytools/
|
135
|
-
- lib/keytools/key.
|
136
|
-
- lib/keytools/key.
|
120
|
+
- lib/keytools/kdf.scrypt.rb
|
121
|
+
- lib/keytools/key.64.rb
|
122
|
+
- lib/keytools/key.algo.rb
|
123
|
+
- lib/keytools/key.api.rb
|
124
|
+
- lib/keytools/key.db.rb
|
125
|
+
- lib/keytools/key.docs.rb
|
126
|
+
- lib/keytools/key.error.rb
|
127
|
+
- lib/keytools/key.id.rb
|
128
|
+
- lib/keytools/key.iv.rb
|
129
|
+
- lib/keytools/key.local.rb
|
130
|
+
- lib/keytools/key.mach.rb
|
131
|
+
- lib/keytools/key.now.rb
|
132
|
+
- lib/keytools/key.pair.rb
|
133
|
+
- lib/keytools/key.pass.rb
|
137
134
|
- lib/keytools/key.rb
|
135
|
+
- lib/keytools/keydebug.txt
|
138
136
|
- lib/logging/gem.logging.rb
|
139
137
|
- lib/modules/cryptology.md
|
140
138
|
- lib/modules/cryptology/aes-256.rb
|
@@ -145,21 +143,29 @@ files:
|
|
145
143
|
- lib/modules/cryptology/crypt.io.rb
|
146
144
|
- lib/modules/cryptology/engineer.rb
|
147
145
|
- lib/modules/cryptology/open.bcrypt.rb
|
148
|
-
- lib/modules/mappers/collateral.rb
|
149
146
|
- lib/modules/mappers/dictionary.rb
|
150
|
-
- lib/modules/mappers/envelope.rb
|
151
|
-
- lib/modules/mappers/settings.rb
|
152
147
|
- lib/modules/storage/coldstore.rb
|
153
148
|
- lib/modules/storage/git.store.rb
|
154
|
-
- lib/notepad/scratch.pad.rb
|
155
149
|
- lib/session/fact.finder.rb
|
156
150
|
- lib/session/require.gem.rb
|
157
151
|
- lib/session/time.stamp.rb
|
158
152
|
- lib/session/user.home.rb
|
159
|
-
- lib/
|
153
|
+
- lib/usecase/cmd.rb
|
154
|
+
- lib/usecase/id.rb
|
155
|
+
- lib/usecase/import.rb
|
156
|
+
- lib/usecase/init.rb
|
157
|
+
- lib/usecase/login.rb
|
158
|
+
- lib/usecase/logout.rb
|
159
|
+
- lib/usecase/open.rb
|
160
|
+
- lib/usecase/put.rb
|
161
|
+
- lib/usecase/read.rb
|
162
|
+
- lib/usecase/safe.rb
|
163
|
+
- lib/usecase/set.rb
|
164
|
+
- lib/usecase/token.rb
|
165
|
+
- lib/usecase/use.rb
|
160
166
|
- lib/version.rb
|
161
167
|
- opensecret.gemspec
|
162
|
-
homepage: https://www.
|
168
|
+
homepage: https://www.devops-hub.com/software/opensecret
|
163
169
|
licenses:
|
164
170
|
- MIT
|
165
171
|
metadata:
|
@@ -172,7 +178,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
172
178
|
requirements:
|
173
179
|
- - ">="
|
174
180
|
- !ruby/object:Gem::Version
|
175
|
-
version:
|
181
|
+
version: 2.5.0
|
176
182
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
183
|
requirements:
|
178
184
|
- - ">="
|
@@ -180,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
180
186
|
version: '0'
|
181
187
|
requirements: []
|
182
188
|
rubyforge_project:
|
183
|
-
rubygems_version: 2.
|
189
|
+
rubygems_version: 2.7.6
|
184
190
|
signing_key:
|
185
191
|
specification_version: 4
|
186
192
|
summary: opensecret locks and unlocks secrets in a simple, secure and intuitive way.
|