zencoder 2.4.6 → 2.5.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA512:
3
- metadata.gz: 351db11c5675afec136ffa1d94c2308524ec6d7dc20a86f1b2088358e10a92deec43c6ab73dd32668c1daed8d11c11af0bb9d01b3d2a2f4ed6e6033567956d01
4
- data.tar.gz: c28f30c1f61425413c2d33eefccfe381a89115d738b7a305803de888d70b1e42b22810ffbec11b5644eb7dad65758e7bff773fe8e28ed2144938ef4bb3c9b8f4
3
+ data.tar.gz: a294f0ff19c60db70d7599036852febc63e759dca261879450455b68b56f287ebf6715ce15c86e8549a8f1c73463208a9d21bb5f0f7107c0d90e17b1dbc97f73
4
+ metadata.gz: 726e657308c6ea25c41e3869082f50cea083c88afe47c6bfad51bea9a129f12b568f8a2a9ed1984513c41865368e30d9c06896a5c620d41b8fb081745345645e
5
5
  SHA1:
6
- metadata.gz: e5e76dc624b510ba4706620ed60ff6d3bdaf0a3a
7
- data.tar.gz: 56394b5afa435c82578feb96a39de68aef7dc1bf
6
+ data.tar.gz: 3dbdc5a1e0fa815d5459bf1c6b7a1a505cf4d9d6
7
+ metadata.gz: 43159bc2341a7f9c16df6d30d2a2fc3b85c1925a
@@ -15,6 +15,12 @@ Tested on the following versions of Ruby:
15
15
  * Rubinius 2.0.0dev
16
16
  * jRuby 1.6.5
17
17
 
18
+ ## 2.5 WARNING!!!
19
+
20
+ Version 2.5 brings a single, significant change to the gem which you should be aware of:
21
+
22
+ * __The Zencoder SSL CA chain is no longer bundled.__ Our cert is expiring and the necessary file may change in the future. You can now specify the CA file or CA path along with the request.
23
+
18
24
  ## v2.4 WARNING!!!
19
25
 
20
26
  Version 2.4 brings some significant changes to the gem, ones which you should be aware of:
@@ -335,7 +341,25 @@ Zencoder::Job.create({:input => 's3://bucket/key.mp4'}, {:timeout => 1000})
335
341
 
336
342
  ### SSL Verification
337
343
 
