vault-tree 0.1.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 (164) hide show
  1. data/.gitignore +26 -0
  2. data/Gemfile +2 -0
  3. data/Gemfile.lock +43 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +118 -0
  6. data/Rakefile +17 -0
  7. data/VagrantFile +30 -0
  8. data/features/core.feature +44 -0
  9. data/features/exceptions.feature +41 -0
  10. data/features/steps/core.steps.rb +168 -0
  11. data/features/steps/exceptions.steps.rb +103 -0
  12. data/features/support/env.rb +1 -0
  13. data/features/world.rb +3 -0
  14. data/lib/vault-tree.rb +7 -0
  15. data/lib/vault-tree/config/dependencies.rb +4 -0
  16. data/lib/vault-tree/config/lib.rb +2 -0
  17. data/lib/vault-tree/config/path_helpers.rb +49 -0
  18. data/lib/vault-tree/config/string.rb +25 -0
  19. data/lib/vault-tree/contract/close_validator.rb +35 -0
  20. data/lib/vault-tree/contract/contract.rb +85 -0
  21. data/lib/vault-tree/contract/contract_presenter.rb +27 -0
  22. data/lib/vault-tree/contract/doorman.rb +112 -0
  23. data/lib/vault-tree/contract/null_vault.rb +16 -0
  24. data/lib/vault-tree/contract/open_validator.rb +20 -0
  25. data/lib/vault-tree/contract/vault.rb +96 -0
  26. data/lib/vault-tree/exceptions/empty_vault.rb +8 -0
  27. data/lib/vault-tree/exceptions/fill_attempt_master_password.rb +6 -0
  28. data/lib/vault-tree/exceptions/invalid_signature.rb +0 -0
  29. data/lib/vault-tree/exceptions/malformed_json.rb +0 -0
  30. data/lib/vault-tree/exceptions/missing_external_data.rb +6 -0
  31. data/lib/vault-tree/exceptions/missing_partner_decryption_key.rb +6 -0
  32. data/lib/vault-tree/exceptions/missing_passphrase.rb +6 -0
  33. data/lib/vault-tree/exceptions/non_unique_vault_id.rb +0 -0
  34. data/lib/vault-tree/exceptions/unsupported_keyword.rb +6 -0
  35. data/lib/vault-tree/exceptions/vault_does_not_exist.rb +6 -0
  36. data/lib/vault-tree/exceptions/vault_tree_exception.rb +6 -0
  37. data/lib/vault-tree/keywords/decryption_key.rb +14 -0
  38. data/lib/vault-tree/keywords/external_data.rb +13 -0
  39. data/lib/vault-tree/keywords/keyword.rb +19 -0
  40. data/lib/vault-tree/keywords/keyword_interpreter.rb +45 -0
  41. data/lib/vault-tree/keywords/master_passphrase.rb +9 -0
  42. data/lib/vault-tree/keywords/public_encryption_key.rb +27 -0
  43. data/lib/vault-tree/keywords/random_number.rb +9 -0
  44. data/lib/vault-tree/keywords/shared_key.rb +24 -0
  45. data/lib/vault-tree/keywords/unlocked.rb +9 -0
  46. data/lib/vault-tree/keywords/vault_contents.rb +13 -0
  47. data/lib/vault-tree/lock_smith/asymmetric_cipher.rb +31 -0
  48. data/lib/vault-tree/lock_smith/crypto_hash.rb +11 -0
  49. data/lib/vault-tree/lock_smith/digital_signature.rb +32 -0
  50. data/lib/vault-tree/lock_smith/encryption_key_pair.rb +25 -0
  51. data/lib/vault-tree/lock_smith/null_vault.rb +4 -0
  52. data/lib/vault-tree/lock_smith/random_number.rb +11 -0
  53. data/lib/vault-tree/lock_smith/shared_key_pair.rb +12 -0
  54. data/lib/vault-tree/lock_smith/signing_key_pair.rb +25 -0
  55. data/lib/vault-tree/lock_smith/symmetric_cipher.rb +25 -0
  56. data/lib/vault-tree/util/json.rb +16 -0
  57. data/lib/vault-tree/version.rb +3 -0
  58. data/spec/app/locksmith/asymmetric_cipher_spec.rb +25 -0
  59. data/spec/app/locksmith/signing_key_pair_spec.rb +22 -0
  60. data/spec/spec_helper.rb +5 -0
  61. data/spec/support/fixtures/blank_simple_test_contract.json +14 -0
  62. data/spec/support/fixtures/broken_contract.json +55 -0
  63. data/spec/support/fixtures/one_two_three-0.5.0.EXP.json +105 -0
  64. data/spec/support/fixtures/reference_contract.1.0.0.json +227 -0
  65. data/spec/support/fixtures/simple_test_contract.json +14 -0
  66. data/support/cookbooks/ark/.gitignore +12 -0
  67. data/support/cookbooks/ark/.kitchen.yml +34 -0
  68. data/support/cookbooks/ark/.travis.yml +6 -0
  69. data/support/cookbooks/ark/Berksfile +9 -0
  70. data/support/cookbooks/ark/CHANGELOG.md +87 -0
  71. data/support/cookbooks/ark/CONTRIBUTING.md +257 -0
  72. data/support/cookbooks/ark/README.md +301 -0
  73. data/support/cookbooks/ark/Rakefile +36 -0
  74. data/support/cookbooks/ark/TESTING.md +25 -0
  75. data/support/cookbooks/ark/Toftfile +15 -0
  76. data/support/cookbooks/ark/attributes/default.rb +6 -0
  77. data/support/cookbooks/ark/chefignore +96 -0
  78. data/support/cookbooks/ark/files/default/foo.tar.gz +0 -0
  79. data/support/cookbooks/ark/files/default/foo.tbz +0 -0
  80. data/support/cookbooks/ark/files/default/foo.tgz +0 -0
  81. data/support/cookbooks/ark/files/default/foo.zip +0 -0
  82. data/support/cookbooks/ark/files/default/tests/minitest/default_test.rb +0 -0
  83. data/support/cookbooks/ark/files/default/tests/minitest/support/helpers.rb +0 -0
  84. data/support/cookbooks/ark/files/default/tests/minitest/test_test.rb +94 -0
  85. data/support/cookbooks/ark/libraries/default.rb +167 -0
  86. data/support/cookbooks/ark/metadata.rb +13 -0
  87. data/support/cookbooks/ark/providers/default.rb +370 -0
  88. data/support/cookbooks/ark/recipes/default.rb +31 -0
  89. data/support/cookbooks/ark/recipes/test.rb +138 -0
  90. data/support/cookbooks/ark/resources/default.rb +54 -0
  91. data/support/cookbooks/ark/templates/default/add_to_path.sh.erb +1 -0
  92. data/support/cookbooks/ark/test/support/Gemfile +4 -0
  93. data/support/cookbooks/build-essential/README.md +24 -0
  94. data/support/cookbooks/build-essential/metadata.rb +10 -0
  95. data/support/cookbooks/build-essential/recipes/default.rb +45 -0
  96. data/support/cookbooks/chruby/.gitignore +15 -0
  97. data/support/cookbooks/chruby/.kitchen.yml +26 -0
  98. data/support/cookbooks/chruby/.ruby_version +1 -0
  99. data/support/cookbooks/chruby/Berksfile +3 -0
  100. data/support/cookbooks/chruby/Gemfile +7 -0
  101. data/support/cookbooks/chruby/LICENSE +14 -0
  102. data/support/cookbooks/chruby/README.md +92 -0
  103. data/support/cookbooks/chruby/Rakefile +7 -0
  104. data/support/cookbooks/chruby/Thorfile +6 -0
  105. data/support/cookbooks/chruby/Vagrantfile +86 -0
  106. data/support/cookbooks/chruby/attributes/default.rb +10 -0
  107. data/support/cookbooks/chruby/chefignore +96 -0
  108. data/support/cookbooks/chruby/metadata.rb +11 -0
  109. data/support/cookbooks/chruby/recipes/default.rb +43 -0
  110. data/support/cookbooks/chruby/recipes/system.rb +25 -0
  111. data/support/cookbooks/chruby/templates/default/chruby.sh.erb +22 -0
  112. data/support/cookbooks/chruby/test/integration/default/bash/embedded_test.sh +1 -0
  113. data/support/cookbooks/git/.gitignore +14 -0
  114. data/support/cookbooks/git/.kitchen.yml +46 -0
  115. data/support/cookbooks/git/Berksfile +8 -0
  116. data/support/cookbooks/git/CHANGELOG.md +87 -0
  117. data/support/cookbooks/git/CONTRIBUTING +29 -0
  118. data/support/cookbooks/git/Gemfile +3 -0
  119. data/support/cookbooks/git/LICENSE +201 -0
  120. data/support/cookbooks/git/README.md +115 -0
  121. data/support/cookbooks/git/TESTING.md +25 -0
  122. data/support/cookbooks/git/attributes/default.rb +40 -0
  123. data/support/cookbooks/git/metadata.rb +35 -0
  124. data/support/cookbooks/git/recipes/default.rb +53 -0
  125. data/support/cookbooks/git/recipes/server.rb +58 -0
  126. data/support/cookbooks/git/recipes/source.rb +49 -0
  127. data/support/cookbooks/git/recipes/windows.rb +37 -0
  128. data/support/cookbooks/git/templates/default/git-xinetd.d.erb +10 -0
  129. data/support/cookbooks/git/templates/default/sv-git-daemon-log-run.erb +2 -0
  130. data/support/cookbooks/git/templates/default/sv-git-daemon-run.erb +3 -0
  131. data/support/cookbooks/install_ruby/README.md +3 -0
  132. data/support/cookbooks/install_ruby/metadata.rb +10 -0
  133. data/support/cookbooks/install_ruby/recipes/default.rb +14 -0
  134. data/support/cookbooks/ruby_build/.gitignore +6 -0
  135. data/support/cookbooks/ruby_build/.kitchen.yml +31 -0
  136. data/support/cookbooks/ruby_build/.travis.yml +4 -0
  137. data/support/cookbooks/ruby_build/Berksfile +10 -0
  138. data/support/cookbooks/ruby_build/CHANGELOG.md +72 -0
  139. data/support/cookbooks/ruby_build/Gemfile +14 -0
  140. data/support/cookbooks/ruby_build/README.md +338 -0
  141. data/support/cookbooks/ruby_build/Rakefile +21 -0
  142. data/support/cookbooks/ruby_build/attributes/default.rb +67 -0
  143. data/support/cookbooks/ruby_build/chefignore +53 -0
  144. data/support/cookbooks/ruby_build/libraries/ruby_build_recipe_helpers.rb +40 -0
  145. data/support/cookbooks/ruby_build/metadata.rb +18 -0
  146. data/support/cookbooks/ruby_build/providers/ruby.rb +88 -0
  147. data/support/cookbooks/ruby_build/recipes/default.rb +69 -0
  148. data/support/cookbooks/ruby_build/resources/ruby.rb +33 -0
  149. data/support/cookbooks/ruby_build/test/cookbooks/alltherubies/metadata.rb +10 -0
  150. data/support/cookbooks/ruby_build/test/cookbooks/alltherubies/recipes/default.rb +59 -0
  151. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/_verify_tests.bash +33 -0
  152. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.8.7.bats +29 -0
  153. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.9.2.bats +18 -0
  154. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.9.3.bats +18 -0
  155. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_2.0.0.bats +18 -0
  156. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_jruby.bats +20 -0
  157. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_rbx.bats +18 -0
  158. data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_ree.bats +19 -0
  159. data/support/cookbooks/ruby_build/test/integration/installation/bats/installation.bats +6 -0
  160. data/support/scripts/libsodium_ubuntu.sh +80 -0
  161. data/support/tasks/.gitkeep +0 -0
  162. data/support/tasks/libsodium_install.rb +57 -0
  163. data/vault-tree.gemspec +26 -0
  164. metadata +305 -0
