vault-tree 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +26 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +43 -0
- data/LICENSE.txt +22 -0
- data/README.md +118 -0
- data/Rakefile +17 -0
- data/VagrantFile +30 -0
- data/features/core.feature +44 -0
- data/features/exceptions.feature +41 -0
- data/features/steps/core.steps.rb +168 -0
- data/features/steps/exceptions.steps.rb +103 -0
- data/features/support/env.rb +1 -0
- data/features/world.rb +3 -0
- data/lib/vault-tree.rb +7 -0
- data/lib/vault-tree/config/dependencies.rb +4 -0
- data/lib/vault-tree/config/lib.rb +2 -0
- data/lib/vault-tree/config/path_helpers.rb +49 -0
- data/lib/vault-tree/config/string.rb +25 -0
- data/lib/vault-tree/contract/close_validator.rb +35 -0
- data/lib/vault-tree/contract/contract.rb +85 -0
- data/lib/vault-tree/contract/contract_presenter.rb +27 -0
- data/lib/vault-tree/contract/doorman.rb +112 -0
- data/lib/vault-tree/contract/null_vault.rb +16 -0
- data/lib/vault-tree/contract/open_validator.rb +20 -0
- data/lib/vault-tree/contract/vault.rb +96 -0
- data/lib/vault-tree/exceptions/empty_vault.rb +8 -0
- data/lib/vault-tree/exceptions/fill_attempt_master_password.rb +6 -0
- data/lib/vault-tree/exceptions/invalid_signature.rb +0 -0
- data/lib/vault-tree/exceptions/malformed_json.rb +0 -0
- data/lib/vault-tree/exceptions/missing_external_data.rb +6 -0
- data/lib/vault-tree/exceptions/missing_partner_decryption_key.rb +6 -0
- data/lib/vault-tree/exceptions/missing_passphrase.rb +6 -0
- data/lib/vault-tree/exceptions/non_unique_vault_id.rb +0 -0
- data/lib/vault-tree/exceptions/unsupported_keyword.rb +6 -0
- data/lib/vault-tree/exceptions/vault_does_not_exist.rb +6 -0
- data/lib/vault-tree/exceptions/vault_tree_exception.rb +6 -0
- data/lib/vault-tree/keywords/decryption_key.rb +14 -0
- data/lib/vault-tree/keywords/external_data.rb +13 -0
- data/lib/vault-tree/keywords/keyword.rb +19 -0
- data/lib/vault-tree/keywords/keyword_interpreter.rb +45 -0
- data/lib/vault-tree/keywords/master_passphrase.rb +9 -0
- data/lib/vault-tree/keywords/public_encryption_key.rb +27 -0
- data/lib/vault-tree/keywords/random_number.rb +9 -0
- data/lib/vault-tree/keywords/shared_key.rb +24 -0
- data/lib/vault-tree/keywords/unlocked.rb +9 -0
- data/lib/vault-tree/keywords/vault_contents.rb +13 -0
- data/lib/vault-tree/lock_smith/asymmetric_cipher.rb +31 -0
- data/lib/vault-tree/lock_smith/crypto_hash.rb +11 -0
- data/lib/vault-tree/lock_smith/digital_signature.rb +32 -0
- data/lib/vault-tree/lock_smith/encryption_key_pair.rb +25 -0
- data/lib/vault-tree/lock_smith/null_vault.rb +4 -0
- data/lib/vault-tree/lock_smith/random_number.rb +11 -0
- data/lib/vault-tree/lock_smith/shared_key_pair.rb +12 -0
- data/lib/vault-tree/lock_smith/signing_key_pair.rb +25 -0
- data/lib/vault-tree/lock_smith/symmetric_cipher.rb +25 -0
- data/lib/vault-tree/util/json.rb +16 -0
- data/lib/vault-tree/version.rb +3 -0
- data/spec/app/locksmith/asymmetric_cipher_spec.rb +25 -0
- data/spec/app/locksmith/signing_key_pair_spec.rb +22 -0
- data/spec/spec_helper.rb +5 -0
- data/spec/support/fixtures/blank_simple_test_contract.json +14 -0
- data/spec/support/fixtures/broken_contract.json +55 -0
- data/spec/support/fixtures/one_two_three-0.5.0.EXP.json +105 -0
- data/spec/support/fixtures/reference_contract.1.0.0.json +227 -0
- data/spec/support/fixtures/simple_test_contract.json +14 -0
- data/support/cookbooks/ark/.gitignore +12 -0
- data/support/cookbooks/ark/.kitchen.yml +34 -0
- data/support/cookbooks/ark/.travis.yml +6 -0
- data/support/cookbooks/ark/Berksfile +9 -0
- data/support/cookbooks/ark/CHANGELOG.md +87 -0
- data/support/cookbooks/ark/CONTRIBUTING.md +257 -0
- data/support/cookbooks/ark/README.md +301 -0
- data/support/cookbooks/ark/Rakefile +36 -0
- data/support/cookbooks/ark/TESTING.md +25 -0
- data/support/cookbooks/ark/Toftfile +15 -0
- data/support/cookbooks/ark/attributes/default.rb +6 -0
- data/support/cookbooks/ark/chefignore +96 -0
- data/support/cookbooks/ark/files/default/foo.tar.gz +0 -0
- data/support/cookbooks/ark/files/default/foo.tbz +0 -0
- data/support/cookbooks/ark/files/default/foo.tgz +0 -0
- data/support/cookbooks/ark/files/default/foo.zip +0 -0
- data/support/cookbooks/ark/files/default/tests/minitest/default_test.rb +0 -0
- data/support/cookbooks/ark/files/default/tests/minitest/support/helpers.rb +0 -0
- data/support/cookbooks/ark/files/default/tests/minitest/test_test.rb +94 -0
- data/support/cookbooks/ark/libraries/default.rb +167 -0
- data/support/cookbooks/ark/metadata.rb +13 -0
- data/support/cookbooks/ark/providers/default.rb +370 -0
- data/support/cookbooks/ark/recipes/default.rb +31 -0
- data/support/cookbooks/ark/recipes/test.rb +138 -0
- data/support/cookbooks/ark/resources/default.rb +54 -0
- data/support/cookbooks/ark/templates/default/add_to_path.sh.erb +1 -0
- data/support/cookbooks/ark/test/support/Gemfile +4 -0
- data/support/cookbooks/build-essential/README.md +24 -0
- data/support/cookbooks/build-essential/metadata.rb +10 -0
- data/support/cookbooks/build-essential/recipes/default.rb +45 -0
- data/support/cookbooks/chruby/.gitignore +15 -0
- data/support/cookbooks/chruby/.kitchen.yml +26 -0
- data/support/cookbooks/chruby/.ruby_version +1 -0
- data/support/cookbooks/chruby/Berksfile +3 -0
- data/support/cookbooks/chruby/Gemfile +7 -0
- data/support/cookbooks/chruby/LICENSE +14 -0
- data/support/cookbooks/chruby/README.md +92 -0
- data/support/cookbooks/chruby/Rakefile +7 -0
- data/support/cookbooks/chruby/Thorfile +6 -0
- data/support/cookbooks/chruby/Vagrantfile +86 -0
- data/support/cookbooks/chruby/attributes/default.rb +10 -0
- data/support/cookbooks/chruby/chefignore +96 -0
- data/support/cookbooks/chruby/metadata.rb +11 -0
- data/support/cookbooks/chruby/recipes/default.rb +43 -0
- data/support/cookbooks/chruby/recipes/system.rb +25 -0
- data/support/cookbooks/chruby/templates/default/chruby.sh.erb +22 -0
- data/support/cookbooks/chruby/test/integration/default/bash/embedded_test.sh +1 -0
- data/support/cookbooks/git/.gitignore +14 -0
- data/support/cookbooks/git/.kitchen.yml +46 -0
- data/support/cookbooks/git/Berksfile +8 -0
- data/support/cookbooks/git/CHANGELOG.md +87 -0
- data/support/cookbooks/git/CONTRIBUTING +29 -0
- data/support/cookbooks/git/Gemfile +3 -0
- data/support/cookbooks/git/LICENSE +201 -0
- data/support/cookbooks/git/README.md +115 -0
- data/support/cookbooks/git/TESTING.md +25 -0
- data/support/cookbooks/git/attributes/default.rb +40 -0
- data/support/cookbooks/git/metadata.rb +35 -0
- data/support/cookbooks/git/recipes/default.rb +53 -0
- data/support/cookbooks/git/recipes/server.rb +58 -0
- data/support/cookbooks/git/recipes/source.rb +49 -0
- data/support/cookbooks/git/recipes/windows.rb +37 -0
- data/support/cookbooks/git/templates/default/git-xinetd.d.erb +10 -0
- data/support/cookbooks/git/templates/default/sv-git-daemon-log-run.erb +2 -0
- data/support/cookbooks/git/templates/default/sv-git-daemon-run.erb +3 -0
- data/support/cookbooks/install_ruby/README.md +3 -0
- data/support/cookbooks/install_ruby/metadata.rb +10 -0
- data/support/cookbooks/install_ruby/recipes/default.rb +14 -0
- data/support/cookbooks/ruby_build/.gitignore +6 -0
- data/support/cookbooks/ruby_build/.kitchen.yml +31 -0
- data/support/cookbooks/ruby_build/.travis.yml +4 -0
- data/support/cookbooks/ruby_build/Berksfile +10 -0
- data/support/cookbooks/ruby_build/CHANGELOG.md +72 -0
- data/support/cookbooks/ruby_build/Gemfile +14 -0
- data/support/cookbooks/ruby_build/README.md +338 -0
- data/support/cookbooks/ruby_build/Rakefile +21 -0
- data/support/cookbooks/ruby_build/attributes/default.rb +67 -0
- data/support/cookbooks/ruby_build/chefignore +53 -0
- data/support/cookbooks/ruby_build/libraries/ruby_build_recipe_helpers.rb +40 -0
- data/support/cookbooks/ruby_build/metadata.rb +18 -0
- data/support/cookbooks/ruby_build/providers/ruby.rb +88 -0
- data/support/cookbooks/ruby_build/recipes/default.rb +69 -0
- data/support/cookbooks/ruby_build/resources/ruby.rb +33 -0
- data/support/cookbooks/ruby_build/test/cookbooks/alltherubies/metadata.rb +10 -0
- data/support/cookbooks/ruby_build/test/cookbooks/alltherubies/recipes/default.rb +59 -0
- data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/_verify_tests.bash +33 -0
- data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.8.7.bats +29 -0
- data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.9.2.bats +18 -0
- data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_1.9.3.bats +18 -0
- data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_2.0.0.bats +18 -0
- data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_jruby.bats +20 -0
- data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_rbx.bats +18 -0
- data/support/cookbooks/ruby_build/test/integration/alltherubies/bats/verify_ree.bats +19 -0
- data/support/cookbooks/ruby_build/test/integration/installation/bats/installation.bats +6 -0
- data/support/scripts/libsodium_ubuntu.sh +80 -0
- data/support/tasks/.gitkeep +0 -0
- data/support/tasks/libsodium_install.rb +57 -0
- data/vault-tree.gemspec +26 -0
- 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,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"
|
data/vault-tree.gemspec
ADDED
@@ -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:
|