owlet 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -2,3 +2,5 @@ source "http://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in owlet.gemspec
4
4
  gemspec
5
+
6
+ gem 'jruby-openssl', :platform => :jruby
@@ -3,11 +3,25 @@ require 'owlet'
3
3
 
4
4
  module Owlet
5
5
  class CLI < Thor
6
+ def self.key_opts
7
+ begin
8
+ require 'openssl'
9
+ if OpenSSL.const_defined?(:PKCS12)
10
+ method_option :key, :required => true, :description => "Private and public key to be used for signing. Must be in PKCS12 format."
11
+ else
12
+ method_option :public, :required => true, :description => "Public key to be used for signing. Must be in PEM format."
13
+ method_option :private, :required => true, :description => "Private key to be used for signing. Must be in PEM format."
14
+ end
15
+ rescue
16
+ raise "OpenSSL support is required."
17
+ end
18
+ end
19
+
6
20
  # Signing operations
7
21
  desc "sign PACKAGE", "Signs Owlet package with supplied key."
8
- method_option :key, :required => true, :description => "Private and public key to be used for signing. Must be in PKCS12 format."
22
+ key_opts
9
23
  def sign(package)
10
- Owlet::Signer.sign_package(package, options[:key])
24
+ Owlet::Signer.sign_package(package, options)
11
25
  end
12
26
 
13
27
  desc "verify PACKAGE", "Verifies Alula extension or theme"
@@ -33,10 +33,15 @@ module Owlet
33
33
 
34
34
  # Signs given package with PKCS12 file
35
35
  # p12 is either OpenSSL::PKCS!@ or file
36
- def self.sign_package(package, p12)
36
+ def self.sign_package(package, options)
37
37
  # Get private key
38
- unless p12.kind_of? OpenSSL::PKCS12
39
- p12 = OpenSSL::PKCS12.new(File.read(p12))
38
+ if options['key']
39
+ p12 = OpenSSL::PKCS12.new(File.read(options['key']))
40
+ public_key = p12.certificate
41
+ private_key = p12.key
42
+ else
43
+ private_key = OpenSSL::PKey::RSA.new(File.read(options['private']))
44
+ public_key = OpenSSL::X509::Certificate.new(File.read(options['public']))
40
45
  end
41
46
 
42
47
  raise "Cannot find package #{package}" unless File.exists?(package)
@@ -56,10 +61,10 @@ module Owlet
56
61
  next if data.nil?
57
62
 
58
63
  sig_data[:signatures][entry.name] ||= []
59
- sig_data[:signatures][entry.name].push sign(data, p12.key)
64
+ sig_data[:signatures][entry.name].push sign(data, private_key)
60
65
  end
61
66
 
62
- sig_data[:certificates].push p12.certificate.to_pem
67
+ sig_data[:certificates].push public_key.to_pem
63
68
 
64
69
  zip.get_output_stream("_Signature") do |io|
65
70
  io.puts sig_data.to_yaml
