vault-tree 0.3.4 → 0.6.0

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 (190) hide show
  1. data/.gitignore +3 -0
  2. data/.rspec +1 -0
  3. data/CHANGE_LOG.md +27 -0
  4. data/README.md +15 -73
  5. data/features/contracts/asymmetric_vault.feature +69 -2
  6. data/features/contracts/block_chain_key_transfer.feature +59 -0
  7. data/features/contracts/one_two_three.feature +109 -1
  8. data/features/contracts/readme.md +5 -6
  9. data/features/contracts_and_vaults.md +19 -24
  10. data/features/decision_tree.md +1 -1
  11. data/features/exceptions.feature +54 -43
  12. data/features/install_and_usage.md +38 -33
  13. data/features/keywords/assembled_shamir_key.feature +17 -17
  14. data/features/keywords/dh_key.feature +5 -5
  15. data/features/keywords/external_input.feature +35 -0
  16. data/features/keywords/external_key.feature +24 -0
  17. data/features/keywords/key.feature +3 -3
  18. data/features/keywords/random_number.feature +3 -3
  19. data/features/keywords/shamir_key_shares.feature +29 -0
  20. data/features/keywords/shamir_share.feature +40 -0
  21. data/features/keywords/split_key.feature +10 -9
  22. data/features/keywords/unlocked.feature +3 -3
  23. data/features/readme.md +1 -1
  24. data/features/steps/asymmetric_vault.steps.rb +14 -21
  25. data/features/steps/block_chain_key_transfer.steps.rb +17 -22
  26. data/features/steps/core.steps.rb +60 -71
  27. data/features/steps/exceptions.steps.rb +27 -64
  28. data/features/steps/external_input.steps.rb +17 -0
  29. data/features/steps/one_two_three.steps.rb +21 -27
  30. data/features/steps/secret_sharing.steps.rb +36 -19
  31. data/lib/vault-tree.rb +1 -1
  32. data/lib/vault-tree/contract/content_ciphertext.rb +33 -0
  33. data/lib/vault-tree/contract/content_plaintext.rb +33 -0
  34. data/lib/vault-tree/contract/contract.rb +15 -72
  35. data/lib/vault-tree/contract/contract_header.rb +11 -0
  36. data/lib/vault-tree/contract/vault.rb +24 -74
  37. data/lib/vault-tree/contract/vault_key.rb +21 -0
  38. data/lib/vault-tree/contract/vault_list.rb +56 -0
  39. data/lib/vault-tree/exceptions/empty_vault.rb +18 -3
  40. data/lib/vault-tree/exceptions/failed_lock_attempt.rb +18 -0
  41. data/lib/vault-tree/exceptions/failed_unlock_attempt.rb +23 -1
  42. data/lib/vault-tree/exceptions/invalid_external_input.rb +16 -0
  43. data/lib/vault-tree/exceptions/{missing_passphrase.rb → invalid_shamir_split.rb} +2 -1
  44. data/lib/vault-tree/exceptions/library_exception.rb +64 -0
  45. data/lib/vault-tree/exceptions/missing_partner_decryption_key.rb +11 -1
  46. data/lib/vault-tree/exceptions/unsupported_keyword.rb +17 -1
  47. data/lib/vault-tree/exceptions/vault_does_not_exist.rb +8 -1
  48. data/lib/vault-tree/keywords/assembled_shamir_key.rb +1 -1
  49. data/lib/vault-tree/keywords/contents.rb +1 -1
  50. data/lib/vault-tree/keywords/dh_key.rb +2 -2
  51. data/lib/vault-tree/keywords/external_input.rb +58 -0
  52. data/lib/vault-tree/keywords/external_key.rb +20 -0
  53. data/lib/vault-tree/keywords/key.rb +7 -1
  54. data/lib/vault-tree/keywords/keyword_interpreter.rb +5 -3
  55. data/lib/vault-tree/keywords/public_encryption_key.rb +1 -5
  56. data/lib/vault-tree/keywords/shamir_key_shares.rb +18 -0
  57. data/lib/vault-tree/keywords/shamir_share.rb +18 -0
  58. data/lib/vault-tree/keywords/split_key.rb +1 -1
  59. data/lib/vault-tree/lock_smith.rb +7 -8
  60. data/lib/vault-tree/lock_smith/{generated_shamir_key.rb → shamir_key_shares.rb} +22 -21
  61. data/lib/vault-tree/lock_smith/{split_key.rb → split_key_crypto.rb} +0 -0
  62. data/lib/vault-tree/version.rb +1 -1
  63. data/spec/assembled_shamir_key_spec.rb +0 -1
  64. data/spec/custom_exception_spec.rb +81 -0
  65. data/spec/lock_smith_spec.rb +0 -48
  66. data/spec/secret_sharing_spec.rb +0 -1
  67. data/spec/shamir_key_shares_spec.rb +27 -0
  68. data/vault-tree.gemspec +1 -1
  69. metadata +33 -139
  70. data/Gemfile.lock +0 -53
  71. data/VagrantFile +0 -30
  72. data/features/keywords/external_data.feature +0 -11
  73. data/features/keywords/generated_shamir_key.feature +0 -55
  74. data/features/keywords/master_passphrase.feature +0 -68
  75. data/features/manipulating_contracts.md +0 -84
  76. data/features/support/contract_fixtures/asymmetric_vault.0.1.0.json +0 -69
  77. data/features/support/contract_fixtures/blank_simple_test_contract.json +0 -14
  78. data/features/support/contract_fixtures/block_chain_key_transfer.0.1.0.json +0 -59
  79. data/features/support/contract_fixtures/broken_contract.json +0 -55
  80. data/features/support/contract_fixtures/one_two_three.0.7.0.json +0 -108
  81. data/features/support/contract_fixtures/simple_test_contract.json +0 -14
  82. data/features/support/contract_fixtures/template.json +0 -33
  83. data/lib/vault-tree/contract/close_validator.rb +0 -28
  84. data/lib/vault-tree/contract/doorman.rb +0 -113
  85. data/lib/vault-tree/contract/open_validator.rb +0 -20
  86. data/lib/vault-tree/exceptions/exception_template.erb +0 -0
  87. data/lib/vault-tree/exceptions/fill_attempt_master_password.rb +0 -6
  88. data/lib/vault-tree/exceptions/missing_external_data.rb +0 -6
  89. data/lib/vault-tree/exceptions/vault_tree_exception.rb +0 -25
  90. data/lib/vault-tree/keywords/external_data.rb +0 -32
  91. data/lib/vault-tree/keywords/generated_shamir_key.rb +0 -57
  92. data/lib/vault-tree/keywords/master_passphrase.rb +0 -9
  93. data/spec/generated_shamir_key_spec.rb +0 -52
  94. data/support/cookbooks/ark/.gitignore +0 -12
  95. data/support/cookbooks/ark/.kitchen.yml +0 -34
  96. data/support/cookbooks/ark/.travis.yml +0 -6
  97. data/support/cookbooks/ark/Berksfile +0 -9
  98. data/support/cookbooks/ark/CHANGELOG.md +0 -87
  99. data/support/cookbooks/ark/CONTRIBUTING.md +0 -257
  100. data/support/cookbooks/ark/README.md +0 -301
  101. data/support/cookbooks/ark/Rakefile +0 -36
  102. data/support/cookbooks/ark/TESTING.md +0 -25
  103. data/support/cookbooks/ark/Toftfile +0 -15
  104. data/support/cookbooks/ark/attributes/default.rb +0 -6
  105. data/support/cookbooks/ark/chefignore +0 -96
  106. data/support/cookbooks/ark/files/default/foo.tar.gz +0 -0
  107. data/support/cookbooks/ark/files/default/foo.tbz +0 -0
  108. data/support/cookbooks/ark/files/default/foo.tgz +0 -0
  109. data/support/cookbooks/ark/files/default/foo.zip +0 -0
  110. data/support/cookbooks/ark/files/default/tests/minitest/default_test.rb +0 -0
  111. data/support/cookbooks/ark/files/default/tests/minitest/support/helpers.rb +0 -0
  112. data/support/cookbooks/ark/files/default/tests/minitest/test_test.rb +0 -94
  113. data/support/cookbooks/ark/libraries/default.rb +0 -167
  114. data/support/cookbooks/ark/metadata.rb +0 -13
  115. data/support/cookbooks/ark/providers/default.rb +0 -370
  116. data/support/cookbooks/ark/recipes/default.rb +0 -31
  117. data/support/cookbooks/ark/recipes/test.rb +0 -138
  118. data/support/cookbooks/ark/resources/default.rb +0 -54
  119. data/support/cookbooks/ark/templates/default/add_to_path.sh.erb +0 -1
  120. data/support/cookbooks/ark/test/support/Gemfile +0 -4
  121. data/support/cookbooks/build-essential/README.md +0 -24
  122. data/support/cookbooks/build-essential/metadata.rb +0 -10
  123. data/support/cookbooks/build-essential/recipes/default.rb +0 -45
  124. data/support/cookbooks/chruby/.gitignore +0 -15
  125. data/support/cookbooks/chruby/.kitchen.yml +0 -26
  126. data/support/cookbooks/chruby/.ruby_version +0 -1
  127. data/support/cookbooks/chruby/Berksfile +0 -3
  128. data/support/cookbooks/chruby/Gemfile +0 -7
  129. data/support/cookbooks/chruby/LICENSE +0 -14
  130. data/support/cookbooks/chruby/README.md +0 -92
  131. data/support/cookbooks/chruby/Rakefile +0 -7
  132. data/support/cookbooks/chruby/Thorfile +0 -6
  133. data/support/cookbooks/chruby/Vagrantfile +0 -86
  134. data/support/cookbooks/chruby/attributes/default.rb +0 -10
  135. data/support/cookbooks/chruby/chefignore +0 -96
  136. data/support/cookbooks/chruby/metadata.rb +0 -11
  137. data/support/cookbooks/chruby/recipes/default.rb +0 -43
  138. data/support/cookbooks/chruby/recipes/system.rb +0 -25
  139. data/support/cookbooks/chruby/templates/default/chruby.sh.erb +0 -22
  140. data/support/cookbooks/chruby/test/integration/default/bash/embedded_test.sh +0 -1
  141. data/support/cookbooks/git/.gitignore +0 -14
  142. data/support/cookbooks/git/.kitchen.yml +0 -46
  143. data/support/cookbooks/git/Berksfile +0 -8
  144. data/support/cookbooks/git/CHANGELOG.md +0 -87
  145. data/support/cookbooks/git/CONTRIBUTING +0 -29
  146. data/support/cookbooks/git/Gemfile +0 -3
  147. data/support/cookbooks/git/LICENSE +0 -201
  148. data/support/cookbooks/git/README.md +0 -115
  149. data/support/cookbooks/git/TESTING.md +0 -25
  150. data/support/cookbooks/git/attributes/default.rb +0 -40
  151. data/support/cookbooks/git/metadata.rb +0 -35
  152. data/support/cookbooks/git/recipes/default.rb +0 -53
  153. data/support/cookbooks/git/recipes/server.rb +0 -58
  154. data/support/cookbooks/git/recipes/source.rb +0 -49
  155. data/support/cookbooks/git/recipes/windows.rb +0 -37
  156. data/support/cookbooks/git/templates/default/git-xinetd.d.erb +0 -10
  157. data/support/cookbooks/git/templates/default/sv-git-daemon-log-run.erb +0 -2
  158. data/support/cookbooks/git/templates/default/sv-git-daemon-run.erb +0 -3
  159. data/support/cookbooks/install_ruby/README.md +0 -3
  160. data/support/cookbooks/install_ruby/metadata.rb +0 -10
  161. data/support/cookbooks/install_ruby/recipes/default.rb +0 -14
  162. data/support/cookbooks/ruby_build/.gitignore +0 -6
  163. data/support/cookbooks/ruby_build/.kitchen.yml +0 -31
  164. data/support/cookbooks/ruby_build/.travis.yml +0 -4
  165. data/support/cookbooks/ruby_build/Berksfile +0 -10
  166. data/support/cookbooks/ruby_build/CHANGELOG.md +0 -72
  167. data/support/cookbooks/ruby_build/Gemfile +0 -14
  168. data/support/cookbooks/ruby_build/README.md +0 -338
  169. data/support/cookbooks/ruby_build/Rakefile +0 -21
  170. data/support/cookbooks/ruby_build/attributes/default.rb +0 -67
  171. data/support/cookbooks/ruby_build/chefignore +0 -53
  172. data/support/cookbooks/ruby_build/libraries/ruby_build_recipe_helpers.rb +0 -40
  173. data/support/cookbooks/ruby_build/metadata.rb +0 -18
  174. data/support/cookbooks/ruby_build/providers/ruby.rb +0 -88
  175. data/support/cookbooks/ruby_build/recipes/default.rb +0 -69
  176. data/support/cookbooks/ruby_build/resources/ruby.rb +0 -33
  177. data/support/cookbooks/ruby_build/test/cookbooks/alltherubies/metadata.rb +0 -10
  178. data/support/cookbooks/ruby_build/test/cookbooks/alltherubies/recipes/default.rb +0 -59
  179. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/_verify_tests.bash +0 -33
  180. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.8.7.bats +0 -29
  181. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.9.2.bats +0 -18
  182. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.9.3.bats +0 -18
  183. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_2.0.0.bats +0 -18
  184. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_jruby.bats +0 -20
  185. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_rbx.bats +0 -18
  186. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_ree.bats +0 -19
  187. data/support/cookbooks/ruby_build/test/integration/installation/bats/installation.bats +0 -6
  188. data/support/scripts/libsodium_ubuntu.sh +0 -80
  189. data/support/tasks/.gitkeep +0 -0
  190. data/support/tasks/libsodium_install.rb +0 -57
