opensecret 0.0.962 → 0.0.988

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.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +16 -10
  3. data/bin/opensecret +3 -4
  4. data/bin/ops +5 -0
  5. data/lib/extension/string.rb +114 -0
  6. data/lib/factbase/facts.opensecret.io.ini +9 -21
  7. data/lib/interprete/begin.rb +232 -0
  8. data/lib/interprete/cmd.rb +621 -0
  9. data/lib/{plugins/usecases/unlock.rb → interprete/export.rb} +25 -70
  10. data/lib/interprete/init.rb +205 -0
  11. data/lib/interprete/key.rb +119 -0
  12. data/lib/interprete/open.rb +148 -0
  13. data/lib/{plugins/usecases → interprete}/put.rb +19 -6
  14. data/lib/{plugins/usecases → interprete}/safe.rb +2 -1
  15. data/lib/{plugins/usecases/lock.rb → interprete/seal.rb} +24 -34
  16. data/lib/interprete/set.rb +46 -0
  17. data/lib/interprete/use.rb +43 -0
  18. data/lib/interpreter.rb +165 -0
  19. data/lib/keytools/binary.map.rb +245 -0
  20. data/lib/keytools/digester.rb +245 -0
  21. data/lib/keytools/doc.conversion.to.ones.and.zeroes.ruby +179 -0
  22. data/lib/keytools/doc.rsa.radix.binary-mapping.ruby +190 -0
  23. data/lib/keytools/doc.star.schema.strategy.txt +77 -0
  24. data/lib/keytools/doc.using.pbkdf2.kdf.ruby +95 -0
  25. data/lib/keytools/doc.using.pbkdf2.pkcs.ruby +266 -0
  26. data/lib/keytools/kdf.bcrypt.rb +180 -0
  27. data/lib/keytools/kdf.pbkdf2.rb +164 -0
  28. data/lib/keytools/key.data.rb +227 -0
  29. data/lib/keytools/key.derivation.rb +341 -0
  30. data/lib/keytools/key.module.rb +140 -0
  31. data/lib/keytools/key.rb +481 -0
  32. data/lib/logging/gem.logging.rb +1 -2
  33. data/lib/modules/cryptology.md +43 -0
  34. data/lib/{plugins/ciphers → modules/cryptology}/aes-256.rb +6 -0
  35. data/lib/{crypto → modules/cryptology}/amalgam.rb +6 -0
  36. data/lib/modules/cryptology/blowfish.rb +130 -0
  37. data/lib/modules/cryptology/cipher.rb +207 -0
  38. data/lib/modules/cryptology/collect.rb +118 -0
  39. data/lib/{plugins → modules/cryptology}/crypt.io.rb +5 -0
  40. data/lib/{crypto → modules/cryptology}/engineer.rb +7 -1
  41. data/lib/{crypto → modules/cryptology}/open.bcrypt.rb +0 -0
  42. data/lib/modules/mappers/collateral.rb +282 -0
  43. data/lib/modules/mappers/dictionary.rb +288 -0
  44. data/lib/modules/mappers/envelope.rb +127 -0
  45. data/lib/modules/mappers/settings.rb +170 -0
  46. data/lib/modules/storage/coldstore.rb +186 -0
  47. data/lib/{opensecret/plugins.io/git/git.flow.rb → modules/storage/git.store.rb} +11 -0
  48. data/lib/notepad/scratch.pad.rb +17 -0
  49. data/lib/session/fact.finder.rb +13 -0
  50. data/lib/session/require.gem.rb +5 -0
  51. data/lib/store-commands.txt +180 -0
  52. data/lib/version.rb +1 -1
  53. data/opensecret.gemspec +5 -6
  54. metadata +74 -29
  55. data/lib/crypto/blowfish.rb +0 -85
  56. data/lib/crypto/collect.rb +0 -140
  57. data/lib/crypto/verify.rb +0 -33
  58. data/lib/opensecret.rb +0 -236
  59. data/lib/plugins/cipher.rb +0 -203
  60. data/lib/plugins/ciphers/blowfish.rb +0 -126
  61. data/lib/plugins/coldstore.rb +0 -181
  62. data/lib/plugins/envelope.rb +0 -116
  63. data/lib/plugins/secrets.uc.rb +0 -94
  64. data/lib/plugins/usecase.rb +0 -239
  65. data/lib/plugins/usecases/init.rb +0 -145
  66. data/lib/plugins/usecases/open.rb +0 -108
  67. data/lib/session/attributes.rb +0 -279
  68. data/lib/session/dictionary.rb +0 -191
  69. data/lib/session/file.path.rb +0 -53
  70. data/lib/session/session.rb +0 -80
@@ -1,5 +1,10 @@
1
1
  #!/usr/bin/ruby
2
2
 
3
+ module OpenSecret
4
+
5
+ module Store
6
+
7
+
3
8
  # -- ------------------------------------------------------------------- -- #
4
9
  # -- Provision the git branch involved in our present working directory. -- #
5
10
  # -- The [present directory] may not relate to version control at all or -- #
@@ -384,5 +389,11 @@ class GitFlow
384
389
  end
385
390
 
386
391
 
392
+
393
+ end
394
+
395
+
396
+ end
397
+
387
398
  end
388
399
 
@@ -9,6 +9,23 @@
9
9
 
10
10
  class Trial
11
11
 
12
+
13
+ =begin
14
+
15
+ How to Sign
16
+ Signature Code
17
+ Sign Using Public/Private Keys
18
+
19
+ 00 ------------------------------------
20
+
21
+ to_sign_segments = [ secured_keytext, public_key_64, @email_addr, @c[:global][:stamp_23] ]
22
+ to_sign_packet = to_sign_segments.alphanumeric_union.concat_length
23
+ signature_string = Base64.urlsafe_encode64( asymmetric_keys.sign( OpenSSL::Digest::SHA256.new, to_sign_packet ) )
24
+
25
+ 00 ------------------------------------
26
+
27
+ =end
28
+
12
29
  def self.ciphername
13
30
 
14
31
  require 'openssl'
@@ -1,5 +1,18 @@
1
1
  #!/usr/bin/ruby
2
2
 
3
+ # opensession contains basic behaviour for managing a client only
4
+ # (serverless) session. Configuration directives are read and written
5
+ # from an INI off the home directory that is created when the session
6
+ # is first initiated.
7
+ #
8
+ # The session is expected to be formally closed down and that is
9
+ # reflected by explicitly deleting the configuration file. If this
10
+ # "session over" command is not issued a reasonable time limit is
11
+ # then invoked when the next session command is issued.
12
+ #
13
+ # This "session awakening" wipes the slate clean and starts afresh
14
+ # with regard to the two dimensional array of configuration directive
15
+ # pointers.
3
16
  module OpenSession
4
17
 
5
18
  require "pp"
@@ -85,6 +85,11 @@ module OpenSession
85
85
  # @param gem_filepath [String] path to callling gem (use <tt>__FILE</tt>)
86
86
  def self.now gem_filepath
87
87
 
88
+
89
+ ############ require_relative "../cryptools/keygen"
90
+ require_relative "../interprete/cmd"
91
+
92
+
88
93
  gem_basepath = File.expand_path "..", gem_filepath
89
94
 
90
95
  log.info(x) { "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" }
@@ -0,0 +1,180 @@
1
+
2
+
3
+ ops init john@example.com
4
+ ops open monday/menu
5
+
6
+ ops put breakfast/cereal weetabix
7
+ ops add breakfast/cereal cornflakes
8
+
9
+ if accidentally you do
10
+
11
+ ops put breakfast/cereal cocopops
12
+
13
+ it says
14
+ "I have overwritten the value of breakfast/cereal"
15
+ To alter this type "ops undo"
16
+ After every command create a backup file with session timestamp on it.
17
+ So later we can do
18
+
19
+ ops revert <<session time stamp>>
20
+ (will jump back to that point in time)
21
+
22
+ All files are deleted on close (lock) command.
23
+
24
+ ================================================
25
+ Global CRUD Commands
26
+ ================================================
27
+
28
+ init == creates the object
29
+ open == opens a path to the object
30
+ put == puts something inside the object (overwrites if need be)
31
+ add == add something to the object (if exists becomes a list which even allows duplicates like stack)
32
+ remove == takes out what was last put in (unless parameter declared)
33
+ close == closes object (or last opened entity -- and recurses back to another entity)
34
+ use == switches to use object with specified ID
35
+
36
+
37
+ Either Changing OBJECT - Or changing META-DATA about the OBJECT
38
+
39
+ ================================================
40
+
41
+
42
+ All commands are applicable to all key objects, however there is one default object that is assumed when none is specified.
43
+
44
+ So
45
+
46
+ ops open secret abc/def
47
+ ops open store xyz
48
+ ops open domain abc.com
49
+
50
+ But if un-specific command given
51
+
52
+ ops open abc/def
53
+
54
+ Then the default "secret" is assumed.
55
+
56
+
57
+
58
+ ==== =========================================================== ====
59
+ ==== The Open Format for Command Line (or REST API) Driven Tools ====
60
+ ==== =========================================================== ====
61
+
62
+
63
+ ops open domain xxxxxxxxxx
64
+
65
+ ops close == will close everything (domains, secrets ...)
66
+
67
+
68
+
69
+
70
+ Question "Close domain xxx or secret ...." - more than one is open
71
+
72
+ ops close domain
73
+
74
+
75
+
76
+
77
+ ops open store store123
78
+
79
+ ops put type git
80
+ ops put url http://asdfasdf.com
81
+ ops put credentials my.aws.keys.txt
82
+
83
+ 1 = ops close 2 = ops close store 3 = ops close store123
84
+ 1 = Closes everything 2 = Closes every store 3 = Closes the particular store
85
+
86
+
87
+ Then need ops use or (ops attach).
88
+
89
+
90
+
91
+ ==================================================================================================
92
+ Key Classes
93
+ ==================================================================================================
94
+
95
+ domain
96
+ store
97
+ session (etcd or redis or ...)
98
+ session (think about services jvms stuff that can be started and then referred to)
99
+
100
+
101
+
102
+ ops config store --url=/home/bob/crypt-store
103
+
104
+ ops config store --type=
105
+
106
+ ops safe url /home/bob/safe
107
+ ops safe url /media/phone/ops-data
108
+
109
+ ops safe type git
110
+ ops safe url https://my.domain.com/storage/
111
+
112
+
113
+
114
+ ops base /home/bob/credentials
115
+ ops safe
116
+
117
+
118
+ ops use domainxyz
119
+ ops use safe x123
120
+ ops use base 4sdfgy
121
+
122
+
123
+ ops configure safe/url https://www.asdf.com/asdfa.git
124
+
125
+ ops configure safe/id blue.usb.key
126
+ ops configure blue.usb.key safe/type file
127
+ ops configure safe
128
+
129
+
130
+ ==================================================================================================
131
+ ==================================================================================================
132
+
133
+
134
+
135
+
136
+ To Connect to Samsung S8 (or any other Android Device) - on Ubuntu
137
+
138
+ Most times it will be here
139
+ cd /run/user/1000/gvfs/
140
+
141
+ Then something like this
142
+ cd /run/user/1000/gvfs/mtp:host=%5Busb%3A001%2C015%5D
143
+ (but changes)
144
+
145
+ olooks like this
146
+ mtp://[usb:001,010]/Phone/OSX
147
+
148
+ mtp:host=%5Busb%3A001%2C015%5D
149
+
150
+
151
+
152
+ Do ls hardware then scroll to usb section it may look like this on one of them.
153
+ sudo lshw
154
+
155
+ *-usb:0
156
+ description: Generic USB device
157
+ product: SAMSUNG_Android
158
+ vendor: SAMSUNG
159
+ physical id: 1
160
+ bus info: usb@1:1
161
+ version: 4.00
162
+ serial: 9889db344b4436374d
163
+ capabilities: usb-2.10
164
+ configuration: driver=usbfs maxpower=64mA speed=480Mbit/s
165
+
166
+
167
+ very useful
168
+ sudo apt-get install mtpfs
169
+ mtp-detect
170
+
171
+
172
+
173
+ if open in nautilus
174
+ lsof -c nautilus
175
+
176
+
177
+ Try these commands
178
+
179
+ sudo fdisk -l
180
+ sudo cat /etc/fstab
@@ -1,3 +1,3 @@
1
1
  module OpenSecret
2
- VERSION = "0.0.962"
2
+ VERSION = "0.0.988"
3
3
  end
@@ -21,15 +21,14 @@ 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', 'ops']
25
25
  spec.require_paths = ["lib"]
26
26
 