@@ -1,3 +1,3 @@
1
1
  module Owlet
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -0,0 +1,15 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIICXgIBAAKBgQDaXLGPuAHtHJ/6nkA3iBjCpwT8/9vZehUFEdcKoGKTPjheEiYk
3
+ LPWdyYk7+q6FRgHqx767ttQGm+MOE5Xblco7Ki5wkoJZBt8Pw7MbfTbJwnRTUfiC
4
+ rkuvdNbcGAfRzhFPyDju5xZVspJWzzh8guWTCqfKU1YY0iCvX72ipWxIhQIDAQAB
5
+ AoGANAOefCiNtOh7pxwpGdE+bKeSRZ3AxcYR2bpNKgfYU1Cf5rCWC0n2W9aU7Qei
6
+ qLZrYHyiD17WlJhvdnvt13ePyyU+JKyATypHCHTpSD+BMm1GnDi9+ANpGkAvuo4T
7
+ Lz+rYdvXq+JACuhns0/eLPfX0z1MF38h8tPY4wOegK8zDMUCQQD7rkJWCvqrDb2F
8
+ yb1mjWJys2OzCD1lPtc8dErpVlxSfx7d2NQRAWM4wjmnd6dX0k7/s98ZIVbgjoor
9
+ 7YQV09j7AkEA3hwNMttfkALugYLjtWTPF1M8rCtPWRHeQA9ZFe95NSUMkoTXpu/R
10
+ ZG97JK2/Tvmy6Y9EXfKr6Dpyh8QLgrGsfwJBAPTLibom86lss+ptTstwuVDXKyH3
11
+ 4b+YX8FtW2+ZkDKtclhVje78aoXKZEl/GEVTSYNscJMA2n+QJNSVMOQKKgECQQDO
12
+ CQONW8aoFrAc38hPqnYY0xQDOiHfJB4hGpuvJ3gufnHNMQHDT8/T9T4sZiiDIEqB
13
+ Mm9fHw+s2xsHKirrT9oNAkEAyQCduSrRAaotXgzE0N+MXHw5AIzhw+lwXLf8sAko
14
+ MwI2ttVYmLChu5YqcLWO/FjF+qR00jQTKOQiMcWsaAKT1A==
15
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,17 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIICnTCCAYWgAwIBAgIBRDANBgkqhkiG9w0BAQUFADAvMRUwEwYDVQQKDAxPd2wg
3
+ Rm9yZXN0cnkxFjAUBgNVBAMMDVRFU1QgQWx1bGEgQ0EwHhcNMTEwNzA5MTE0ODIz
4
+ WhcNMTYwNzA3MTE0ODIzWjAxMRUwEwYDVQQKDAxPd2wgRm9yZXN0cnkxGDAWBgNV
5
+ BAMMD0FsdWxhIEV4dGVuc2lvbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
6
+ 2lyxj7gB7Ryf+p5AN4gYwqcE/P/b2XoVBRHXCqBikz44XhImJCz1ncmJO/quhUYB
7
+ 6se+u7bUBpvjDhOV25XKOyoucJKCWQbfD8OzG302ycJ0U1H4gq5Lr3TW3BgH0c4R
8
+ T8g47ucWVbKSVs84fILlkwqnylNWGNIgr1+9oqVsSIUCAwEAAaNGMEQwHQYDVR0O
9
+ BBYEFC73udFlbFTvb3f8/sbTkWjdLz8XMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUE
10
+ DDAKBggrBgEFBQcDAzANBgkqhkiG9w0BAQUFAAOCAQEAZLFuAyqYq4Qav5Ffdmfr
11
+ znhQsnj+9sQIJPul4+8jPuwEWgwuib+Il6nowlPWt7Mdb7NQ+yiqkFVhbe2hGLUE
12
+ UCHh/IwXhqnyDH8ixm66mjIHvMDFAc/234PKTA3v5mkOjW6nWuc2L6UvSR+zzfHB
13
+ i0tSfUyIDyZ82NlU1wkGE0b+kcnENNpnGZvhUwl4cQATNQU5IH1llG0lQQZiMPuw
14
+ 3vD59S01oL/d/okJ/uwi0tk0+JY1XBM/es2bwxbXqmxRK1nhW+jY7hrpH/EkYrsG
15
+ dBbpw009Tchf3wKJqeY01DR1Zos7NoX48M009FX02+xPsf8+xWrGhBQvETwk/Qw1
16
+ 2A==
17
+ -----END CERTIFICATE-----
@@ -0,0 +1,15 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIICXAIBAAKBgQDV8ey1Yicv+jUaywf073eemL6r+IQiw3riD0FLWL+fJTZ1y0BI
3
+ GtymJime1iNXMFEB+6ptEuL8gBvVI9AE6OSJ4cIczepGgnKu5Y04M4jHbddk0+j4
4
+ 3yaDx4OQmdgrzn6D8CeCmnKfsRAcI/l8jRi+rQ/Jckn7INE1pWbHNrbhaQIDAQAB
5
+ AoGAGceaB005fZ1/sqfOYKROXKz5JM3AVlQJxZ2i94pNJMceJdmE+GtMNTUaBMq2
6
+ 3XWz/TIvGg+RjG1/bRJwqXbKut4w8KD5TwX+gTndq1Qcw6CDLFFpIJMCagd6o1HK
7
+ YKHzjyxRAO7X5NTZYpv6WwGoMCN3T7RIeYqO94KHclK3t6UCQQDup/JXd2Rg6NSm
8
+ S+xYdHvo3GZlJDTOa2Vk2F2I37LcOeGN/R7xebfKgch8ZLPw/qV1vl0QPSb8gt4s
9
+ HJ1lANIjAkEA5X4+f9oRYr7AI5s/i1RcNJeCrTjzQrgJrJdVi2NvocUAyXENFAUj
10
+ Q+DpUFjgd/NE5LyGXMruCs87H/szDYUZAwJAWm43DN+HoJT45t6D+uyAezbwccir
11
+ XcAiFnlJz/B7tKkWB5hvHi7x7oEI9+GssVe8WIY+e0XAvRPVnb9mAHy0IwJAH/lt
12
+ 5cxRPcvL42oe+V+glSdC6rWTlwkjN+vB3HDXPde/21En/FEW778nYq1vYOcBA0mN
13
+ AuK3NcRXvYX3P/v6VwJBAOUM5TEPMC5MAWUCsz/CsLKO+rcEjxCbUCXIrTWDYO+S
14
+ bOvELb2y8sF8dqSa1WrZ3kx5Bvz1veDgZHdtxOqriOM=
15
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,17 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIICpTCCAY2gAwIBAgIBRjANBgkqhkiG9w0BAQUFADAvMRUwEwYDVQQKDAxPd2wg
3
+ Rm9yZXN0cnkxFjAUBgNVBAMMDVRFU1QgQWx1bGEgQ0EwHhcNMTEwNzA5MTkwOTU4
4
+ WhcNMTYwNzA3MTkwOTU4WjA5MRUwEwYDVQQKDAxPd2wgRm9yZXN0cnkxIDAeBgNV
5
+ BAMMF0FsdWxhIFBsZWNvIC0gRXh0ZW5zaW9uMIGfMA0GCSqGSIb3DQEBAQUAA4GN
6
+ ADCBiQKBgQDV8ey1Yicv+jUaywf073eemL6r+IQiw3riD0FLWL+fJTZ1y0BIGtym
7
+ Jime1iNXMFEB+6ptEuL8gBvVI9AE6OSJ4cIczepGgnKu5Y04M4jHbddk0+j43yaD
8
+ x4OQmdgrzn6D8CeCmnKfsRAcI/l8jRi+rQ/Jckn7INE1pWbHNrbhaQIDAQABo0Yw
9
+ RDAdBgNVHQ4EFgQUGgjDyyBvObP5ahBwsN6iBi/Q4qswDgYDVR0PAQH/BAQDAgeA
10
+ MBMGA1UdJQQMMAoGCCsGAQUFBwMDMA0GCSqGSIb3DQEBBQUAA4IBAQDIinTx9Ljp
11
+ Ls0Og5sseV2v3dcFvOtjhg4lirM9HpkuXlKYi3U8HSCzp58cFhc9V8Fs66YD6Vvw
12
+ WJihowiVpOg3MzXLdkDYfwI3MfdCdr17QSniwHlQwleOK4YH+D/qvmy45xOM4gbx
13
+ E2Q3QN8/ksrGJEyOZMHRrgwLR+GFwk1tDy3zbSbprBrP0DI/pCM24IIcfvnjNxLc
14
+ 6vtPMUASNaM8UHJRthqRSSBjqUL694Y3ZQZTazi+KpKEaSPj6pEJAxqvSbN7byO+
15
+ 9lMXsaNr+SEqV3Z9FZSUtBbYoYfgrZdwe+z3XwMJywZATnveZw4ECOS72TDy+vn5
16
+ PpFQjCS+8I4w
17
+ -----END CERTIFICATE-----
@@ -4,14 +4,16 @@ describe Owlet::Signer do
4
4
  let(:fixture_path) { fixture_path = File.expand_path(File.join(File.dirname(__FILE__), "..", "fixtures")) }
5
5
 
6
6
  context "Helper Methods" do
7
- let(:first_p12) { OpenSSL::PKCS12.new(File.read(File.join(fixture_path, "first.p12"))) }
8
- let(:pleco_p12) { OpenSSL::PKCS12.new(File.read(File.join(fixture_path, "pleco.p12"))) }
7
+ let(:first_key) { OpenSSL::PKey::RSA.new(File.read(File.join(fixture_path, "first.key"))) }
8
+ let(:pleco_key) { OpenSSL::PKey::RSA.new(File.read(File.join(fixture_path, "pleco.key"))) }
9
+ let(:first_cert) { OpenSSL::X509::Certificate.new(File.read(File.join(fixture_path, "first.pub"))) }
10
+ let(:pleco_cert) { OpenSSL::X509::Certificate.new(File.read(File.join(fixture_path, "pleco.pub"))) }
9
11
  let(:first_signature) { "lu2zFctrv7ssmcudjTVNoj9xS47GpMsYBxF8tQVhXnpOBXIM/7TuY+ZpHkxUqzgWssJdrUqLpC6t9OoUyLbUOU2HI4aNdmwOHv3XmpuIazmELEz/aCbwuCnwIAw6YtQiF14GQhUqR2A/6LE9ZB3+bKBDuxSMRY9WbRHELjoeXyg=" }
