opensecret 0.0.988 → 0.0.9925
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|