cifrado 0.1.3 → 0.2.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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +6 -0
- data/HACKING.md +6 -0
- data/bin/cifrado +31 -0
- data/cifrado.gemspec +1 -1
- data/lib/cifrado/cli/configs.rb +44 -0
- data/lib/cifrado/cli/saio/bootstrap.rb +2 -2
- data/lib/cifrado/cli/saio/scripts/saio.sh.erb +1 -1
- data/lib/cifrado/cli/setup.rb +6 -5
- data/lib/cifrado/cli/upload.rb +10 -10
- data/lib/cifrado/cli.rb +14 -30
- data/lib/cifrado/config.rb +18 -6
- data/lib/cifrado/file_splitter.rb +1 -1
- data/lib/cifrado/swift_client.rb +1 -1
- data/lib/cifrado/version.rb +1 -1
- data/lib/cifrado.rb +2 -0
- data/tests/cli/upload_tests.rb +9 -0
- data/tests/helper.rb +5 -2
- data/tests/swift_client/head_tests.rb +1 -1
- data/vendor/fog/lib/fog/openstack/storage.rb +0 -1
- data/vendor/fog/lib/fog/openstack.rb +0 -1
- metadata +27 -46
- checksums.yaml.gz.sig +0 -2
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 72a06074f4179b1d7c3e9912c30208c37d53ea86
|
4
|
+
data.tar.gz: 7e11beff0781e9c476dbe0a7df54e199b16712cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1c9b1336bab1b9ab5a6d0e050ddf95ade9c3b6f163c61bf26cfed830837a3af83a2149fe0ae61f5ab571f0bea2d960b298d8fd5e4d04c03ab575b0726f7df4d
|
7
|
+
data.tar.gz: b241cdd6d09ee1a5b477ba68731eb711e2f54491a1e2dae81154f1ea0c29e9dbc720365f5c689da270800e82588f9843d46d9ace42bce6f4fa64fa9f36e0a969
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
# Cifrado 0.2.0 - Wed 19 Feb 2014
|
2
|
+
|
3
|
+
* HP Cloud support. See https://github.com/rubiojr/cifrado/wiki/Providers-HPCloud
|
4
|
+
* Added `config` command. See https://github.com/rubiojr/cifrado/commit/ea291b75fc45895ddfed9077caa6c225349b3145
|
5
|
+
* Bug Fixes
|
6
|
+
|
1
7
|
# Cifrado 0.1.3 - Tue 05 Mar 2013
|
2
8
|
|
3
9
|
* Fix regresion in the last release that may break regular OpenStack accounts
|
data/HACKING.md
ADDED
data/bin/cifrado
CHANGED
@@ -4,4 +4,35 @@ require 'yaml'
|
|
4
4
|
require 'uri'
|
5
5
|
|
6
6
|
$0 = "cifrado #{ARGV.join(' ')}"
|
7
|
+
|
8
|
+
at_exit do
|
9
|
+
include Cifrado::Utils
|
10
|
+
include Cifrado
|
11
|
+
e = $!
|
12
|
+
if e
|
13
|
+
if e.is_a? Excon::Errors::Unauthorized
|
14
|
+
Log.error "Unauthorized"
|
15
|
+
Log.error "Double check the username, password and auth_url."
|
16
|
+
elsif e.is_a? Excon::Errors::SocketError
|
17
|
+
if e.message =~ /Unable to verify certificate|hostname (was|does) not match (with )?the server/
|
18
|
+
Log.error "Unable to verify SSL certificate."
|
19
|
+
Log.error "If the server is using a self-signed certificate, try using --insecure."
|
20
|
+
Log.error "Please be aware of the security implications."
|
21
|
+
else
|
22
|
+
Log.error e.message
|
23
|
+
end
|
24
|
+
elsif e.is_a? RuntimeError
|
25
|
+
Log.error e.message
|
26
|
+
elsif e.is_a? Interrupt
|
27
|
+
Log.info
|
28
|
+
Log.info 'At your command, Sir!'
|
29
|
+
else
|
30
|
+
Log.fatal e.message
|
31
|
+
end
|
32
|
+
system 'stty echo'
|
33
|
+
prettify_backtrace e
|
34
|
+
exit! 1
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
7
38
|
Cifrado::CLI.start ARGV, :shell => Thor::Shell::Color.new
|
data/cifrado.gemspec
CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |gem|
|
|
7
7
|
gem.name = "cifrado"
|
8
8
|
gem.version = Cifrado::VERSION
|
9
9
|
gem.authors = ["Sergio Rubio"]
|
10
|
-
gem.signing_key = File.expand_path("~/.gem/gem-private_key.pem")
|
10
|
+
#gem.signing_key = File.expand_path("~/.gem/gem-private_key.pem")
|
11
11
|
gem.cert_chain = ["gem-public_cert.pem"]
|
12
12
|
gem.email = ["rubiojr@frameos.org"]
|
13
13
|
gem.description = %q{OpenStack Swift CLI with encryption support}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Cifrado
|
2
|
+
class CLI
|
3
|
+
desc 'configs', 'List available configuration'
|
4
|
+
option :print,
|
5
|
+
:type => :string,
|
6
|
+
:desc => 'Print the configuration selected'
|
7
|
+
option :current,
|
8
|
+
:type => :boolean,
|
9
|
+
:desc => 'Print the current configuration'
|
10
|
+
def configs
|
11
|
+
cdir = Cifrado::Config.instance.config_dir
|
12
|
+
|
13
|
+
current = "#{cdir}/cifradorc"
|
14
|
+
if options[:current]
|
15
|
+
if File.exist?(current)
|
16
|
+
Log.info conceal_password(File.read("#{cdir}/cifradorc"))
|
17
|
+
return 'cifradorc'
|
18
|
+
else
|
19
|
+
raise 'No configuration available.'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
configs = Dir["#{cdir}/cifradorc.*"].map do |c|
|
24
|
+
File.basename(c).gsub('cifradorc.', '')
|
25
|
+
end
|
26
|
+
|
27
|
+
selected = options[:print]
|
28
|
+
if selected and configs.include?(selected)
|
29
|
+
Log.info conceal_password(File.read("#{cdir}/cifradorc.#{selected}"))
|
30
|
+
return selected
|
31
|
+
else
|
32
|
+
raise "Config #{selected} not available." if selected
|
33
|
+
end
|
34
|
+
|
35
|
+
configs.each { |c| Log.info(c) if c !~ /bak\.\d+/ }
|
36
|
+
configs
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
def conceal_password(buf)
|
41
|
+
buf.gsub(/^.*password:.*$/, ':password:')
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -114,8 +114,8 @@ module Cifrado
|
|
114
114
|
|
115
115
|
private
|
116
116
|
def save_settings(config)
|
117
|
-
|
118
|
-
|
117
|
+
config_dir = Cifrado::Config.instance.config_dir
|
118
|
+
config_file = File.join(config_dir, 'cifradorc')
|
119
119
|
if File.exist?(config_file)
|
120
120
|
raise 'Cifrado config file exists. Refusing to overwrite.'
|
121
121
|
else
|
@@ -19,7 +19,7 @@ function get_id () {
|
|
19
19
|
|
20
20
|
echo deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/folsom main > /etc/apt/sources.list.d/folsom.list
|
21
21
|
apt-get update
|
22
|
-
apt-get install -y ubuntu-cloud-keyring
|
22
|
+
apt-get install -y ubuntu-cloud-keyring ntp
|
23
23
|
apt-get update
|
24
24
|
apt-get install -y keystone python-software-properties telnet xfsprogs pwgen ssl-cert curl wget ca-certificates tcpflow
|
25
25
|
add-apt-repository -y ppa:bvox/ppa
|
data/lib/cifrado/cli/setup.rb
CHANGED
@@ -2,9 +2,10 @@ module Cifrado
|
|
2
2
|
class CLI
|
3
3
|
desc "setup", "Initial Cifrado configuration"
|
4
4
|
def setup
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
config_instance = Cifrado::Config.instance
|
6
|
+
config_file = File.join(config_instance.config_dir, 'cifradorc')
|
7
|
+
unless File.directory?(config_instance.config_dir)
|
8
|
+
FileUtils.mkdir_p config_instance.config_dir
|
8
9
|
end
|
9
10
|
if File.exist?(config_file)
|
10
11
|
Log.warn "Config file #{set_color config_file, :bold} already exist."
|
@@ -20,9 +21,9 @@ module Cifrado
|
|
20
21
|
|
21
22
|
|
22
23
|
puts "Running cifrado setup..."
|
23
|
-
puts "Please provide OpenStack/Rackspace credentials."
|
24
|
+
puts "Please provide OpenStack/Rackspace/HPCloud credentials."
|
24
25
|
puts
|
25
|
-
puts "Cifrado can save
|
26
|
+
puts "Cifrado can save these settings in #{config_file}"
|
26
27
|
puts "for later use."
|
27
28
|
puts "The settings (password included) are saved unencrypted."
|
28
29
|
puts
|
data/lib/cifrado/cli/upload.rb
CHANGED
@@ -241,12 +241,6 @@ module Cifrado
|
|
241
241
|
File.delete out
|
242
242
|
end
|
243
243
|
|
244
|
-
if segments_uploaded.size == 0
|
245
|
-
Log.warn 'All the segments have been previously uploaded.'
|
246
|
-
Log.warn 'Skipping manifest creation.'
|
247
|
-
return segments_uploaded
|
248
|
-
end
|
249
|
-
|
250
244
|
# We need this for segmented uploads
|
251
245
|
Log.debug "Adding manifest path #{target_manifest}"
|
252
246
|
xom = "#{Fog::OpenStack.escape(container + '_segments')}/" +
|
@@ -256,11 +250,17 @@ module Cifrado
|
|
256
250
|
encrypted_name = encrypt_filename object, secure_password
|
257
251
|
headers['X-Object-Meta-Encrypted-Name'] = encrypted_name
|
258
252
|
end
|
253
|
+
|
254
|
+
# Make sure the container for the object manifest exists
|
259
255
|
client.create_directory container
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
256
|
+
|
257
|
+
unless client.head(container, target_manifest)
|
258
|
+
Log.debug "Adding object manifest #{target_manifest}"
|
259
|
+
client.service.put_object_manifest container,
|
260
|
+
target_manifest,
|
261
|
+
headers
|
262
|
+
segments_uploaded.insert 0, target_manifest
|
263
|
+
end
|
264
264
|
|
265
265
|
segments_uploaded
|
266
266
|
end
|
data/lib/cifrado/cli.rb
CHANGED
@@ -58,7 +58,17 @@ module Cifrado
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def check_options
|
61
|
-
|
61
|
+
config_dir = Cifrado::Config.instance.config_dir
|
62
|
+
config_file = options[:config] || File.join(config_dir, 'cifradorc')
|
63
|
+
|
64
|
+
# Cifrado can use config shortcuts, i.e. myhost without path
|
65
|
+
# is equivalent to ~/.config/cifrado/cifradorc.myhost
|
66
|
+
#
|
67
|
+
config_shortcut = File.join(config_dir, "cifradorc.#{config_file}")
|
68
|
+
if File.exist?(config_shortcut)
|
69
|
+
config_file = config_shortcut
|
70
|
+
end
|
71
|
+
|
62
72
|
config = {}
|
63
73
|
|
64
74
|
if File.exist?(config_file)
|
@@ -72,6 +82,8 @@ module Cifrado
|
|
72
82
|
Cifrado::Log.error "Error loading config file"
|
73
83
|
raise e
|
74
84
|
end
|
85
|
+
else
|
86
|
+
Log.warn "Config file #{config_file} not found."
|
75
87
|
end
|
76
88
|
|
77
89
|
config[:username] = options[:username] || config[:username]
|
@@ -125,33 +137,5 @@ require 'cifrado/cli/jukebox'
|
|
125
137
|
require 'cifrado/cli/cinema'
|
126
138
|
require 'cifrado/cli/saio'
|
127
139
|
require 'cifrado/cli/version'
|
140
|
+
require 'cifrado/cli/configs'
|
128
141
|
|
129
|
-
at_exit do
|
130
|
-
include Cifrado::Utils
|
131
|
-
include Cifrado
|
132
|
-
e = $!
|
133
|
-
if e
|
134
|
-
if e.is_a? Excon::Errors::Unauthorized
|
135
|
-
Log.error "Unauthorized"
|
136
|
-
Log.error "Double check the username, password and auth_url."
|
137
|
-
elsif e.is_a? Excon::Errors::SocketError
|
138
|
-
if e.message =~ /Unable to verify certificate|hostname (was|does) not match (with )?the server/
|
139
|
-
Log.error "Unable to verify SSL certificate."
|
140
|
-
Log.error "If the server is using a self-signed certificate, try using --insecure."
|
141
|
-
Log.error "Please be aware of the security implications."
|
142
|
-
else
|
143
|
-
Log.error e.message
|
144
|
-
end
|
145
|
-
elsif e.is_a? RuntimeError
|
146
|
-
Log.error e.message
|
147
|
-
elsif e.is_a? Interrupt
|
148
|
-
Log.info
|
149
|
-
Log.info 'At your command, Sir!'
|
150
|
-
else
|
151
|
-
Log.fatal e.message
|
152
|
-
end
|
153
|
-
system 'stty echo'
|
154
|
-
prettify_backtrace e
|
155
|
-
exit! 1
|
156
|
-
end
|
157
|
-
end
|
data/lib/cifrado/config.rb
CHANGED
@@ -4,15 +4,27 @@ module Cifrado
|
|
4
4
|
class Config
|
5
5
|
include Singleton
|
6
6
|
|
7
|
-
def
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
7
|
+
def init_env
|
8
|
+
Log.debug "Creating cache dir: #{cache_dir}"
|
9
|
+
FileUtils.mkdir_p(cache_dir)
|
10
|
+
Log.debug "Creating config dir: #{config_dir}"
|
11
|
+
FileUtils.mkdir_p(config_dir)
|
12
|
+
end
|
13
|
+
|
14
|
+
def cache_dir=(dir)
|
15
|
+
@cache_dir = dir
|
12
16
|
end
|
13
17
|
|
14
18
|
def cache_dir
|
15
|
-
File.join(ENV['HOME'], '.cache/cifrado')
|
19
|
+
@cache_dir ||= File.join(ENV['HOME'], '.cache/cifrado')
|
20
|
+
end
|
21
|
+
|
22
|
+
def config_dir=(dir)
|
23
|
+
@config_dir = dir
|
24
|
+
end
|
25
|
+
|
26
|
+
def config_dir
|
27
|
+
@config_dir ||= File.join(ENV['HOME'], '.config/cifrado')
|
16
28
|
end
|
17
29
|
end
|
18
30
|
end
|
@@ -13,7 +13,7 @@ module Cifrado
|
|
13
13
|
# @param [String] Destination directory of the chunks
|
14
14
|
def initialize(filename,
|
15
15
|
chunk_number = nil,
|
16
|
-
cache_dir =
|
16
|
+
cache_dir = Cifrado::Config.instance.cache_dir)
|
17
17
|
raise ArgumentError.new unless File.exist?(filename)
|
18
18
|
@filename = File.basename filename
|
19
19
|
@source = filename
|
data/lib/cifrado/swift_client.rb
CHANGED
@@ -33,7 +33,7 @@ module Cifrado
|
|
33
33
|
def head(container = nil, object = nil)
|
34
34
|
begin
|
35
35
|
if container and object
|
36
|
-
service.head_object(container, object).headers
|
36
|
+
service.head_object(container, clean_object_name(object)).headers
|
37
37
|
elsif container
|
38
38
|
service.head_container(container).headers
|
39
39
|
else
|
data/lib/cifrado/version.rb
CHANGED
data/lib/cifrado.rb
CHANGED
data/tests/cli/upload_tests.rb
CHANGED
@@ -32,6 +32,15 @@ Shindo.tests('Cifrado | CLI#upload') do
|
|
32
32
|
segments = cli.upload 'cifrado-tests', obj
|
33
33
|
segments.size == 0
|
34
34
|
end
|
35
|
+
# Delete object manifest and test if it's added again
|
36
|
+
cli.delete test_container_name, clean_object_name(obj)
|
37
|
+
test 'object manifest is always added' do
|
38
|
+
segments = cli.upload 'cifrado-tests', obj
|
39
|
+
segments.size == 1
|
40
|
+
end
|
41
|
+
test 'object manifest exist' do
|
42
|
+
!client.head(test_container_name, obj).nil?
|
43
|
+
end
|
35
44
|
end
|
36
45
|
tests 'single uploads' do
|
37
46
|
obj = create_bin_payload 1
|
data/tests/helper.rb
CHANGED
@@ -6,6 +6,9 @@ require 'digest/md5'
|
|
6
6
|
|
7
7
|
include Cifrado
|
8
8
|
include Cifrado::Utils
|
9
|
+
|
10
|
+
Cifrado::Config.instance.cache_dir = File.expand_path("~/.cache/cifrado-test")
|
11
|
+
Cifrado::Config.instance.config_dir = File.expand_path(File.dirname(__FILE__))
|
9
12
|
|
10
13
|
unless ENV['DEBUG']
|
11
14
|
Cifrado::Log.level = Logger::ERROR
|
@@ -16,7 +19,7 @@ def fog_settings
|
|
16
19
|
end
|
17
20
|
|
18
21
|
def client
|
19
|
-
conf = YAML.load_file
|
22
|
+
conf = YAML.load_file Cifrado::Config.instance.config_dir + "/cifradorc"
|
20
23
|
client = SwiftClient.new :username => conf[:username],
|
21
24
|
:api_key => conf[:password],
|
22
25
|
:auth_url => conf[:auth_url],
|
@@ -106,7 +109,7 @@ def cleanup
|
|
106
109
|
clean_test_payloads
|
107
110
|
clean_test_container
|
108
111
|
Dir["/tmp/cifrado*"].each { |f| FileUtils.rm_rf f }
|
109
|
-
Dir[
|
112
|
+
Dir["#{Cifrado::Config.instance.cache_dir}/*"].each { |f| FileUtils.rm_f f }
|
110
113
|
end
|
111
114
|
|
112
115
|
def tmpfile
|
@@ -5,7 +5,7 @@ Shindo.tests('Cifrado | SwiftClient#head') do
|
|
5
5
|
tests 'head object' do
|
6
6
|
test "object #{clean_object} headers available" do
|
7
7
|
client.upload test_container_name, obj1
|
8
|
-
|
8
|
+
client.head(test_container_name, obj1).is_a?(Hash)
|
9
9
|
end
|
10
10
|
test 'head invalid object' do
|
11
11
|
client.head(test_container_name, SecureRandom.hex).nil?
|
@@ -195,7 +195,6 @@ module Fog
|
|
195
195
|
:expects => [200, 204],
|
196
196
|
:headers => {'Content-Type' => 'application/json'},
|
197
197
|
:body => Fog::JSON.encode(request_body),
|
198
|
-
:host => uri.host,
|
199
198
|
:method => 'POST',
|
200
199
|
:path => (uri.path and not uri.path.empty?) ? uri.path : 'v2.0'
|
201
200
|
})
|
metadata
CHANGED
@@ -1,160 +1,140 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cifrado
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergio Rubio
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
|
-
-
|
12
|
-
|
13
|
-
MIIDNDCCAhygAwIBAgIBADANBgkqhkiG9w0BAQUFADBAMRAwDgYDVQQDDAdydWJp
|
14
|
-
b2pyMRcwFQYKCZImiZPyLGQBGRYHZnJhbWVvczETMBEGCgmSJomT8ixkARkWA29y
|
15
|
-
ZzAeFw0xMzAyMTIyMDU0NTFaFw0xNDAyMTIyMDU0NTFaMEAxEDAOBgNVBAMMB3J1
|
16
|
-
YmlvanIxFzAVBgoJkiaJk/IsZAEZFgdmcmFtZW9zMRMwEQYKCZImiZPyLGQBGRYD
|
17
|
-
b3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6gSsIib3HHQ87Dsu
|
18
|
-
9EZzKMk2oswglzatmxIbCKXTCflTFd7U4I3sinGCOPdkRmqf9vjJSv2ppFnq8D/J
|
19
|
-
flUrqpvqnDSGWW4mHdCXGGkbgsmNGV2d3AYGC1fhstBTxJIvQaDibxrH5IIqBtNN
|
20
|
-
wBGrOVuSb1HjqPpp+5MKcQdqYT4GW1rZkeV4FYXg+SThwjx+AlmvUKmMT9cmB2Ml
|
21
|
-
JWpId4O027AjcdmOk1s1ZMIlr+ZzV0EDmqPyNFmxZm72QUsywijM9B76eVC5sdOH
|
22
|
-
JKZK75oXtz0Pr++MYTlNaXHu98RzgMyOzLHM5LRCZg1f/zB9NbI2Fqm7IIfKpz0e
|
23
|
-
9KGBFQIDAQABozkwNzAJBgNVHRMEAjAAMB0GA1UdDgQWBBSO48JZEE9yvI13QfH2
|
24
|
-
UVEWt45QaTALBgNVHQ8EBAMCBLAwDQYJKoZIhvcNAQEFBQADggEBABTq7sClnZ83
|
25
|
-
ZeGgOUKMYq7/I5gGgZHyjIcuceMuVlhVWcjrxC1Fn7eqCZupAfveoxiNrWROmZ3C
|
26
|
-
26+nSlwMVQub9ruoGwejS1PSEBrtR56sZ78WNwUMogjzPUzDDgHZgDMneKLytSco
|
27
|
-
ustJSPP8wjxoV+59JuIFY8oqFy3B0o9b7WU59RNwqdauaWye1JEWr5c18dM8VJKC
|
28
|
-
9gNNNiwrh1Q5Q3HwjjeNlUjGZmQcgceG4Xdoox89/HNm5by83mHknD++tqwa2n8F
|
29
|
-
/Nnaz9wOXu6/VjBcnvFOGY8f32hVq619QiJVpV9zRgYa5M05mWRmwHByrb4yK0Ab
|
30
|
-
3GpyuMMNBMk=
|
31
|
-
-----END CERTIFICATE-----
|
32
|
-
date: 2013-03-05 00:00:00.000000000 Z
|
11
|
+
- gem-public_cert.pem
|
12
|
+
date: 2014-02-19 00:00:00.000000000 Z
|
33
13
|
dependencies:
|
34
14
|
- !ruby/object:Gem::Dependency
|
35
15
|
name: excon
|
36
16
|
requirement: !ruby/object:Gem::Requirement
|
37
17
|
requirements:
|
38
|
-
- -
|
18
|
+
- - ">="
|
39
19
|
- !ruby/object:Gem::Version
|
40
20
|
version: '0'
|
41
21
|
type: :runtime
|
42
22
|
prerelease: false
|
43
23
|
version_requirements: !ruby/object:Gem::Requirement
|
44
24
|
requirements:
|
45
|
-
- -
|
25
|
+
- - ">="
|
46
26
|
- !ruby/object:Gem::Version
|
47
27
|
version: '0'
|
48
28
|
- !ruby/object:Gem::Dependency
|
49
29
|
name: thor
|
50
30
|
requirement: !ruby/object:Gem::Requirement
|
51
31
|
requirements:
|
52
|
-
- -
|
32
|
+
- - ">="
|
53
33
|
- !ruby/object:Gem::Version
|
54
34
|
version: '0.17'
|
55
35
|
type: :runtime
|
56
36
|
prerelease: false
|
57
37
|
version_requirements: !ruby/object:Gem::Requirement
|
58
38
|
requirements:
|
59
|
-
- -
|
39
|
+
- - ">="
|
60
40
|
- !ruby/object:Gem::Version
|
61
41
|
version: '0.17'
|
62
42
|
- !ruby/object:Gem::Dependency
|
63
43
|
name: ruby-progressbar
|
64
44
|
requirement: !ruby/object:Gem::Requirement
|
65
45
|
requirements:
|
66
|
-
- -
|
46
|
+
- - ">="
|
67
47
|
- !ruby/object:Gem::Version
|
68
48
|
version: '0'
|
69
49
|
type: :runtime
|
70
50
|
prerelease: false
|
71
51
|
version_requirements: !ruby/object:Gem::Requirement
|
72
52
|
requirements:
|
73
|
-
- -
|
53
|
+
- - ">="
|
74
54
|
- !ruby/object:Gem::Version
|
75
55
|
version: '0'
|
76
56
|
- !ruby/object:Gem::Dependency
|
77
57
|
name: multi_json
|
78
58
|
requirement: !ruby/object:Gem::Requirement
|
79
59
|
requirements:
|
80
|
-
- -
|
60
|
+
- - ">="
|
81
61
|
- !ruby/object:Gem::Version
|
82
62
|
version: '0'
|
83
63
|
type: :runtime
|
84
64
|
prerelease: false
|
85
65
|
version_requirements: !ruby/object:Gem::Requirement
|
86
66
|
requirements:
|
87
|
-
- -
|
67
|
+
- - ">="
|
88
68
|
- !ruby/object:Gem::Version
|
89
69
|
version: '0'
|
90
70
|
- !ruby/object:Gem::Dependency
|
91
71
|
name: mime-types
|
92
72
|
requirement: !ruby/object:Gem::Requirement
|
93
73
|
requirements:
|
94
|
-
- -
|
74
|
+
- - ">="
|
95
75
|
- !ruby/object:Gem::Version
|
96
76
|
version: '0'
|
97
77
|
type: :runtime
|
98
78
|
prerelease: false
|
99
79
|
version_requirements: !ruby/object:Gem::Requirement
|
100
80
|
requirements:
|
101
|
-
- -
|
81
|
+
- - ">="
|
102
82
|
- !ruby/object:Gem::Version
|
103
83
|
version: '0'
|
104
84
|
- !ruby/object:Gem::Dependency
|
105
85
|
name: yajl-ruby
|
106
86
|
requirement: !ruby/object:Gem::Requirement
|
107
87
|
requirements:
|
108
|
-
- -
|
88
|
+
- - ">="
|
109
89
|
- !ruby/object:Gem::Version
|
110
90
|
version: '0'
|
111
91
|
type: :runtime
|
112
92
|
prerelease: false
|
113
93
|
version_requirements: !ruby/object:Gem::Requirement
|
114
94
|
requirements:
|
115
|
-
- -
|
95
|
+
- - ">="
|
116
96
|
- !ruby/object:Gem::Version
|
117
97
|
version: '0'
|
118
98
|
- !ruby/object:Gem::Dependency
|
119
99
|
name: formatador
|
120
100
|
requirement: !ruby/object:Gem::Requirement
|
121
101
|
requirements:
|
122
|
-
- -
|
102
|
+
- - ">="
|
123
103
|
- !ruby/object:Gem::Version
|
124
104
|
version: '0'
|
125
105
|
type: :runtime
|
126
106
|
prerelease: false
|
127
107
|
version_requirements: !ruby/object:Gem::Requirement
|
128
108
|
requirements:
|
129
|
-
- -
|
109
|
+
- - ">="
|
130
110
|
- !ruby/object:Gem::Version
|
131
111
|
version: '0'
|
132
112
|
- !ruby/object:Gem::Dependency
|
133
113
|
name: shexy
|
134
114
|
requirement: !ruby/object:Gem::Requirement
|
135
115
|
requirements:
|
136
|
-
- -
|
116
|
+
- - ">="
|
137
117
|
- !ruby/object:Gem::Version
|
138
118
|
version: '0'
|
139
119
|
type: :runtime
|
140
120
|
prerelease: false
|
141
121
|
version_requirements: !ruby/object:Gem::Requirement
|
142
122
|
requirements:
|
143
|
-
- -
|
123
|
+
- - ">="
|
144
124
|
- !ruby/object:Gem::Version
|
145
125
|
version: '0'
|
146
126
|
- !ruby/object:Gem::Dependency
|
147
127
|
name: shindo
|
148
128
|
requirement: !ruby/object:Gem::Requirement
|
149
129
|
requirements:
|
150
|
-
- -
|
130
|
+
- - ">="
|
151
131
|
- !ruby/object:Gem::Version
|
152
132
|
version: '0'
|
153
133
|
type: :development
|
154
134
|
prerelease: false
|
155
135
|
version_requirements: !ruby/object:Gem::Requirement
|
156
136
|
requirements:
|
157
|
-
- -
|
137
|
+
- - ">="
|
158
138
|
- !ruby/object:Gem::Version
|
159
139
|
version: '0'
|
160
140
|
description: OpenStack Swift CLI with encryption support
|
@@ -165,9 +145,10 @@ executables:
|
|
165
145
|
extensions: []
|
166
146
|
extra_rdoc_files: []
|
167
147
|
files:
|
168
|
-
- .gitignore
|
148
|
+
- ".gitignore"
|
169
149
|
- CHANGELOG.md
|
170
150
|
- Gemfile
|
151
|
+
- HACKING.md
|
171
152
|
- LICENSE.txt
|
172
153
|
- README.md
|
173
154
|
- RELEASE.md
|
@@ -179,6 +160,7 @@ files:
|
|
179
160
|
- lib/cifrado.rb
|
180
161
|
- lib/cifrado/cli.rb
|
181
162
|
- lib/cifrado/cli/cinema.rb
|
163
|
+
- lib/cifrado/cli/configs.rb
|
182
164
|
- lib/cifrado/cli/delete.rb
|
183
165
|
- lib/cifrado/cli/download.rb
|
184
166
|
- lib/cifrado/cli/jukebox.rb
|
@@ -540,19 +522,18 @@ require_paths:
|
|
540
522
|
- lib
|
541
523
|
required_ruby_version: !ruby/object:Gem::Requirement
|
542
524
|
requirements:
|
543
|
-
- -
|
525
|
+
- - ">="
|
544
526
|
- !ruby/object:Gem::Version
|
545
527
|
version: '0'
|
546
528
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
547
529
|
requirements:
|
548
|
-
- -
|
530
|
+
- - ">="
|
549
531
|
- !ruby/object:Gem::Version
|
550
532
|
version: '0'
|
551
533
|
requirements: []
|
552
534
|
rubyforge_project:
|
553
|
-
rubygems_version: 2.
|
535
|
+
rubygems_version: 2.2.0
|
554
536
|
signing_key:
|
555
537
|
specification_version: 4
|
556
538
|
summary: OpenStack Swift CLI with encryption support
|
557
539
|
test_files: []
|
558
|
-
has_rdoc:
|
checksums.yaml.gz.sig
DELETED
data.tar.gz.sig
DELETED
Binary file
|
metadata.gz.sig
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
����,N���G�UU2�|�N�m}��&67k�"��P.���(�p���B�4i�&���)�Hq�.l����)a��^.jUv�e�;��nJ+N���=�ARnnF���`$���.:�8�2)y����{�o��)��d�U�C�fQ4�� ��G+>�ӿZrw�c&U��? �GQ��3])�tf��o_��z�5��Z�"'֭A��jM�茔)|=�'�;���U
|