10
12
 
11
13
  it "should sign data" do
12
14
  # Load private key
13
15
  data = "aaaa/bbbb/cccc"
14
- signature = Owlet::Signer.sign(data, first_p12.key)
16
+ signature = Owlet::Signer.sign(data, first_key)
15
17
 
16
18
  signature.should == first_signature
17
19
  end
@@ -19,73 +21,133 @@ describe Owlet::Signer do
19
21
  it "should verify data" do
20
22
  data = "aaaa/bbbb/cccc"
21
23
 
22
- Owlet::Signer.verify(data, first_signature, first_p12.certificate.public_key).should be_true
24
+ Owlet::Signer.verify(data, first_signature, first_cert.public_key).should be_true
23
25
  end
24
26
 
25
27
  it "should not verify invalid data" do
26
28
  data = "aaaa/bbbb/cccc/dddd"
27
29
 
28
- Owlet::Signer.verify(data, first_signature, first_p12.certificate.public_key).should be_false
30
+ Owlet::Signer.verify(data, first_signature, first_cert.public_key).should be_false
29
31
  end
30
32
 
31
33
  it "should not verify with wrong public key" do
32
34
  data = "aaaa/bbbb/cccc"
33
35
 
34
- Owlet::Signer.verify(data, first_signature, pleco_p12.certificate.public_key).should be_false
36
+ Owlet::Signer.verify(data, first_signature, pleco_cert.public_key).should be_false
35
37
  end
36
38
  end
37
39
 
38
40
  context "Package" do
39
- let(:first_p12) { OpenSSL::PKCS12.new(File.read(File.join(fixture_path, "first.p12"))) }
40
- let(:pleco_p12) { OpenSSL::PKCS12.new(File.read(File.join(fixture_path, "pleco.p12"))) }
41
-
42
- before(:each) do
43
- # Create package
44
- File.unlink(File.join(fixture_path, "fixture.alulaextz")) if File.exists?(File.join(fixture_path, "fixture.alulaextz"))
45
- @pkg = Owlet::Package.create(:source => File.join(fixture_path, "fixture.alulaextension"))
46
- end
47
-
48
- it "should have no certificates" do
49
- signatures = Owlet::Signer.list_certificates(@pkg)
50
- signatures.should be_empty
51
- end
52
-
53
- it "should be signed succesfully" do
54
- Owlet::Signer.sign_package(@pkg, first_p12).should be_true
55
- end
41
+ if OpenSSL.const_defined?(:PKCS12)
42
+ context "with PKCS12" do
43
+ let(:first_p12) { File.join(fixture_path, "first.p12") }#OpenSSL::PKCS12.new(File.read(File.join(fixture_path, "first.p12"))) }
44
+ let(:pleco_p12) { File.join(fixture_path, "pleco.p12") }#OpenSSL::PKCS12.new(File.read(File.join(fixture_path, "pleco.p12"))) }
56
45
 