@@ -0,0 +1,33 @@
1
+ setup() {
2
+ export HOME=/root
3
+ export PATH="$ruby_root/bin:$PATH"
4
+ eval `$ruby_root/bin/ruby - <<EOF
5
+ require 'rubygems'
6
+ puts "export RUBY_ENGINE=#{defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'ruby'};"
7
+ puts "export RUBY_VERSION=#{RUBY_VERSION};"
8
+ puts "export GEM_ROOT=#{Gem.default_dir.inspect};"
9
+ EOF`
10
+ export GEM_HOME="$HOME/.gem/$RUBY_ENGINE/$RUBY_VERSION"
11
+ export GEM_PATH="$GEM_HOME:$GEM_ROOT"
12
+ export PATH="$GEM_HOME/bin:$GEM_ROOT/bin:$PATH"
13
+ }
14
+
15
+ run_openssl_test() {
16
+ local script="puts OpenSSL::PKey::RSA.new(512).to_pem"
17
+
18
+ run ruby -ropenssl -e "$script"
19
+ [ $status -eq 0 ]
20
+ }
21
+
22
+ run_nokogiri_install_test() {
23
+ run gem install nokogiri --no-ri --no-rdoc
24
+ [ $status -eq 0 ]
25
+ }
26
+
27
+ run_nokogiri_openssl_test() {
28
+ local https_url="https://google.com"
29
+ local script="puts Nokogiri::HTML(open('$https_url')).css('input')"
30
+
31
+ run ruby -rrubygems -ropen-uri -rnokogiri -e "$script"
32
+ [ $status -eq 0 ]
33
+ }
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env bats
2
+
3
+ export ruby_root="/home/app/.rubies/ruby-1.8.7-p371"
4
+ export def="$(basename $ruby_root)"
5
+
6
+ load _verify_tests
7
+
8
+ user_setup() {
9
+ export HOME="/home/app"
10
+ export GEM_HOME="$HOME/.gem/$RUBY_ENGINE/$RUBY_VERSION"
11
+ export GEM_PATH="$GEM_HOME:$GEM_ROOT"
12
+ export PATH="$GEM_HOME/bin:$GEM_ROOT/bin:$PATH"
13
+ }
14
+
15
+ @test "ruby $def can use openssl from stdlib" {
16
+ user_setup
17
+ run_openssl_test
18
+ }
19
+
20
+ @test "ruby $def can install nokogiri gem" {
21
+ user_setup
22
+ run_nokogiri_install_test
23
+ }
24
+
25
+ # pending
26
+ # @test "ruby $def can use nokogiri with openssl" {
27
+ # user_setup
28
+ # run_nokogiri_openssl_test
29
+ # }
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env bats
2
+
3
+ export ruby_root="/usr/local/ruby/1.9.2-p320"
4
+ export def="$(basename $ruby_root)"
5
+
6
+ load _verify_tests
7
+
8
+ @test "Ruby $def can use openssl from stdlib" {
9
+ run_openssl_test
10
+ }
11
+
12
+ @test "Ruby $def can install nokogiri gem" {
13
+ run_nokogiri_install_test
14
+ }
15
+
16
+ @test "Ruby $def can use nokogiri with openssl" {
17
+ run_nokogiri_openssl_test
18
+ }
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env bats
2
+
3
+ export ruby_root="/usr/local/ruby/1.9.3-p362"
4
+ export def="$(basename $ruby_root)"
5
+
6
+ load _verify_tests
7
+
8
+ @test "Ruby $def can use openssl from stdlib" {
9
+ run_openssl_test
10
+ }
11
+
12
+ @test "Ruby $def can install nokogiri gem" {
13
+ run_nokogiri_install_test
14
+ }
15
+
16
+ @test "Ruby $def can use nokogiri with openssl" {
17
+ run_nokogiri_openssl_test
18
+ }
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env bats
2
+
3
+ export ruby_root="/usr/local/ruby/2.0.0-preview2"
4
+ export def="$(basename $ruby_root)"
5
+
6
+ load _verify_tests
7
+
8
+ @test "Ruby $def can use openssl from stdlib" {
9
+ run_openssl_test
10
+ }
11
+
12
+ @test "Ruby $def can install nokogiri gem" {
13
+ run_nokogiri_install_test
14
+ }
15
+
16
+ @test "Ruby $def can use nokogiri with openssl" {
17
+ run_nokogiri_openssl_test
18
+ }
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env bats
2
+
3
+ export ruby_root="/usr/local/ruby/jruby-1.7.1"
4
+ export def="$(basename $ruby_root)"
5
+
6
+ load _verify_tests
7
+
8
+ @test "Ruby $def can use openssl from stdlib" {
9
+ run gem install jruby-openssl --no-ri --no-rdoc
10
+ [ $status -eq 0 ]
11
+ run_openssl_test
12
+ }
13
+
14
+ @test "Ruby $def can install nokogiri gem" {
15
+ run_nokogiri_install_test
16
+ }
17
+
18
+ @test "Ruby $def can use nokogiri with openssl" {
19
+ run_nokogiri_openssl_test
20
+ }
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env bats
2
+
3
+ export ruby_root="/usr/local/ruby/rbx-2.0.0-rc1"
4
+ export def="$(basename $ruby_root)"
5
+
6
+ load _verify_tests
7
+
8
+ @test "ruby $def can use openssl from stdlib" {
9
+ run_openssl_test
10
+ }
11
+
12
+ @test "ruby $def can install nokogiri gem" {
13
+ run_nokogiri_install_test
14
+ }
15
+
16
+ @test "ruby $def can use nokogiri with openssl" {
17
+ run_nokogiri_openssl_test
18
+ }
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env bats
2
+
3
+ export ruby_root="/usr/local/ruby/ree-1.8.7-2012.02"
4
+ export def="$(basename $ruby_root)"
5
+
6
+ load _verify_tests
7
+
8
+ @test "ruby $def can use openssl from stdlib" {
9
+ run_openssl_test
10
+ }
11
+
12
+ @test "ruby $def can install nokogiri gem" {
13
+ run_nokogiri_install_test
14
+ }
15
+
16
+ # pending
17
+ # @test "ruby $def can use nokogiri with openssl" {
18
+ # run_nokogiri_openssl_test
19
+ # }
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env bats
2
+
3
+ @test "ruby-build binary is installed" {
4
+ run /usr/local/bin/ruby-build --definitions
5
+ [ $status -eq 0 ]
6
+ }
@@ -0,0 +1,80 @@
1
+ #!/bin/bash
2
+ #Revision 1
3
+ #(c)2013 Uli Koehler. Licensed as CC-By-SA 3.0 DE.
4
+ # http://techoverflow.net/blog/2013/08/01/how-to-create-libsodium-nacl-deb-packages/
5
+
6
+ ## ## ## ## ## ##
7
+ # INSTALL LIBSODIUM
8
+ # This is meant to be run in a Ubuntu Development VM.
9
+ #
10
+ # Don't run this on your development machine
11
+ # unless you've studied the script and you know what you are doing
12
+ ## ## ## ## ## ##
13
+
14
+ # Make sure you have the latest packages
15
+ sudo apt-get update
16
+
17
+ # Before building it, you need to install the DEB build toolchain
18
+ sudo apt-get install devscripts debhelper build-essential
19
+
20
+ # Build and Install libsodium
21
+ export NAME=libsodium
22
+ export VERSION=0.4.2
23
+ export DEBVERSION=${VERSION}-1
24
+ #Download and extract the archive
25
+ if [ ! -f ${NAME}_${VERSION}.orig.tar.gz ]
26
+ then
27
+ wget "https://download.libsodium.org/libsodium/releases/${NAME}-${VERSION}.tar.gz" -O ${NAME}_${VERSION}.orig.tar.gz
28
+ fi
29
+ tar xzvf ${NAME}_${VERSION}.orig.tar.gz
30
+ cd ${NAME}-${VERSION}
31
+ rm -rf debian
32
+ mkdir -p debian
33
+ #Use the existing COPYING file
34
+ cp COPYING debian/copyright
35
+ #Create the changelog (no messages - dummy)
36
+ dch --create -v $DEBVERSION --package ${NAME} ""
37
+ #Create copyright file
38
+ cp COPYING debian/copyright
39
+ #Create control file
40
+ echo "Source: $NAME" > debian/control
41
+ echo "Maintainer: None <none@example.com>" >> debian/control
42
+ echo "Section: misc" >> debian/control
43
+ echo "Priority: optional" >> debian/control
44
+ echo "Standards-Version: 3.9.2" >> debian/control
45
+ echo "Build-Depends: debhelper (>= 8), devscripts, build-essential" >> debian/control
46
+ #Main library package
47
+ echo "" >> debian/control
48
+ echo "Package: $NAME" >> debian/control
49
+ echo "Architecture: any" >> debian/control
50
+ echo "Depends: ${shlibs:Depends}, ${misc:Depends}" >> debian/control
51
+ echo "Homepage: https://libsodium.org" >> debian/control
52
+ echo "Description: libsodium" >> debian/control
53
+ #dev package
54
+ echo "" >> debian/control
55
+ echo "Package: $NAME-dev" >> debian/control
56
+ echo "Architecture: all" >> debian/control
57
+ echo "Depends: ${shlibs:Depends}, ${misc:Depends}, libsodium(= $DEBVERSION)" >> debian/control
58
+ echo "Homepage: https://libsodium.org" >> debian/control
59
+ echo "Description: libsodium development files" >> debian/control
60
+ #Rules files
61
+ echo '#!/usr/bin/make -f' > debian/rules
62
+ echo '%:' >> debian/rules
63
+ echo -e '\tdh $@' >> debian/rules
64
+ echo 'override_dh_auto_configure:' >> debian/rules
65
+ echo -e "\t./configure --prefix=$(pwd)/debian/$NAME/usr" >> debian/rules
66
+ echo 'override_dh_auto_build:' >> debian/rules
67
+ echo -e '\tmake' >> debian/rules
68
+ echo 'override_dh_auto_install:' >> debian/rules
69
+ echo -e "\tmkdir -p debian/$NAME/usr debian/$NAME-dev/usr" >> debian/rules
70
+ echo -e "\tmake install" >> debian/rules
71
+ echo -e "\tmv debian/$NAME/usr/include debian/$NAME-dev/usr" >> debian/rules
72
+ #Create some misc files
73
+ mkdir -p debian/source
74
+ echo "8" > debian/compat
75
+ echo "3.0 (quilt)" > debian/source/format
76
+ #Build it
77
+ debuild -us -uc
78
+
79
+ #Install with the newly built package
80
+ sudo dpkg --install libsodium_0.4.2-1_amd64.deb
File without changes
@@ -0,0 +1,57 @@
1
+ # encoding: binary
2
+ require 'rake'
3
+ require 'rake/clean'
4
+ require 'digest/sha2'
5
+
6
+ LIBSODIUM_VERSION = "0.4.5"
7
+ LIBSODIUM_DIGEST = "7ad5202df53eeac0eb29b064ae5d05b65d82b2fc1c082899c9c6a09b0ee1ac32"
8
+
9
+ def sh_hidden(command)
10
+ STDERR.puts("*** Executing: #{command}")
11
+ output = `#{command}`
12
+
13
+ if !$?.success?
14
+ STDERR.puts "!!! Error executing: #{command}"
15
+ STDERR.puts output
16
+ exit 1
17
+ end
18
+ end
19
+
20
+ libsodium_tarball = "libsodium-#{LIBSODIUM_VERSION}.tar.gz"
21
+
22
+ file libsodium_tarball do
23
+ sh "curl -L -O https://github.com/jedisct1/libsodium/releases/download/#{LIBSODIUM_VERSION}/#{libsodium_tarball}"
24
+
25
+ digest = Digest::SHA256.hexdigest(File.read(libsodium_tarball))
26
+ if digest != LIBSODIUM_DIGEST
27
+ rm libsodium_tarball
28
+ raise "#{libsodium_tarball} failed checksum! Got #{digest}"
29
+ end
30
+ end
31
+
32
+ file "libsodium" => libsodium_tarball do
33
+ sh "tar -zxf #{libsodium_tarball}"
34
+ mv "libsodium-#{LIBSODIUM_VERSION}", "libsodium"
35
+ end
36
+
37
+ file "libsodium/Makefile" => "libsodium" do
38
+ sh_hidden "cd libsodium && ./configure"
39
+ end
40
+
41
+ file "libsodium/src/libsodium/.libs/libsodium.a" => "libsodium/Makefile" do
42
+ sh_hidden "cd libsodium && make"
43
+ end
44
+
45
+ if `uname` == 'Darwin'
46
+ libsodium_lib = "libsodium.bundle"
47
+ else
48
+ libsodium_lib = "libsodium.so"
49
+ end
50
+
51
+ file "libsodium/src/libsodium/.libs/#{libsodium_lib}" => "libsodium/src/libsodium/.libs/libsodium.a"
52
+
53
+ task :build_libsodium => "libsodium/src/libsodium/.libs/#{libsodium_lib}" do
54
+ $LIBSODIUM_PATH = "libsodium/src/libsodium/.libs/#{libsodium_lib}"
55
+ end
56
+
57
+ CLEAN.add "libsodium", "libsodium-*.tar.gz"
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'vault-tree/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "vault-tree"
8
+ spec.version = VaultTree::VERSION
9
+ spec.authors = ["Andy Bashelor"]
10
+ spec.email = ["abash1212@gmail.com"]
11
+ spec.description = %q{Vault Tree is a Ruby library for executing distributed cryptographic contracts.}
12
+ spec.summary = %q{The Self Enforcing Contract}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "rbnacl", "1.1.0"
22
+ spec.add_dependency "require_all"
23
+ spec.add_development_dependency "bundler", "~> 1.3"
24
+ spec.add_development_dependency "rspec"
25
+ spec.add_development_dependency "cucumber"
26
+ end
metadata ADDED
@@ -0,0 +1,305 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: vault-tree
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Andy Bashelor
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-11-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rbnacl
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - '='
20
+ - !ruby/object:Gem::Version
21
+ version: 1.1.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - '='
28
+ - !ruby/object:Gem::Version
29
+ version: 1.1.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: require_all
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: bundler
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '1.3'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '1.3'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: cucumber
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ description: Vault Tree is a Ruby library for executing distributed cryptographic
95
+ contracts.
96
+ email:
97
+ - abash1212@gmail.com
98
+ executables: []
99
+ extensions: []
100
+ extra_rdoc_files: []
101
+ files:
102
+ - .gitignore
103
+ - Gemfile
104
+ - Gemfile.lock
105
+ - LICENSE.txt
106
+ - README.md
107
+ - Rakefile
108
+ - VagrantFile
109
+ - features/core.feature
110
+ - features/exceptions.feature
111
+ - features/steps/core.steps.rb
112
+ - features/steps/exceptions.steps.rb
113
+ - features/support/env.rb
114
+ - features/world.rb
115
+ - lib/vault-tree.rb
116
+ - lib/vault-tree/config/dependencies.rb
117
+ - lib/vault-tree/config/lib.rb
118
+ - lib/vault-tree/config/path_helpers.rb
119
+ - lib/vault-tree/config/string.rb
120
+ - lib/vault-tree/contract/close_validator.rb
121
+ - lib/vault-tree/contract/contract.rb
122
+ - lib/vault-tree/contract/contract_presenter.rb
123
+ - lib/vault-tree/contract/doorman.rb
124
+ - lib/vault-tree/contract/null_vault.rb
125
+ - lib/vault-tree/contract/open_validator.rb
126
+ - lib/vault-tree/contract/vault.rb
127
+ - lib/vault-tree/exceptions/empty_vault.rb
128
+ - lib/vault-tree/exceptions/fill_attempt_master_password.rb
129
+ - lib/vault-tree/exceptions/invalid_signature.rb
130
+ - lib/vault-tree/exceptions/malformed_json.rb
131
+ - lib/vault-tree/exceptions/missing_external_data.rb
132
+ - lib/vault-tree/exceptions/missing_partner_decryption_key.rb
133
+ - lib/vault-tree/exceptions/missing_passphrase.rb
134
+ - lib/vault-tree/exceptions/non_unique_vault_id.rb
135
+ - lib/vault-tree/exceptions/unsupported_keyword.rb
136
+ - lib/vault-tree/exceptions/vault_does_not_exist.rb
137
+ - lib/vault-tree/exceptions/vault_tree_exception.rb
138
+ - lib/vault-tree/keywords/decryption_key.rb
139
+ - lib/vault-tree/keywords/external_data.rb
140
+ - lib/vault-tree/keywords/keyword.rb
141
+ - lib/vault-tree/keywords/keyword_interpreter.rb
142
+ - lib/vault-tree/keywords/master_passphrase.rb
143
+ - lib/vault-tree/keywords/public_encryption_key.rb
144
+ - lib/vault-tree/keywords/random_number.rb
145
+ - lib/vault-tree/keywords/shared_key.rb
146
+ - lib/vault-tree/keywords/unlocked.rb
147
+ - lib/vault-tree/keywords/vault_contents.rb
148
+ - lib/vault-tree/lock_smith/asymmetric_cipher.rb
149
+ - lib/vault-tree/lock_smith/crypto_hash.rb
150
+ - lib/vault-tree/lock_smith/digital_signature.rb
151
+ - lib/vault-tree/lock_smith/encryption_key_pair.rb
152
+ - lib/vault-tree/lock_smith/null_vault.rb
153
+ - lib/vault-tree/lock_smith/random_number.rb
154
+ - lib/vault-tree/lock_smith/shared_key_pair.rb
155
+ - lib/vault-tree/lock_smith/signing_key_pair.rb
156
+ - lib/vault-tree/lock_smith/symmetric_cipher.rb
157
+ - lib/vault-tree/util/json.rb
158
+ - lib/vault-tree/version.rb
159
+ - spec/app/locksmith/asymmetric_cipher_spec.rb
160
+ - spec/app/locksmith/signing_key_pair_spec.rb
161
+ - spec/spec_helper.rb
162
+ - spec/support/fixtures/blank_simple_test_contract.json
163
+ - spec/support/fixtures/broken_contract.json
164
+ - spec/support/fixtures/one_two_three-0.5.0.EXP.json
165
+ - spec/support/fixtures/reference_contract.1.0.0.json
166
+ - spec/support/fixtures/simple_test_contract.json
167
+ - support/cookbooks/ark/.gitignore
168
+ - support/cookbooks/ark/.kitchen.yml
169
+ - support/cookbooks/ark/.travis.yml
170
+ - support/cookbooks/ark/Berksfile
171
+ - support/cookbooks/ark/CHANGELOG.md
172
+ - support/cookbooks/ark/CONTRIBUTING.md
173
+ - support/cookbooks/ark/README.md
174
+ - support/cookbooks/ark/Rakefile
175
+ - support/cookbooks/ark/TESTING.md
176
+ - support/cookbooks/ark/Toftfile
177
+ - support/cookbooks/ark/attributes/default.rb
178
+ - support/cookbooks/ark/chefignore
179
+ - support/cookbooks/ark/files/default/foo.tar.gz
180
+ - support/cookbooks/ark/files/default/foo.tbz
181
+ - support/cookbooks/ark/files/default/foo.tgz
182
+ - support/cookbooks/ark/files/default/foo.zip
183
+ - support/cookbooks/ark/files/default/tests/minitest/default_test.rb
184
+ - support/cookbooks/ark/files/default/tests/minitest/support/helpers.rb
185
+ - support/cookbooks/ark/files/default/tests/minitest/test_test.rb
186
+ - support/cookbooks/ark/libraries/default.rb
187
+ - support/cookbooks/ark/metadata.rb
188
+ - support/cookbooks/ark/providers/default.rb
189
+ - support/cookbooks/ark/recipes/default.rb
190
+ - support/cookbooks/ark/recipes/test.rb
191
+ - support/cookbooks/ark/resources/default.rb
192
+ - support/cookbooks/ark/templates/default/add_to_path.sh.erb
193
+ - support/cookbooks/ark/test/support/Gemfile
194
+ - support/cookbooks/build-essential/README.md
195
+ - support/cookbooks/build-essential/metadata.rb
196
+ - support/cookbooks/build-essential/recipes/default.rb
197
+ - support/cookbooks/chruby/.gitignore
198
+ - support/cookbooks/chruby/.kitchen.yml
199
+ - support/cookbooks/chruby/.ruby_version
200
+ - support/cookbooks/chruby/Berksfile
201
+ - support/cookbooks/chruby/Gemfile
202
+ - support/cookbooks/chruby/LICENSE
203
+ - support/cookbooks/chruby/README.md
204
+ - support/cookbooks/chruby/Rakefile
205
+ - support/cookbooks/chruby/Thorfile
206
+ - support/cookbooks/chruby/Vagrantfile
207
+ - support/cookbooks/chruby/attributes/default.rb
208
+ - support/cookbooks/chruby/chefignore
209
+ - support/cookbooks/chruby/metadata.rb
210
+ - support/cookbooks/chruby/recipes/default.rb
211
+ - support/cookbooks/chruby/recipes/system.rb
212
+ - support/cookbooks/chruby/templates/default/chruby.sh.erb
213
+ - support/cookbooks/chruby/test/integration/default/bash/embedded_test.sh
214
+ - support/cookbooks/git/.gitignore
215
+ - support/cookbooks/git/.kitchen.yml
216
+ - support/cookbooks/git/Berksfile
217
+ - support/cookbooks/git/CHANGELOG.md
218
+ - support/cookbooks/git/CONTRIBUTING
219
+ - support/cookbooks/git/Gemfile
220
+ - support/cookbooks/git/LICENSE
221
+ - support/cookbooks/git/README.md
222
+ - support/cookbooks/git/TESTING.md
223
+ - support/cookbooks/git/attributes/default.rb
224
+ - support/cookbooks/git/metadata.rb
225
+ - support/cookbooks/git/recipes/default.rb
226
+ - support/cookbooks/git/recipes/server.rb
227
+ - support/cookbooks/git/recipes/source.rb
228
+ - support/cookbooks/git/recipes/windows.rb
229
+ - support/cookbooks/git/templates/default/git-xinetd.d.erb
230
+ - support/cookbooks/git/templates/default/sv-git-daemon-log-run.erb
231
+ - support/cookbooks/git/templates/default/sv-git-daemon-run.erb
232
+ - support/cookbooks/install_ruby/README.md
233
+ - support/cookbooks/install_ruby/metadata.rb
234
+ - support/cookbooks/install_ruby/recipes/default.rb
235
+ - support/cookbooks/ruby_build/.gitignore
236
+ - support/cookbooks/ruby_build/.kitchen.yml
237
+ - support/cookbooks/ruby_build/.travis.yml
238
+ - support/cookbooks/ruby_build/Berksfile
239
+ - support/cookbooks/ruby_build/CHANGELOG.md
240
+ - support/cookbooks/ruby_build/Gemfile
241
+ - support/cookbooks/ruby_build/README.md
242
+ - support/cookbooks/ruby_build/Rakefile
243
+ - support/cookbooks/ruby_build/attributes/default.rb
244
+ - support/cookbooks/ruby_build/chefignore
245
+ - support/cookbooks/ruby_build/libraries/ruby_build_recipe_helpers.rb
246
+ - support/cookbooks/ruby_build/metadata.rb
247
+ - support/cookbooks/ruby_build/providers/ruby.rb
248
+ - support/cookbooks/ruby_build/recipes/default.rb
249
+ - support/cookbooks/ruby_build/resources/ruby.rb
250
+ - support/cookbooks/ruby_build/test/cookbooks/alltherubies/metadata.rb
251
+ - support/cookbooks/ruby_build/test/cookbooks/alltherubies/recipes/default.rb
252
+ - support/cookbooks/ruby_build/test/integration/alltherubies/bats/_verify_tests.bash
253
+ - support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.8.7.bats
254
+ - support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.9.2.bats
255
+ - support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.9.3.bats
256
+ - support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_2.0.0.bats
257
+ - support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_jruby.bats
258
+ - support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_rbx.bats
259
+ - support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_ree.bats
260
+ - support/cookbooks/ruby_build/test/integration/installation/bats/installation.bats
261
+ - support/scripts/libsodium_ubuntu.sh
262
+ - support/tasks/.gitkeep
263
+ - support/tasks/libsodium_install.rb
264
+ - vault-tree.gemspec
265
+ homepage: ''
266
+ licenses:
267
+ - MIT
268
+ post_install_message:
269
+ rdoc_options: []
270
+ require_paths:
271
+ - lib
272
+ required_ruby_version: !ruby/object:Gem::Requirement
273
+ none: false
274
+ requirements:
275
+ - - ! '>='
276
+ - !ruby/object:Gem::Version
277
+ version: '0'
278
+ required_rubygems_version: !ruby/object:Gem::Requirement
279
+ none: false
280
+ requirements:
281
+ - - ! '>='
282
+ - !ruby/object:Gem::Version
283
+ version: '0'
284
+ requirements: []
285
+ rubyforge_project:
286
+ rubygems_version: 1.8.23
287
+ signing_key:
288
+ specification_version: 3
289
+ summary: The Self Enforcing Contract
290
+ test_files:
291
+ - features/core.feature
292
+ - features/exceptions.feature
293
+ - features/steps/core.steps.rb
294
+ - features/steps/exceptions.steps.rb
295
+ - features/support/env.rb
296
+ - features/world.rb
297
+ - spec/app/locksmith/asymmetric_cipher_spec.rb
298
+ - spec/app/locksmith/signing_key_pair_spec.rb
299
+ - spec/spec_helper.rb
300
+ - spec/support/fixtures/blank_simple_test_contract.json
301
+ - spec/support/fixtures/broken_contract.json
302
+ - spec/support/fixtures/one_two_three-0.5.0.EXP.json
303
+ - spec/support/fixtures/reference_contract.1.0.0.json
304
+ - spec/support/fixtures/simple_test_contract.json
305
+ has_rdoc: