vault-tree 0.3.4 → 0.6.0

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