57
- it "should have one certificate" do
58
- Owlet::Signer.sign_package(@pkg, first_p12).should be_true
59
- signatures = Owlet::Signer.list_certificates(@pkg)
60
- signatures[0].should_not be_nil
61
- cert = OpenSSL::X509::Certificate.new(signatures[0])
62
- cert.subject.to_s.should == "/O=Owl Forestry/CN=Alula Extension"
63
- signatures[1].should be_nil
64
- end
65
-
66
- it "should verify signed package" do
67
- Owlet::Signer.sign_package(@pkg, first_p12).should be_true
68
- Owlet::Signer.verify_package(@pkg).should be_true
69
- end
70
-
71
- it "should signed twice" do
72
- Owlet::Signer.sign_package(@pkg, first_p12).should be_true
73
- Owlet::Signer.sign_package(@pkg, pleco_p12).should be_true
74
- signatures = Owlet::Signer.list_certificates(@pkg)
75
- signatures[1].should_not be_nil
76
- cert = OpenSSL::X509::Certificate.new(signatures[1])
77
- cert.subject.to_s.should == "/O=Owl Forestry/CN=Alula Pleco - Extension"
46
+ before(:each) do
47
+ # Create package
48
+ File.unlink(File.join(fixture_path, "fixture.alulaextz")) if File.exists?(File.join(fixture_path, "fixture.alulaextz"))
49
+ @pkg = Owlet::Package.create(:source => File.join(fixture_path, "fixture.alulaextension"))
50
+ end
51
+
52
+ it "should have no certificates" do
53
+ signatures = Owlet::Signer.list_certificates(@pkg)
54
+ signatures.should be_empty
55
+ end
56
+
57
+ it "should be signed succesfully" do
58
+ Owlet::Signer.sign_package(@pkg, 'key' => first_p12).should be_true
59
+ end
60
+
61
+ it "should have one certificate" do
62
+ Owlet::Signer.sign_package(@pkg, 'key' => first_p12).should be_true
63
+ signatures = Owlet::Signer.list_certificates(@pkg)
64
+ signatures[0].should_not be_nil
65
+ cert = OpenSSL::X509::Certificate.new(signatures[0])
66
+ cert.subject.to_s.should == "/O=Owl Forestry/CN=Alula Extension"
67
+ signatures[1].should be_nil
68
+ end
69
+
70
+ it "should verify signed package" do
71
+ Owlet::Signer.sign_package(@pkg, 'key' => first_p12).should be_true
72
+ Owlet::Signer.verify_package(@pkg).should be_true
73
+ end
74
+
75
+ it "should signed twice" do
76
+ Owlet::Signer.sign_package(@pkg, 'key' => first_p12).should be_true
77
+ Owlet::Signer.sign_package(@pkg, 'key' => pleco_p12).should be_true
78
+ signatures = Owlet::Signer.list_certificates(@pkg)
79
+ signatures[1].should_not be_nil
80
+ cert = OpenSSL::X509::Certificate.new(signatures[1])
81
+ cert.subject.to_s.should == "/O=Owl Forestry/CN=Alula Pleco - Extension"
82
+ end
83
+
84
+ it "should fail with modified package" do
85
+ Owlet::Signer.sign_package(@pkg, 'key' => first_p12).should be_true
86
+ Zip::ZipFile.open(@pkg) do |zip|
87
+ zip.get_output_stream("init.rb") do |io|
88
+ io.puts "# Fail this thanks."
89
+ end
90
+ end
91
+
92
+ lambda { Owlet::Signer.verify_package(@pkg)}.should raise_error "Signature for init.rb for certicate /O=Owl Forestry/CN=Alula Extension failed."
93
+ end
94
+ end
78
95
  end
79
-
80
- it "should fail with modified package" do
81
- Owlet::Signer.sign_package(@pkg, first_p12).should be_true
82
- Zip::ZipFile.open(@pkg) do |zip|
83
- zip.get_output_stream("init.rb") do |io|
84
- io.puts "# Fail this thanks."
96
+ context "with public/private keys" do
97
+ let(:first_key) { File.join(fixture_path, "first.key") }
98
+ let(:pleco_key) { File.join(fixture_path, "pleco.key") }
99
+ let(:first_cert) { File.join(fixture_path, "first.pub") }
100
+ let(:pleco_cert) { File.join(fixture_path, "pleco.pub") }
101
+
102
+ before(:each) do
103
+ # Create package
104
+ File.unlink(File.join(fixture_path, "fixture.alulaextz")) if File.exists?(File.join(fixture_path, "fixture.alulaextz"))
105
+ @pkg = Owlet::Package.create(:source => File.join(fixture_path, "fixture.alulaextension"))
106
+ end
107
+
108
+ it "should have no certificates" do
109
+ signatures = Owlet::Signer.list_certificates(@pkg)
110
+ signatures.should be_empty
111
+ end
112
+
113
+ it "should be signed succesfully" do
114
+ Owlet::Signer.sign_package(@pkg, 'private' => first_key, 'public' => first_cert).should be_true
115
+ end
116
+
117
+ it "should have one certificate" do
118
+ Owlet::Signer.sign_package(@pkg, 'private' => first_key, 'public' => first_cert).should be_true
119
+ signatures = Owlet::Signer.list_certificates(@pkg)
120
+ signatures[0].should_not be_nil
121
+ cert = OpenSSL::X509::Certificate.new(signatures[0])
122
+ cert.subject.to_s.should == "/O=Owl Forestry/CN=Alula Extension"
123
+ signatures[1].should be_nil
124
+ end
125
+
126
+ it "should verify signed package" do
127
+ Owlet::Signer.sign_package(@pkg, 'private' => first_key, 'public' => first_cert).should be_true
128
+ Owlet::Signer.verify_package(@pkg).should be_true
129
+ end
130
+
131
+ it "should signed twice" do
132
+ Owlet::Signer.sign_package(@pkg, 'private' => first_key, 'public' => first_cert).should be_true
133
+ Owlet::Signer.sign_package(@pkg, 'private' => pleco_key, 'public' => pleco_cert).should be_true
134
+ signatures = Owlet::Signer.list_certificates(@pkg)
135
+ signatures[1].should_not be_nil
136
+ cert = OpenSSL::X509::Certificate.new(signatures[1])
137
+ cert.subject.to_s.should == "/O=Owl Forestry/CN=Alula Pleco - Extension"
138
+ end
139
+
140
+ it "should fail with modified package" do
141
+ Owlet::Signer.sign_package(@pkg, 'private' => first_key, 'public' => first_cert).should be_true
142
+ Zip::ZipFile.open(@pkg) do |zip|
143
+ zip.get_output_stream("init.rb") do |io|
144
+ io.puts "# Fail this thanks."
145
+ end
85
146
  end