@@ -1,5 +1,4 @@
1
1
  require 'rspec'
2
- RSpec.configure{ |config| config.color_enabled = true }
3
2
  require 'secretsharing'
4
3
 
5
4
  describe 'Secret Sharing Test Run' do
@@ -0,0 +1,27 @@
1
+ require 'rspec'
2
+ require 'JSON'
3
+ require_relative '../lib/vault-tree/lock_smith/shamir_key_shares'
4
+
5
+ module VaultTree
6
+ module Crypto
7
+ describe ShamirKeyShares do
8
+ describe '#generate' do
9
+ it 'generates a json object with the correct number of shares' do
10
+ @shares = ShamirKeyShares.new(outstanding_shares: 5, recovery_threshold: 3).generate
11
+ @shares.should be_an_instance_of(String)
12
+ JSON.parse(@shares).should be_an_instance_of(Hash)
13
+ JSON.parse(@shares).has_key?('1').should be true
14
+ JSON.parse(@shares).has_key?('5').should be true
15
+ end
16
+
17
+ it 'raises and error when the oustanding shares are less than 2' do
18
+ expect{ShamirKeyShares.new(outstanding_shares: 1, recovery_threshold: 1).generate}.to raise_error
19
+ end
20
+
21
+ it 'raises and error when the share threshold is greater than the outstanding shares' do
22
+ expect{ShamirKeyShares.new(outstanding_shares: 5, recovery_threshold: 6).generate}.to raise_error
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
data/vault-tree.gemspec CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["abash1212@gmail.com"]
11
11
  spec.description = %q{Vault Tree is a Ruby library for executing distributed cryptographic contracts.}
