vault-tree 0.1.0

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