147
+
148
+ lambda { Owlet::Signer.verify_package(@pkg)}.should raise_error "Signature for init.rb for certicate /O=Owl Forestry/CN=Alula Extension failed."
86
149
  end
87
-
88
- lambda { Owlet::Signer.verify_package(@pkg)}.should raise_error "Signature for init.rb for certicate /O=Owl Forestry/CN=Alula Extension failed."
89
150
  end
151
+
90
152
  end
91
153
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: owlet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-08-07 00:00:00.000000000 Z
12
+ date: 2011-08-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
16
- requirement: &70162863022180 !ruby/object:Gem::Requirement
16
+ requirement: &70348029127600 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70162863022180
24
+ version_requirements: *70348029127600
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rubyzip
27
- requirement: &70162863021740 !ruby/object:Gem::Requirement
27
+ requirement: &70348029127120 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70162863021740
35
+ version_requirements: *70348029127120
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70162863021240 !ruby/object:Gem::Requirement
38
+ requirement: &70348029126660 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70162863021240
46
+ version_requirements: *70348029126660
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &70162863020600 !ruby/object:Gem::Requirement
49
+ requirement: &70348029126140 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70162863020600
57
+ version_requirements: *70348029126140
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: guard-rspec
60
- requirement: &70162863019940 !ruby/object:Gem::Requirement
60
+ requirement: &70348029125620 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70162863019940
68
+ version_requirements: *70348029125620
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: ci_reporter
71
- requirement: &70162863019520 !ruby/object:Gem::Requirement
71
+ requirement: &70348029124980 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70162863019520
79
+ version_requirements: *70348029124980
80
80
  description: Use Owlet library to create and alter and gather information about owlets.
81
81
  email:
82
82
  - mikko@mikian.com
@@ -97,12 +97,16 @@ files:
97
97
  - lib/owlet/signer.rb
98
98
  - lib/owlet/version.rb
99
99
  - owlet.gemspec
100
+ - spec/fixtures/first.key
100
101
  - spec/fixtures/first.p12
102
+ - spec/fixtures/first.pub
101
103
  - spec/fixtures/fixture.alulaextension/init.rb
102
104
  - spec/fixtures/fixture.alulatheme/init.rb
103
105
  - spec/fixtures/fixture.alulatheme/javascripts/application.js.coffeescript
104
106
  - spec/fixtures/fixture.alulatheme/stylesheets/application.css.scss
107
+ - spec/fixtures/pleco.key
105
108
  - spec/fixtures/pleco.p12
109
+ - spec/fixtures/pleco.pub
106
110
  - spec/owlet/cli_spec.rb
107
111
  - spec/owlet/package_spec.rb
108
112
  - spec/owlet/signer_spec.rb
@@ -133,12 +137,16 @@ specification_version: 3
133
137
  summary: Owlet is a packaging system for distributing extensions and themes for Alula
134
138
  Engine
135
139
  test_files:
140
+ - spec/fixtures/first.key
136
141
  - spec/fixtures/first.p12
142
+ - spec/fixtures/first.pub
137
143
  - spec/fixtures/fixture.alulaextension/init.rb
138
144
  - spec/fixtures/fixture.alulatheme/init.rb
139
145
  - spec/fixtures/fixture.alulatheme/javascripts/application.js.coffeescript
140
146
  - spec/fixtures/fixture.alulatheme/stylesheets/application.css.scss
147
+ - spec/fixtures/pleco.key
141
148
  - spec/fixtures/pleco.p12
149
+ - spec/fixtures/pleco.pub
142
150
  - spec/owlet/cli_spec.rb
143
151
  - spec/owlet/package_spec.rb
144
152
  - spec/owlet/signer_spec.rb