12
12
  spec.summary = %q{The Self Enforcing Contract}
13
- spec.homepage = ""
13
+ spec.homepage = "http://vaulttree.github.io/"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vault-tree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-02-01 00:00:00.000000000 Z
12
+ date: 2014-07-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rbnacl
@@ -116,13 +116,12 @@ extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
118
  - .gitignore
119
+ - .rspec
119
120
  - CHANGE_LOG.md
120
121
  - Gemfile
121
- - Gemfile.lock
122
122
  - LICENSE.txt
123
123
  - README.md
124
124
  - Rakefile
125
- - VagrantFile
126
125
  - features/.nav
127
126
  - features/contracts/asymmetric_vault.feature
128
127
  - features/contracts/block_chain_key_transfer.feature
@@ -138,181 +137,81 @@ files:
138
137
  - features/keywords/contents.feature
139
138
  - features/keywords/decryption_key.feature
140
139
  - features/keywords/dh_key.feature
141
- - features/keywords/external_data.feature
142
- - features/keywords/generated_shamir_key.feature
140
+ - features/keywords/external_input.feature
141
+ - features/keywords/external_key.feature
143
142
  - features/keywords/key.feature
144
- - features/keywords/master_passphrase.feature
145
143
  - features/keywords/public_encryption_key.feature
