opensecret 0.0.9925 → 0.0.9949
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 +4 -4
- data/README.md +656 -40
- data/lib/configs/README.md +58 -0
- data/lib/extension/file.rb +67 -0
- data/lib/extension/string.rb +10 -0
- data/lib/factbase/facts.opensecret.io.ini +1 -0
- data/lib/interprete.rb +334 -61
- data/lib/keytools/PRODUCE_RAND_SEQ_USING_DEV_URANDOM.txt +0 -0
- data/lib/keytools/kdf.api.rb +9 -15
- data/lib/keytools/kdf.bcrypt.rb +69 -19
- data/lib/keytools/kdf.pbkdf2.rb +112 -23
- data/lib/keytools/key.api.rb +146 -36
- data/lib/keytools/key.db.rb +94 -29
- data/lib/keytools/key.id.rb +1 -1
- data/lib/keytools/key.ident.rb +243 -0
- data/lib/keytools/key.local.rb +62 -68
- data/lib/keytools/key.pass.rb +2 -2
- data/lib/keytools/key.rb +2 -28
- data/lib/modules/{cryptology.md → README.md} +0 -0
- data/lib/session/fact.finder.rb +65 -428
- data/lib/session/time.stamp.rb +1 -28
- data/lib/usecase/cmd.rb +127 -54
- data/lib/usecase/config/README.md +57 -0
- data/lib/usecase/docker/README.md +146 -0
- data/lib/usecase/docker/docker.rb +49 -0
- data/lib/usecase/edit/README.md +43 -0
- data/lib/usecase/edit/delete.rb +46 -0
- data/lib/usecase/export.rb +40 -0
- data/lib/usecase/files/README.md +37 -0
- data/lib/usecase/files/eject.rb +56 -0
- data/lib/usecase/files/file_me.rb +78 -0
- data/lib/usecase/files/read.rb +169 -0
- data/lib/usecase/files/write.rb +89 -0
- data/lib/usecase/goto.rb +57 -0
- data/lib/usecase/id.rb +1 -1
- data/lib/usecase/import.rb +13 -30
- data/lib/usecase/init.rb +2 -17
- data/lib/usecase/jenkins/README.md +146 -0
- data/lib/usecase/jenkins/crazy_ruby_post_attempt.OLD +234 -0
- data/lib/usecase/jenkins/jenkins.rb +208 -0
- data/lib/usecase/login.rb +6 -5
- data/lib/usecase/logout.rb +1 -3
- data/lib/usecase/open.rb +11 -66
- data/lib/usecase/print.rb +40 -0
- data/lib/usecase/put.rb +34 -156
- data/lib/usecase/set.rb +2 -4
- data/lib/usecase/show.rb +138 -0
- data/lib/usecase/terraform/README.md +91 -0
- data/lib/usecase/terraform/terraform.rb +121 -0
- data/lib/usecase/token.rb +4 -80
- data/lib/usecase/update/README.md +55 -0
- data/lib/usecase/update/rename.rb +180 -0
- data/lib/usecase/use.rb +1 -3
- data/lib/usecase/verse.rb +20 -0
- data/lib/usecase/view.rb +71 -0
- data/lib/usecase/vpn/README.md +150 -0
- data/lib/usecase/vpn/vpn.ini +31 -0
- data/lib/usecase/vpn/vpn.rb +54 -0
- data/lib/version.rb +1 -1
- data/opensecret.gemspec +3 -4
- metadata +34 -35
- data/.travis.yml +0 -5
- data/CODE_OF_CONDUCT.md +0 -74
- data/LICENSE.txt +0 -21
- data/bin/ops +0 -20
- data/lib/keytools/binary.map.rb +0 -294
- data/lib/keytools/doc.conversion.to.ones.and.zeroes.ruby +0 -179
- data/lib/keytools/doc.rsa.radix.binary-mapping.ruby +0 -190
- data/lib/keytools/doc.star.schema.strategy.txt +0 -77
- data/lib/keytools/doc.using.pbkdf2.kdf.ruby +0 -95
- data/lib/keytools/doc.using.pbkdf2.pkcs.ruby +0 -266
- data/lib/keytools/key.mach.rb +0 -248
- data/lib/keytools/keydebug.txt +0 -295
- data/lib/modules/cryptology/open.bcrypt.rb +0 -170
- data/lib/usecase/read.rb +0 -89
- data/lib/usecase/safe.rb +0 -92
data/lib/usecase/use.rb
CHANGED
@@ -2,8 +2,6 @@
|
|
2
2
|
|
3
3
|
module OpenSecret
|
4
4
|
|
5
|
-
require 'openssl'
|
6
|
-
|
7
5
|
# The <b>use <em>use case</em></b> borrowed from the database world denotes which
|
8
6
|
# domain will be used <b>for now (and evermore)</b> on the workstation until another
|
9
7
|
# use command is issued.
|
@@ -18,7 +16,7 @@ module OpenSecret
|
|
18
16
|
# Error - if the domain name is not listed in the configuration file.
|
19
17
|
# Error - if the (dictionary) path to the domain's base does not exist
|
20
18
|
#
|
21
|
-
class Use <
|
19
|
+
class Use < UseCase
|
22
20
|
|
23
21
|
attr_writer :domain_name
|
24
22
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
module OpenSecret
|
4
|
+
|
5
|
+
class Verse < UseCase
|
6
|
+
|
7
|
+
def execute
|
8
|
+
|
9
|
+
return unless ops_key_exists?
|
10
|
+
master_db = get_master_database()
|
11
|
+
return if unopened_envelope?( master_db )
|
12
|
+
print master_db[ KEY_PATH ]
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
end
|
data/lib/usecase/view.rb
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
module OpenSecret
|
4
|
+
|
5
|
+
# View provides a bird's eye view of the domain's content and links well with
|
6
|
+
# the <b>goto</b>, <b>show</b> and <b>tell</b> commands.
|
7
|
+
#
|
8
|
+
# $ xxx view
|
9
|
+
# $ xxx goto 5 # shortcut for xxx open <<envelope_name>> <<key_name>>
|
10
|
+
# $ xxx show
|
11
|
+
# $ xxx tell
|
12
|
+
# $ xxx tell url
|
13
|
+
#
|
14
|
+
# View maps out and numbers each envelope/key combination.
|
15
|
+
# Goto with the number effectively shortcuts the open pinpointer.
|
16
|
+
# Show prints out the dictionary at the opened path but masks any secrets.
|
17
|
+
# Tell without a parameter echoes the secret.
|
18
|
+
# Tell with parameter echoes the value of the parameter key (eg url).
|
19
|
+
#
|
20
|
+
# Once goto is enacted all path CRUD commands come into play as if you had
|
21
|
+
# opened the path. These include put, copy, paste, show, tell and delete.
|
22
|
+
class View < UseCase
|
23
|
+
|
24
|
+
def execute
|
25
|
+
|
26
|
+
return unless ops_key_exists?
|
27
|
+
master_db = OpenKey::KeyApi.read_master_db()
|
28
|
+
|
29
|
+
open_envelope = "(none)" if master_db[ ENV_PATH ].nil?
|
30
|
+
open_envelope = master_db[ ENV_PATH ] unless master_db[ ENV_PATH ].nil?
|
31
|
+
open_key_path = "(none)" if master_db[ KEY_PATH ].nil?
|
32
|
+
open_key_path = master_db[ KEY_PATH ] unless master_db[ KEY_PATH ].nil?
|
33
|
+
|
34
|
+
puts ""
|
35
|
+
puts "--- Book Birthday ~> #{OpenKey::KeyApi.to_db_create_date(master_db)}\n"
|
36
|
+
puts "--- The Book Name ~> #{OpenKey::KeyApi.to_db_domain_name(master_db)}\n"
|
37
|
+
puts "--- The Book (Id) ~> #{OpenKey::KeyApi.to_db_domain_id(master_db)}\n"
|
38
|
+
puts "---\n"
|
39
|
+
puts "--- Chapter ~> #{open_envelope}\n"
|
40
|
+
puts "--- + Verse ~> #{open_key_path}\n"
|
41
|
+
puts "---\n"
|
42
|
+
|
43
|
+
goto_location = 1
|
44
|
+
envelope_dictionaries = OpenKey::KeyApi.to_matching_dictionary( master_db, ENVELOPE_KEY_PREFIX )
|
45
|
+
envelope_dictionaries.each_pair do | envelope_name, crumb_dictionary |
|
46
|
+
is_opened_chapter = envelope_name.eql?( open_envelope )
|
47
|
+
envelope_content = OpenKey::KeyDb.from_json( OpenKey::KeyApi.content_unlock( crumb_dictionary ) )
|
48
|
+
envelope_content.each_key do | envelope_key |
|
49
|
+
is_opened_verse = envelope_key.eql?( open_key_path )
|
50
|
+
is_open = is_opened_chapter && is_opened_verse
|
51
|
+
openend = is_open ? " (( open location ))" : ""
|
52
|
+
fixdint = format( "%02d", goto_location )
|
53
|
+
goindex = is_open ? "" : "[#{fixdint}] "
|
54
|
+
puts "--- --- --------------------------------------" if is_open
|
55
|
+
puts "--- #{goindex}#{envelope_name} ~> #{envelope_key}#{openend}\n"
|
56
|
+
puts "--- --- --------------------------------------" if is_open
|
57
|
+
goto_location += 1
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
puts ""
|
62
|
+
|
63
|
+
return
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
|
71
|
+
end
|
@@ -0,0 +1,150 @@
|
|
1
|
+
|
2
|
+
# Switch On an OpenVPN Client Connection
|
3
|
+
|
4
|
+
safe vpn
|
5
|
+
|
6
|
+
## Introduction
|
7
|
+
|
8
|
+
This DevOps task is a collaboration to **switch on a VPN connection** with safe as the credentials provider, nmcli on Ubuntu and an OpenVPN account embodied details within an ovpn file.
|
9
|
+
|
10
|
+
## Task Preconditions
|
11
|
+
|
12
|
+
To switch on a client OpenVPN connection the following must hold true
|
13
|
+
|
14
|
+
- a shell safe tokenize, login and open has ocurred
|
15
|
+
- the opened safe location must have a key vpn.id
|
16
|
+
- safe write <<runtime.dir>> must eject <<vpn.id>>.ovpn
|
17
|
+
- the ovpn file must be valid and point to a running accessible openvpn server
|
18
|
+
- the ubiquitous @password field must hold a credible value
|
19
|
+
- the VPN connection is assumed to be not just switched off, but deleted (at the start)
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
# Switch Off an OpenVPN Client Connection
|
25
|
+
|
26
|
+
dot vpn down
|
27
|
+
|
28
|
+
## Introduction
|
29
|
+
|
30
|
+
This DevOps task is a collaboration to **switch on a VPN connection** with safe as the credentials provider, nmcli on Ubuntu and an OpenVPN account embodied details within an ovpn file.
|
31
|
+
|
32
|
+
## Task Preconditions
|
33
|
+
|
34
|
+
To switch on a client OpenVPN connection the following must hold true
|
35
|
+
|
36
|
+
- a shell safe tokenize, login and open has ocurred
|
37
|
+
- the opened safe location must have a key vpn.id
|
38
|
+
- safe write <<runtime.dir>> must eject <<vpn.id>>.ovpn
|
39
|
+
- the ovpn file must be valid and point to a running accessible openvpn server
|
40
|
+
- the ubiquitous @password field must hold a credible value
|
41
|
+
- the VPN connection is assumed to be not just switched off, but deleted (at the start)
|
42
|
+
|
43
|
+
|
44
|
+
# safe vpn up | safe vpn down
|
45
|
+
|
46
|
+
$ safe open vpn production
|
47
|
+
$ safe vpn up
|
48
|
+
$ ... (do work using vpn)
|
49
|
+
$ safe vpn down
|
50
|
+
|
51
|
+
## safe vpn | introduction
|
52
|
+
|
53
|
+
Once you put VPN credentials into a mini-dictionary (in a safe book chapter and verse), you can bring up a VPN connection and after doing your work through the VPN you can tear it down.
|
54
|
+
|
55
|
+
**[The strategy used to bring the OpenVPN connection up and down can be found here.](http://www.devopswiki.co.uk/wiki/middleware/network/openvpn/openvpn)**
|
56
|
+
|
57
|
+
|
58
|
+
### safe vpn | ovpn | requirements
|
59
|
+
|
60
|
+
Currently the safe vpn command is only integration tested with the following tech requirements
|
61
|
+
|
62
|
+
- an Ubuntu 16.04 and Ubuntu 18.04 operating system
|
63
|
+
- the nmcli (network manager command line) client which is installed if absent
|
64
|
+
- an OpenVPN server
|
65
|
+
- VPN configuration imported via an OpenVPN **`*.ovpn`** file
|
66
|
+
|
67
|
+
|
68
|
+
## safe terraform | credential creation
|
69
|
+
|
70
|
+
The first use case is importing the IAM user credentials into safe.
|
71
|
+
|
72
|
+
$ safe login joebloggs.com # open the book
|
73
|
+
$ safe open iam dev.s3.writer # open chapter and verse
|
74
|
+
$ safe put @access.key ABCD1234EFGH5678 # Put IAM access key in safe
|
75
|
+
$ safe put @secret.key xyzabcd1234efgh5678 # Put IAM secret key in safe
|
76
|
+
$ safe put region.key eu-west-3 # infrastructure in Paris
|
77
|
+
|
78
|
+
$ safe open iam prod.provisioner # open chapter and verse
|
79
|
+
$ safe put @access.key 4321DCBA8765WXYZ # Put IAM access key in safe
|
80
|
+
$ safe put @secret.key 5678uvwx4321abcd9876 # Put IAM secret key in safe
|
81
|
+
$ safe put region.key eu-west-1 # infrastructure in Dublin
|
82
|
+
|
83
|
+
safe logout
|
84
|
+
|
85
|
+
Take care to specify these 3 key names **@access.key**, **@secret.key**, **region.key** and note that safe's convention is to sensitively treat the value's of keys beginning with an **@** sign. **safe show** and other readers **mask out (redact)** these sensitive values.
|
86
|
+
|
87
|
+
|
88
|
+
## safe terraform | running terraform
|
89
|
+
|
90
|
+
Now and forever you can return to the chapter and verse and enjoy a secure credentials transfer where safe makes the IAM user credentials available to Terraform via environment variables. **Never do the plain text credentials touch the floor (disk).**
|
91
|
+
|
92
|
+
### Why no safe terraform init?
|
93
|
+
**safe only gets involved when credentials are involved**.
|
94
|
+
**safe** is not trying to wrap command willy nilly. safe's policy is to keep external tool interfaces as **small** as possible. **`terraform init .`** does not involve credentials so safe does not get involved.
|
95
|
+
|
96
|
+
$ cd /path/to/terraform/dir # go to directory holding your .tf file
|
97
|
+
$ safe login joebloggs.com # login to your chosen book
|
98
|
+
$ safe open iam dev.s3.writer # open chapter and verse holding IAM creds
|
99
|
+
$ terraform init . # the usual terraform init command
|
100
|
+
$ safe terraform plan # credentials are exported then terraform plan is run
|
101
|
+
$ safe terraform apply # credentials are exported then terraform apply is run
|
102
|
+
$ safe terraform destroy # credentials are exported then terraform destroy is run
|
103
|
+
|
104
|
+
You can even change directories and run other terraform projects against the opened IAM user. You can also open an IAM user, run commands, open another run commands and then reopen the first and run commands.
|
105
|
+
|
106
|
+
As long as you stay within your shell window - your safe login will persist. Once your session is finished you either logout or exit the shell.
|
107
|
+
|
108
|
+
### Shortcut Alert
|
109
|
+
|
110
|
+
**safe terraform** is a shortcut for **safe terraform apply**
|
111
|
+
|
112
|
+
$ safe terraform apply
|
113
|
+
$ safe terraform
|
114
|
+
|
115
|
+
## safe terraform | pre-conditions
|
116
|
+
|
117
|
+
To enact a successful safe terraform call you will need
|
118
|
+
|
119
|
+
- to have created an IAM user
|
120
|
+
- to open chapter and verse which
|
121
|
+
- has these 3 keys @access.key @secret.key and region.key (at least)
|
122
|
+
- terraform installed on the machine or container
|
123
|
+
|
124
|
+
|
125
|
+
## safe terraform | benefits
|
126
|
+
|
127
|
+
The safe terraform command is both an ultra secure and extremely convenient way of launching terraform.
|
128
|
+
|
129
|
+
Your precious AWS IAM user credentials do not leave the safe and exist within (environment variable) memory only for the duration of the terraform command.
|
130
|
+
|
131
|
+
It is safe as you need neither expose your AWS credentials in plain text in **~/.aws/credentials**, nor risk them sliding into version control. It is convenient because switching IAM users and AWS regions is as easy as typing the now ubiquitous safe open command.
|
132
|
+
|
133
|
+
|
134
|
+
## quick tip | view then goto
|
135
|
+
|
136
|
+
No need to type out the safe open command everytime. Use it the very first time you create a path to chapter and verse.
|
137
|
+
|
138
|
+
safe open <<chapter>> <<verse>>
|
139
|
+
|
140
|
+
Then use safe view and safe goto instead of safe open.
|
141
|
+
|
142
|
+
$ safe view # list all chapter and verses
|
143
|
+
$ safe goto <<index>> # use the number from safe view to open the location
|
144
|
+
$ safe show # look at your mini dictionary
|
145
|
+
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
|
150
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
|
2
|
+
[vpn]
|
3
|
+
|
4
|
+
vpn.id = rb>> @f[:secrets][:vpn_id]
|
5
|
+
vpn.filename = rb>> @s[:vpn_id] + ".ovpn"
|
6
|
+
export.folder = rb>> File.join( Dir.home, ".config/safe.db" )
|
7
|
+
vpn.filepath = rb>> File.join( @s[:export_folder], @s[:vpn_filename] )
|
8
|
+
vpn.username = rb>> @f[:secrets][:username]
|
9
|
+
vpn.password = rb>> @f[:secrets][:@password]
|
10
|
+
safe.write.cmd = rb>> "safe write --script " + @s[:vpn_filepath]
|
11
|
+
|
12
|
+
nm.import.cmd = rb>> "sudo nmcli connection import type openvpn file " + @s[:vpn_filepath]
|
13
|
+
nm.default.cmd = rb>> "nmcli connection modify " + @s[:vpn_id] + " ipv4.never-default true"
|
14
|
+
nm.user.cmd = rb>> "nmcli connection modify " + @s[:vpn_id] + " +vpn.data username=" + @s[:vpn_username]
|
15
|
+
nm.reload.cmd = rb>> "sudo nmcli connection reload " + @s[:vpn_id]
|
16
|
+
nm.flags.cmd = rb>> "nmcli connection modify " + @s[:vpn_id] + " +vpn.data password-flags=0"
|
17
|
+
this.user = rb>> Etc.getlogin()
|
18
|
+
|
19
|
+
nm.directory = /etc/NetworkManager/system-connections
|
20
|
+
nm.filepath = rb>> File.join @s[:nm_directory], @s[:vpn_id]
|
21
|
+
nm.cache.name = rb>> @s[:vpn_id] + ".ini"
|
22
|
+
nm.cache.path = rb>> File.join( Gem.user_home(), @s[:nm_cache_name] )
|
23
|
+
|
24
|
+
chown.cmd.1 = rb>> "sudo chown " + @s[:this_user] + ":" + @s[:this_user] + " " + @s[:nm_filepath]
|
25
|
+
chown.cmd.2 = rb>> "sudo chown root:root " + @s[:nm_filepath]
|
26
|
+
|
27
|
+
nm.conn.up = rb>> "nmcli connection up " + @s[:vpn_id]
|
28
|
+
nm.restart = sudo service network-manager restart
|
29
|
+
|
30
|
+
nm.conn.off = rb>> "nmcli con down id " + @s[:vpn_id]
|
31
|
+
nm.conn.del = rb>> "nmcli connection delete " + @s[:vpn_id]
|
@@ -0,0 +1,54 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
module OpenSecret
|
4
|
+
|
5
|
+
# This vpn use case sets up vpn connection paraphernelia and can bring up a VPN connection
|
6
|
+
# and then tear it down.
|
7
|
+
#
|
8
|
+
# safe vpn up
|
9
|
+
# safe vpn down
|
10
|
+
class Vpn < UseCase
|
11
|
+
|
12
|
+
attr_writer :command
|
13
|
+
|
14
|
+
def execute
|
15
|
+
|
16
|
+
if( @command && @command.eql?( "down" ) )
|
17
|
+
|
18
|
+
puts ""
|
19
|
+
system @dictionary[ :nm_conn_off ]; sleep 2;
|
20
|
+
system @dictionary[ :nm_conn_del ]
|
21
|
+
puts ""
|
22
|
+
return
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
puts ""
|
27
|
+
system @dictionary[ :safe_write_cmd ]
|
28
|
+
puts "[#{@dictionary[ :vpn_filename ]}] temporarily exported to [#{@dictionary[ :vpn_filepath ]}]."
|
29
|
+
system @dictionary[ :nm_import_cmd ]
|
30
|
+
File.delete( @dictionary[ :vpn_filepath ] )
|
31
|
+
puts "Exported file [#{@dictionary[ :vpn_filepath ]}] has now been deleted."
|
32
|
+
|
33
|
+
system @dictionary[ :nm_default_cmd ]
|
34
|
+
system @dictionary[ :nm_user_cmd ]
|
35
|
+
system @dictionary[ :nm_reload_cmd ]
|
36
|
+
system @dictionary[ :nm_flags_cmd ]
|
37
|
+
system @dictionary[ :chown_cmd_1 ]
|
38
|
+
|
39
|
+
vpn_data = IniFile.load( @dictionary[:nm_filepath] )
|
40
|
+
vpn_data['vpn-secrets'] = { 'password' => @dictionary[:vpn_password] }
|
41
|
+
vpn_data.write()
|
42
|
+
|
43
|
+
system @dictionary[ :chown_cmd_2 ]
|
44
|
+
system @dictionary[ :nm_restart ]; sleep 2;
|
45
|
+
system @dictionary[ :nm_conn_up ]
|
46
|
+
puts ""
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
end
|
data/lib/version.rb
CHANGED
data/opensecret.gemspec
CHANGED
@@ -7,8 +7,8 @@ Gem::Specification.new do |spec|
|
|
7
7
|
|
8
8
|
spec.name = "opensecret"
|
9
9
|
spec.version = OpenSecret::VERSION
|
10
|
-
spec.authors = ["
|
11
|
-
spec.email = ["
|
10
|
+
spec.authors = ["opensecret.io"]
|
11
|
+
spec.email = ["devopsassets@gmail.com"]
|
12
12
|
|
13
13
|
spec.summary = %q{opensecret locks and unlocks secrets in a simple, secure and intuitive way.}
|
14
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.}
|
@@ -21,13 +21,12 @@ Gem::Specification.new do |spec|
|
|
21
21
|
|
22
22
|
spec.metadata["yard.run"] = "yri"
|
23
23
|
spec.bindir = "bin"
|
24
|
-
spec.executables = ['opensecret'
|
24
|
+
spec.executables = [ 'opensecret' ]
|
25
25
|
spec.require_paths = ["lib"]
|
26
26
|
spec.required_ruby_version = '>= 2.5.0'
|
27
27
|
|
28
28
|
spec.add_dependency 'inifile', '~> 3.0'
|
29
29
|
spec.add_dependency 'thor', '~> 0.2'
|
30
|
-
spec.add_dependency 'uuid'
|
31
30
|
spec.add_dependency 'bcrypt'
|
32
31
|
|
33
32
|
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.9949
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- opensecret.io
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-02-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: inifile
|
@@ -38,20 +38,6 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0.2'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: uuid
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: bcrypt
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,23 +70,19 @@ description: opensecret stashes uncrackable secrets as encrypted material in pla
|
|
84
70
|
files. After installing hte opensecret gem, you init, open, put and then look at
|
85
71
|
your credentials, sensitive information and secrets.
|
86
72
|
email:
|
87
|
-
-
|
73
|
+
- devopsassets@gmail.com
|
88
74
|
executables:
|
89
75
|
- opensecret
|
90
|
-
- ops
|
91
76
|
extensions: []
|
92
77
|
extra_rdoc_files: []
|
93
78
|
files:
|
94
79
|
- ".gitignore"
|
95
|
-
- ".travis.yml"
|
96
80
|
- ".yardopts"
|
97
|
-
- CODE_OF_CONDUCT.md
|
98
81
|
- Gemfile
|
99
|
-
- LICENSE.txt
|
100
82
|
- README.md
|
101
83
|
- Rakefile
|
102
84
|
- bin/opensecret
|
103
|
-
-
|
85
|
+
- lib/configs/README.md
|
104
86
|
- lib/extension/array.rb
|
105
87
|
- lib/extension/dir.rb
|
106
88
|
- lib/extension/file.rb
|
@@ -108,12 +90,7 @@ files:
|
|
108
90
|
- lib/extension/string.rb
|
109
91
|
- lib/factbase/facts.opensecret.io.ini
|
110
92
|
- lib/interprete.rb
|
111
|
-
- lib/keytools/
|
112
|
-
- lib/keytools/doc.conversion.to.ones.and.zeroes.ruby
|
113
|
-
- lib/keytools/doc.rsa.radix.binary-mapping.ruby
|
114
|
-
- lib/keytools/doc.star.schema.strategy.txt
|
115
|
-
- lib/keytools/doc.using.pbkdf2.kdf.ruby
|
116
|
-
- lib/keytools/doc.using.pbkdf2.pkcs.ruby
|
93
|
+
- lib/keytools/PRODUCE_RAND_SEQ_USING_DEV_URANDOM.txt
|
117
94
|
- lib/keytools/kdf.api.rb
|
118
95
|
- lib/keytools/kdf.bcrypt.rb
|
119
96
|
- lib/keytools/kdf.pbkdf2.rb
|
@@ -125,16 +102,15 @@ files:
|
|
125
102
|
- lib/keytools/key.docs.rb
|
126
103
|
- lib/keytools/key.error.rb
|
127
104
|
- lib/keytools/key.id.rb
|
105
|
+
- lib/keytools/key.ident.rb
|
128
106
|
- lib/keytools/key.iv.rb
|
129
107
|
- lib/keytools/key.local.rb
|
130
|
-
- lib/keytools/key.mach.rb
|
131
108
|
- lib/keytools/key.now.rb
|
132
109
|
- lib/keytools/key.pair.rb
|
133
110
|
- lib/keytools/key.pass.rb
|
134
111
|
- lib/keytools/key.rb
|
135
|
-
- lib/keytools/keydebug.txt
|
136
112
|
- lib/logging/gem.logging.rb
|
137
|
-
- lib/modules/
|
113
|
+
- lib/modules/README.md
|
138
114
|
- lib/modules/cryptology/aes-256.rb
|
139
115
|
- lib/modules/cryptology/amalgam.rb
|
140
116
|
- lib/modules/cryptology/blowfish.rb
|
@@ -142,7 +118,6 @@ files:
|
|
142
118
|
- lib/modules/cryptology/collect.rb
|
143
119
|
- lib/modules/cryptology/crypt.io.rb
|
144
120
|
- lib/modules/cryptology/engineer.rb
|
145
|
-
- lib/modules/cryptology/open.bcrypt.rb
|
146
121
|
- lib/modules/mappers/dictionary.rb
|
147
122
|
- lib/modules/storage/coldstore.rb
|
148
123
|
- lib/modules/storage/git.store.rb
|
@@ -151,18 +126,42 @@ files:
|
|
151
126
|
- lib/session/time.stamp.rb
|
152
127
|
- lib/session/user.home.rb
|
153
128
|
- lib/usecase/cmd.rb
|
129
|
+
- lib/usecase/config/README.md
|
130
|
+
- lib/usecase/docker/README.md
|
131
|
+
- lib/usecase/docker/docker.rb
|
132
|
+
- lib/usecase/edit/README.md
|
133
|
+
- lib/usecase/edit/delete.rb
|
134
|
+
- lib/usecase/export.rb
|
135
|
+
- lib/usecase/files/README.md
|
136
|
+
- lib/usecase/files/eject.rb
|
137
|
+
- lib/usecase/files/file_me.rb
|
138
|
+
- lib/usecase/files/read.rb
|
139
|
+
- lib/usecase/files/write.rb
|
140
|
+
- lib/usecase/goto.rb
|
154
141
|
- lib/usecase/id.rb
|
155
142
|
- lib/usecase/import.rb
|
156
143
|
- lib/usecase/init.rb
|
144
|
+
- lib/usecase/jenkins/README.md
|
145
|
+
- lib/usecase/jenkins/crazy_ruby_post_attempt.OLD
|
146
|
+
- lib/usecase/jenkins/jenkins.rb
|
157
147
|
- lib/usecase/login.rb
|
158
148
|
- lib/usecase/logout.rb
|
159
149
|
- lib/usecase/open.rb
|
150
|
+
- lib/usecase/print.rb
|
160
151
|
- lib/usecase/put.rb
|
161
|
-
- lib/usecase/read.rb
|
162
|
-
- lib/usecase/safe.rb
|
163
152
|
- lib/usecase/set.rb
|
153
|
+
- lib/usecase/show.rb
|
154
|
+
- lib/usecase/terraform/README.md
|
155
|
+
- lib/usecase/terraform/terraform.rb
|
164
156
|
- lib/usecase/token.rb
|
157
|
+
- lib/usecase/update/README.md
|
158
|
+
- lib/usecase/update/rename.rb
|
165
159
|
- lib/usecase/use.rb
|
160
|
+
- lib/usecase/verse.rb
|
161
|
+
- lib/usecase/view.rb
|
162
|
+
- lib/usecase/vpn/README.md
|
163
|
+
- lib/usecase/vpn/vpn.ini
|
164
|
+
- lib/usecase/vpn/vpn.rb
|
166
165
|
- lib/version.rb
|
167
166
|
- opensecret.gemspec
|
168
167
|
homepage: https://www.devops-hub.com/software/opensecret
|