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