146
144
  - features/keywords/random_number.feature
147
145
  - features/keywords/readme.md
146
+ - features/keywords/shamir_key_shares.feature
147
+ - features/keywords/shamir_share.feature
148
148
  - features/keywords/split_key.feature
149
149
  - features/keywords/unlocked.feature
150
- - features/manipulating_contracts.md
151
150
  - features/readme.md
152
151
  - features/steps/asymmetric_vault.steps.rb
153
152
  - features/steps/block_chain_key_transfer.steps.rb
154
153
  - features/steps/core.steps.rb
155
154
  - features/steps/exceptions.steps.rb
155
+ - features/steps/external_input.steps.rb
156
156
  - features/steps/one_two_three.steps.rb
157
157
  - features/steps/secret_sharing.steps.rb
158
- - features/support/contract_fixtures/asymmetric_vault.0.1.0.json
159
- - features/support/contract_fixtures/blank_simple_test_contract.json
160
- - features/support/contract_fixtures/block_chain_key_transfer.0.1.0.json
161
- - features/support/contract_fixtures/broken_contract.json
162
- - features/support/contract_fixtures/one_two_three.0.7.0.json
163
- - features/support/contract_fixtures/simple_test_contract.json
164
- - features/support/contract_fixtures/template.json
165
158
  - features/support/env.rb
166
159
  - features/what_is_vault_tree.md
167
160
  - features/world.rb