27
- spec.add_dependency 'inifile'
28
- spec.add_dependency 'thor'
27
+ spec.add_dependency 'inifile', '~> 3.0'
28
+ spec.add_dependency 'thor', '~> 0.2'
29
+ spec.add_dependency 'macaddr'
30
+ spec.add_dependency 'bcrypt'
29
31
 
30
32
  spec.add_development_dependency "bundler", "~> 1.16"
31
- #### in standard library ==> spec.add_development_dependency "rake", "~> 10.0"
32
- #### in standard library ==> spec.add_development_dependency "minitest", "~> 5.0"
33
-
34
33
 
35
34
  end
metadata CHANGED
@@ -1,17 +1,45 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opensecret
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.962
4
+ version: 0.0.988
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-03-12 00:00:00.000000000 Z
11
+ date: 2018-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inifile
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: thor
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: macaddr
15
43
  requirement: !ruby/object:Gem::Requirement
16
44
  requirements:
17
45
  - - ">="
@@ -25,7 +53,7 @@ dependencies:
25
53
  - !ruby/object:Gem::Version
26
54
  version: '0'
27
55
  - !ruby/object:Gem::Dependency
28
- name: thor
56
+ name: bcrypt
29
57
  requirement: !ruby/object:Gem::Requirement
30
58
  requirements:
31
59
  - - ">="
@@ -60,6 +88,7 @@ email:
60
88
  - apolloakora@gmail.com
61
89
  executables:
62
90
  - opensecret
91
+ - ops
63
92
  extensions: []
64
93
  extra_rdoc_files: []
65
94
  files:
@@ -72,12 +101,7 @@ files:
72
101
  - README.md
73
102
  - Rakefile
74
103
  - bin/opensecret
75
- - lib/crypto/amalgam.rb
76
- - lib/crypto/blowfish.rb
77
- - lib/crypto/collect.rb
78
- - lib/crypto/engineer.rb
79
- - lib/crypto/open.bcrypt.rb
80
- - lib/crypto/verify.rb
104
+ - bin/ops
81
105
  - lib/exception/cli.error.rb
82
106
  - lib/exception/errors/cli.errors.rb
83
107
  - lib/extension/array.rb
@@ -86,32 +110,53 @@ files:
86
110
  - lib/extension/hash.rb
87
111
  - lib/extension/string.rb
88
112
  - lib/factbase/facts.opensecret.io.ini
113
+ - lib/interprete/begin.rb
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
125
+ - lib/keytools/binary.map.rb
126
+ - lib/keytools/digester.rb
127
+ - lib/keytools/doc.conversion.to.ones.and.zeroes.ruby
128
+ - lib/keytools/doc.rsa.radix.binary-mapping.ruby
129
+ - lib/keytools/doc.star.schema.strategy.txt
130
+ - lib/keytools/doc.using.pbkdf2.kdf.ruby
131
+ - lib/keytools/doc.using.pbkdf2.pkcs.ruby
132
+ - lib/keytools/kdf.bcrypt.rb
133
+ - lib/keytools/kdf.pbkdf2.rb
134
+ - lib/keytools/key.data.rb
135
+ - lib/keytools/key.derivation.rb
136
+ - lib/keytools/key.module.rb
137
+ - lib/keytools/key.rb
89
138
  - lib/logging/gem.logging.rb
139
+ - lib/modules/cryptology.md
140
+ - lib/modules/cryptology/aes-256.rb
141
+ - lib/modules/cryptology/amalgam.rb
142
+ - lib/modules/cryptology/blowfish.rb
143
+ - lib/modules/cryptology/cipher.rb
144
+ - lib/modules/cryptology/collect.rb
145
+ - lib/modules/cryptology/crypt.io.rb
146
+ - lib/modules/cryptology/engineer.rb
147
+ - lib/modules/cryptology/open.bcrypt.rb
148
+ - lib/modules/mappers/collateral.rb
149
+ - lib/modules/mappers/dictionary.rb
150
+ - lib/modules/mappers/envelope.rb
151
+ - lib/modules/mappers/settings.rb
152
+ - lib/modules/storage/coldstore.rb
153
+ - lib/modules/storage/git.store.rb
90
154
  - lib/notepad/scratch.pad.rb