338
- We will use our bundled SSL CA chain for SSL peer verification which should almost always work without a hitch. However, if you'd like to skip SSL verification you can pass an option in the secondary options hash.
344
+ SSL verification using the default Net::HTTP backend requires that your ruby be appropriately configured with up to date path to a cert bundle on your system or by specifying the a CA file or CA path when sending requests.
345
+
346
+ ```ruby
347
+ Zencoder::Job.create({:input => 's3://bucket/key.mp4'}, {:ca_path => "/path/to/certs/"})
348
+ # or
349
+ Zencoder::Job.create({:input => 's3://bucket/key.mp4'}, {:ca_file => "/path/to/certs/zen.crt"})
350
+ ```
351
+
352
+ Alternatively you can add it to the default options.
353
+
354
+ ```ruby
355
+ Zencoder::HTTP.default_options.merge!(:ca_path => "/path/to/certs/")
356
+ # or
357
+ Zencoder::HTTP.default_options.merge!(:ca_file => "/path/to/certs/zen.crt")
358
+ ```
359
+
360
+ You can get a CA bundle from [the curl website](http://curl.haxx.se/docs/caextract.html), but it is recommended that you use your system's package manager to install these certs and keep them up to date.
361
+
362
+ However, if you'd like to skip SSL verification you can pass an option in the secondary options hash.
339
363
 
340
364
  **NOTE: WE HIGHLY DISCOURAGE THIS! THIS WILL LEAVE YOU VULNERABLE TO MAN-IN-THE-MIDDLE ATTACKS!**
341
365
 
@@ -1,8 +1,6 @@
1
1
  module Zencoder
2
2
  class HTTP
3
3
 
4
- CA_CHAIN_PATH = File.expand_path(File.join(File.dirname(__FILE__), "http", "resources", "zencoder_ca_chain.crt"))
5
-
6
4
  include Zencoder::Serializer
7
5
 
8
6
  attr_accessor :url, :options, :method
@@ -2,7 +2,7 @@ module Zencoder
2
2
  class HTTP
3
3
  class NetHTTP
4
4
 
5
- attr_accessor :method, :url, :uri, :body, :params, :headers, :timeout, :skip_ssl_verify, :options
5
+ attr_accessor :method, :url, :uri, :body, :params, :headers, :timeout, :skip_ssl_verify, :options, :ca_file, :ca_path
6
6
 
7
7
  def initialize(method, url, options)
8
8
  @method = method
@@ -13,6 +13,8 @@ module Zencoder
13
13
  @headers = @options.delete(:headers)
14
14
  @timeout = @options.delete(:timeout)
15
15
  @skip_ssl_verify = @options.delete(:skip_ssl_verify)
16
+ @ca_file = @options.delete(:ca_file)
17
+ @ca_path = @options.delete(:ca_path)
16
18
  end
17
19
 
18
20
  def self.post(url, options={})
@@ -59,10 +61,11 @@ module Zencoder
59
61
  if skip_ssl_verify
60
62
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
61
63
  else
62
- http.ca_file = Zencoder::HTTP::CA_CHAIN_PATH
63
64
  http.verify_mode = OpenSSL::SSL::VERIFY_PEER
64
- http.verify_depth = 5
65
65
  end
66
+
67
+ http.ca_file = ca_file if ca_file
68
+ http.ca_path = ca_path if ca_path
66
69
  end
67
70
 
68
71
  http
@@ -24,6 +24,14 @@ module Zencoder
24
24
  options[:disable_ssl_peer_verification] = true
25
25
  end
26
26
 
27
+ if ca_file = options.delete(:ca_file)
28
+ options[:sslcert] = ca_file
29
+ end
30
+
31
+ if ca_path = options.delete(:ca_path)
32
+ options[:capath] = ca_path
33
+ end
34
+
27
35
  ::Typhoeus::Request.send(method, url, options)
28
36
  end
29
37
 
@@ -1,3 +1,3 @@
1
1
  module Zencoder
2
- GEM_VERSION = '2.4.6'
2
+ GEM_VERSION = '2.5.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zencoder
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.6
4
+ version: 2.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Sutton
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2014-04-02 00:00:00 Z
13
+ date: 2014-07-23 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: multi_json
@@ -59,7 +59,6 @@ files:
59
59
  - lib/zencoder/account.rb
60
60
  - lib/zencoder/errors.rb
61
61
  - lib/zencoder/http/net_http.rb
62
- - lib/zencoder/http/resources/zencoder_ca_chain.crt
63
62
  - lib/zencoder/http/typhoeus.rb
64
63
  - lib/zencoder/http.rb
65
64
  - lib/zencoder/input.rb
@@ -1,62 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkEx
3
- FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
4
- VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
5
- biBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFByZW1pdW0gU2Vy
6
- dmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZlckB0aGF3dGUuY29t
7
- MB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYTAlpB
8
- MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsG
9
- A1UEChMUVGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRp
10
- b24gU2VydmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNl
11
- cnZlciBDQTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNv
12
- bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkE
13
- VdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQ
14
- ug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMR
15
- uHM/qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
16
- 9w0BAQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI
17
- hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JM
18
- pAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcUQg==
19
- -----END CERTIFICATE-----
20
- -----BEGIN CERTIFICATE-----
21
- MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC
22
- VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u
23
- ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc
24
- KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u
25
- ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05OTA1
26
- MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIGA1UE
27
- ChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5j
28
- b3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
29
- bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUg
30
- U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUA
31
- A4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/
32
- I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3
33
- wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OC
34
- AdcwggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHb
35
- oIHYpIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5
36
- BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1p
37
- dHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVk
38
- MTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp
39
- b24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
40
- dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0
41
- MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8Bdi
42
- E1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAa
43
- MAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI
44
- hvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN
45
- 95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd
46
- 2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
47
- -----END CERTIFICATE-----
48
- -----BEGIN CERTIFICATE-----
49
- MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYD
50
- VQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNv
51
- bHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJv
52
- b3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEzMjM1OTAwWjB1MQswCQYDVQQGEwJV
53
- UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU
54
- cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds
55
- b2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrH
56
- iM3dFw4usJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTS
57
- r41tiGeA5u2ylc9yMcqlHHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X4
58
- 04Wqk2kmhXBIgD8SFcd5tB8FLztimQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAG3r
59
- GwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMWM4ETCJ57NE7fQMh017l9
60
- 3PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OFNMQkpw0P
61
- lZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/
62
- -----END CERTIFICATE-----