168
161
  - lib/vault-tree.rb
169
- - lib/vault-tree/contract/close_validator.rb
162
+ - lib/vault-tree/contract/content_ciphertext.rb
163
+ - lib/vault-tree/contract/content_plaintext.rb
170
164
  - lib/vault-tree/contract/contract.rb
165
+ - lib/vault-tree/contract/contract_header.rb
171
166
  - lib/vault-tree/contract/contract_presenter.rb
172
- - lib/vault-tree/contract/doorman.rb
173
167
  - lib/vault-tree/contract/null_vault.rb
174
- - lib/vault-tree/contract/open_validator.rb
175
168
  - lib/vault-tree/contract/vault.rb
169
+ - lib/vault-tree/contract/vault_key.rb
170
+ - lib/vault-tree/contract/vault_list.rb
176
171
  - lib/vault-tree/exceptions/empty_vault.rb
177
- - lib/vault-tree/exceptions/exception_template.erb
172
+ - lib/vault-tree/exceptions/failed_lock_attempt.rb
178
173
  - lib/vault-tree/exceptions/failed_unlock_attempt.rb
179
- - lib/vault-tree/exceptions/fill_attempt_master_password.rb
174
+ - lib/vault-tree/exceptions/invalid_external_input.rb
175
+ - lib/vault-tree/exceptions/invalid_shamir_split.rb
180
176
  - lib/vault-tree/exceptions/invalid_signature.rb
177
+ - lib/vault-tree/exceptions/library_exception.rb
181
178
  - lib/vault-tree/exceptions/malformed_json.rb
182
- - lib/vault-tree/exceptions/missing_external_data.rb
183
179
  - lib/vault-tree/exceptions/missing_partner_decryption_key.rb
184
- - lib/vault-tree/exceptions/missing_passphrase.rb
185
180
  - lib/vault-tree/exceptions/non_unique_vault_id.rb
186
181
  - lib/vault-tree/exceptions/unsupported_keyword.rb
187
182
  - lib/vault-tree/exceptions/vault_does_not_exist.rb
188
- - lib/vault-tree/exceptions/vault_tree_exception.rb
189
183
  - lib/vault-tree/keywords/assembled_shamir_key.rb
190
184
  - lib/vault-tree/keywords/contents.rb
191
185
  - lib/vault-tree/keywords/decryption_key.rb
192
186
  - lib/vault-tree/keywords/dh_key.rb
193
- - lib/vault-tree/keywords/external_data.rb
194
- - lib/vault-tree/keywords/generated_shamir_key.rb
187
+ - lib/vault-tree/keywords/external_input.rb
188
+ - lib/vault-tree/keywords/external_key.rb
195
189
  - lib/vault-tree/keywords/key.rb
196
190
  - lib/vault-tree/keywords/keyword.rb
197
191
  - lib/vault-tree/keywords/keyword_interpreter.rb
198
- - lib/vault-tree/keywords/master_passphrase.rb
199
192
  - lib/vault-tree/keywords/public_encryption_key.rb
200
193
  - lib/vault-tree/keywords/random_number.rb
194
+ - lib/vault-tree/keywords/shamir_key_shares.rb
195
+ - lib/vault-tree/keywords/shamir_share.rb
201
196
  - lib/vault-tree/keywords/split_key.rb
202
197
  - lib/vault-tree/keywords/unlocked.rb
203
198
  - lib/vault-tree/lock_smith.rb
204
199
  - lib/vault-tree/lock_smith/assembled_shamir_key.rb
205
200
  - lib/vault-tree/lock_smith/dh_key_pair.rb
206
- - lib/vault-tree/lock_smith/generated_shamir_key.rb
207
201
  - lib/vault-tree/lock_smith/null_vault.rb
208
- - lib/vault-tree/lock_smith/split_key.rb
202
+ - lib/vault-tree/lock_smith/shamir_key_shares.rb
203
+ - lib/vault-tree/lock_smith/split_key_crypto.rb
209
204
  - lib/vault-tree/path_helpers.rb
210
205
  - lib/vault-tree/util/json.rb
211
206
  - lib/vault-tree/util/string.rb
212
207
  - lib/vault-tree/version.rb
213
208
  - spec/assembled_shamir_key_spec.rb
214
- - spec/generated_shamir_key_spec.rb
209
+ - spec/custom_exception_spec.rb
215
210
  - spec/lock_smith_spec.rb
216
211
  - spec/secret_sharing_spec.rb