91
- - lib/opensecret.rb
92
- - lib/opensecret/plugins.io/git/git.flow.rb
93
- - lib/plugins/cipher.rb
94
- - lib/plugins/ciphers/aes-256.rb
95
- - lib/plugins/ciphers/blowfish.rb
96
- - lib/plugins/coldstore.rb
97
- - lib/plugins/crypt.io.rb
98
- - lib/plugins/envelope.rb
99
- - lib/plugins/secrets.uc.rb
100
- - lib/plugins/usecase.rb
101
- - lib/plugins/usecases/init.rb
102
- - lib/plugins/usecases/lock.rb
103
- - lib/plugins/usecases/open.rb
104
- - lib/plugins/usecases/put.rb
105
- - lib/plugins/usecases/safe.rb
106
- - lib/plugins/usecases/unlock.rb
107
- - lib/session/attributes.rb
108
- - lib/session/dictionary.rb
109
155
  - lib/session/fact.finder.rb
110
- - lib/session/file.path.rb
111
156
  - lib/session/require.gem.rb
112
- - lib/session/session.rb
113
157
  - lib/session/time.stamp.rb
114
158
  - lib/session/user.home.rb
159
+ - lib/store-commands.txt
115
160
  - lib/version.rb
116
161
  - opensecret.gemspec
117
162
  homepage: https://www.eco-platform.co.uk
@@ -1,85 +0,0 @@
1
-
2
-
3
-
4
-
5
- class BF < Struct.new(:key, :pad_with_spaces)
6
- def encrypt(str)
7
- cipher = OpenSSL::Cipher.new('bf-ecb').encrypt
8
- if pad_with_spaces
9
- str += " " until str.bytesize % 8 == 0
10
- cipher.padding = 0
11
- end
12
- cipher.key = key
13
- binary_data = cipher.update(str) << cipher.final
14
- hex_encoded = binary_data.unpack('H*').first
15
- end
16
-
17
- def decrypt(hex_encoded)
18
- cipher = OpenSSL::Cipher.new('bf-ecb').decrypt
19
- cipher.padding = 0 if pad_with_spaces
20
- cipher.key = key
21
- binary_data = [hex_encoded].pack('H*')
22
- str = cipher.update(binary_data) << cipher.final
23
- str.force_encoding(Encoding::UTF_8)
24
- str
25
- end
26
- end
27
-
28
- =begin
29
- # Choose the encryption key. Its length must be a multiple of 8 and no longer than 56
30
- bf = BF.new("x"*56, true)
31
- sentence = ARGV[0] || "foo bar foo bar foo bar foo bar foo bar foo bar baz"
32
- encrypted = bf.encrypt(sentence)
33
- puts encrypted.length
34
- puts sentence.inspect
35
- puts "Encrypt: #{encrypted}"
36
- puts "Decoded: #{bf.decrypt encrypted}"
37
- =end
38
-
39
-
40
-
41
- =begin
42
- require 'openssl'
43
- module Blowfish
44
- def self.cipher(mode, key, data)
45
- cipher = OpenSSL::Cipher::Cipher.new('bf-cbc').send(mode)
46
- cipher.key = Digest::SHA256.digest(key)
47
- cipher.update(data) << cipher.final
48
- end
49
-
50
- def self.encrypt(key, data)
51
- cipher(:encrypt, key, data)
52
- end
53
-
54
- def self.decrypt(key, text)
55
- cipher(:decrypt, key, text)
56
- end
57
- end
58
-
59
- if $0 == __FILE__
60
- p "text" == Blowfish.decrypt("key", Blowfish.encrypt("key", "text"))
61
- end
62
- =end
63
-
64
- =begin
65
- module Blowfish
66
- def self.cipher(mode, key, data)
67
- cipher = OpenSSL::Cipher::Cipher.new('bf-cbc').send(mode)
68
- cipher.key = Digest::SHA256.digest(key)
69
- cipher.update(data) << cipher.final
70
- end
71
-
72
- def self.encrypt(key, data)
73
- cipher(:encrypt, key, data)
74
- end
75
-
76
- def self.decrypt(key, text)
77
- cipher(:decrypt, key, text)
78
- end
79
- end
80
-
81
- if $0 == __FILE__
82
- p "text" == Blowfish.decrypt("key", Blowfish.encrypt("key", "text"))
83
- end
84
-
85
- =end