217
- - support/cookbooks/ark/.gitignore
218
- - support/cookbooks/ark/.kitchen.yml
219
- - support/cookbooks/ark/.travis.yml
220
- - support/cookbooks/ark/Berksfile
221
- - support/cookbooks/ark/CHANGELOG.md
222
- - support/cookbooks/ark/CONTRIBUTING.md
223
- - support/cookbooks/ark/README.md
224
- - support/cookbooks/ark/Rakefile
225
- - support/cookbooks/ark/TESTING.md
226
- - support/cookbooks/ark/Toftfile
227
- - support/cookbooks/ark/attributes/default.rb
228
- - support/cookbooks/ark/chefignore
229
- - support/cookbooks/ark/files/default/foo.tar.gz
230
- - support/cookbooks/ark/files/default/foo.tbz
231
- - support/cookbooks/ark/files/default/foo.tgz
232
- - support/cookbooks/ark/files/default/foo.zip
233
- - support/cookbooks/ark/files/default/tests/minitest/default_test.rb
234
- - support/cookbooks/ark/files/default/tests/minitest/support/helpers.rb
235
- - support/cookbooks/ark/files/default/tests/minitest/test_test.rb
236
- - support/cookbooks/ark/libraries/default.rb
237
- - support/cookbooks/ark/metadata.rb
238
- - support/cookbooks/ark/providers/default.rb
239
- - support/cookbooks/ark/recipes/default.rb
240
- - support/cookbooks/ark/recipes/test.rb
241
- - support/cookbooks/ark/resources/default.rb
242
- - support/cookbooks/ark/templates/default/add_to_path.sh.erb
243
- - support/cookbooks/ark/test/support/Gemfile
244
- - support/cookbooks/build-essential/README.md
245
- - support/cookbooks/build-essential/metadata.rb
246
- - support/cookbooks/build-essential/recipes/default.rb
247
- - support/cookbooks/chruby/.gitignore
248
- - support/cookbooks/chruby/.kitchen.yml
249
- - support/cookbooks/chruby/.ruby_version
250
- - support/cookbooks/chruby/Berksfile
251
- - support/cookbooks/chruby/Gemfile
252
- - support/cookbooks/chruby/LICENSE
253
- - support/cookbooks/chruby/README.md
254
- - support/cookbooks/chruby/Rakefile
255
- - support/cookbooks/chruby/Thorfile
256
- - support/cookbooks/chruby/Vagrantfile
257
- - support/cookbooks/chruby/attributes/default.rb
258
- - support/cookbooks/chruby/chefignore
259
- - support/cookbooks/chruby/metadata.rb
260
- - support/cookbooks/chruby/recipes/default.rb
261
- - support/cookbooks/chruby/recipes/system.rb
262
- - support/cookbooks/chruby/templates/default/chruby.sh.erb
263
- - support/cookbooks/chruby/test/integration/default/bash/embedded_test.sh
264
- - support/cookbooks/git/.gitignore
265
- - support/cookbooks/git/.kitchen.yml
266
- - support/cookbooks/git/Berksfile
267
- - support/cookbooks/git/CHANGELOG.md
268
- - support/cookbooks/git/CONTRIBUTING
269
- - support/cookbooks/git/Gemfile
270
- - support/cookbooks/git/LICENSE
271
- - support/cookbooks/git/README.md
272
- - support/cookbooks/git/TESTING.md
273
- - support/cookbooks/git/attributes/default.rb
274
- - support/cookbooks/git/metadata.rb
275
- - support/cookbooks/git/recipes/default.rb
276
- - support/cookbooks/git/recipes/server.rb
277
- - support/cookbooks/git/recipes/source.rb
278
- - support/cookbooks/git/recipes/windows.rb
279
- - support/cookbooks/git/templates/default/git-xinetd.d.erb
280
- - support/cookbooks/git/templates/default/sv-git-daemon-log-run.erb
281
- - support/cookbooks/git/templates/default/sv-git-daemon-run.erb
282
- - support/cookbooks/install_ruby/README.md
283
- - support/cookbooks/install_ruby/metadata.rb
284
- - support/cookbooks/install_ruby/recipes/default.rb
285
- - support/cookbooks/ruby_build/.gitignore
286
- - support/cookbooks/ruby_build/.kitchen.yml
287
- - support/cookbooks/ruby_build/.travis.yml
288
- - support/cookbooks/ruby_build/Berksfile
289
- - support/cookbooks/ruby_build/CHANGELOG.md
290
- - support/cookbooks/ruby_build/Gemfile
291
- - support/cookbooks/ruby_build/README.md
292
- - support/cookbooks/ruby_build/Rakefile
293
- - support/cookbooks/ruby_build/attributes/default.rb
294
- - support/cookbooks/ruby_build/chefignore
295
- - support/cookbooks/ruby_build/libraries/ruby_build_recipe_helpers.rb
296
- - support/cookbooks/ruby_build/metadata.rb
297
- - support/cookbooks/ruby_build/providers/ruby.rb
298
- - support/cookbooks/ruby_build/recipes/default.rb
299
- - support/cookbooks/ruby_build/resources/ruby.rb
300
- - support/cookbooks/ruby_build/test/cookbooks/alltherubies/metadata.rb
301
- - support/cookbooks/ruby_build/test/cookbooks/alltherubies/recipes/default.rb
302
- - support/cookbooks/ruby_build/test/integration/alltherubies/bats/_verify_tests.bash
303
- - support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.8.7.bats
304
- - support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.9.2.bats
305
- - support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.9.3.bats
306
- - support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_2.0.0.bats
307
- - support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_jruby.bats
308
- - support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_rbx.bats
309
- - support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_ree.bats
310
- - support/cookbooks/ruby_build/test/integration/installation/bats/installation.bats
311
- - support/scripts/libsodium_ubuntu.sh
312
- - support/tasks/.gitkeep
313
- - support/tasks/libsodium_install.rb
212
+ - spec/shamir_key_shares_spec.rb
314
213
  - vault-tree.gemspec
315
- homepage: ''
214
+ homepage: http://vaulttree.github.io/
316
215
  licenses:
317
216
  - MIT
318
217
  post_install_message:
@@ -353,35 +252,30 @@ test_files:
353
252
  - features/keywords/contents.feature
354
253
  - features/keywords/decryption_key.feature
355
254
  - features/keywords/dh_key.feature
356
- - features/keywords/external_data.feature
357
- - features/keywords/generated_shamir_key.feature
255
+ - features/keywords/external_input.feature
256
+ - features/keywords/external_key.feature
358
257
  - features/keywords/key.feature
359
- - features/keywords/master_passphrase.feature
360
258
  - features/keywords/public_encryption_key.feature
361
259
  - features/keywords/random_number.feature
362
260
  - features/keywords/readme.md
261
+ - features/keywords/shamir_key_shares.feature
262
+ - features/keywords/shamir_share.feature
363
263
  - features/keywords/split_key.feature
364
264
  - features/keywords/unlocked.feature
365
- - features/manipulating_contracts.md
366
265
  - features/readme.md
367
266
  - features/steps/asymmetric_vault.steps.rb
368
267
  - features/steps/block_chain_key_transfer.steps.rb
369
268
  - features/steps/core.steps.rb
370
269
  - features/steps/exceptions.steps.rb
270
+ - features/steps/external_input.steps.rb
371
271
  - features/steps/one_two_three.steps.rb
372
272
  - features/steps/secret_sharing.steps.rb
373
- - features/support/contract_fixtures/asymmetric_vault.0.1.0.json
374
- - features/support/contract_fixtures/blank_simple_test_contract.json
375
- - features/support/contract_fixtures/block_chain_key_transfer.0.1.0.json
376
- - features/support/contract_fixtures/broken_contract.json
377
- - features/support/contract_fixtures/one_two_three.0.7.0.json
378
- - features/support/contract_fixtures/simple_test_contract.json
379
- - features/support/contract_fixtures/template.json
380
273
  - features/support/env.rb
381
274
  - features/what_is_vault_tree.md
382
275
  - features/world.rb
383
276
  - spec/assembled_shamir_key_spec.rb
384
- - spec/generated_shamir_key_spec.rb
277
+ - spec/custom_exception_spec.rb
385
278
  - spec/lock_smith_spec.rb
386
279
  - spec/secret_sharing_spec.rb
280
+ - spec/shamir_key_shares_spec.rb
387
281
  has_rdoc:
data/Gemfile.lock DELETED
@@ -1,53 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- vault-tree (0.3.3)
5
- rbnacl (= 2.0.0)
6
- secretsharing (= 0.3)
7
-
8
- GEM
9
- remote: http://rubygems.org/
10
- specs:
11
- archive-tar-minitar (0.5.2)
12
- builder (3.2.2)
13
- cucumber (1.3.8)
14
- builder (>= 2.1.2)
15
- diff-lcs (>= 1.1.3)
16
- gherkin (~> 2.12.1)
17
- multi_json (>= 1.7.5, < 2.0)
18
- multi_test (>= 0.0.2)
19
- diff-lcs (1.2.4)
20
- ffi (1.9.3)
21
- gherkin (2.12.2)
22
- multi_json (~> 1.3)
23
- json (1.8.1)
24
- mime-types (2.0)
25
- multi_json (1.8.1)
26
- multi_test (0.0.2)
27
- rbnacl (2.0.0)
28
- ffi
29
- relish (0.7)
30
- archive-tar-minitar (>= 0.5.2)
31
- json (>= 1.4.6)
32
- rest-client (>= 1.6.1)
33
- rest-client (1.6.7)
34
- mime-types (>= 1.16)
35
- rspec (2.14.1)
36
- rspec-core (~> 2.14.0)
37
- rspec-expectations (~> 2.14.0)
38
- rspec-mocks (~> 2.14.0)
39
- rspec-core (2.14.5)
40
- rspec-expectations (2.14.3)
41
- diff-lcs (>= 1.1.3, < 2.0)
42
- rspec-mocks (2.14.3)
43
- secretsharing (0.3)
44
-
45
- PLATFORMS
46
- ruby
47
-
48
- DEPENDENCIES
49
- bundler (~> 1.3)
50
- cucumber
51
- relish
52
- rspec
53
- vault-tree!
data/VagrantFile DELETED
@@ -1,30 +0,0 @@
1
- Vagrant::Config.run do |config|
2
- config.vm.box = "vault-tree-box"
3
- config.vm.box_url = "http://vault-tree-box.s3.amazonaws.com/package.box"
4
- #config.vm.provision :chef_solo do |chef|
5
- # chef.cookbooks_path = "support/cookbooks"
6
- # chef.add_recipe("git")
7
- # chef.add_recipe("build-essential")
8
- # chef.add_recipe("ruby_build")
9
- # chef.add_recipe("chruby")
10
- # chef.add_recipe("install_ruby")
11
- #end
12
- end
13
-
14
- module VagrantHelpers
15
- module PathHelpers
16
- extend self
17
-
18
- def provision_dir
19
- "#{project_dir}/lib/vagrant"
20
- end
21
-
22
- def project_dir
23
- File.expand_path(current_dir_rel)
24
- end
25
-
26
- def current_dir_rel
27
- File.dirname(__FILE__)
28
- end
29
- end
30
- end
@@ -1,11 +0,0 @@
1
- Feature: External Data
2
-
3
- The Vault Tree interpreter does not interact directly with outside networks. Its
4
- repsonsibility is limited to opening and closing vaults under the assumption
5
- that all necessary external data will be explicitly passed in.
6
-
7
- In short, you can expect the interpreter to stick to the following rules:
8
-
9
- * External Data is relevent only when **closing** a vault.
10
- * When a vault is being opened, the interpreter expects that all the necessary data has already been locked somewhere in the contract.
11
- * External Data must be a string
@@ -1,55 +0,0 @@
1
- Feature: Generated Shamir Key
2
-
3
- Scenario: Lock Away Key Shares With Generated Shamir Key
4
- Given the blank contract:
5
- """javascript
6
- {
7
- "header": {},
8
- "vaults": {
9
- "s_1":{
10
- "fill_with": "EXTERNAL_DATA",
11
- "lock_with": "UNLOCKED",
12
- "unlock_with": "UNLOCKED",
13
- "contents": ""
14
- },
15
-
16
- "s_2":{
17
- "fill_with": "EXTERNAL_DATA",
18
- "lock_with": "UNLOCKED",
19
- "unlock_with": "UNLOCKED",
20
- "contents": ""
21
- },
22
-
23
- "s_3":{
24
- "fill_with": "EXTERNAL_DATA",
25
- "lock_with": "UNLOCKED",
26
- "unlock_with": "UNLOCKED",
27
- "contents": ""
28
- },
29
-
30
- "s_4":{
31
- "fill_with": "EXTERNAL_DATA",
32
- "lock_with": "UNLOCKED",
33
- "unlock_with": "UNLOCKED",
34
- "contents": ""
35
- },
36
-
37
- "s_5":{
38
- "fill_with": "EXTERNAL_DATA",
39
- "lock_with": "UNLOCKED",
40
- "unlock_with": "UNLOCKED",
41
- "contents": ""
42
- },
43
-
44
- "message":{
45
- "fill_with": "EXTERNAL_DATA",
46
- "lock_with": "GENERATED_SHAMIR_KEY['5','3','s_1','s_2','s_3','s_4','s_5']",
47
- "unlock_with": "ASSEMBLED_SHAMIR_KEY['s_1','s_2','s_3','s_4','s_5']",
48
- "contents": ""
49
- }
50
- }
51
- }
52
- """
53
- And I create a new message
54
- When I attempt to lock the message with a generated shamir key
55
- Then key shares are created and locked away in their cooresponding vaults