Version Description
Download this release
Release Info
Developer | razorpay |
Plugin | Razorpay for WooCommerce |
Version | 1.3.0 |
Comparing to | |
See all releases |
Code changes from version 1.2.4 to 1.3.0
- .editorconfig +13 -0
- images/logo.png +0 -0
- razorpay-payments.php +280 -145
- razorpay-sdk/Razorpay.php +42 -0
- razorpay-sdk/libs/Requests-1.6.1/LICENSE +49 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests.php +863 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Auth.php +33 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Auth/Basic.php +88 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Cookie.php +171 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Cookie/Jar.php +146 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception.php +62 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP.php +67 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/400.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/401.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/402.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/403.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/404.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/405.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/406.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/407.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/408.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/409.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/410.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/411.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/412.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/413.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/414.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/415.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/416.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/417.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/418.php +29 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/428.php +29 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/429.php +29 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/431.php +29 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/500.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/501.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/502.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/503.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/504.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/505.php +27 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/511.php +29 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/Unknown.php +44 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Hooker.php +33 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Hooks.php +61 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/IDNAEncoder.php +390 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/IPv6.php +221 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/IRI.php +1220 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Proxy.php +35 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Proxy/HTTP.php +150 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Response.php +95 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Response/Headers.php +95 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/SSL.php +151 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Session.php +253 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Transport.php +41 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Transport/cURL.php +351 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Transport/cacert.pem +3554 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Transport/fsockopen.php +394 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Utility/CaseInsensitiveDictionary.php +91 -0
- razorpay-sdk/libs/Requests-1.6.1/library/Requests/Utility/FilteredIterator.php +38 -0
- razorpay-sdk/src/Api.php +49 -0
- razorpay-sdk/src/ArrayableInterface.php +13 -0
- razorpay-sdk/src/Collection.php +20 -0
- razorpay-sdk/src/Customer.php +35 -0
- razorpay-sdk/src/Entity.php +192 -0
- razorpay-sdk/src/Errors/BadRequestError.php +20 -0
- razorpay-sdk/src/Errors/Error.php +24 -0
- razorpay-sdk/src/Errors/ErrorCode.php +15 -0
- razorpay-sdk/src/Errors/GatewayError.php +7 -0
- razorpay-sdk/src/Errors/ServerError.php +7 -0
- razorpay-sdk/src/Order.php +32 -0
- razorpay-sdk/src/Payment.php +48 -0
- razorpay-sdk/src/Refund.php +23 -0
- razorpay-sdk/src/Request.php +150 -0
- razorpay-sdk/src/Resource.php +57 -0
- razorpay-sdk/src/Token.php +30 -0
- readme.txt +22 -6
.editorconfig
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
; This file is for unifying the coding style for different editors and IDEs.
|
2 |
+
; More information at http://EditorConfig.org
|
3 |
+
|
4 |
+
root = true
|
5 |
+
; Use 2 spaces for indentation in all files
|
6 |
+
|
7 |
+
[*.php]
|
8 |
+
end_of_line = lf
|
9 |
+
charset = utf-8
|
10 |
+
trim_trailing_whitespace = true
|
11 |
+
indent_style = space
|
12 |
+
indent_size = 4
|
13 |
+
insert_final_newline = true
|
images/logo.png
ADDED
Binary file
|
razorpay-payments.php
CHANGED
@@ -3,31 +3,41 @@
|
|
3 |
Plugin Name: WooCommerce Razorpay Payments
|
4 |
Plugin URI: https://razorpay.com
|
5 |
Description: Razorpay Payment Gateway Integration for WooCommerce
|
6 |
-
Version: 1.
|
7 |
Author: Razorpay
|
8 |
Author URI: https://razorpay.com
|
9 |
*/
|
10 |
|
|
|
|
|
|
|
|
|
11 |
add_action('plugins_loaded', 'woocommerce_razorpay_init', 0);
|
12 |
|
13 |
-
function woocommerce_razorpay_init()
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
$this->id = 'razorpay';
|
19 |
$this->method_title = 'Razorpay';
|
20 |
-
$this->icon = plugins_url('images/logo.
|
21 |
$this->has_fields = false;
|
22 |
-
|
23 |
$this->init_form_fields();
|
24 |
$this->init_settings();
|
25 |
-
|
26 |
$this->title = $this->settings['title'];
|
27 |
$this->description = $this->settings['description'];
|
28 |
$this->key_id = $this->settings['key_id'];
|
29 |
$this->key_secret = $this->settings['key_secret'];
|
30 |
-
$this->
|
31 |
|
32 |
$this->msg['message'] = "";
|
33 |
$this->msg['class'] = "";
|
@@ -35,47 +45,69 @@ function woocommerce_razorpay_init(){
|
|
35 |
add_action('init', array(&$this, 'check_razorpay_response'));
|
36 |
add_action('woocommerce_api_' . strtolower(get_class($this)), array($this, 'check_razorpay_response'));
|
37 |
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
}
|
43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
}
|
45 |
|
46 |
-
function init_form_fields()
|
|
|
47 |
$this->form_fields = array(
|
48 |
'enabled' => array(
|
49 |
'title' => __('Enable/Disable', 'razorpay'),
|
50 |
'type' => 'checkbox',
|
51 |
'label' => __('Enable Razorpay Payment Module.', 'razorpay'),
|
52 |
-
'default' => 'yes'
|
|
|
53 |
'title' => array(
|
54 |
-
'title' => __('Title
|
55 |
'type'=> 'text',
|
56 |
'description' => __('This controls the title which the user sees during checkout.', 'razorpay'),
|
57 |
-
'default' => __('Credit Card/Debit Card/
|
|
|
58 |
'description' => array(
|
59 |
-
'title' => __('Description
|
60 |
'type' => 'textarea',
|
61 |
'description' => __('This controls the description which the user sees during checkout.', 'razorpay'),
|
62 |
-
'default' => __('Pay securely by Credit or Debit card or internet banking through Razorpay.', 'razorpay')
|
|
|
63 |
'key_id' => array(
|
64 |
'title' => __('Key ID', 'razorpay'),
|
65 |
'type' => 'text',
|
66 |
-
'description' => __('The key Id and key secret can be generated from "API Keys" section of Razorpay Dashboard. Use test or live for test or live mode.', 'razorpay')
|
|
|
67 |
'key_secret' => array(
|
68 |
'title' => __('Key Secret', 'razorpay'),
|
69 |
'type' => 'text',
|
70 |
-
'description' =>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
)
|
72 |
);
|
73 |
}
|
74 |
-
|
75 |
-
|
76 |
-
echo '<h3>'.__('Razorpay Payment Gateway', 'razorpay').'</h3>';
|
77 |
-
echo '<p>'.__('Razorpay is an online payment gateway for India with transparent pricing, seamless integration and great support').'</p>';
|
78 |
echo '<table class="form-table">';
|
|
|
79 |
// Generate the HTML For the settings form.
|
80 |
$this->generate_settings_html();
|
81 |
echo '</table>';
|
@@ -84,73 +116,166 @@ function woocommerce_razorpay_init(){
|
|
84 |
/**
|
85 |
* There are no payment fields, but we want to show the description if set.
|
86 |
**/
|
87 |
-
function payment_fields()
|
88 |
-
|
|
|
|
|
|
|
|
|
89 |
}
|
90 |
-
|
91 |
/**
|
92 |
* Receipt Page
|
93 |
**/
|
94 |
-
function receipt_page($order)
|
|
|
95 |
echo '<p>'.__('Thank you for your order, please click the button below to pay with Razorpay.', 'razorpay').'</p>';
|
96 |
echo $this->generate_razorpay_form($order);
|
97 |
}
|
98 |
-
|
99 |
/**
|
100 |
* Generate razorpay button link
|
101 |
**/
|
102 |
-
public function generate_razorpay_form($order_id)
|
103 |
-
|
104 |
global $woocommerce;
|
105 |
-
|
106 |
$order = new WC_Order($order_id);
|
107 |
-
|
108 |
-
$redirect_url = get_site_url() . '/?wc-api' ."=". get_class($this) ;
|
109 |
-
|
110 |
$productinfo = "Order $order_id";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
'
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
|
|
|
|
126 |
);
|
127 |
|
128 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
|
|
|
|
|
|
|
|
|
|
|
130 |
$html = <<<EOT
|
131 |
-
<script src="
|
132 |
<script>
|
133 |
var data = $json;
|
134 |
</script>
|
135 |
<form name='razorpayform' action="$redirect_url" method="POST">
|
136 |
-
<input type="hidden" name="merchant_order_id" value="$order_id">
|
137 |
<input type="hidden" name="razorpay_payment_id" id="razorpay_payment_id">
|
|
|
138 |
</form>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
<script>
|
140 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
data.handler = function(payment){
|
142 |
-
|
143 |
-
|
|
|
|
|
|
|
144 |
document.razorpayform.submit();
|
145 |
};
|
146 |
var razorpayCheckout = new Razorpay(data);
|
147 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
</script>
|
149 |
-
<p>
|
150 |
-
<button id="btn-razorpay" onclick="razorpayCheckout.open();">Pay Now</button>
|
151 |
-
<button onclick="document.razorpayform.submit()">Cancel</button>
|
152 |
-
</p>
|
153 |
-
|
154 |
EOT;
|
155 |
return $html;
|
156 |
}
|
@@ -158,17 +283,21 @@ EOT;
|
|
158 |
/**
|
159 |
* Process the payment and return the result
|
160 |
**/
|
161 |
-
function process_payment($order_id)
|
|
|
|
|
162 |
$order = new WC_Order($order_id);
|
163 |
-
|
164 |
-
if (
|
|
|
165 |
return array(
|
166 |
'result' => 'success',
|
167 |
'redirect' => add_query_arg('order', $order->id,
|
168 |
add_query_arg('key', $order->order_key, $order->get_checkout_payment_url(true)))
|
169 |
);
|
170 |
}
|
171 |
-
else
|
|
|
172 |
return array(
|
173 |
'result' => 'success',
|
174 |
'redirect' => add_query_arg('order', $order->id,
|
@@ -176,125 +305,131 @@ EOT;
|
|
176 |
);
|
177 |
}
|
178 |
}
|
179 |
-
|
180 |
/**
|
181 |
* Check for valid razorpay server callback
|
182 |
**/
|
183 |
-
function check_razorpay_response()
|
|
|
184 |
global $woocommerce;
|
|
|
185 |
|
186 |
-
if(
|
187 |
-
|
188 |
-
$razorpay_payment_id = $
|
189 |
-
|
190 |
-
|
191 |
$order = new WC_Order($order_id);
|
192 |
$key_id = $this->key_id;
|
193 |
$key_secret = $this->key_secret;
|
194 |
$amount = $order->order_total*100;
|
195 |
-
|
196 |
$success = false;
|
197 |
$error = "";
|
|
|
|
|
198 |
|
199 |
-
try
|
200 |
-
|
201 |
-
$
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
//set the url, number of POST vars, POST data
|
207 |
-
curl_setopt($ch,CURLOPT_URL, $url);
|
208 |
-
curl_setopt($ch,CURLOPT_USERPWD, $key_id . ":" . $key_secret);
|
209 |
-
curl_setopt($ch,CURLOPT_TIMEOUT, 60);
|
210 |
-
curl_setopt($ch,CURLOPT_POST, 1);
|
211 |
-
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
|
212 |
-
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
|
213 |
-
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, true);
|
214 |
-
curl_setopt($ch,CURLOPT_CAINFO, plugin_dir_path(__FILE__) . 'ca-bundle.crt');
|
215 |
-
|
216 |
-
//execute post
|
217 |
-
$result = curl_exec($ch);
|
218 |
-
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
219 |
|
|
|
|
|
|
|
|
|
220 |
|
221 |
-
|
222 |
-
$
|
223 |
-
|
224 |
-
|
225 |
-
else {
|
226 |
-
$response_array = json_decode($result, true);
|
227 |
-
//Check success response
|
228 |
-
if($http_status === 200 and isset($response_array['error']) === false){
|
229 |
-
$success = true;
|
230 |
}
|
231 |
-
else
|
|
|
232 |
$success = false;
|
233 |
-
|
234 |
-
if(!empty($response_array['error']['code'])) {
|
235 |
-
$error = $response_array['error']['code'].":".$response_array['error']['description'];
|
236 |
-
}
|
237 |
-
else {
|
238 |
-
$error = "RAZORPAY_ERROR:Invalid Response <br/>".$result;
|
239 |
-
}
|
240 |
}
|
241 |
}
|
242 |
-
//close connection
|
243 |
-
curl_close($ch);
|
244 |
}
|
245 |
-
catch (Exception $e)
|
|
|
246 |
$success = false;
|
247 |
-
$error =
|
248 |
}
|
249 |
-
|
250 |
-
|
251 |
-
$this->msg['message'] = "Thank you for shopping with us. Your account has been charged and your transaction is successful. We will be
|
252 |
$this->msg['class'] = 'success';
|
253 |
$order->payment_complete();
|
254 |
-
$order->add_order_note(
|
255 |
$order->add_order_note($this->msg['message']);
|
256 |
$woocommerce->cart->empty_cart();
|
257 |
}
|
258 |
-
else
|
|
|
259 |
$this->msg['class'] = 'error';
|
260 |
-
$this->msg['message'] =
|
261 |
-
$order->add_order_note(
|
262 |
-
$order->add_order_note(
|
263 |
$order->update_status('failed');
|
264 |
-
}
|
265 |
}
|
266 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
267 |
$this->msg['class'] = 'error';
|
268 |
-
$this->msg['message'] = "An
|
269 |
}
|
|
|
|
|
|
|
|
|
|
|
270 |
|
271 |
-
|
272 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
273 |
}
|
274 |
-
else
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
|
|
|
|
|
|
|
|
281 |
}
|
282 |
-
$woocommerce->set_messages();
|
283 |
}
|
284 |
-
|
285 |
-
$redirect_url = get_permalink(woocommerce_get_page_id('myaccount'));
|
286 |
-
wp_redirect( $redirect_url );
|
287 |
-
exit;
|
288 |
}
|
289 |
}
|
290 |
|
291 |
/**
|
292 |
* Add the Gateway to WooCommerce
|
293 |
**/
|
294 |
-
function woocommerce_add_razorpay_gateway($methods)
|
|
|
295 |
$methods[] = 'WC_Razorpay';
|
296 |
return $methods;
|
297 |
}
|
298 |
-
|
299 |
add_filter('woocommerce_payment_gateways', 'woocommerce_add_razorpay_gateway' );
|
300 |
}
|
3 |
Plugin Name: WooCommerce Razorpay Payments
|
4 |
Plugin URI: https://razorpay.com
|
5 |
Description: Razorpay Payment Gateway Integration for WooCommerce
|
6 |
+
Version: 1.3.0
|
7 |
Author: Razorpay
|
8 |
Author URI: https://razorpay.com
|
9 |
*/
|
10 |
|
11 |
+
use Razorpay\Api\Api;
|
12 |
+
|
13 |
+
require_once __DIR__.'/razorpay-sdk/Razorpay.php';
|
14 |
+
|
15 |
add_action('plugins_loaded', 'woocommerce_razorpay_init', 0);
|
16 |
|
17 |
+
function woocommerce_razorpay_init()
|
18 |
+
{
|
19 |
+
if (!class_exists('WC_Payment_Gateway'))
|
20 |
+
return;
|
21 |
+
|
22 |
+
class WC_Razorpay extends WC_Payment_Gateway
|
23 |
+
{
|
24 |
+
const BASE_URL = 'https://api.razorpay.com/';
|
25 |
+
const API_VERSION = 'v1';
|
26 |
+
const SESSION_KEY = 'razorpay_wc_order_id';
|
27 |
+
|
28 |
+
public function __construct()
|
29 |
+
{
|
30 |
$this->id = 'razorpay';
|
31 |
$this->method_title = 'Razorpay';
|
32 |
+
$this->icon = plugins_url('images/logo.png' , __FILE__);
|
33 |
$this->has_fields = false;
|
|
|
34 |
$this->init_form_fields();
|
35 |
$this->init_settings();
|
|
|
36 |
$this->title = $this->settings['title'];
|
37 |
$this->description = $this->settings['description'];
|
38 |
$this->key_id = $this->settings['key_id'];
|
39 |
$this->key_secret = $this->settings['key_secret'];
|
40 |
+
$this->payment_action = $this->settings['payment_action'];
|
41 |
|
42 |
$this->msg['message'] = "";
|
43 |
$this->msg['class'] = "";
|
45 |
add_action('init', array(&$this, 'check_razorpay_response'));
|
46 |
add_action('woocommerce_api_' . strtolower(get_class($this)), array($this, 'check_razorpay_response'));
|
47 |
|
48 |
+
$cb = array($this, 'process_admin_options');
|
49 |
+
|
50 |
+
if (version_compare(WOOCOMMERCE_VERSION, '2.0.0', '>='))
|
51 |
+
{
|
52 |
+
add_action("woocommerce_update_options_payment_gateways_{$this->id}", $cb);
|
53 |
+
}
|
54 |
+
else
|
55 |
+
{
|
56 |
+
add_action('woocommerce_update_options_payment_gateways', $cb);
|
57 |
+
}
|
58 |
+
|
59 |
+
add_action('woocommerce_receipt_razorpay', array($this, 'receipt_page'));
|
60 |
}
|
61 |
|
62 |
+
function init_form_fields()
|
63 |
+
{
|
64 |
$this->form_fields = array(
|
65 |
'enabled' => array(
|
66 |
'title' => __('Enable/Disable', 'razorpay'),
|
67 |
'type' => 'checkbox',
|
68 |
'label' => __('Enable Razorpay Payment Module.', 'razorpay'),
|
69 |
+
'default' => 'yes'
|
70 |
+
),
|
71 |
'title' => array(
|
72 |
+
'title' => __('Title', 'razorpay'),
|
73 |
'type'=> 'text',
|
74 |
'description' => __('This controls the title which the user sees during checkout.', 'razorpay'),
|
75 |
+
'default' => __('Credit Card/Debit Card/NetBanking', 'razorpay')
|
76 |
+
),
|
77 |
'description' => array(
|
78 |
+
'title' => __('Description', 'razorpay'),
|
79 |
'type' => 'textarea',
|
80 |
'description' => __('This controls the description which the user sees during checkout.', 'razorpay'),
|
81 |
+
'default' => __('Pay securely by Credit or Debit card or internet banking through Razorpay.', 'razorpay')
|
82 |
+
),
|
83 |
'key_id' => array(
|
84 |
'title' => __('Key ID', 'razorpay'),
|
85 |
'type' => 'text',
|
86 |
+
'description' => __('The key Id and key secret can be generated from "API Keys" section of Razorpay Dashboard. Use test or live for test or live mode.', 'razorpay')
|
87 |
+
),
|
88 |
'key_secret' => array(
|
89 |
'title' => __('Key Secret', 'razorpay'),
|
90 |
'type' => 'text',
|
91 |
+
'description' => __('The key Id and key secret can be generated from "API Keys" section of Razorpay Dashboard. Use test or live for test or live mode.', 'razorpay')
|
92 |
+
),
|
93 |
+
'payment_action' => array(
|
94 |
+
'title' => __('Payment Action', 'razorpay'),
|
95 |
+
'type' => 'select',
|
96 |
+
'description' => __('Payment action on order compelete', 'razorpay'),
|
97 |
+
'default' => 'capture',
|
98 |
+
'options' => array(
|
99 |
+
'authorize' => 'Authorize',
|
100 |
+
'capture' => 'Authorize and Capture'
|
101 |
+
)
|
102 |
)
|
103 |
);
|
104 |
}
|
105 |
+
public function admin_options()
|
106 |
+
{
|
107 |
+
echo '<h3>'.__('Razorpay Payment Gateway', 'razorpay') . '</h3>';
|
108 |
+
echo '<p>'.__('Razorpay is an online payment gateway for India with transparent pricing, seamless integration and great support') . '</p>';
|
109 |
echo '<table class="form-table">';
|
110 |
+
|
111 |
// Generate the HTML For the settings form.
|
112 |
$this->generate_settings_html();
|
113 |
echo '</table>';
|
116 |
/**
|
117 |
* There are no payment fields, but we want to show the description if set.
|
118 |
**/
|
119 |
+
function payment_fields()
|
120 |
+
{
|
121 |
+
if($this->description)
|
122 |
+
{
|
123 |
+
echo wpautop(wptexturize($this->description));
|
124 |
+
}
|
125 |
}
|
126 |
+
|
127 |
/**
|
128 |
* Receipt Page
|
129 |
**/
|
130 |
+
function receipt_page($order)
|
131 |
+
{
|
132 |
echo '<p>'.__('Thank you for your order, please click the button below to pay with Razorpay.', 'razorpay').'</p>';
|
133 |
echo $this->generate_razorpay_form($order);
|
134 |
}
|
135 |
+
|
136 |
/**
|
137 |
* Generate razorpay button link
|
138 |
**/
|
139 |
+
public function generate_razorpay_form($order_id)
|
140 |
+
{
|
141 |
global $woocommerce;
|
|
|
142 |
$order = new WC_Order($order_id);
|
143 |
+
$redirect_url = get_site_url() . '/?wc-api=' . get_class($this);
|
|
|
|
|
144 |
$productinfo = "Order $order_id";
|
145 |
+
try
|
146 |
+
{
|
147 |
+
$api = new Api($this->key_id, $this->key_secret);
|
148 |
+
// Calls the helper function to create order data
|
149 |
+
$data = $this->get_order_creation_data($order_id);
|
150 |
+
|
151 |
+
$razorpay_order = $api->order->create($data);
|
152 |
+
|
153 |
+
$woocommerce->session->set('razorpay_order_id', $razorpay_order['id']);
|
154 |
+
$razorpay_args = array(
|
155 |
+
'key' => $this->key_id,
|
156 |
+
'name' => get_bloginfo('name'),
|
157 |
+
'amount' => $order->order_total * 100,
|
158 |
+
'currency' => get_woocommerce_currency(),
|
159 |
+
'description' => $productinfo,
|
160 |
+
'prefill' => array(
|
161 |
+
'name' => $order->billing_first_name." ".$order->billing_last_name,
|
162 |
+
'email' => $order->billing_email,
|
163 |
+
'contact' => $order->billing_phone
|
164 |
+
),
|
165 |
+
'notes' => array(
|
166 |
+
'woocommerce_order_id' => $order_id
|
167 |
+
),
|
168 |
+
'order_id' => $razorpay_order['id']
|
169 |
+
);
|
170 |
+
$json = json_encode($razorpay_args);
|
171 |
+
$html = $this->generate_order_form($redirect_url, $json);
|
172 |
+
return $html;
|
173 |
+
}
|
174 |
+
catch (Exception $e)
|
175 |
+
{
|
176 |
+
echo "RAZORPAY ERROR: Api could not be reached";
|
177 |
+
}
|
178 |
+
}
|
179 |
|
180 |
+
/**
|
181 |
+
* Creates order data
|
182 |
+
**/
|
183 |
+
function get_order_creation_data($order_id)
|
184 |
+
{
|
185 |
+
$order = new WC_Order($order_id);
|
186 |
+
|
187 |
+
if (!isset($this->payment_action))
|
188 |
+
{
|
189 |
+
$this->payment_action = 'capture';
|
190 |
+
}
|
191 |
+
|
192 |
+
$data = array(
|
193 |
+
'receipt' => $order_id,
|
194 |
+
'amount' => (int) ($order->order_total * 100),
|
195 |
+
'currency' => get_woocommerce_currency(),
|
196 |
);
|
197 |
|
198 |
+
switch($this->payment_action)
|
199 |
+
{
|
200 |
+
case 'authorize':
|
201 |
+
$data['payment_capture'] = 0;
|
202 |
+
break;
|
203 |
+
|
204 |
+
case 'capture':
|
205 |
+
default:
|
206 |
+
$data['payment_capture'] = 1;
|
207 |
+
break;
|
208 |
+
}
|
209 |
+
return $data;
|
210 |
+
}
|
211 |
|
212 |
+
/**
|
213 |
+
* Generates the order form
|
214 |
+
**/
|
215 |
+
function generate_order_form($redirect_url, $json)
|
216 |
+
{
|
217 |
$html = <<<EOT
|
218 |
+
<script src="https://checkout.razorpay.com/v1/checkout.js"></script>
|
219 |
<script>
|
220 |
var data = $json;
|
221 |
</script>
|
222 |
<form name='razorpayform' action="$redirect_url" method="POST">
|
|
|
223 |
<input type="hidden" name="razorpay_payment_id" id="razorpay_payment_id">
|
224 |
+
<input type="hidden" name="razorpay_signature" id="razorpay_signature" >
|
225 |
</form>
|
226 |
+
<p id="msg-razorpay-success" class="woocommerce-info woocommerce-message" style="display:none">
|
227 |
+
Please wait while we are processing your payment.
|
228 |
+
</p>
|
229 |
+
<p>
|
230 |
+
<button id="btn-razorpay">Pay Now</button>
|
231 |
+
<button id="btn-razorpay-cancel" onclick="document.razorpayform.submit()">Cancel</button>
|
232 |
+
</p>
|
233 |
<script>
|
234 |
+
(function(){
|
235 |
+
var setDisabled = function(id, state) {
|
236 |
+
if (typeof state === 'undefined') {
|
237 |
+
state = true;
|
238 |
+
}
|
239 |
+
var elem = document.getElementById(id);
|
240 |
+
if (state === false) {
|
241 |
+
elem.removeAttribute('disabled');
|
242 |
+
}
|
243 |
+
else {
|
244 |
+
elem.setAttribute('disabled', state);
|
245 |
+
}
|
246 |
+
};
|
247 |
+
// Payment was closed without handler getting called
|
248 |
+
data.modal = {
|
249 |
+
ondismiss: function() {
|
250 |
+
setDisabled('btn-razorpay', false);
|
251 |
+
}
|
252 |
+
};
|
253 |
data.handler = function(payment){
|
254 |
+
setDisabled('btn-razorpay-cancel');
|
255 |
+
var successMsg = document.getElementById('msg-razorpay-success');
|
256 |
+
successMsg.style.display = "block";
|
257 |
+
document.getElementById('razorpay_payment_id').value = payment.razorpay_payment_id;
|
258 |
+
document.getElementById('razorpay_signature').value = payment.razorpay_signature;
|
259 |
document.razorpayform.submit();
|
260 |
};
|
261 |
var razorpayCheckout = new Razorpay(data);
|
262 |
+
// global method
|
263 |
+
function openCheckout() {
|
264 |
+
// Disable the pay button
|
265 |
+
setDisabled('btn-razorpay');
|
266 |
+
razorpayCheckout.open();
|
267 |
+
}
|
268 |
+
function addEvent(element, evnt, funct){
|
269 |
+
if (element.attachEvent)
|
270 |
+
return element.attachEvent('on'+evnt, funct);
|
271 |
+
else
|
272 |
+
return element.addEventListener(evnt, funct, false);
|
273 |
+
}
|
274 |
+
// Attach event listener
|
275 |
+
addEvent(document.getElementById('btn-razorpay'), 'click', openCheckout);
|
276 |
+
openCheckout();
|
277 |
+
})();
|
278 |
</script>
|
|
|
|
|
|
|
|
|
|
|
279 |
EOT;
|
280 |
return $html;
|
281 |
}
|
283 |
/**
|
284 |
* Process the payment and return the result
|
285 |
**/
|
286 |
+
function process_payment($order_id)
|
287 |
+
{
|
288 |
+
global $woocommerce;
|
289 |
$order = new WC_Order($order_id);
|
290 |
+
$woocommerce->session->set(self::SESSION_KEY, $order_id);
|
291 |
+
if (version_compare(WOOCOMMERCE_VERSION, '2.0.0', '>='))
|
292 |
+
{
|
293 |
return array(
|
294 |
'result' => 'success',
|
295 |
'redirect' => add_query_arg('order', $order->id,
|
296 |
add_query_arg('key', $order->order_key, $order->get_checkout_payment_url(true)))
|
297 |
);
|
298 |
}
|
299 |
+
else
|
300 |
+
{
|
301 |
return array(
|
302 |
'result' => 'success',
|
303 |
'redirect' => add_query_arg('order', $order->id,
|
305 |
);
|
306 |
}
|
307 |
}
|
308 |
+
|
309 |
/**
|
310 |
* Check for valid razorpay server callback
|
311 |
**/
|
312 |
+
function check_razorpay_response()
|
313 |
+
{
|
314 |
global $woocommerce;
|
315 |
+
$order_id = $woocommerce->session->get(self::SESSION_KEY);
|
316 |
|
317 |
+
if ($order_id and !empty($_POST['razorpay_payment_id']))
|
318 |
+
{
|
319 |
+
$razorpay_payment_id = $_POST['razorpay_payment_id'];
|
|
|
|
|
320 |
$order = new WC_Order($order_id);
|
321 |
$key_id = $this->key_id;
|
322 |
$key_secret = $this->key_secret;
|
323 |
$amount = $order->order_total*100;
|
|
|
324 |
$success = false;
|
325 |
$error = "";
|
326 |
+
$api = new Api($key_id, $key_secret);
|
327 |
+
$payment = $api->payment->fetch($razorpay_payment_id);
|
328 |
|
329 |
+
try
|
330 |
+
{
|
331 |
+
if ($this->payment_action === 'authorize' && $payment['amount'] === $amount)
|
332 |
+
{
|
333 |
+
$success = true;
|
334 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
335 |
|
336 |
+
else
|
337 |
+
{
|
338 |
+
$razorpay_order_id = $woocommerce->session->get('razorpay_order_id');
|
339 |
+
$razorpay_signature = $_POST['razorpay_signature'];
|
340 |
|
341 |
+
$signature = hash_hmac('sha256', $razorpay_order_id . '|' . $razorpay_payment_id, $key_secret);
|
342 |
+
if (hash_equals($signature , $razorpay_signature))
|
343 |
+
{
|
344 |
+
$success = true;
|
|
|
|
|
|
|
|
|
|
|
345 |
}
|
346 |
+
else
|
347 |
+
{
|
348 |
$success = false;
|
349 |
+
$error = "PAYMENT_ERROR: Payment failed";
|
|
|
|
|
|
|
|
|
|
|
|
|
350 |
}
|
351 |
}
|
|
|
|
|
352 |
}
|
353 |
+
catch (Exception $e)
|
354 |
+
{
|
355 |
$success = false;
|
356 |
+
$error = 'WOOCOMMERCE_ERROR: Request to Razorpay Failed';
|
357 |
}
|
358 |
+
if ($success === true)
|
359 |
+
{
|
360 |
+
$this->msg['message'] = "Thank you for shopping with us. Your account has been charged and your transaction is successful. We will be processing your order soon. Order Id: $order_id";
|
361 |
$this->msg['class'] = 'success';
|
362 |
$order->payment_complete();
|
363 |
+
$order->add_order_note("Razorpay payment successful <br/>Razorpay Id: $razorpay_payment_id");
|
364 |
$order->add_order_note($this->msg['message']);
|
365 |
$woocommerce->cart->empty_cart();
|
366 |
}
|
367 |
+
else
|
368 |
+
{
|
369 |
$this->msg['class'] = 'error';
|
370 |
+
$this->msg['message'] = 'Thank you for shopping with us. However, the payment failed.';
|
371 |
+
$order->add_order_note("Transaction Declined: $error<br/>");
|
372 |
+
$order->add_order_note("Payment Failed. Please check Razorpay Dashboard. <br/> Razorpay Id: $razorpay_payment_id");
|
373 |
$order->update_status('failed');
|
374 |
+
}
|
375 |
}
|
376 |
+
// We don't have a proper order id
|
377 |
+
else
|
378 |
+
{
|
379 |
+
if ($order_id !== null)
|
380 |
+
{
|
381 |
+
$order = new WC_Order($order_id);
|
382 |
+
$order->update_status('failed');
|
383 |
+
$order->add_order_note('Customer cancelled the payment');
|
384 |
+
}
|
385 |
$this->msg['class'] = 'error';
|
386 |
+
$this->msg['message'] = "An error occured while processing this payment";
|
387 |
}
|
388 |
+
$this->add_notice($this->msg['message'], $this->msg['class']);
|
389 |
+
$redirect_url = $this->get_return_url($order);
|
390 |
+
wp_redirect( $redirect_url );
|
391 |
+
exit;
|
392 |
+
}
|
393 |
|
394 |
+
/**
|
395 |
+
* Add a woocommerce notification message
|
396 |
+
*
|
397 |
+
* @param string $message Notification message
|
398 |
+
* @param string $type Notification type, default = notice
|
399 |
+
*/
|
400 |
+
protected function add_notice($message, $type = 'notice')
|
401 |
+
{
|
402 |
+
global $woocommerce;
|
403 |
+
$type = in_array($type, array('notice','error','success'), true) ? $type : 'notice';
|
404 |
+
// Check for existence of new notification api. Else use previous add_error
|
405 |
+
if (function_exists('wc_add_notice'))
|
406 |
+
{
|
407 |
+
wc_add_notice($message, $type);
|
408 |
}
|
409 |
+
else
|
410 |
+
{
|
411 |
+
// Retrocompatibility WooCommerce < 2.1
|
412 |
+
switch ($type)
|
413 |
+
{
|
414 |
+
case "error" :
|
415 |
+
$woocommerce->add_error($message);
|
416 |
+
break;
|
417 |
+
default :
|
418 |
+
$woocommerce->add_message($message);
|
419 |
+
break;
|
420 |
}
|
|
|
421 |
}
|
|
|
|
|
|
|
|
|
422 |
}
|
423 |
}
|
424 |
|
425 |
/**
|
426 |
* Add the Gateway to WooCommerce
|
427 |
**/
|
428 |
+
function woocommerce_add_razorpay_gateway($methods)
|
429 |
+
{
|
430 |
$methods[] = 'WC_Razorpay';
|
431 |
return $methods;
|
432 |
}
|
433 |
+
|
434 |
add_filter('woocommerce_payment_gateways', 'woocommerce_add_razorpay_gateway' );
|
435 |
}
|
razorpay-sdk/Razorpay.php
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if(class_exists('Requests') === false){
|
4 |
+
require_once __DIR__.'/libs/Requests-1.6.1/library/Requests.php';
|
5 |
+
|
6 |
+
// Register requests autoloader
|
7 |
+
Requests::register_autoloader();
|
8 |
+
}
|
9 |
+
|
10 |
+
spl_autoload_register(function ($class)
|
11 |
+
{
|
12 |
+
// project-specific namespace prefix
|
13 |
+
$prefix = 'Razorpay\Api';
|
14 |
+
|
15 |
+
// base directory for the namespace prefix
|
16 |
+
$base_dir = __DIR__ . '/src/';
|
17 |
+
|
18 |
+
// does the class use the namespace prefix?
|
19 |
+
$len = strlen($prefix);
|
20 |
+
|
21 |
+
if (strncmp($prefix, $class, $len) !== 0)
|
22 |
+
{
|
23 |
+
// no, move to the next registered autoloader
|
24 |
+
return;
|
25 |
+
}
|
26 |
+
|
27 |
+
// get the relative class name
|
28 |
+
$relative_class = substr($class, $len);
|
29 |
+
|
30 |
+
//
|
31 |
+
// replace the namespace prefix with the base directory,
|
32 |
+
// replace namespace separators with directory separators
|
33 |
+
// in the relative class name, append with .php
|
34 |
+
//
|
35 |
+
$file = $base_dir . str_replace('\\', '/', $relative_class) . '.php';
|
36 |
+
|
37 |
+
// if the file exists, require it
|
38 |
+
if (file_exists($file))
|
39 |
+
{
|
40 |
+
require $file;
|
41 |
+
}
|
42 |
+
});
|
razorpay-sdk/libs/Requests-1.6.1/LICENSE
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Requests
|
2 |
+
========
|
3 |
+
|
4 |
+
Copyright (c) 2010-2012 Ryan McCue and contributors
|
5 |
+
|
6 |
+
Permission to use, copy, modify, and/or distribute this software for any
|
7 |
+
purpose with or without fee is hereby granted, provided that the above
|
8 |
+
copyright notice and this permission notice appear in all copies.
|
9 |
+
|
10 |
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
11 |
+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
12 |
+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
13 |
+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
14 |
+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
15 |
+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
16 |
+
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
17 |
+
|
18 |
+
|
19 |
+
ComplexPie IRI Parser
|
20 |
+
=====================
|
21 |
+
|
22 |
+
Copyright (c) 2007-2010, Geoffrey Sneddon and Steve Minutillo.
|
23 |
+
All rights reserved.
|
24 |
+
|
25 |
+
Redistribution and use in source and binary forms, with or without
|
26 |
+
modification, are permitted provided that the following conditions are met:
|
27 |
+
|
28 |
+
* Redistributions of source code must retain the above copyright notice,
|
29 |
+
this list of conditions and the following disclaimer.
|
30 |
+
|
31 |
+
* Redistributions in binary form must reproduce the above copyright notice,
|
32 |
+
this list of conditions and the following disclaimer in the documentation
|
33 |
+
and/or other materials provided with the distribution.
|
34 |
+
|
35 |
+
* Neither the name of the SimplePie Team nor the names of its contributors
|
36 |
+
may be used to endorse or promote products derived from this software
|
37 |
+
without specific prior written permission.
|
38 |
+
|
39 |
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
40 |
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
41 |
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
42 |
+
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE
|
43 |
+
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
44 |
+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
45 |
+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
46 |
+
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
47 |
+
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
48 |
+
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
49 |
+
POSSIBILITY OF SUCH DAMAGE.
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests.php
ADDED
@@ -0,0 +1,863 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Requests for PHP
|
4 |
+
*
|
5 |
+
* Inspired by Requests for Python.
|
6 |
+
*
|
7 |
+
* Based on concepts from SimplePie_File, RequestCore and WP_Http.
|
8 |
+
*
|
9 |
+
* @package Requests
|
10 |
+
*/
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Requests for PHP
|
14 |
+
*
|
15 |
+
* Inspired by Requests for Python.
|
16 |
+
*
|
17 |
+
* Based on concepts from SimplePie_File, RequestCore and WP_Http.
|
18 |
+
*
|
19 |
+
* @package Requests
|
20 |
+
*/
|
21 |
+
class Requests {
|
22 |
+
/**
|
23 |
+
* POST method
|
24 |
+
*
|
25 |
+
* @var string
|
26 |
+
*/
|
27 |
+
const POST = 'POST';
|
28 |
+
|
29 |
+
/**
|
30 |
+
* PUT method
|
31 |
+
*
|
32 |
+
* @var string
|
33 |
+
*/
|
34 |
+
const PUT = 'PUT';
|
35 |
+
|
36 |
+
/**
|
37 |
+
* GET method
|
38 |
+
*
|
39 |
+
* @var string
|
40 |
+
*/
|
41 |
+
const GET = 'GET';
|
42 |
+
|
43 |
+
/**
|
44 |
+
* HEAD method
|
45 |
+
*
|
46 |
+
* @var string
|
47 |
+
*/
|
48 |
+
const HEAD = 'HEAD';
|
49 |
+
|
50 |
+
/**
|
51 |
+
* DELETE method
|
52 |
+
*
|
53 |
+
* @var string
|
54 |
+
*/
|
55 |
+
const DELETE = 'DELETE';
|
56 |
+
|
57 |
+
/**
|
58 |
+
* PATCH method
|
59 |
+
*
|
60 |
+
* @link http://tools.ietf.org/html/rfc5789
|
61 |
+
* @var string
|
62 |
+
*/
|
63 |
+
const PATCH = 'PATCH';
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Current version of Requests
|
67 |
+
*
|
68 |
+
* @var string
|
69 |
+
*/
|
70 |
+
const VERSION = '1.6.1';
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Registered transport classes
|
74 |
+
*
|
75 |
+
* @var array
|
76 |
+
*/
|
77 |
+
protected static $transports = array();
|
78 |
+
|
79 |
+
/**
|
80 |
+
* Selected transport name
|
81 |
+
*
|
82 |
+
* Use {@see get_transport()} instead
|
83 |
+
*
|
84 |
+
* @var string|null
|
85 |
+
*/
|
86 |
+
public static $transport = null;
|
87 |
+
|
88 |
+
/**
|
89 |
+
* This is a static class, do not instantiate it
|
90 |
+
*
|
91 |
+
* @codeCoverageIgnore
|
92 |
+
*/
|
93 |
+
private function __construct() {}
|
94 |
+
|
95 |
+
/**
|
96 |
+
* Autoloader for Requests
|
97 |
+
*
|
98 |
+
* Register this with {@see register_autoloader()} if you'd like to avoid
|
99 |
+
* having to create your own.
|
100 |
+
*
|
101 |
+
* (You can also use `spl_autoload_register` directly if you'd prefer.)
|
102 |
+
*
|
103 |
+
* @codeCoverageIgnore
|
104 |
+
*
|
105 |
+
* @param string $class Class name to load
|
106 |
+
*/
|
107 |
+
public static function autoloader($class) {
|
108 |
+
// Check that the class starts with "Requests"
|
109 |
+
if (strpos($class, 'Requests') !== 0) {
|
110 |
+
return;
|
111 |
+
}
|
112 |
+
|
113 |
+
$file = str_replace('_', '/', $class);
|
114 |
+
if (file_exists(dirname(__FILE__) . '/' . $file . '.php')) {
|
115 |
+
require_once(dirname(__FILE__) . '/' . $file . '.php');
|
116 |
+
}
|
117 |
+
}
|
118 |
+
|
119 |
+
/**
|
120 |
+
* Register the built-in autoloader
|
121 |
+
*
|
122 |
+
* @codeCoverageIgnore
|
123 |
+
*/
|
124 |
+
public static function register_autoloader() {
|
125 |
+
spl_autoload_register(array('Requests', 'autoloader'));
|
126 |
+
}
|
127 |
+
|
128 |
+
/**
|
129 |
+
* Register a transport
|
130 |
+
*
|
131 |
+
* @param string $transport Transport class to add, must support the Requests_Transport interface
|
132 |
+
*/
|
133 |
+
public static function add_transport($transport) {
|
134 |
+
if (empty(self::$transports)) {
|
135 |
+
self::$transports = array(
|
136 |
+
'Requests_Transport_cURL',
|
137 |
+
'Requests_Transport_fsockopen',
|
138 |
+
);
|
139 |
+
}
|
140 |
+
|
141 |
+
self::$transports = array_merge(self::$transports, array($transport));
|
142 |
+
}
|
143 |
+
|
144 |
+
/**
|
145 |
+
* Get a working transport
|
146 |
+
*
|
147 |
+
* @throws Requests_Exception If no valid transport is found (`notransport`)
|
148 |
+
* @return Requests_Transport
|
149 |
+
*/
|
150 |
+
protected static function get_transport() {
|
151 |
+
// Caching code, don't bother testing coverage
|
152 |
+
// @codeCoverageIgnoreStart
|
153 |
+
if (self::$transport !== null) {
|
154 |
+
return new self::$transport();
|
155 |
+
}
|
156 |
+
// @codeCoverageIgnoreEnd
|
157 |
+
|
158 |
+
if (empty(self::$transports)) {
|
159 |
+
self::$transports = array(
|
160 |
+
'Requests_Transport_cURL',
|
161 |
+
'Requests_Transport_fsockopen',
|
162 |
+
);
|
163 |
+
}
|
164 |
+
|
165 |
+
// Find us a working transport
|
166 |
+
foreach (self::$transports as $class) {
|
167 |
+
if (!class_exists($class))
|
168 |
+
continue;
|
169 |
+
|
170 |
+
$result = call_user_func(array($class, 'test'));
|
171 |
+
if ($result) {
|
172 |
+
self::$transport = $class;
|
173 |
+
break;
|
174 |
+
}
|
175 |
+
}
|
176 |
+
if (self::$transport === null) {
|
177 |
+
throw new Requests_Exception('No working transports found', 'notransport', self::$transports);
|
178 |
+
}
|
179 |
+
|
180 |
+
return new self::$transport();
|
181 |
+
}
|
182 |
+
|
183 |
+
/**#@+
|
184 |
+
* @see request()
|
185 |
+
* @param string $url
|
186 |
+
* @param array $headers
|
187 |
+
* @param array $options
|
188 |
+
* @return Requests_Response
|
189 |
+
*/
|
190 |
+
/**
|
191 |
+
* Send a GET request
|
192 |
+
*/
|
193 |
+
public static function get($url, $headers = array(), $options = array()) {
|
194 |
+
return self::request($url, $headers, null, self::GET, $options);
|
195 |
+
}
|
196 |
+
|
197 |
+
/**
|
198 |
+
* Send a HEAD request
|
199 |
+
*/
|
200 |
+
public static function head($url, $headers = array(), $options = array()) {
|
201 |
+
return self::request($url, $headers, null, self::HEAD, $options);
|
202 |
+
}
|
203 |
+
|
204 |
+
/**
|
205 |
+
* Send a DELETE request
|
206 |
+
*/
|
207 |
+
public static function delete($url, $headers = array(), $options = array()) {
|
208 |
+
return self::request($url, $headers, null, self::DELETE, $options);
|
209 |
+
}
|
210 |
+
/**#@-*/
|
211 |
+
|
212 |
+
/**#@+
|
213 |
+
* @see request()
|
214 |
+
* @param string $url
|
215 |
+
* @param array $headers
|
216 |
+
* @param array $data
|
217 |
+
* @param array $options
|
218 |
+
* @return Requests_Response
|
219 |
+
*/
|
220 |
+
/**
|
221 |
+
* Send a POST request
|
222 |
+
*/
|
223 |
+
public static function post($url, $headers = array(), $data = array(), $options = array()) {
|
224 |
+
return self::request($url, $headers, $data, self::POST, $options);
|
225 |
+
}
|
226 |
+
/**
|
227 |
+
* Send a PUT request
|
228 |
+
*/
|
229 |
+
public static function put($url, $headers = array(), $data = array(), $options = array()) {
|
230 |
+
return self::request($url, $headers, $data, self::PUT, $options);
|
231 |
+
}
|
232 |
+
|
233 |
+
/**
|
234 |
+
* Send a PATCH request
|
235 |
+
*
|
236 |
+
* Note: Unlike {@see post} and {@see put}, `$headers` is required, as the
|
237 |
+
* specification recommends that should send an ETag
|
238 |
+
*
|
239 |
+
* @link http://tools.ietf.org/html/rfc5789
|
240 |
+
*/
|
241 |
+
public static function patch($url, $headers, $data = array(), $options = array()) {
|
242 |
+
return self::request($url, $headers, $data, self::PATCH, $options);
|
243 |
+
}
|
244 |
+
/**#@-*/
|
245 |
+
|
246 |
+
/**
|
247 |
+
* Main interface for HTTP requests
|
248 |
+
*
|
249 |
+
* This method initiates a request and sends it via a transport before
|
250 |
+
* parsing.
|
251 |
+
*
|
252 |
+
* The `$options` parameter takes an associative array with the following
|
253 |
+
* options:
|
254 |
+
*
|
255 |
+
* - `timeout`: How long should we wait for a response?
|
256 |
+
* (integer, seconds, default: 10)
|
257 |
+
* - `useragent`: Useragent to send to the server
|
258 |
+
* (string, default: php-requests/$version)
|
259 |
+
* - `follow_redirects`: Should we follow 3xx redirects?
|
260 |
+
* (boolean, default: true)
|
261 |
+
* - `redirects`: How many times should we redirect before erroring?
|
262 |
+
* (integer, default: 10)
|
263 |
+
* - `blocking`: Should we block processing on this request?
|
264 |
+
* (boolean, default: true)
|
265 |
+
* - `filename`: File to stream the body to instead.
|
266 |
+
* (string|boolean, default: false)
|
267 |
+
* - `auth`: Authentication handler or array of user/password details to use
|
268 |
+
* for Basic authentication
|
269 |
+
* (Requests_Auth|array|boolean, default: false)
|
270 |
+
* - `proxy`: Proxy details to use for proxy by-passing and authentication
|
271 |
+
* (Requests_Proxy|array|boolean, default: false)
|
272 |
+
* - `idn`: Enable IDN parsing
|
273 |
+
* (boolean, default: true)
|
274 |
+
* - `transport`: Custom transport. Either a class name, or a
|
275 |
+
* transport object. Defaults to the first working transport from
|
276 |
+
* {@see getTransport()}
|
277 |
+
* (string|Requests_Transport, default: {@see getTransport()})
|
278 |
+
* - `hooks`: Hooks handler.
|
279 |
+
* (Requests_Hooker, default: new Requests_Hooks())
|
280 |
+
* - `verify`: Should we verify SSL certificates? Allows passing in a custom
|
281 |
+
* certificate file as a string. (Using true uses the system-wide root
|
282 |
+
* certificate store instead, but this may have different behaviour
|
283 |
+
* across transports.)
|
284 |
+
* (string|boolean, default: library/Requests/Transport/cacert.pem)
|
285 |
+
* - `verifyname`: Should we verify the common name in the SSL certificate?
|
286 |
+
* (boolean: default, true)
|
287 |
+
*
|
288 |
+
* @throws Requests_Exception On invalid URLs (`nonhttp`)
|
289 |
+
*
|
290 |
+
* @param string $url URL to request
|
291 |
+
* @param array $headers Extra headers to send with the request
|
292 |
+
* @param array $data Data to send either as a query string for GET/HEAD requests, or in the body for POST requests
|
293 |
+
* @param string $type HTTP request type (use Requests constants)
|
294 |
+
* @param array $options Options for the request (see description for more information)
|
295 |
+
* @return Requests_Response
|
296 |
+
*/
|
297 |
+
public static function request($url, $headers = array(), $data = array(), $type = self::GET, $options = array()) {
|
298 |
+
if (empty($options['type'])) {
|
299 |
+
$options['type'] = $type;
|
300 |
+
}
|
301 |
+
$options = array_merge(self::get_default_options(), $options);
|
302 |
+
|
303 |
+
self::set_defaults($url, $headers, $data, $type, $options);
|
304 |
+
|
305 |
+
$options['hooks']->dispatch('requests.before_request', array(&$url, &$headers, &$data, &$type, &$options));
|
306 |
+
|
307 |
+
if (!empty($options['transport'])) {
|
308 |
+
$transport = $options['transport'];
|
309 |
+
|
310 |
+
if (is_string($options['transport'])) {
|
311 |
+
$transport = new $transport();
|
312 |
+
}
|
313 |
+
}
|
314 |
+
else {
|
315 |
+
$transport = self::get_transport();
|
316 |
+
}
|
317 |
+
$response = $transport->request($url, $headers, $data, $options);
|
318 |
+
|
319 |
+
$options['hooks']->dispatch('requests.before_parse', array(&$response, $url, $headers, $data, $type, $options));
|
320 |
+
|
321 |
+
return self::parse_response($response, $url, $headers, $data, $options);
|
322 |
+
}
|
323 |
+
|
324 |
+
/**
|
325 |
+
* Send multiple HTTP requests simultaneously
|
326 |
+
*
|
327 |
+
* The `$requests` parameter takes an associative or indexed array of
|
328 |
+
* request fields. The key of each request can be used to match up the
|
329 |
+
* request with the returned data, or with the request passed into your
|
330 |
+
* `multiple.request.complete` callback.
|
331 |
+
*
|
332 |
+
* The request fields value is an associative array with the following keys:
|
333 |
+
*
|
334 |
+
* - `url`: Request URL Same as the `$url` parameter to
|
335 |
+
* {@see Requests::request}
|
336 |
+
* (string, required)
|
337 |
+
* - `headers`: Associative array of header fields. Same as the `$headers`
|
338 |
+
* parameter to {@see Requests::request}
|
339 |
+
* (array, default: `array()`)
|
340 |
+
* - `data`: Associative array of data fields or a string. Same as the
|
341 |
+
* `$data` parameter to {@see Requests::request}
|
342 |
+
* (array|string, default: `array()`)
|
343 |
+
* - `type`: HTTP request type (use Requests constants). Same as the `$type`
|
344 |
+
* parameter to {@see Requests::request}
|
345 |
+
* (string, default: `Requests::GET`)
|
346 |
+
* - `data`: Associative array of options. Same as the `$options` parameter
|
347 |
+
* to {@see Requests::request}
|
348 |
+
* (array, default: see {@see Requests::request})
|
349 |
+
* - `cookies`: Associative array of cookie name to value, or cookie jar.
|
350 |
+
* (array|Requests_Cookie_Jar)
|
351 |
+
*
|
352 |
+
* If the `$options` parameter is specified, individual requests will
|
353 |
+
* inherit options from it. This can be used to use a single hooking system,
|
354 |
+
* or set all the types to `Requests::POST`, for example.
|
355 |
+
*
|
356 |
+
* In addition, the `$options` parameter takes the following global options:
|
357 |
+
*
|
358 |
+
* - `complete`: A callback for when a request is complete. Takes two
|
359 |
+
* parameters, a Requests_Response/Requests_Exception reference, and the
|
360 |
+
* ID from the request array (Note: this can also be overridden on a
|
361 |
+
* per-request basis, although that's a little silly)
|
362 |
+
* (callback)
|
363 |
+
*
|
364 |
+
* @param array $requests Requests data (see description for more information)
|
365 |
+
* @param array $options Global and default options (see {@see Requests::request})
|
366 |
+
* @return array Responses (either Requests_Response or a Requests_Exception object)
|
367 |
+
*/
|
368 |
+
public static function request_multiple($requests, $options = array()) {
|
369 |
+
$options = array_merge(self::get_default_options(true), $options);
|
370 |
+
|
371 |
+
if (!empty($options['hooks'])) {
|
372 |
+
$options['hooks']->register('transport.internal.parse_response', array('Requests', 'parse_multiple'));
|
373 |
+
if (!empty($options['complete'])) {
|
374 |
+
$options['hooks']->register('multiple.request.complete', $options['complete']);
|
375 |
+
}
|
376 |
+
}
|
377 |
+
|
378 |
+
foreach ($requests as $id => &$request) {
|
379 |
+
if (!isset($request['headers'])) {
|
380 |
+
$request['headers'] = array();
|
381 |
+
}
|
382 |
+
if (!isset($request['data'])) {
|
383 |
+
$request['data'] = array();
|
384 |
+
}
|
385 |
+
if (!isset($request['type'])) {
|
386 |
+
$request['type'] = self::GET;
|
387 |
+
}
|
388 |
+
if (!isset($request['options'])) {
|
389 |
+
$request['options'] = $options;
|
390 |
+
$request['options']['type'] = $request['type'];
|
391 |
+
}
|
392 |
+
else {
|
393 |
+
if (empty($request['options']['type'])) {
|
394 |
+
$request['options']['type'] = $request['type'];
|
395 |
+
}
|
396 |
+
$request['options'] = array_merge($options, $request['options']);
|
397 |
+
}
|
398 |
+
|
399 |
+
self::set_defaults($request['url'], $request['headers'], $request['data'], $request['type'], $request['options']);
|
400 |
+
|
401 |
+
// Ensure we only hook in once
|
402 |
+
if ($request['options']['hooks'] !== $options['hooks']) {
|
403 |
+
$request['options']['hooks']->register('transport.internal.parse_response', array('Requests', 'parse_multiple'));
|
404 |
+
if (!empty($request['options']['complete'])) {
|
405 |
+
$request['options']['hooks']->register('multiple.request.complete', $request['options']['complete']);
|
406 |
+
}
|
407 |
+
}
|
408 |
+
}
|
409 |
+
unset($request);
|
410 |
+
|
411 |
+
if (!empty($options['transport'])) {
|
412 |
+
$transport = $options['transport'];
|
413 |
+
|
414 |
+
if (is_string($options['transport'])) {
|
415 |
+
$transport = new $transport();
|
416 |
+
}
|
417 |
+
}
|
418 |
+
else {
|
419 |
+
$transport = self::get_transport();
|
420 |
+
}
|
421 |
+
$responses = $transport->request_multiple($requests, $options);
|
422 |
+
|
423 |
+
foreach ($responses as $id => &$response) {
|
424 |
+
// If our hook got messed with somehow, ensure we end up with the
|
425 |
+
// correct response
|
426 |
+
if (is_string($response)) {
|
427 |
+
$request = $requests[$id];
|
428 |
+
self::parse_multiple($response, $request);
|
429 |
+
$request['options']['hooks']->dispatch('multiple.request.complete', array(&$response, $id));
|
430 |
+
}
|
431 |
+
}
|
432 |
+
|
433 |
+
return $responses;
|
434 |
+
}
|
435 |
+
|
436 |
+
/**
|
437 |
+
* Get the default options
|
438 |
+
*
|
439 |
+
* @see Requests::request() for values returned by this method
|
440 |
+
* @param boolean $multirequest Is this a multirequest?
|
441 |
+
* @return array Default option values
|
442 |
+
*/
|
443 |
+
protected static function get_default_options($multirequest = false) {
|
444 |
+
$defaults = array(
|
445 |
+
'timeout' => 10,
|
446 |
+
'useragent' => 'php-requests/' . self::VERSION,
|
447 |
+
'redirected' => 0,
|
448 |
+
'redirects' => 10,
|
449 |
+
'follow_redirects' => true,
|
450 |
+
'blocking' => true,
|
451 |
+
'type' => self::GET,
|
452 |
+
'filename' => false,
|
453 |
+
'auth' => false,
|
454 |
+
'proxy' => false,
|
455 |
+
'cookies' => false,
|
456 |
+
'idn' => true,
|
457 |
+
'hooks' => null,
|
458 |
+
'transport' => null,
|
459 |
+
'verify' => dirname( __FILE__ ) . '/Requests/Transport/cacert.pem',
|
460 |
+
'verifyname' => true,
|
461 |
+
);
|
462 |
+
if ($multirequest !== false) {
|
463 |
+
$defaults['complete'] = null;
|
464 |
+
}
|
465 |
+
return $defaults;
|
466 |
+
}
|
467 |
+
|
468 |
+
/**
|
469 |
+
* Set the default values
|
470 |
+
*
|
471 |
+
* @param string $url URL to request
|
472 |
+
* @param array $headers Extra headers to send with the request
|
473 |
+
* @param array $data Data to send either as a query string for GET/HEAD requests, or in the body for POST requests
|
474 |
+
* @param string $type HTTP request type
|
475 |
+
* @param array $options Options for the request
|
476 |
+
* @return array $options
|
477 |
+
*/
|
478 |
+
protected static function set_defaults(&$url, &$headers, &$data, &$type, &$options) {
|
479 |
+
if (!preg_match('/^http(s)?:\/\//i', $url)) {
|
480 |
+
throw new Requests_Exception('Only HTTP requests are handled.', 'nonhttp', $url);
|
481 |
+
}
|
482 |
+
|
483 |
+
if (empty($options['hooks'])) {
|
484 |
+
$options['hooks'] = new Requests_Hooks();
|
485 |
+
}
|
486 |
+
|
487 |
+
if (is_array($options['auth'])) {
|
488 |
+
$options['auth'] = new Requests_Auth_Basic($options['auth']);
|
489 |
+
}
|
490 |
+
if ($options['auth'] !== false) {
|
491 |
+
$options['auth']->register($options['hooks']);
|
492 |
+
}
|
493 |
+
|
494 |
+
if (!empty($options['proxy'])) {
|
495 |
+
$options['proxy'] = new Requests_Proxy_HTTP($options['proxy']);
|
496 |
+
}
|
497 |
+
if ($options['proxy'] !== false) {
|
498 |
+
$options['proxy']->register($options['hooks']);
|
499 |
+
}
|
500 |
+
|
501 |
+
if (is_array($options['cookies'])) {
|
502 |
+
$options['cookies'] = new Requests_Cookie_Jar($options['cookies']);
|
503 |
+
}
|
504 |
+
elseif (empty($options['cookies'])) {
|
505 |
+
$options['cookies'] = new Requests_Cookie_Jar();
|
506 |
+
}
|
507 |
+
if ($options['cookies'] !== false) {
|
508 |
+
$options['cookies']->register($options['hooks']);
|
509 |
+
}
|
510 |
+
|
511 |
+
if ($options['idn'] !== false) {
|
512 |
+
$iri = new Requests_IRI($url);
|
513 |
+
$iri->host = Requests_IDNAEncoder::encode($iri->ihost);
|
514 |
+
$url = $iri->uri;
|
515 |
+
}
|
516 |
+
}
|
517 |
+
|
518 |
+
/**
|
519 |
+
* HTTP response parser
|
520 |
+
*
|
521 |
+
* @throws Requests_Exception On missing head/body separator (`requests.no_crlf_separator`)
|
522 |
+
* @throws Requests_Exception On missing head/body separator (`noversion`)
|
523 |
+
* @throws Requests_Exception On missing head/body separator (`toomanyredirects`)
|
524 |
+
*
|
525 |
+
* @param string $headers Full response text including headers and body
|
526 |
+
* @param string $url Original request URL
|
527 |
+
* @param array $req_headers Original $headers array passed to {@link request()}, in case we need to follow redirects
|
528 |
+
* @param array $req_data Original $data array passed to {@link request()}, in case we need to follow redirects
|
529 |
+
* @param array $options Original $options array passed to {@link request()}, in case we need to follow redirects
|
530 |
+
* @return Requests_Response
|
531 |
+
*/
|
532 |
+
protected static function parse_response($headers, $url, $req_headers, $req_data, $options) {
|
533 |
+
$return = new Requests_Response();
|
534 |
+
if (!$options['blocking']) {
|
535 |
+
return $return;
|
536 |
+
}
|
537 |
+
|
538 |
+
$return->raw = $headers;
|
539 |
+
$return->url = $url;
|
540 |
+
|
541 |
+
if (!$options['filename']) {
|
542 |
+
if (($pos = strpos($headers, "\r\n\r\n")) === false) {
|
543 |
+
// Crap!
|
544 |
+
throw new Requests_Exception('Missing header/body separator', 'requests.no_crlf_separator');
|
545 |
+
}
|
546 |
+
|
547 |
+
$headers = substr($return->raw, 0, $pos);
|
548 |
+
$return->body = substr($return->raw, $pos + strlen("\n\r\n\r"));
|
549 |
+
}
|
550 |
+
else {
|
551 |
+
$return->body = '';
|
552 |
+
}
|
553 |
+
// Pretend CRLF = LF for compatibility (RFC 2616, section 19.3)
|
554 |
+
$headers = str_replace("\r\n", "\n", $headers);
|
555 |
+
// Unfold headers (replace [CRLF] 1*( SP | HT ) with SP) as per RFC 2616 (section 2.2)
|
556 |
+
$headers = preg_replace('/\n[ \t]/', ' ', $headers);
|
557 |
+
$headers = explode("\n", $headers);
|
558 |
+
preg_match('#^HTTP/1\.\d[ \t]+(\d+)#i', array_shift($headers), $matches);
|
559 |
+
if (empty($matches)) {
|
560 |
+
throw new Requests_Exception('Response could not be parsed', 'noversion', $headers);
|
561 |
+
}
|
562 |
+
$return->status_code = (int) $matches[1];
|
563 |
+
if ($return->status_code >= 200 && $return->status_code < 300) {
|
564 |
+
$return->success = true;
|
565 |
+
}
|
566 |
+
|
567 |
+
foreach ($headers as $header) {
|
568 |
+
list($key, $value) = explode(':', $header, 2);
|
569 |
+
$value = trim($value);
|
570 |
+
preg_replace('#(\s+)#i', ' ', $value);
|
571 |
+
$return->headers[$key] = $value;
|
572 |
+
}
|
573 |
+
if (isset($return->headers['transfer-encoding'])) {
|
574 |
+
$return->body = self::decode_chunked($return->body);
|
575 |
+
unset($return->headers['transfer-encoding']);
|
576 |
+
}
|
577 |
+
if (isset($return->headers['content-encoding'])) {
|
578 |
+
$return->body = self::decompress($return->body);
|
579 |
+
}
|
580 |
+
|
581 |
+
//fsockopen and cURL compatibility
|
582 |
+
if (isset($return->headers['connection'])) {
|
583 |
+
unset($return->headers['connection']);
|
584 |
+
}
|
585 |
+
|
586 |
+
$options['hooks']->dispatch('requests.before_redirect_check', array(&$return, $req_headers, $req_data, $options));
|
587 |
+
|
588 |
+
if ((in_array($return->status_code, array(300, 301, 302, 303, 307)) || $return->status_code > 307 && $return->status_code < 400) && $options['follow_redirects'] === true) {
|
589 |
+
if (isset($return->headers['location']) && $options['redirected'] < $options['redirects']) {
|
590 |
+
if ($return->status_code === 303) {
|
591 |
+
$options['type'] = Requests::GET;
|
592 |
+
}
|
593 |
+
$options['redirected']++;
|
594 |
+
$location = $return->headers['location'];
|
595 |
+
if (strpos ($location, '/') === 0) {
|
596 |
+
// relative redirect, for compatibility make it absolute
|
597 |
+
$location = Requests_IRI::absolutize($url, $location);
|
598 |
+
$location = $location->uri;
|
599 |
+
}
|
600 |
+
$redirected = self::request($location, $req_headers, $req_data, false, $options);
|
601 |
+
$redirected->history[] = $return;
|
602 |
+
return $redirected;
|
603 |
+
}
|
604 |
+
elseif ($options['redirected'] >= $options['redirects']) {
|
605 |
+
throw new Requests_Exception('Too many redirects', 'toomanyredirects', $return);
|
606 |
+
}
|
607 |
+
}
|
608 |
+
|
609 |
+
$return->redirects = $options['redirected'];
|
610 |
+
|
611 |
+
$options['hooks']->dispatch('requests.after_request', array(&$return, $req_headers, $req_data, $options));
|
612 |
+
return $return;
|
613 |
+
}
|
614 |
+
|
615 |
+
/**
|
616 |
+
* Callback for `transport.internal.parse_response`
|
617 |
+
*
|
618 |
+
* Internal use only. Converts a raw HTTP response to a Requests_Response
|
619 |
+
* while still executing a multiple request.
|
620 |
+
*
|
621 |
+
* @param string $headers Full response text including headers and body
|
622 |
+
* @param array $request Request data as passed into {@see Requests::request_multiple()}
|
623 |
+
* @return null `$response` is either set to a Requests_Response instance, or a Requests_Exception object
|
624 |
+
*/
|
625 |
+
public static function parse_multiple(&$response, $request) {
|
626 |
+
try {
|
627 |
+
$response = self::parse_response($response, $request['url'], $request['headers'], $request['data'], $request['options']);
|
628 |
+
}
|
629 |
+
catch (Requests_Exception $e) {
|
630 |
+
$response = $e;
|
631 |
+
}
|
632 |
+
}
|
633 |
+
|
634 |
+
/**
|
635 |
+
* Decoded a chunked body as per RFC 2616
|
636 |
+
*
|
637 |
+
* @see http://tools.ietf.org/html/rfc2616#section-3.6.1
|
638 |
+
* @param string $data Chunked body
|
639 |
+
* @return string Decoded body
|
640 |
+
*/
|
641 |
+
protected static function decode_chunked($data) {
|
642 |
+
if (!preg_match('/^([0-9a-f]+)[^\r\n]*\r\n/i', trim($data))) {
|
643 |
+
return $data;
|
644 |
+
}
|
645 |
+
|
646 |
+
$decoded = '';
|
647 |
+
$encoded = $data;
|
648 |
+
|
649 |
+
while (true) {
|
650 |
+
$is_chunked = (bool) preg_match( '/^([0-9a-f]+)[^\r\n]*\r\n/i', $encoded, $matches );
|
651 |
+
if (!$is_chunked) {
|
652 |
+
// Looks like it's not chunked after all
|
653 |
+
return $data;
|
654 |
+
}
|
655 |
+
|
656 |
+
$length = hexdec(trim($matches[1]));
|
657 |
+
if ($length === 0) {
|
658 |
+
// Ignore trailer headers
|
659 |
+
return $decoded;
|
660 |
+
}
|
661 |
+
|
662 |
+
$chunk_length = strlen($matches[0]);
|
663 |
+
$decoded .= $part = substr($encoded, $chunk_length, $length);
|
664 |
+
$encoded = substr($encoded, $chunk_length + $length + 2);
|
665 |
+
|
666 |
+
if (trim($encoded) === '0' || empty($encoded)) {
|
667 |
+
return $decoded;
|
668 |
+
}
|
669 |
+
}
|
670 |
+
|
671 |
+
// We'll never actually get down here
|
672 |
+
// @codeCoverageIgnoreStart
|
673 |
+
}
|
674 |
+
// @codeCoverageIgnoreEnd
|
675 |
+
|
676 |
+
/**
|
677 |
+
* Convert a key => value array to a 'key: value' array for headers
|
678 |
+
*
|
679 |
+
* @param array $array Dictionary of header values
|
680 |
+
* @return array List of headers
|
681 |
+
*/
|
682 |
+
public static function flatten($array) {
|
683 |
+
$return = array();
|
684 |
+
foreach ($array as $key => $value) {
|
685 |
+
$return[] = "$key: $value";
|
686 |
+
}
|
687 |
+
return $return;
|
688 |
+
}
|
689 |
+
|
690 |
+
/**
|
691 |
+
* Convert a key => value array to a 'key: value' array for headers
|
692 |
+
*
|
693 |
+
* @deprecated Misspelling of {@see Requests::flatten}
|
694 |
+
* @param array $array Dictionary of header values
|
695 |
+
* @return array List of headers
|
696 |
+
*/
|
697 |
+
public static function flattern($array) {
|
698 |
+
return self::flatten($array);
|
699 |
+
}
|
700 |
+
|
701 |
+
/**
|
702 |
+
* Decompress an encoded body
|
703 |
+
*
|
704 |
+
* Implements gzip, compress and deflate. Guesses which it is by attempting
|
705 |
+
* to decode.
|
706 |
+
*
|
707 |
+
* @todo Make this smarter by defaulting to whatever the headers say first
|
708 |
+
* @param string $data Compressed data in one of the above formats
|
709 |
+
* @return string Decompressed string
|
710 |
+
*/
|
711 |
+
public static function decompress($data) {
|
712 |
+
if (substr($data, 0, 2) !== "\x1f\x8b" && substr($data, 0, 2) !== "\x78\x9c") {
|
713 |
+
// Not actually compressed. Probably cURL ruining this for us.
|
714 |
+
return $data;
|
715 |
+
}
|
716 |
+
|
717 |
+
if (function_exists('gzdecode') && ($decoded = @gzdecode($data)) !== false) {
|
718 |
+
return $decoded;
|
719 |
+
}
|
720 |
+
elseif (function_exists('gzinflate') && ($decoded = @gzinflate($data)) !== false) {
|
721 |
+
return $decoded;
|
722 |
+
}
|
723 |
+
elseif (($decoded = self::compatible_gzinflate($data)) !== false) {
|
724 |
+
return $decoded;
|
725 |
+
}
|
726 |
+
elseif (function_exists('gzuncompress') && ($decoded = @gzuncompress($data)) !== false) {
|
727 |
+
return $decoded;
|
728 |
+
}
|
729 |
+
|
730 |
+
return $data;
|
731 |
+
}
|
732 |
+
|
733 |
+
/**
|
734 |
+
* Decompression of deflated string while staying compatible with the majority of servers.
|
735 |
+
*
|
736 |
+
* Certain Servers will return deflated data with headers which PHP's gzinflate()
|
737 |
+
* function cannot handle out of the box. The following function has been created from
|
738 |
+
* various snippets on the gzinflate() PHP documentation.
|
739 |
+
*
|
740 |
+
* Warning: Magic numbers within. Due to the potential different formats that the compressed
|
741 |
+
* data may be returned in, some "magic offsets" are needed to ensure proper decompression
|
742 |
+
* takes place. For a simple progmatic way to determine the magic offset in use, see:
|
743 |
+
* http://core.trac.wordpress.org/ticket/18273
|
744 |
+
*
|
745 |
+
* @since 2.8.1
|
746 |
+
* @link http://core.trac.wordpress.org/ticket/18273
|
747 |
+
* @link http://au2.php.net/manual/en/function.gzinflate.php#70875
|
748 |
+
* @link http://au2.php.net/manual/en/function.gzinflate.php#77336
|
749 |
+
*
|
750 |
+
* @param string $gzData String to decompress.
|
751 |
+
* @return string|bool False on failure.
|
752 |
+
*/
|
753 |
+
public static function compatible_gzinflate($gzData) {
|
754 |
+
// Compressed data might contain a full zlib header, if so strip it for
|
755 |
+
// gzinflate()
|
756 |
+
if ( substr($gzData, 0, 3) == "\x1f\x8b\x08" ) {
|
757 |
+
$i = 10;
|
758 |
+
$flg = ord( substr($gzData, 3, 1) );
|
759 |
+
if ( $flg > 0 ) {
|
760 |
+
if ( $flg & 4 ) {
|
761 |
+
list($xlen) = unpack('v', substr($gzData, $i, 2) );
|
762 |
+
$i = $i + 2 + $xlen;
|
763 |
+
}
|
764 |
+
if ( $flg & 8 )
|
765 |
+
$i = strpos($gzData, "\0", $i) + 1;
|
766 |
+
if ( $flg & 16 )
|
767 |
+
$i = strpos($gzData, "\0", $i) + 1;
|
768 |
+
if ( $flg & 2 )
|
769 |
+
$i = $i + 2;
|
770 |
+
}
|
771 |
+
$decompressed = self::compatible_gzinflate( substr( $gzData, $i ) );
|
772 |
+
if ( false !== $decompressed ) {
|
773 |
+
return $decompressed;
|
774 |
+
}
|
775 |
+
}
|
776 |
+
|
777 |
+
// If the data is Huffman Encoded, we must first strip the leading 2
|
778 |
+
// byte Huffman marker for gzinflate()
|
779 |
+
// The response is Huffman coded by many compressors such as
|
780 |
+
// java.util.zip.Deflater, Ruby’s Zlib::Deflate, and .NET's
|
781 |
+
// System.IO.Compression.DeflateStream.
|
782 |
+
//
|
783 |
+
// See http://decompres.blogspot.com/ for a quick explanation of this
|
784 |
+
// data type
|
785 |
+
$huffman_encoded = false;
|
786 |
+
|
787 |
+
// low nibble of first byte should be 0x08
|
788 |
+
list( , $first_nibble ) = unpack( 'h', $gzData );
|
789 |
+
|
790 |
+
// First 2 bytes should be divisible by 0x1F
|
791 |
+
list( , $first_two_bytes ) = unpack( 'n', $gzData );
|
792 |
+
|
793 |
+
if ( 0x08 == $first_nibble && 0 == ( $first_two_bytes % 0x1F ) )
|
794 |
+
$huffman_encoded = true;
|
795 |
+
|
796 |
+
if ( $huffman_encoded ) {
|
797 |
+
if ( false !== ( $decompressed = @gzinflate( substr( $gzData, 2 ) ) ) )
|
798 |
+
return $decompressed;
|
799 |
+
}
|
800 |
+
|
801 |
+
if ( "\x50\x4b\x03\x04" == substr( $gzData, 0, 4 ) ) {
|
802 |
+
// ZIP file format header
|
803 |
+
// Offset 6: 2 bytes, General-purpose field
|
804 |
+
// Offset 26: 2 bytes, filename length
|
805 |
+
// Offset 28: 2 bytes, optional field length
|
806 |
+
// Offset 30: Filename field, followed by optional field, followed
|
807 |
+
// immediately by data
|
808 |
+
list( , $general_purpose_flag ) = unpack( 'v', substr( $gzData, 6, 2 ) );
|
809 |
+
|
810 |
+
// If the file has been compressed on the fly, 0x08 bit is set of
|
811 |
+
// the general purpose field. We can use this to differentiate
|
812 |
+
// between a compressed document, and a ZIP file
|
813 |
+
$zip_compressed_on_the_fly = ( 0x08 == (0x08 & $general_purpose_flag ) );
|
814 |
+
|
815 |
+
if ( ! $zip_compressed_on_the_fly ) {
|
816 |
+
// Don't attempt to decode a compressed zip file
|
817 |
+
return $gzData;
|
818 |
+
}
|
819 |
+
|
820 |
+
// Determine the first byte of data, based on the above ZIP header
|
821 |
+
// offsets:
|
822 |
+
$first_file_start = array_sum( unpack( 'v2', substr( $gzData, 26, 4 ) ) );
|
823 |
+
if ( false !== ( $decompressed = @gzinflate( substr( $gzData, 30 + $first_file_start ) ) ) ) {
|
824 |
+
return $decompressed;
|
825 |
+
}
|
826 |
+
return false;
|
827 |
+
}
|
828 |
+
|
829 |
+
// Finally fall back to straight gzinflate
|
830 |
+
if ( false !== ( $decompressed = @gzinflate( $gzData ) ) ) {
|
831 |
+
return $decompressed;
|
832 |
+
}
|
833 |
+
|
834 |
+
// Fallback for all above failing, not expected, but included for
|
835 |
+
// debugging and preventing regressions and to track stats
|
836 |
+
if ( false !== ( $decompressed = @gzinflate( substr( $gzData, 2 ) ) ) ) {
|
837 |
+
return $decompressed;
|
838 |
+
}
|
839 |
+
|
840 |
+
return false;
|
841 |
+
}
|
842 |
+
|
843 |
+
public static function match_domain($host, $reference) {
|
844 |
+
// Check for a direct match
|
845 |
+
if ($host === $reference) {
|
846 |
+
return true;
|
847 |
+
}
|
848 |
+
|
849 |
+
// Calculate the valid wildcard match if the host is not an IP address
|
850 |
+
// Also validates that the host has 3 parts or more, as per Firefox's
|
851 |
+
// ruleset.
|
852 |
+
$parts = explode('.', $host);
|
853 |
+
if (ip2long($host) === false && count($parts) >= 3) {
|
854 |
+
$parts[0] = '*';
|
855 |
+
$wildcard = implode('.', $parts);
|
856 |
+
if ($wildcard === $reference) {
|
857 |
+
return true;
|
858 |
+
}
|
859 |
+
}
|
860 |
+
|
861 |
+
return false;
|
862 |
+
}
|
863 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Auth.php
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Authentication provider interface
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
* @subpackage Authentication
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Authentication provider interface
|
11 |
+
*
|
12 |
+
* Implement this interface to act as an authentication provider.
|
13 |
+
*
|
14 |
+
* Parameters should be passed via the constructor where possible, as this
|
15 |
+
* makes it much easier for users to use your provider.
|
16 |
+
*
|
17 |
+
* @see Requests_Hooks
|
18 |
+
* @package Requests
|
19 |
+
* @subpackage Authentication
|
20 |
+
*/
|
21 |
+
interface Requests_Auth {
|
22 |
+
/**
|
23 |
+
* Register hooks as needed
|
24 |
+
*
|
25 |
+
* This method is called in {@see Requests::request} when the user has set
|
26 |
+
* an instance as the 'auth' option. Use this callback to register all the
|
27 |
+
* hooks you'll need.
|
28 |
+
*
|
29 |
+
* @see Requests_Hooks::register
|
30 |
+
* @param Requests_Hooks $hooks Hook system
|
31 |
+
*/
|
32 |
+
public function register(Requests_Hooks &$hooks);
|
33 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Auth/Basic.php
ADDED
@@ -0,0 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Basic Authentication provider
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
* @subpackage Authentication
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Basic Authentication provider
|
11 |
+
*
|
12 |
+
* Provides a handler for Basic HTTP authentication via the Authorization
|
13 |
+
* header.
|
14 |
+
*
|
15 |
+
* @package Requests
|
16 |
+
* @subpackage Authentication
|
17 |
+
*/
|
18 |
+
class Requests_Auth_Basic implements Requests_Auth {
|
19 |
+
/**
|
20 |
+
* Username
|
21 |
+
*
|
22 |
+
* @var string
|
23 |
+
*/
|
24 |
+
public $user;
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Password
|
28 |
+
*
|
29 |
+
* @var string
|
30 |
+
*/
|
31 |
+
public $pass;
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Constructor
|
35 |
+
*
|
36 |
+
* @throws Requests_Exception On incorrect number of arguments (`authbasicbadargs`)
|
37 |
+
* @param array|null $args Array of user and password. Must have exactly two elements
|
38 |
+
*/
|
39 |
+
public function __construct($args = null) {
|
40 |
+
if (is_array($args)) {
|
41 |
+
if (count($args) !== 2) {
|
42 |
+
throw new Requests_Exception('Invalid number of arguments', 'authbasicbadargs');
|
43 |
+
}
|
44 |
+
|
45 |
+
list($this->user, $this->pass) = $args;
|
46 |
+
}
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Register the necessary callbacks
|
51 |
+
*
|
52 |
+
* @see curl_before_send
|
53 |
+
* @see fsockopen_header
|
54 |
+
* @param Requests_Hooks $hooks Hook system
|
55 |
+
*/
|
56 |
+
public function register(Requests_Hooks &$hooks) {
|
57 |
+
$hooks->register('curl.before_send', array(&$this, 'curl_before_send'));
|
58 |
+
$hooks->register('fsockopen.after_headers', array(&$this, 'fsockopen_header'));
|
59 |
+
}
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Set cURL parameters before the data is sent
|
63 |
+
*
|
64 |
+
* @param resource $handle cURL resource
|
65 |
+
*/
|
66 |
+
public function curl_before_send(&$handle) {
|
67 |
+
curl_setopt($handle, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
|
68 |
+
curl_setopt($handle, CURLOPT_USERPWD, $this->getAuthString());
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Add extra headers to the request before sending
|
73 |
+
*
|
74 |
+
* @param string $out HTTP header string
|
75 |
+
*/
|
76 |
+
public function fsockopen_header(&$out) {
|
77 |
+
$out .= "Authorization: Basic " . base64_encode($this->getAuthString()) . "\r\n";
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* Get the authentication string (user:pass)
|
82 |
+
*
|
83 |
+
* @return string
|
84 |
+
*/
|
85 |
+
public function getAuthString() {
|
86 |
+
return $this->user . ':' . $this->pass;
|
87 |
+
}
|
88 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Cookie.php
ADDED
@@ -0,0 +1,171 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Cookie storage object
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
* @subpackage Cookies
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Cookie storage object
|
11 |
+
*
|
12 |
+
* @package Requests
|
13 |
+
* @subpackage Cookies
|
14 |
+
*/
|
15 |
+
class Requests_Cookie {
|
16 |
+
/**
|
17 |
+
*
|
18 |
+
* @var string
|
19 |
+
*/
|
20 |
+
public $name;
|
21 |
+
|
22 |
+
/**
|
23 |
+
* @var string
|
24 |
+
*/
|
25 |
+
public $value;
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Cookie attributes
|
29 |
+
*
|
30 |
+
* Valid keys are (currently) path, domain, expires, max-age, secure and
|
31 |
+
* httponly.
|
32 |
+
*
|
33 |
+
* @var array
|
34 |
+
*/
|
35 |
+
public $attributes = array();
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Create a new cookie object
|
39 |
+
*
|
40 |
+
* @param string $name
|
41 |
+
* @param string $value
|
42 |
+
* @param array $attributes Associative array of attribute data
|
43 |
+
*/
|
44 |
+
public function __construct($name, $value, $attributes = array()) {
|
45 |
+
$this->name = $name;
|
46 |
+
$this->value = $value;
|
47 |
+
$this->attributes = $attributes;
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Format a cookie for a Cookie header
|
52 |
+
*
|
53 |
+
* This is used when sending cookies to a server.
|
54 |
+
*
|
55 |
+
* @return string Cookie formatted for Cookie header
|
56 |
+
*/
|
57 |
+
public function formatForHeader() {
|
58 |
+
return sprintf('%s=%s', $this->name, $this->value);
|
59 |
+
}
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Format a cookie for a Set-Cookie header
|
63 |
+
*
|
64 |
+
* This is used when sending cookies to clients. This isn't really
|
65 |
+
* applicable to client-side usage, but might be handy for debugging.
|
66 |
+
*
|
67 |
+
* @return string Cookie formatted for Set-Cookie header
|
68 |
+
*/
|
69 |
+
public function formatForSetCookie() {
|
70 |
+
$header_value = $this->formatForHeader();
|
71 |
+
if (!empty($this->attributes)) {
|
72 |
+
$parts = array();
|
73 |
+
foreach ($this->attributes as $key => $value) {
|
74 |
+
// Ignore non-associative attributes
|
75 |
+
if (is_numeric($key)) {
|
76 |
+
$parts[] = $value;
|
77 |
+
}
|
78 |
+
else {
|
79 |
+
$parts[] = sprintf('%s=%s', $key, $value);
|
80 |
+
}
|
81 |
+
}
|
82 |
+
|
83 |
+
$header_value .= '; ' . implode('; ', $parts);
|
84 |
+
}
|
85 |
+
return $header_value;
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* Get the cookie value
|
90 |
+
*
|
91 |
+
* Attributes and other data can be accessed via methods.
|
92 |
+
*/
|
93 |
+
public function __toString() {
|
94 |
+
return $this->value;
|
95 |
+
}
|
96 |
+
|
97 |
+
/**
|
98 |
+
* Parse a cookie string into a cookie object
|
99 |
+
*
|
100 |
+
* Based on Mozilla's parsing code in Firefox and related projects, which
|
101 |
+
* is an intentional deviation from RFC 2109 and RFC 2616. RFC 6265
|
102 |
+
* specifies some of this handling, but not in a thorough manner.
|
103 |
+
*
|
104 |
+
* @param string Cookie header value (from a Set-Cookie header)
|
105 |
+
* @return Requests_Cookie Parsed cookie object
|
106 |
+
*/
|
107 |
+
public static function parse($string, $name = '') {
|
108 |
+
$parts = explode(';', $string);
|
109 |
+
$kvparts = array_shift($parts);
|
110 |
+
|
111 |
+
if (!empty($name)) {
|
112 |
+
$value = $string;
|
113 |
+
}
|
114 |
+
elseif (strpos($kvparts, '=') === false) {
|
115 |
+
// Some sites might only have a value without the equals separator.
|
116 |
+
// Deviate from RFC 6265 and pretend it was actually a blank name
|
117 |
+
// (`=foo`)
|
118 |
+
//
|
119 |
+
// https://bugzilla.mozilla.org/show_bug.cgi?id=169091
|
120 |
+
$name = '';
|
121 |
+
$value = $kvparts;
|
122 |
+
}
|
123 |
+
else {
|
124 |
+
list($name, $value) = explode('=', $kvparts, 2);
|
125 |
+
}
|
126 |
+
$name = trim($name);
|
127 |
+
$value = trim($value);
|
128 |
+
|
129 |
+
// Attribute key are handled case-insensitively
|
130 |
+
$attributes = new Requests_Utility_CaseInsensitiveDictionary();
|
131 |
+
|
132 |
+
if (!empty($parts)) {
|
133 |
+
foreach ($parts as $part) {
|
134 |
+
if (strpos($part, '=') === false) {
|
135 |
+
$part_key = $part;
|
136 |
+
$part_value = true;
|
137 |
+
}
|
138 |
+
else {
|
139 |
+
list($part_key, $part_value) = explode('=', $part, 2);
|
140 |
+
$part_value = trim($part_value);
|
141 |
+
}
|
142 |
+
|
143 |
+
$part_key = trim($part_key);
|
144 |
+
$attributes[$part_key] = $part_value;
|
145 |
+
}
|
146 |
+
}
|
147 |
+
|
148 |
+
return new Requests_Cookie($name, $value, $attributes);
|
149 |
+
}
|
150 |
+
|
151 |
+
/**
|
152 |
+
* Parse all Set-Cookie headers from request headers
|
153 |
+
*
|
154 |
+
* @param Requests_Response_Headers $headers
|
155 |
+
* @return array
|
156 |
+
*/
|
157 |
+
public static function parseFromHeaders(Requests_Response_Headers $headers) {
|
158 |
+
$cookie_headers = $headers->getValues('Set-Cookie');
|
159 |
+
if (empty($cookie_headers)) {
|
160 |
+
return array();
|
161 |
+
}
|
162 |
+
|
163 |
+
$cookies = array();
|
164 |
+
foreach ($cookie_headers as $header) {
|
165 |
+
$parsed = self::parse($header);
|
166 |
+
$cookies[$parsed->name] = $parsed;
|
167 |
+
}
|
168 |
+
|
169 |
+
return $cookies;
|
170 |
+
}
|
171 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Cookie/Jar.php
ADDED
@@ -0,0 +1,146 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Cookie holder object
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
* @subpackage Cookies
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Cookie holder object
|
11 |
+
*
|
12 |
+
* @package Requests
|
13 |
+
* @subpackage Cookies
|
14 |
+
*/
|
15 |
+
class Requests_Cookie_Jar implements ArrayAccess, IteratorAggregate {
|
16 |
+
/**
|
17 |
+
* Actual item data
|
18 |
+
*
|
19 |
+
* @var array
|
20 |
+
*/
|
21 |
+
protected $cookies = array();
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Create a new jar
|
25 |
+
*
|
26 |
+
* @param array $cookies Existing cookie values
|
27 |
+
*/
|
28 |
+
public function __construct($cookies = array()) {
|
29 |
+
$this->cookies = $cookies;
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Normalise cookie data into a Requests_Cookie
|
34 |
+
*
|
35 |
+
* @param string|Requests_Cookie $cookie
|
36 |
+
* @return Requests_Cookie
|
37 |
+
*/
|
38 |
+
public function normalizeCookie($cookie, $key = null) {
|
39 |
+
if ($cookie instanceof Requests_Cookie) {
|
40 |
+
return $cookie;
|
41 |
+
}
|
42 |
+
|
43 |
+
return Requests_Cookie::parse($cookie, $key);
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
* Check if the given item exists
|
48 |
+
*
|
49 |
+
* @param string $key Item key
|
50 |
+
* @return boolean Does the item exist?
|
51 |
+
*/
|
52 |
+
public function offsetExists($key) {
|
53 |
+
return isset($this->cookies[$key]);
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Get the value for the item
|
58 |
+
*
|
59 |
+
* @param string $key Item key
|
60 |
+
* @return string Item value
|
61 |
+
*/
|
62 |
+
public function offsetGet($key) {
|
63 |
+
if (!isset($this->cookies[$key]))
|
64 |
+
return null;
|
65 |
+
|
66 |
+
return $this->cookies[$key];
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Set the given item
|
71 |
+
*
|
72 |
+
* @throws Requests_Exception On attempting to use dictionary as list (`invalidset`)
|
73 |
+
*
|
74 |
+
* @param string $key Item name
|
75 |
+
* @param string $value Item value
|
76 |
+
*/
|
77 |
+
public function offsetSet($key, $value) {
|
78 |
+
if ($key === null) {
|
79 |
+
throw new Requests_Exception('Object is a dictionary, not a list', 'invalidset');
|
80 |
+
}
|
81 |
+
|
82 |
+
$this->cookies[$key] = $value;
|
83 |
+
}
|
84 |
+
|
85 |
+
/**
|
86 |
+
* Unset the given header
|
87 |
+
*
|
88 |
+
* @param string $key
|
89 |
+
*/
|
90 |
+
public function offsetUnset($key) {
|
91 |
+
unset($this->cookies[$key]);
|
92 |
+
}
|
93 |
+
|
94 |
+
/**
|
95 |
+
* Get an iterator for the data
|
96 |
+
*
|
97 |
+
* @return ArrayIterator
|
98 |
+
*/
|
99 |
+
public function getIterator() {
|
100 |
+
return new ArrayIterator($this->cookies);
|
101 |
+
}
|
102 |
+
|
103 |
+
/**
|
104 |
+
* Register the cookie handler with the request's hooking system
|
105 |
+
*
|
106 |
+
* @param Requests_Hooker $hooks Hooking system
|
107 |
+
*/
|
108 |
+
public function register(Requests_Hooker $hooks) {
|
109 |
+
$hooks->register('requests.before_request', array($this, 'before_request'));
|
110 |
+
$hooks->register('requests.before_redirect_check', array($this, 'before_redirect_check'));
|
111 |
+
}
|
112 |
+
|
113 |
+
/**
|
114 |
+
* Add Cookie header to a request if we have any
|
115 |
+
*
|
116 |
+
* As per RFC 6265, cookies are separated by '; '
|
117 |
+
*
|
118 |
+
* @param string $url
|
119 |
+
* @param array $headers
|
120 |
+
* @param array $data
|
121 |
+
* @param string $type
|
122 |
+
* @param array $options
|
123 |
+
*/
|
124 |
+
public function before_request(&$url, &$headers, &$data, &$type, &$options) {
|
125 |
+
if (!empty($this->cookies)) {
|
126 |
+
$cookies = array();
|
127 |
+
foreach ($this->cookies as $key => $cookie) {
|
128 |
+
$cookie = $this->normalizeCookie($cookie, $key);
|
129 |
+
$cookies[] = $cookie->formatForHeader();
|
130 |
+
}
|
131 |
+
|
132 |
+
$headers['Cookie'] = implode('; ', $cookies);
|
133 |
+
}
|
134 |
+
}
|
135 |
+
|
136 |
+
/**
|
137 |
+
* Parse all cookies from a response and attach them to the response
|
138 |
+
*
|
139 |
+
* @var Requests_Response $response
|
140 |
+
*/
|
141 |
+
public function before_redirect_check(Requests_Response &$return) {
|
142 |
+
$cookies = Requests_Cookie::parseFromHeaders($return->headers);
|
143 |
+
$this->cookies = array_merge($this->cookies, $cookies);
|
144 |
+
$return->cookies = $this;
|
145 |
+
}
|
146 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception.php
ADDED
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for HTTP requests
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for HTTP requests
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception extends Exception {
|
14 |
+
/**
|
15 |
+
* Type of exception
|
16 |
+
*
|
17 |
+
* @var string
|
18 |
+
*/
|
19 |
+
protected $type;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Data associated with the exception
|
23 |
+
*
|
24 |
+
* @var mixed
|
25 |
+
*/
|
26 |
+
protected $data;
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Create a new exception
|
30 |
+
*
|
31 |
+
* @param string $message Exception message
|
32 |
+
* @param string $type Exception type
|
33 |
+
* @param mixed $data Associated data
|
34 |
+
* @param integer $code Exception numerical code, if applicable
|
35 |
+
*/
|
36 |
+
public function __construct($message, $type, $data = null, $code = 0) {
|
37 |
+
parent::__construct($message, $code);
|
38 |
+
|
39 |
+
$this->type = $type;
|
40 |
+
$this->data = $data;
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Like {@see getCode()}, but a string code.
|
45 |
+
*
|
46 |
+
* @codeCoverageIgnore
|
47 |
+
* @return string
|
48 |
+
*/
|
49 |
+
public function getType() {
|
50 |
+
return $this->type;
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* Gives any relevant data
|
55 |
+
*
|
56 |
+
* @codeCoverageIgnore
|
57 |
+
* @return mixed
|
58 |
+
*/
|
59 |
+
public function getData() {
|
60 |
+
return $this->data;
|
61 |
+
}
|
62 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP.php
ADDED
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception based on HTTP response
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception based on HTTP response
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP extends Requests_Exception {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 0;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Unknown';
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Create a new exception
|
30 |
+
*
|
31 |
+
* There is no mechanism to pass in the status code, as this is set by the
|
32 |
+
* subclass used. Reason phrases can vary, however.
|
33 |
+
*
|
34 |
+
* @param string $reason Reason phrase
|
35 |
+
* @param mixed $data Associated data
|
36 |
+
*/
|
37 |
+
public function __construct($reason = null, $data = null) {
|
38 |
+
if ($reason !== null) {
|
39 |
+
$this->reason = $reason;
|
40 |
+
}
|
41 |
+
|
42 |
+
$message = sprintf('%d %s', $this->code, $this->reason);
|
43 |
+
parent::__construct($message, 'httpresponse', $data, $this->code);
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
* Get the status message
|
48 |
+
*/
|
49 |
+
public function getReason() {
|
50 |
+
return $this->reason;
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* Get the correct exception class for a given error code
|
55 |
+
*
|
56 |
+
* @param int $code HTTP status code
|
57 |
+
* @return string Exception class name to use
|
58 |
+
*/
|
59 |
+
public static function get_class($code) {
|
60 |
+
$class = sprintf('Requests_Exception_HTTP_%d', $code);
|
61 |
+
if (class_exists($class)) {
|
62 |
+
return $class;
|
63 |
+
}
|
64 |
+
|
65 |
+
return 'Requests_Exception_HTTP_Unknown';
|
66 |
+
}
|
67 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/400.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 400 Bad Request responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 400 Bad Request responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_400 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 400;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Bad Request';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/401.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 401 Unauthorized responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 401 Unauthorized responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_401 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 401;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Unauthorized';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/402.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 402 Payment Required responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 402 Payment Required responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_402 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 402;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Payment Required';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/403.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 403 Forbidden responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 403 Forbidden responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_403 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 403;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Forbidden';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/404.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 404 Not Found responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 404 Not Found responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_404 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 404;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Not Found';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/405.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 405 Method Not Allowed responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 405 Method Not Allowed responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_405 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 405;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Method Not Allowed';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/406.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 406 Not Acceptable responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 406 Not Acceptable responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_406 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 406;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Not Acceptable';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/407.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 407 Proxy Authentication Required responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 407 Proxy Authentication Required responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_407 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 407;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Proxy Authentication Required';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/408.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 408 Request Timeout responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 408 Request Timeout responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_408 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 408;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Request Timeout';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/409.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 409 Conflict responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 409 Conflict responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_409 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 409;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Conflict';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/410.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 410 Gone responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 410 Gone responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_410 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 410;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Gone';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/411.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 411 Length Required responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 411 Length Required responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_411 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 411;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Length Required';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/412.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 412 Precondition Failed responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 412 Precondition Failed responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_412 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 412;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Precondition Failed';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/413.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 413 Request Entity Too Large responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 413 Request Entity Too Large responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_413 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 413;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Request Entity Too Large';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/414.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 414 Request-URI Too Large responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 414 Request-URI Too Large responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_414 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 414;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Request-URI Too Large';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/415.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 415 Unsupported Media Type responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 415 Unsupported Media Type responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_415 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 415;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Unsupported Media Type';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/416.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 416 Requested Range Not Satisfiable responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 416 Requested Range Not Satisfiable responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_416 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 416;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Requested Range Not Satisfiable';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/417.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 417 Expectation Failed responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 417 Expectation Failed responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_417 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 417;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Expectation Failed';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/418.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 418 I'm A Teapot responses
|
4 |
+
*
|
5 |
+
* @see http://tools.ietf.org/html/rfc2324
|
6 |
+
* @package Requests
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Exception for 418 I'm A Teapot responses
|
11 |
+
*
|
12 |
+
* @see http://tools.ietf.org/html/rfc2324
|
13 |
+
* @package Requests
|
14 |
+
*/
|
15 |
+
class Requests_Exception_HTTP_418 extends Requests_Exception_HTTP {
|
16 |
+
/**
|
17 |
+
* HTTP status code
|
18 |
+
*
|
19 |
+
* @var integer
|
20 |
+
*/
|
21 |
+
protected $code = 418;
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Reason phrase
|
25 |
+
*
|
26 |
+
* @var string
|
27 |
+
*/
|
28 |
+
protected $reason = "I'm A Teapot";
|
29 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/428.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 428 Precondition Required responses
|
4 |
+
*
|
5 |
+
* @see http://tools.ietf.org/html/rfc6585
|
6 |
+
* @package Requests
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Exception for 428 Precondition Required responses
|
11 |
+
*
|
12 |
+
* @see http://tools.ietf.org/html/rfc6585
|
13 |
+
* @package Requests
|
14 |
+
*/
|
15 |
+
class Requests_Exception_HTTP_428 extends Requests_Exception_HTTP {
|
16 |
+
/**
|
17 |
+
* HTTP status code
|
18 |
+
*
|
19 |
+
* @var integer
|
20 |
+
*/
|
21 |
+
protected $code = 428;
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Reason phrase
|
25 |
+
*
|
26 |
+
* @var string
|
27 |
+
*/
|
28 |
+
protected $reason = 'Precondition Required';
|
29 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/429.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 429 Too Many Requests responses
|
4 |
+
*
|
5 |
+
* @see http://tools.ietf.org/html/draft-nottingham-http-new-status-04
|
6 |
+
* @package Requests
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Exception for 429 Too Many Requests responses
|
11 |
+
*
|
12 |
+
* @see http://tools.ietf.org/html/draft-nottingham-http-new-status-04
|
13 |
+
* @package Requests
|
14 |
+
*/
|
15 |
+
class Requests_Exception_HTTP_429 extends Requests_Exception_HTTP {
|
16 |
+
/**
|
17 |
+
* HTTP status code
|
18 |
+
*
|
19 |
+
* @var integer
|
20 |
+
*/
|
21 |
+
protected $code = 429;
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Reason phrase
|
25 |
+
*
|
26 |
+
* @var string
|
27 |
+
*/
|
28 |
+
protected $reason = 'Too Many Requests';
|
29 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/431.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 431 Request Header Fields Too Large responses
|
4 |
+
*
|
5 |
+
* @see http://tools.ietf.org/html/rfc6585
|
6 |
+
* @package Requests
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Exception for 431 Request Header Fields Too Large responses
|
11 |
+
*
|
12 |
+
* @see http://tools.ietf.org/html/rfc6585
|
13 |
+
* @package Requests
|
14 |
+
*/
|
15 |
+
class Requests_Exception_HTTP_431 extends Requests_Exception_HTTP {
|
16 |
+
/**
|
17 |
+
* HTTP status code
|
18 |
+
*
|
19 |
+
* @var integer
|
20 |
+
*/
|
21 |
+
protected $code = 431;
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Reason phrase
|
25 |
+
*
|
26 |
+
* @var string
|
27 |
+
*/
|
28 |
+
protected $reason = 'Request Header Fields Too Large';
|
29 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/500.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 500 Internal Server Error responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 500 Internal Server Error responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_500 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 500;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Internal Server Error';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/501.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 501 Not Implemented responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 501 Not Implemented responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_501 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 501;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Not Implemented';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/502.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 502 Bad Gateway responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 502 Bad Gateway responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_502 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 502;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Bad Gateway';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/503.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 503 Service Unavailable responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 503 Service Unavailable responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_503 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 503;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Service Unavailable';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/504.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 504 Gateway Timeout responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 504 Gateway Timeout responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_504 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 504;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Gateway Timeout';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/505.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 505 HTTP Version Not Supported responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for 505 HTTP Version Not Supported responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_505 extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 505;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'HTTP Version Not Supported';
|
27 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/511.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for 511 Network Authentication Required responses
|
4 |
+
*
|
5 |
+
* @see http://tools.ietf.org/html/rfc6585
|
6 |
+
* @package Requests
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Exception for 511 Network Authentication Required responses
|
11 |
+
*
|
12 |
+
* @see http://tools.ietf.org/html/rfc6585
|
13 |
+
* @package Requests
|
14 |
+
*/
|
15 |
+
class Requests_Exception_HTTP_511 extends Requests_Exception_HTTP {
|
16 |
+
/**
|
17 |
+
* HTTP status code
|
18 |
+
*
|
19 |
+
* @var integer
|
20 |
+
*/
|
21 |
+
protected $code = 511;
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Reason phrase
|
25 |
+
*
|
26 |
+
* @var string
|
27 |
+
*/
|
28 |
+
protected $reason = 'Network Authentication Required';
|
29 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Exception/HTTP/Unknown.php
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Exception for unknown status responses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Exception for unknown status responses
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Exception_HTTP_Unknown extends Requests_Exception_HTTP {
|
14 |
+
/**
|
15 |
+
* HTTP status code
|
16 |
+
*
|
17 |
+
* @var integer
|
18 |
+
*/
|
19 |
+
protected $code = 0;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Reason phrase
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $reason = 'Unknown';
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Create a new exception
|
30 |
+
*
|
31 |
+
* If `$data` is an instance of {@see Requests_Response}, uses the status
|
32 |
+
* code from it. Otherwise, sets as 0
|
33 |
+
*
|
34 |
+
* @param string $reason Reason phrase
|
35 |
+
* @param mixed $data Associated data
|
36 |
+
*/
|
37 |
+
public function __construct($reason = null, $data = null) {
|
38 |
+
if ($data instanceof Requests_Response) {
|
39 |
+
$this->code = $data->status_code;
|
40 |
+
}
|
41 |
+
|
42 |
+
parent::__construct($reason, $data);
|
43 |
+
}
|
44 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Hooker.php
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Event dispatcher
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
* @subpackage Utilities
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Event dispatcher
|
11 |
+
*
|
12 |
+
* @package Requests
|
13 |
+
* @subpackage Utilities
|
14 |
+
*/
|
15 |
+
interface Requests_Hooker {
|
16 |
+
/**
|
17 |
+
* Register a callback for a hook
|
18 |
+
*
|
19 |
+
* @param string $hook Hook name
|
20 |
+
* @param callback $callback Function/method to call on event
|
21 |
+
* @param int $priority Priority number. <0 is executed earlier, >0 is executed later
|
22 |
+
*/
|
23 |
+
public function register($hook, $callback, $priority = 0);
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Dispatch a message
|
27 |
+
*
|
28 |
+
* @param string $hook Hook name
|
29 |
+
* @param array $parameters Parameters to pass to callbacks
|
30 |
+
* @return boolean Successfulness
|
31 |
+
*/
|
32 |
+
public function dispatch($hook, $parameters = array());
|
33 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Hooks.php
ADDED
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Handles adding and dispatching events
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
* @subpackage Utilities
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Handles adding and dispatching events
|
11 |
+
*
|
12 |
+
* @package Requests
|
13 |
+
* @subpackage Utilities
|
14 |
+
*/
|
15 |
+
class Requests_Hooks implements Requests_Hooker {
|
16 |
+
/**
|
17 |
+
* Constructor
|
18 |
+
*/
|
19 |
+
public function __construct() {
|
20 |
+
// pass
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Register a callback for a hook
|
25 |
+
*
|
26 |
+
* @param string $hook Hook name
|
27 |
+
* @param callback $callback Function/method to call on event
|
28 |
+
* @param int $priority Priority number. <0 is executed earlier, >0 is executed later
|
29 |
+
*/
|
30 |
+
public function register($hook, $callback, $priority = 0) {
|
31 |
+
if (!isset($this->hooks[$hook])) {
|
32 |
+
$this->hooks[$hook] = array();
|
33 |
+
}
|
34 |
+
if (!isset($this->hooks[$hook][$priority])) {
|
35 |
+
$this->hooks[$hook][$priority] = array();
|
36 |
+
}
|
37 |
+
|
38 |
+
$this->hooks[$hook][$priority][] = $callback;
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Dispatch a message
|
43 |
+
*
|
44 |
+
* @param string $hook Hook name
|
45 |
+
* @param array $parameters Parameters to pass to callbacks
|
46 |
+
* @return boolean Successfulness
|
47 |
+
*/
|
48 |
+
public function dispatch($hook, $parameters = array()) {
|
49 |
+
if (empty($this->hooks[$hook])) {
|
50 |
+
return false;
|
51 |
+
}
|
52 |
+
|
53 |
+
foreach ($this->hooks[$hook] as $priority => $hooked) {
|
54 |
+
foreach ($hooked as $callback) {
|
55 |
+
call_user_func_array($callback, $parameters);
|
56 |
+
}
|
57 |
+
}
|
58 |
+
|
59 |
+
return true;
|
60 |
+
}
|
61 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/IDNAEncoder.php
ADDED
@@ -0,0 +1,390 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* IDNA URL encoder
|
5 |
+
*
|
6 |
+
* Note: Not fully compliant, as nameprep does nothing yet.
|
7 |
+
*
|
8 |
+
* @package Requests
|
9 |
+
* @subpackage Utilities
|
10 |
+
* @see http://tools.ietf.org/html/rfc3490 IDNA specification
|
11 |
+
* @see http://tools.ietf.org/html/rfc3492 Punycode/Bootstrap specification
|
12 |
+
*/
|
13 |
+
class Requests_IDNAEncoder {
|
14 |
+
/**
|
15 |
+
* ACE prefix used for IDNA
|
16 |
+
*
|
17 |
+
* @see http://tools.ietf.org/html/rfc3490#section-5
|
18 |
+
* @var string
|
19 |
+
*/
|
20 |
+
const ACE_PREFIX = 'xn--';
|
21 |
+
|
22 |
+
/**#@+
|
23 |
+
* Bootstrap constant for Punycode
|
24 |
+
*
|
25 |
+
* @see http://tools.ietf.org/html/rfc3492#section-5
|
26 |
+
* @var int
|
27 |
+
*/
|
28 |
+
const BOOTSTRAP_BASE = 36;
|
29 |
+
const BOOTSTRAP_TMIN = 1;
|
30 |
+
const BOOTSTRAP_TMAX = 26;
|
31 |
+
const BOOTSTRAP_SKEW = 38;
|
32 |
+
const BOOTSTRAP_DAMP = 700;
|
33 |
+
const BOOTSTRAP_INITIAL_BIAS = 72;
|
34 |
+
const BOOTSTRAP_INITIAL_N = 128;
|
35 |
+
/**#@-*/
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Encode a hostname using Punycode
|
39 |
+
*
|
40 |
+
* @param string $string Hostname
|
41 |
+
* @return string Punycode-encoded hostname
|
42 |
+
*/
|
43 |
+
public static function encode($string) {
|
44 |
+
$parts = explode('.', $string);
|
45 |
+
foreach ($parts as &$part) {
|
46 |
+
$part = self::to_ascii($part);
|
47 |
+
}
|
48 |
+
return implode('.', $parts);
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Convert a UTF-8 string to an ASCII string using Punycode
|
53 |
+
*
|
54 |
+
* @throws Requests_Exception Provided string longer than 64 ASCII characters (`idna.provided_too_long`)
|
55 |
+
* @throws Requests_Exception Prepared string longer than 64 ASCII characters (`idna.prepared_too_long`)
|
56 |
+
* @throws Requests_Exception Provided string already begins with xn-- (`idna.provided_is_prefixed`)
|
57 |
+
* @throws Requests_Exception Encoded string longer than 64 ASCII characters (`idna.encoded_too_long`)
|
58 |
+
*
|
59 |
+
* @param string $string ASCII or UTF-8 string (max length 64 characters)
|
60 |
+
* @return string ASCII string
|
61 |
+
*/
|
62 |
+
public static function to_ascii($string) {
|
63 |
+
// Step 1: Check if the string is already ASCII
|
64 |
+
if (self::is_ascii($string)) {
|
65 |
+
// Skip to step 7
|
66 |
+
if (strlen($string) < 64) {
|
67 |
+
return $string;
|
68 |
+
}
|
69 |
+
|
70 |
+
throw new Requests_Exception('Provided string is too long', 'idna.provided_too_long', $string);
|
71 |
+
}
|
72 |
+
|
73 |
+
// Step 2: nameprep
|
74 |
+
$string = self::nameprep($string);
|
75 |
+
|
76 |
+
// Step 3: UseSTD3ASCIIRules is false, continue
|
77 |
+
// Step 4: Check if it's ASCII now
|
78 |
+
if (self::is_ascii($string)) {
|
79 |
+
// Skip to step 7
|
80 |
+
if (strlen($string) < 64) {
|
81 |
+
return $string;
|
82 |
+
}
|
83 |
+
|
84 |
+
throw new Requests_Exception('Prepared string is too long', 'idna.prepared_too_long', $string);
|
85 |
+
}
|
86 |
+
|
87 |
+
// Step 5: Check ACE prefix
|
88 |
+
if (strpos($string, self::ACE_PREFIX) === 0) {
|
89 |
+
throw new Requests_Exception('Provided string begins with ACE prefix', 'idna.provided_is_prefixed', $string);
|
90 |
+
}
|
91 |
+
|
92 |
+
// Step 6: Encode with Punycode
|
93 |
+
$string = self::punycode_encode($string);
|
94 |
+
|
95 |
+
// Step 7: Prepend ACE prefix
|
96 |
+
$string = self::ACE_PREFIX . $string;
|
97 |
+
|
98 |
+
// Step 8: Check size
|
99 |
+
if (strlen($string) < 64) {
|
100 |
+
return $string;
|
101 |
+
}
|
102 |
+
|
103 |
+
throw new Requests_Exception('Encoded string is too long', 'idna.encoded_too_long', $string);
|
104 |
+
}
|
105 |
+
|
106 |
+
/**
|
107 |
+
* Check whether a given string contains only ASCII characters
|
108 |
+
*
|
109 |
+
* @internal (Testing found regex was the fastest implementation)
|
110 |
+
*
|
111 |
+
* @param string $string
|
112 |
+
* @return bool Is the string ASCII-only?
|
113 |
+
*/
|
114 |
+
protected static function is_ascii($string) {
|
115 |
+
return (preg_match('/(?:[^\x00-\x7F])/', $string) !== 1);
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* Prepare a string for use as an IDNA name
|
120 |
+
*
|
121 |
+
* @todo Implement this based on RFC 3491 and the newer 5891
|
122 |
+
* @param string $string
|
123 |
+
* @return string Prepared string
|
124 |
+
*/
|
125 |
+
protected static function nameprep($string) {
|
126 |
+
return $string;
|
127 |
+
}
|
128 |
+
|
129 |
+
/**
|
130 |
+
* Convert a UTF-8 string to a UCS-4 codepoint array
|
131 |
+
*
|
132 |
+
* Based on Requests_IRI::replace_invalid_with_pct_encoding()
|
133 |
+
*
|
134 |
+
* @throws Requests_Exception Invalid UTF-8 codepoint (`idna.invalidcodepoint`)
|
135 |
+
* @param string $input
|
136 |
+
* @return array Unicode code points
|
137 |
+
*/
|
138 |
+
protected static function utf8_to_codepoints($input) {
|
139 |
+
$codepoints = array();
|
140 |
+
|
141 |
+
// Get number of bytes
|
142 |
+
$strlen = strlen($input);
|
143 |
+
|
144 |
+
for ($position = 0; $position < $strlen; $position++) {
|
145 |
+
$value = ord($input[$position]);
|
146 |
+
|
147 |
+
// One byte sequence:
|
148 |
+
if ((~$value & 0x80) === 0x80) {
|
149 |
+
$character = $value;
|
150 |
+
$length = 1;
|
151 |
+
$remaining = 0;
|
152 |
+
}
|
153 |
+
// Two byte sequence:
|
154 |
+
elseif (($value & 0xE0) === 0xC0) {
|
155 |
+
$character = ($value & 0x1F) << 6;
|
156 |
+
$length = 2;
|
157 |
+
$remaining = 1;
|
158 |
+
}
|
159 |
+
// Three byte sequence:
|
160 |
+
elseif (($value & 0xF0) === 0xE0) {
|
161 |
+
$character = ($value & 0x0F) << 12;
|
162 |
+
$length = 3;
|
163 |
+
$remaining = 2;
|
164 |
+
}
|
165 |
+
// Four byte sequence:
|
166 |
+
elseif (($value & 0xF8) === 0xF0) {
|
167 |
+
$character = ($value & 0x07) << 18;
|
168 |
+
$length = 4;
|
169 |
+
$remaining = 3;
|
170 |
+
}
|
171 |
+
// Invalid byte:
|
172 |
+
else {
|
173 |
+
throw new Requests_Exception('Invalid Unicode codepoint', 'idna.invalidcodepoint', $value);
|
174 |
+
}
|
175 |
+
|
176 |
+
if ($remaining > 0) {
|
177 |
+
if ($position + $length > $strlen) {
|
178 |
+
throw new Requests_Exception('Invalid Unicode codepoint', 'idna.invalidcodepoint', $character);
|
179 |
+
}
|
180 |
+
for ($position++; $remaining > 0; $position++) {
|
181 |
+
$value = ord($input[$position]);
|
182 |
+
|
183 |
+
// If it is invalid, count the sequence as invalid and reprocess the current byte:
|
184 |
+
if (($value & 0xC0) !== 0x80) {
|
185 |
+
throw new Requests_Exception('Invalid Unicode codepoint', 'idna.invalidcodepoint', $character);
|
186 |
+
}
|
187 |
+
|
188 |
+
$character |= ($value & 0x3F) << (--$remaining * 6);
|
189 |
+
}
|
190 |
+
$position--;
|
191 |
+
}
|
192 |
+
|
193 |
+
if (
|
194 |
+
// Non-shortest form sequences are invalid
|
195 |
+
$length > 1 && $character <= 0x7F
|
196 |
+
|| $length > 2 && $character <= 0x7FF
|
197 |
+
|| $length > 3 && $character <= 0xFFFF
|
198 |
+
// Outside of range of ucschar codepoints
|
199 |
+
// Noncharacters
|
200 |
+
|| ($character & 0xFFFE) === 0xFFFE
|
201 |
+
|| $character >= 0xFDD0 && $character <= 0xFDEF
|
202 |
+
|| (
|
203 |
+
// Everything else not in ucschar
|
204 |
+
$character > 0xD7FF && $character < 0xF900
|
205 |
+
|| $character < 0x20
|
206 |
+
|| $character > 0x7E && $character < 0xA0
|
207 |
+
|| $character > 0xEFFFD
|
208 |
+
)
|
209 |
+
) {
|
210 |
+
throw new Requests_Exception('Invalid Unicode codepoint', 'idna.invalidcodepoint', $character);
|
211 |
+
}
|
212 |
+
|
213 |
+
$codepoints[] = $character;
|
214 |
+
}
|
215 |
+
|
216 |
+
return $codepoints;
|
217 |
+
}
|
218 |
+
|
219 |
+
/**
|
220 |
+
* RFC3492-compliant encoder
|
221 |
+
*
|
222 |
+
* @internal Pseudo-code from Section 6.3 is commented with "#" next to relevant code
|
223 |
+
* @throws Requests_Exception On character outside of the domain (never happens with Punycode) (`idna.character_outside_domain`)
|
224 |
+
*
|
225 |
+
* @param string $input UTF-8 encoded string to encode
|
226 |
+
* @return string Punycode-encoded string
|
227 |
+
*/
|
228 |
+
public static function punycode_encode($input) {
|
229 |
+
$output = '';
|
230 |
+
# let n = initial_n
|
231 |
+
$n = self::BOOTSTRAP_INITIAL_N;
|
232 |
+
# let delta = 0
|
233 |
+
$delta = 0;
|
234 |
+
# let bias = initial_bias
|
235 |
+
$bias = self::BOOTSTRAP_INITIAL_BIAS;
|
236 |
+
# let h = b = the number of basic code points in the input
|
237 |
+
$h = $b = 0; // see loop
|
238 |
+
# copy them to the output in order
|
239 |
+
$codepoints = self::utf8_to_codepoints($input);
|
240 |
+
|
241 |
+
foreach ($codepoints as $char) {
|
242 |
+
if ($char < 128) {
|
243 |
+
// Character is valid ASCII
|
244 |
+
// TODO: this should also check if it's valid for a URL
|
245 |
+
$output .= chr($char);
|
246 |
+
$h++;
|
247 |
+
}
|
248 |
+
// Check if the character is non-ASCII, but below initial n
|
249 |
+
// This never occurs for Punycode, so ignore in coverage
|
250 |
+
// @codeCoverageIgnoreStart
|
251 |
+
elseif ($char < $n) {
|
252 |
+
throw new Requests_Exception('Invalid character', 'idna.character_outside_domain', $char);
|
253 |
+
}
|
254 |
+
// @codeCoverageIgnoreEnd
|
255 |
+
else {
|
256 |
+
$extended[$char] = true;
|
257 |
+
}
|
258 |
+
}
|
259 |
+
$extended = array_keys($extended);
|
260 |
+
sort($extended);
|
261 |
+
$b = $h;
|
262 |
+
# [copy them] followed by a delimiter if b > 0
|
263 |
+
if (strlen($output) > 0) {
|
264 |
+
$output .= '-';
|
265 |
+
}
|
266 |
+
# {if the input contains a non-basic code point < n then fail}
|
267 |
+
# while h < length(input) do begin
|
268 |
+
while ($h < count($codepoints)) {
|
269 |
+
# let m = the minimum code point >= n in the input
|
270 |
+
$m = array_shift($extended);
|
271 |
+
//printf('next code point to insert is %s' . PHP_EOL, dechex($m));
|
272 |
+
# let delta = delta + (m - n) * (h + 1), fail on overflow
|
273 |
+
$delta += ($m - $n) * ($h + 1);
|
274 |
+
# let n = m
|
275 |
+
$n = $m;
|
276 |
+
# for each code point c in the input (in order) do begin
|
277 |
+
for ($num = 0; $num < count($codepoints); $num++) {
|
278 |
+
$c = $codepoints[$num];
|
279 |
+
# if c < n then increment delta, fail on overflow
|
280 |
+
if ($c < $n) {
|
281 |
+
$delta++;
|
282 |
+
}
|
283 |
+
# if c == n then begin
|
284 |
+
elseif ($c === $n) {
|
285 |
+
# let q = delta
|
286 |
+
$q = $delta;
|
287 |
+
# for k = base to infinity in steps of base do begin
|
288 |
+
for ($k = self::BOOTSTRAP_BASE; ; $k += self::BOOTSTRAP_BASE) {
|
289 |
+
# let t = tmin if k <= bias {+ tmin}, or
|
290 |
+
# tmax if k >= bias + tmax, or k - bias otherwise
|
291 |
+
if ($k <= ($bias + self::BOOTSTRAP_TMIN)) {
|
292 |
+
$t = self::BOOTSTRAP_TMIN;
|
293 |
+
}
|
294 |
+
elseif ($k >= ($bias + self::BOOTSTRAP_TMAX)) {
|
295 |
+
$t = self::BOOTSTRAP_TMAX;
|
296 |
+
}
|
297 |
+
else {
|
298 |
+
$t = $k - $bias;
|
299 |
+
}
|
300 |
+
# if q < t then break
|
301 |
+
if ($q < $t) {
|
302 |
+
break;
|
303 |
+
}
|
304 |
+
# output the code point for digit t + ((q - t) mod (base - t))
|
305 |
+
$digit = $t + (($q - $t) % (self::BOOTSTRAP_BASE - $t));
|
306 |
+
//printf('needed delta is %d, encodes as "%s"' . PHP_EOL, $delta, self::digit_to_char($digit));
|
307 |
+
$output .= self::digit_to_char($digit);
|
308 |
+
# let q = (q - t) div (base - t)
|
309 |
+
$q = floor(($q - $t) / (self::BOOTSTRAP_BASE - $t));
|
310 |
+
# end
|
311 |
+
}
|
312 |
+
# output the code point for digit q
|
313 |
+
$output .= self::digit_to_char($q);
|
314 |
+
//printf('needed delta is %d, encodes as "%s"' . PHP_EOL, $delta, self::digit_to_char($q));
|
315 |
+
# let bias = adapt(delta, h + 1, test h equals b?)
|
316 |
+
$bias = self::adapt($delta, $h + 1, $h === $b);
|
317 |
+
//printf('bias becomes %d' . PHP_EOL, $bias);
|
318 |
+
# let delta = 0
|
319 |
+
$delta = 0;
|
320 |
+
# increment h
|
321 |
+
$h++;
|
322 |
+
# end
|
323 |
+
}
|
324 |
+
# end
|
325 |
+
}
|
326 |
+
# increment delta and n
|
327 |
+
$delta++;
|
328 |
+
$n++;
|
329 |
+
# end
|
330 |
+
}
|
331 |
+
|
332 |
+
return $output;
|
333 |
+
}
|
334 |
+
|
335 |
+
/**
|
336 |
+
* Convert a digit to its respective character
|
337 |
+
*
|
338 |
+
* @see http://tools.ietf.org/html/rfc3492#section-5
|
339 |
+
* @throws Requests_Exception On invalid digit (`idna.invalid_digit`)
|
340 |
+
*
|
341 |
+
* @param int $digit Digit in the range 0-35
|
342 |
+
* @return string Single character corresponding to digit
|
343 |
+
*/
|
344 |
+
protected static function digit_to_char($digit) {
|
345 |
+
// @codeCoverageIgnoreStart
|
346 |
+
// As far as I know, this never happens, but still good to be sure.
|
347 |
+
if ($digit < 0 || $digit > 35) {
|
348 |
+
throw new Requests_Exception(sprintf('Invalid digit %d', $digit), 'idna.invalid_digit', $digit);
|
349 |
+
}
|
350 |
+
// @codeCoverageIgnoreEnd
|
351 |
+
$digits = 'abcdefghijklmnopqrstuvwxyz0123456789';
|
352 |
+
return substr($digits, $digit, 1);
|
353 |
+
}
|
354 |
+
|
355 |
+
/**
|
356 |
+
* Adapt the bias
|
357 |
+
*
|
358 |
+
* @see http://tools.ietf.org/html/rfc3492#section-6.1
|
359 |
+
* @param int $delta
|
360 |
+
* @param int $numpoints
|
361 |
+
* @param bool $firsttime
|
362 |
+
* @return int New bias
|
363 |
+
*/
|
364 |
+
protected static function adapt($delta, $numpoints, $firsttime) {
|
365 |
+
# function adapt(delta,numpoints,firsttime):
|
366 |
+
# if firsttime then let delta = delta div damp
|
367 |
+
if ($firsttime) {
|
368 |
+
$delta = floor($delta / self::BOOTSTRAP_DAMP);
|
369 |
+
}
|
370 |
+
# else let delta = delta div 2
|
371 |
+
else {
|
372 |
+
$delta = floor($delta / 2);
|
373 |
+
}
|
374 |
+
# let delta = delta + (delta div numpoints)
|
375 |
+
$delta += floor($delta / $numpoints);
|
376 |
+
# let k = 0
|
377 |
+
$k = 0;
|
378 |
+
# while delta > ((base - tmin) * tmax) div 2 do begin
|
379 |
+
$max = floor(((self::BOOTSTRAP_BASE - self::BOOTSTRAP_TMIN) * self::BOOTSTRAP_TMAX) / 2);
|
380 |
+
while ($delta > $max) {
|
381 |
+
# let delta = delta div (base - tmin)
|
382 |
+
$delta = floor($delta / (self::BOOTSTRAP_BASE - self::BOOTSTRAP_TMIN));
|
383 |
+
# let k = k + base
|
384 |
+
$k += self::BOOTSTRAP_BASE;
|
385 |
+
# end
|
386 |
+
}
|
387 |
+
# return k + (((base - tmin + 1) * delta) div (delta + skew))
|
388 |
+
return $k + floor(((self::BOOTSTRAP_BASE - self::BOOTSTRAP_TMIN + 1) * $delta) / ($delta + self::BOOTSTRAP_SKEW));
|
389 |
+
}
|
390 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/IPv6.php
ADDED
@@ -0,0 +1,221 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class to validate and to work with IPv6 addresses
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
* @subpackage Utilities
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Class to validate and to work with IPv6 addresses
|
11 |
+
*
|
12 |
+
* This was originally based on the PEAR class of the same name, but has been
|
13 |
+
* entirely rewritten.
|
14 |
+
*
|
15 |
+
* @package Requests
|
16 |
+
* @subpackage Utilities
|
17 |
+
*/
|
18 |
+
class Requests_IPv6
|
19 |
+
{
|
20 |
+
/**
|
21 |
+
* Uncompresses an IPv6 address
|
22 |
+
*
|
23 |
+
* RFC 4291 allows you to compress consecutive zero pieces in an address to
|
24 |
+
* '::'. This method expects a valid IPv6 address and expands the '::' to
|
25 |
+
* the required number of zero pieces.
|
26 |
+
*
|
27 |
+
* Example: FF01::101 -> FF01:0:0:0:0:0:0:101
|
28 |
+
* ::1 -> 0:0:0:0:0:0:0:1
|
29 |
+
*
|
30 |
+
* @author Alexander Merz <alexander.merz@web.de>
|
31 |
+
* @author elfrink at introweb dot nl
|
32 |
+
* @author Josh Peck <jmp at joshpeck dot org>
|
33 |
+
* @copyright 2003-2005 The PHP Group
|
34 |
+
* @license http://www.opensource.org/licenses/bsd-license.php
|
35 |
+
* @param string $ip An IPv6 address
|
36 |
+
* @return string The uncompressed IPv6 address
|
37 |
+
*/
|
38 |
+
public static function uncompress($ip)
|
39 |
+
{
|
40 |
+
$c1 = -1;
|
41 |
+
$c2 = -1;
|
42 |
+
if (substr_count($ip, '::') === 1)
|
43 |
+
{
|
44 |
+
list($ip1, $ip2) = explode('::', $ip);
|
45 |
+
if ($ip1 === '')
|
46 |
+
{
|
47 |
+
$c1 = -1;
|
48 |
+
}
|
49 |
+
else
|
50 |
+
{
|
51 |
+
$c1 = substr_count($ip1, ':');
|
52 |
+
}
|
53 |
+
if ($ip2 === '')
|
54 |
+
{
|
55 |
+
$c2 = -1;
|
56 |
+
}
|
57 |
+
else
|
58 |
+
{
|
59 |
+
$c2 = substr_count($ip2, ':');
|
60 |
+
}
|
61 |
+
if (strpos($ip2, '.') !== false)
|
62 |
+
{
|
63 |
+
$c2++;
|
64 |
+
}
|
65 |
+
// ::
|
66 |
+
if ($c1 === -1 && $c2 === -1)
|
67 |
+
{
|
68 |
+
$ip = '0:0:0:0:0:0:0:0';
|
69 |
+
}
|
70 |
+
// ::xxx
|
71 |
+
else if ($c1 === -1)
|
72 |
+
{
|
73 |
+
$fill = str_repeat('0:', 7 - $c2);
|
74 |
+
$ip = str_replace('::', $fill, $ip);
|
75 |
+
}
|
76 |
+
// xxx::
|
77 |
+
else if ($c2 === -1)
|
78 |
+
{
|
79 |
+
$fill = str_repeat(':0', 7 - $c1);
|
80 |
+
$ip = str_replace('::', $fill, $ip);
|
81 |
+
}
|
82 |
+
// xxx::xxx
|
83 |
+
else
|
84 |
+
{
|
85 |
+
$fill = ':' . str_repeat('0:', 6 - $c2 - $c1);
|
86 |
+
$ip = str_replace('::', $fill, $ip);
|
87 |
+
}
|
88 |
+
}
|
89 |
+
return $ip;
|
90 |
+
}
|
91 |
+
|
92 |
+
/**
|
93 |
+
* Compresses an IPv6 address
|
94 |
+
*
|
95 |
+
* RFC 4291 allows you to compress consecutive zero pieces in an address to
|
96 |
+
* '::'. This method expects a valid IPv6 address and compresses consecutive
|
97 |
+
* zero pieces to '::'.
|
98 |
+
*
|
99 |
+
* Example: FF01:0:0:0:0:0:0:101 -> FF01::101
|
100 |
+
* 0:0:0:0:0:0:0:1 -> ::1
|
101 |
+
*
|
102 |
+
* @see uncompress()
|
103 |
+
* @param string $ip An IPv6 address
|
104 |
+
* @return string The compressed IPv6 address
|
105 |
+
*/
|
106 |
+
public static function compress($ip)
|
107 |
+
{
|
108 |
+
// Prepare the IP to be compressed
|
109 |
+
$ip = self::uncompress($ip);
|
110 |
+
$ip_parts = self::split_v6_v4($ip);
|
111 |
+
|
112 |
+
// Replace all leading zeros
|
113 |
+
$ip_parts[0] = preg_replace('/(^|:)0+([0-9])/', '\1\2', $ip_parts[0]);
|
114 |
+
|
115 |
+
// Find bunches of zeros
|
116 |
+
if (preg_match_all('/(?:^|:)(?:0(?::|$))+/', $ip_parts[0], $matches, PREG_OFFSET_CAPTURE))
|
117 |
+
{
|
118 |
+
$max = 0;
|
119 |
+
$pos = null;
|
120 |
+
foreach ($matches[0] as $match)
|
121 |
+
{
|
122 |
+
if (strlen($match[0]) > $max)
|
123 |
+
{
|
124 |
+
$max = strlen($match[0]);
|
125 |
+
$pos = $match[1];
|
126 |
+
}
|
127 |
+
}
|
128 |
+
|
129 |
+
$ip_parts[0] = substr_replace($ip_parts[0], '::', $pos, $max);
|
130 |
+
}
|
131 |
+
|
132 |
+
if ($ip_parts[1] !== '')
|
133 |
+
{
|
134 |
+
return implode(':', $ip_parts);
|
135 |
+
}
|
136 |
+
else
|
137 |
+
{
|
138 |
+
return $ip_parts[0];
|
139 |
+
}
|
140 |
+
}
|
141 |
+
|
142 |
+
/**
|
143 |
+
* Splits an IPv6 address into the IPv6 and IPv4 representation parts
|
144 |
+
*
|
145 |
+
* RFC 4291 allows you to represent the last two parts of an IPv6 address
|
146 |
+
* using the standard IPv4 representation
|
147 |
+
*
|
148 |
+
* Example: 0:0:0:0:0:0:13.1.68.3
|
149 |
+
* 0:0:0:0:0:FFFF:129.144.52.38
|
150 |
+
*
|
151 |
+
* @param string $ip An IPv6 address
|
152 |
+
* @return array [0] contains the IPv6 represented part, and [1] the IPv4 represented part
|
153 |
+
*/
|
154 |
+
private static function split_v6_v4($ip)
|
155 |
+
{
|
156 |
+
if (strpos($ip, '.') !== false)
|
157 |
+
{
|
158 |
+
$pos = strrpos($ip, ':');
|
159 |
+
$ipv6_part = substr($ip, 0, $pos);
|
160 |
+
$ipv4_part = substr($ip, $pos + 1);
|
161 |
+
return array($ipv6_part, $ipv4_part);
|
162 |
+
}
|
163 |
+
else
|
164 |
+
{
|
165 |
+
return array($ip, '');
|
166 |
+
}
|
167 |
+
}
|
168 |
+
|
169 |
+
/**
|
170 |
+
* Checks an IPv6 address
|
171 |
+
*
|
172 |
+
* Checks if the given IP is a valid IPv6 address
|
173 |
+
*
|
174 |
+
* @param string $ip An IPv6 address
|
175 |
+
* @return bool true if $ip is a valid IPv6 address
|
176 |
+
*/
|
177 |
+
public static function check_ipv6($ip)
|
178 |
+
{
|
179 |
+
$ip = self::uncompress($ip);
|
180 |
+
list($ipv6, $ipv4) = self::split_v6_v4($ip);
|
181 |
+
$ipv6 = explode(':', $ipv6);
|
182 |
+
$ipv4 = explode('.', $ipv4);
|
183 |
+
if (count($ipv6) === 8 && count($ipv4) === 1 || count($ipv6) === 6 && count($ipv4) === 4)
|
184 |
+
{
|
185 |
+
foreach ($ipv6 as $ipv6_part)
|
186 |
+
{
|
187 |
+
// The section can't be empty
|
188 |
+
if ($ipv6_part === '')
|
189 |
+
return false;
|
190 |
+
|
191 |
+
// Nor can it be over four characters
|
192 |
+
if (strlen($ipv6_part) > 4)
|
193 |
+
return false;
|
194 |
+
|
195 |
+
// Remove leading zeros (this is safe because of the above)
|
196 |
+
$ipv6_part = ltrim($ipv6_part, '0');
|
197 |
+
if ($ipv6_part === '')
|
198 |
+
$ipv6_part = '0';
|
199 |
+
|
200 |
+
// Check the value is valid
|
201 |
+
$value = hexdec($ipv6_part);
|
202 |
+
if (dechex($value) !== strtolower($ipv6_part) || $value < 0 || $value > 0xFFFF)
|
203 |
+
return false;
|
204 |
+
}
|
205 |
+
if (count($ipv4) === 4)
|
206 |
+
{
|
207 |
+
foreach ($ipv4 as $ipv4_part)
|
208 |
+
{
|
209 |
+
$value = (int) $ipv4_part;
|
210 |
+
if ((string) $value !== $ipv4_part || $value < 0 || $value > 0xFF)
|
211 |
+
return false;
|
212 |
+
}
|
213 |
+
}
|
214 |
+
return true;
|
215 |
+
}
|
216 |
+
else
|
217 |
+
{
|
218 |
+
return false;
|
219 |
+
}
|
220 |
+
}
|
221 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/IRI.php
ADDED
@@ -0,0 +1,1220 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* IRI parser/serialiser/normaliser
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
* @subpackage Utilities
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* IRI parser/serialiser/normaliser
|
11 |
+
*
|
12 |
+
* Copyright (c) 2007-2010, Geoffrey Sneddon and Steve Minutillo.
|
13 |
+
* All rights reserved.
|
14 |
+
*
|
15 |
+
* Redistribution and use in source and binary forms, with or without
|
16 |
+
* modification, are permitted provided that the following conditions are met:
|
17 |
+
*
|
18 |
+
* * Redistributions of source code must retain the above copyright notice,
|
19 |
+
* this list of conditions and the following disclaimer.
|
20 |
+
*
|
21 |
+
* * Redistributions in binary form must reproduce the above copyright notice,
|
22 |
+
* this list of conditions and the following disclaimer in the documentation
|
23 |
+
* and/or other materials provided with the distribution.
|
24 |
+
*
|
25 |
+
* * Neither the name of the SimplePie Team nor the names of its contributors
|
26 |
+
* may be used to endorse or promote products derived from this software
|
27 |
+
* without specific prior written permission.
|
28 |
+
*
|
29 |
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
30 |
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
31 |
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
32 |
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE
|
33 |
+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
34 |
+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
35 |
+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
36 |
+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
37 |
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
38 |
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
39 |
+
* POSSIBILITY OF SUCH DAMAGE.
|
40 |
+
*
|
41 |
+
* @package Requests
|
42 |
+
* @subpackage Utilities
|
43 |
+
* @author Geoffrey Sneddon
|
44 |
+
* @author Steve Minutillo
|
45 |
+
* @copyright 2007-2009 Geoffrey Sneddon and Steve Minutillo
|
46 |
+
* @license http://www.opensource.org/licenses/bsd-license.php
|
47 |
+
* @link http://hg.gsnedders.com/iri/
|
48 |
+
*/
|
49 |
+
class Requests_IRI
|
50 |
+
{
|
51 |
+
/**
|
52 |
+
* Scheme
|
53 |
+
*
|
54 |
+
* @var string
|
55 |
+
*/
|
56 |
+
protected $scheme = null;
|
57 |
+
|
58 |
+
/**
|
59 |
+
* User Information
|
60 |
+
*
|
61 |
+
* @var string
|
62 |
+
*/
|
63 |
+
protected $iuserinfo = null;
|
64 |
+
|
65 |
+
/**
|
66 |
+
* ihost
|
67 |
+
*
|
68 |
+
* @var string
|
69 |
+
*/
|
70 |
+
protected $ihost = null;
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Port
|
74 |
+
*
|
75 |
+
* @var string
|
76 |
+
*/
|
77 |
+
protected $port = null;
|
78 |
+
|
79 |
+
/**
|
80 |
+
* ipath
|
81 |
+
*
|
82 |
+
* @var string
|
83 |
+
*/
|
84 |
+
protected $ipath = '';
|
85 |
+
|
86 |
+
/**
|
87 |
+
* iquery
|
88 |
+
*
|
89 |
+
* @var string
|
90 |
+
*/
|
91 |
+
protected $iquery = null;
|
92 |
+
|
93 |
+
/**
|
94 |
+
* ifragment
|
95 |
+
*
|
96 |
+
* @var string
|
97 |
+
*/
|
98 |
+
protected $ifragment = null;
|
99 |
+
|
100 |
+
/**
|
101 |
+
* Normalization database
|
102 |
+
*
|
103 |
+
* Each key is the scheme, each value is an array with each key as the IRI
|
104 |
+
* part and value as the default value for that part.
|
105 |
+
*/
|
106 |
+
protected $normalization = array(
|
107 |
+
'acap' => array(
|
108 |
+
'port' => 674
|
109 |
+
),
|
110 |
+
'dict' => array(
|
111 |
+
'port' => 2628
|
112 |
+
),
|
113 |
+
'file' => array(
|
114 |
+
'ihost' => 'localhost'
|
115 |
+
),
|
116 |
+
'http' => array(
|
117 |
+
'port' => 80,
|
118 |
+
'ipath' => '/'
|
119 |
+
),
|
120 |
+
'https' => array(
|
121 |
+
'port' => 443,
|
122 |
+
'ipath' => '/'
|
123 |
+
),
|
124 |
+
);
|
125 |
+
|
126 |
+
/**
|
127 |
+
* Return the entire IRI when you try and read the object as a string
|
128 |
+
*
|
129 |
+
* @return string
|
130 |
+
*/
|
131 |
+
public function __toString()
|
132 |
+
{
|
133 |
+
return $this->get_iri();
|
134 |
+
}
|
135 |
+
|
136 |
+
/**
|
137 |
+
* Overload __set() to provide access via properties
|
138 |
+
*
|
139 |
+
* @param string $name Property name
|
140 |
+
* @param mixed $value Property value
|
141 |
+
*/
|
142 |
+
public function __set($name, $value)
|
143 |
+
{
|
144 |
+
if (method_exists($this, 'set_' . $name))
|
145 |
+
{
|
146 |
+
call_user_func(array($this, 'set_' . $name), $value);
|
147 |
+
}
|
148 |
+
elseif (
|
149 |
+
$name === 'iauthority'
|
150 |
+
|| $name === 'iuserinfo'
|
151 |
+
|| $name === 'ihost'
|
152 |
+
|| $name === 'ipath'
|
153 |
+
|| $name === 'iquery'
|
154 |
+
|| $name === 'ifragment'
|
155 |
+
)
|
156 |
+
{
|
157 |
+
call_user_func(array($this, 'set_' . substr($name, 1)), $value);
|
158 |
+
}
|
159 |
+
}
|
160 |
+
|
161 |
+
/**
|
162 |
+
* Overload __get() to provide access via properties
|
163 |
+
*
|
164 |
+
* @param string $name Property name
|
165 |
+
* @return mixed
|
166 |
+
*/
|
167 |
+
public function __get($name)
|
168 |
+
{
|
169 |
+
// isset() returns false for null, we don't want to do that
|
170 |
+
// Also why we use array_key_exists below instead of isset()
|
171 |
+
$props = get_object_vars($this);
|
172 |
+
|
173 |
+
if (
|
174 |
+
$name === 'iri' ||
|
175 |
+
$name === 'uri' ||
|
176 |
+
$name === 'iauthority' ||
|
177 |
+
$name === 'authority'
|
178 |
+
)
|
179 |
+
{
|
180 |
+
$return = $this->{"get_$name"}();
|
181 |
+
}
|
182 |
+
elseif (array_key_exists($name, $props))
|
183 |
+
{
|
184 |
+
$return = $this->$name;
|
185 |
+
}
|
186 |
+
// host -> ihost
|
187 |
+
elseif (($prop = 'i' . $name) && array_key_exists($prop, $props))
|
188 |
+
{
|
189 |
+
$name = $prop;
|
190 |
+
$return = $this->$prop;
|
191 |
+
}
|
192 |
+
// ischeme -> scheme
|
193 |
+
elseif (($prop = substr($name, 1)) && array_key_exists($prop, $props))
|
194 |
+
{
|
195 |
+
$name = $prop;
|
196 |
+
$return = $this->$prop;
|
197 |
+
}
|
198 |
+
else
|
199 |
+
{
|
200 |
+
trigger_error('Undefined property: ' . get_class($this) . '::' . $name, E_USER_NOTICE);
|
201 |
+
$return = null;
|
202 |
+
}
|
203 |
+
|
204 |
+
if ($return === null && isset($this->normalization[$this->scheme][$name]))
|
205 |
+
{
|
206 |
+
return $this->normalization[$this->scheme][$name];
|
207 |
+
}
|
208 |
+
else
|
209 |
+
{
|
210 |
+
return $return;
|
211 |
+
}
|
212 |
+
}
|
213 |
+
|
214 |
+
/**
|
215 |
+
* Overload __isset() to provide access via properties
|
216 |
+
*
|
217 |
+
* @param string $name Property name
|
218 |
+
* @return bool
|
219 |
+
*/
|
220 |
+
public function __isset($name)
|
221 |
+
{
|
222 |
+
if (method_exists($this, 'get_' . $name) || isset($this->$name))
|
223 |
+
{
|
224 |
+
return true;
|
225 |
+
}
|
226 |
+
else
|
227 |
+
{
|
228 |
+
return false;
|
229 |
+
}
|
230 |
+
}
|
231 |
+
|
232 |
+
/**
|
233 |
+
* Overload __unset() to provide access via properties
|
234 |
+
*
|
235 |
+
* @param string $name Property name
|
236 |
+
*/
|
237 |
+
public function __unset($name)
|
238 |
+
{
|
239 |
+
if (method_exists($this, 'set_' . $name))
|
240 |
+
{
|
241 |
+
call_user_func(array($this, 'set_' . $name), '');
|
242 |
+
}
|
243 |
+
}
|
244 |
+
|
245 |
+
/**
|
246 |
+
* Create a new IRI object, from a specified string
|
247 |
+
*
|
248 |
+
* @param string $iri
|
249 |
+
*/
|
250 |
+
public function __construct($iri = null)
|
251 |
+
{
|
252 |
+
$this->set_iri($iri);
|
253 |
+
}
|
254 |
+
|
255 |
+
/**
|
256 |
+
* Create a new IRI object by resolving a relative IRI
|
257 |
+
*
|
258 |
+
* Returns false if $base is not absolute, otherwise an IRI.
|
259 |
+
*
|
260 |
+
* @param IRI|string $base (Absolute) Base IRI
|
261 |
+
* @param IRI|string $relative Relative IRI
|
262 |
+
* @return IRI|false
|
263 |
+
*/
|
264 |
+
public static function absolutize($base, $relative)
|
265 |
+
{
|
266 |
+
if (!($relative instanceof Requests_IRI))
|
267 |
+
{
|
268 |
+
$relative = new Requests_IRI($relative);
|
269 |
+
}
|
270 |
+
if (!$relative->is_valid())
|
271 |
+
{
|
272 |
+
return false;
|
273 |
+
}
|
274 |
+
elseif ($relative->scheme !== null)
|
275 |
+
{
|
276 |
+
return clone $relative;
|
277 |
+
}
|
278 |
+
else
|
279 |
+
{
|
280 |
+
if (!($base instanceof Requests_IRI))
|
281 |
+
{
|
282 |
+
$base = new Requests_IRI($base);
|
283 |
+
}
|
284 |
+
if ($base->scheme !== null && $base->is_valid())
|
285 |
+
{
|
286 |
+
if ($relative->get_iri() !== '')
|
287 |
+
{
|
288 |
+
if ($relative->iuserinfo !== null || $relative->ihost !== null || $relative->port !== null)
|
289 |
+
{
|
290 |
+
$target = clone $relative;
|
291 |
+
$target->scheme = $base->scheme;
|
292 |
+
}
|
293 |
+
else
|
294 |
+
{
|
295 |
+
$target = new Requests_IRI;
|
296 |
+
$target->scheme = $base->scheme;
|
297 |
+
$target->iuserinfo = $base->iuserinfo;
|
298 |
+
$target->ihost = $base->ihost;
|
299 |
+
$target->port = $base->port;
|
300 |
+
if ($relative->ipath !== '')
|
301 |
+
{
|
302 |
+
if ($relative->ipath[0] === '/')
|
303 |
+
{
|
304 |
+
$target->ipath = $relative->ipath;
|
305 |
+
}
|
306 |
+
elseif (($base->iuserinfo !== null || $base->ihost !== null || $base->port !== null) && $base->ipath === '')
|
307 |
+
{
|
308 |
+
$target->ipath = '/' . $relative->ipath;
|
309 |
+
}
|
310 |
+
elseif (($last_segment = strrpos($base->ipath, '/')) !== false)
|
311 |
+
{
|
312 |
+
$target->ipath = substr($base->ipath, 0, $last_segment + 1) . $relative->ipath;
|
313 |
+
}
|
314 |
+
else
|
315 |
+
{
|
316 |
+
$target->ipath = $relative->ipath;
|
317 |
+
}
|
318 |
+
$target->ipath = $target->remove_dot_segments($target->ipath);
|
319 |
+
$target->iquery = $relative->iquery;
|
320 |
+
}
|
321 |
+
else
|
322 |
+
{
|
323 |
+
$target->ipath = $base->ipath;
|
324 |
+
if ($relative->iquery !== null)
|
325 |
+
{
|
326 |
+
$target->iquery = $relative->iquery;
|
327 |
+
}
|
328 |
+
elseif ($base->iquery !== null)
|
329 |
+
{
|
330 |
+
$target->iquery = $base->iquery;
|
331 |
+
}
|
332 |
+
}
|
333 |
+
$target->ifragment = $relative->ifragment;
|
334 |
+
}
|
335 |
+
}
|
336 |
+
else
|
337 |
+
{
|
338 |
+
$target = clone $base;
|
339 |
+
$target->ifragment = null;
|
340 |
+
}
|
341 |
+
$target->scheme_normalization();
|
342 |
+
return $target;
|
343 |
+
}
|
344 |
+
else
|
345 |
+
{
|
346 |
+
return false;
|
347 |
+
}
|
348 |
+
}
|
349 |
+
}
|
350 |
+
|
351 |
+
/**
|
352 |
+
* Parse an IRI into scheme/authority/path/query/fragment segments
|
353 |
+
*
|
354 |
+
* @param string $iri
|
355 |
+
* @return array
|
356 |
+
*/
|
357 |
+
protected function parse_iri($iri)
|
358 |
+
{
|
359 |
+
$iri = trim($iri, "\x20\x09\x0A\x0C\x0D");
|
360 |
+
if (preg_match('/^((?P<scheme>[^:\/?#]+):)?(\/\/(?P<authority>[^\/?#]*))?(?P<path>[^?#]*)(\?(?P<query>[^#]*))?(#(?P<fragment>.*))?$/', $iri, $match))
|
361 |
+
{
|
362 |
+
if ($match[1] === '')
|
363 |
+
{
|
364 |
+
$match['scheme'] = null;
|
365 |
+
}
|
366 |
+
if (!isset($match[3]) || $match[3] === '')
|
367 |
+
{
|
368 |
+
$match['authority'] = null;
|
369 |
+
}
|
370 |
+
if (!isset($match[5]))
|
371 |
+
{
|
372 |
+
$match['path'] = '';
|
373 |
+
}
|
374 |
+
if (!isset($match[6]) || $match[6] === '')
|
375 |
+
{
|
376 |
+
$match['query'] = null;
|
377 |
+
}
|
378 |
+
if (!isset($match[8]) || $match[8] === '')
|
379 |
+
{
|
380 |
+
$match['fragment'] = null;
|
381 |
+
}
|
382 |
+
return $match;
|
383 |
+
}
|
384 |
+
else
|
385 |
+
{
|
386 |
+
trigger_error('This should never happen', E_USER_ERROR);
|
387 |
+
die;
|
388 |
+
}
|
389 |
+
}
|
390 |
+
|
391 |
+
/**
|
392 |
+
* Remove dot segments from a path
|
393 |
+
*
|
394 |
+
* @param string $input
|
395 |
+
* @return string
|
396 |
+
*/
|
397 |
+
protected function remove_dot_segments($input)
|
398 |
+
{
|
399 |
+
$output = '';
|
400 |
+
while (strpos($input, './') !== false || strpos($input, '/.') !== false || $input === '.' || $input === '..')
|
401 |
+
{
|
402 |
+
// A: If the input buffer begins with a prefix of "../" or "./", then remove that prefix from the input buffer; otherwise,
|
403 |
+
if (strpos($input, '../') === 0)
|
404 |
+
{
|
405 |
+
$input = substr($input, 3);
|
406 |
+
}
|
407 |
+
elseif (strpos($input, './') === 0)
|
408 |
+
{
|
409 |
+
$input = substr($input, 2);
|
410 |
+
}
|
411 |
+
// B: if the input buffer begins with a prefix of "/./" or "/.", where "." is a complete path segment, then replace that prefix with "/" in the input buffer; otherwise,
|
412 |
+
elseif (strpos($input, '/./') === 0)
|
413 |
+
{
|
414 |
+
$input = substr($input, 2);
|
415 |
+
}
|
416 |
+
elseif ($input === '/.')
|
417 |
+
{
|
418 |
+
$input = '/';
|
419 |
+
}
|
420 |
+
// C: if the input buffer begins with a prefix of "/../" or "/..", where ".." is a complete path segment, then replace that prefix with "/" in the input buffer and remove the last segment and its preceding "/" (if any) from the output buffer; otherwise,
|
421 |
+
elseif (strpos($input, '/../') === 0)
|
422 |
+
{
|
423 |
+
$input = substr($input, 3);
|
424 |
+
$output = substr_replace($output, '', strrpos($output, '/'));
|
425 |
+
}
|
426 |
+
elseif ($input === '/..')
|
427 |
+
{
|
428 |
+
$input = '/';
|
429 |
+
$output = substr_replace($output, '', strrpos($output, '/'));
|
430 |
+
}
|
431 |
+
// D: if the input buffer consists only of "." or "..", then remove that from the input buffer; otherwise,
|
432 |
+
elseif ($input === '.' || $input === '..')
|
433 |
+
{
|
434 |
+
$input = '';
|
435 |
+
}
|
436 |
+
// E: move the first path segment in the input buffer to the end of the output buffer, including the initial "/" character (if any) and any subsequent characters up to, but not including, the next "/" character or the end of the input buffer
|
437 |
+
elseif (($pos = strpos($input, '/', 1)) !== false)
|
438 |
+
{
|
439 |
+
$output .= substr($input, 0, $pos);
|
440 |
+
$input = substr_replace($input, '', 0, $pos);
|
441 |
+
}
|
442 |
+
else
|
443 |
+
{
|
444 |
+
$output .= $input;
|
445 |
+
$input = '';
|
446 |
+
}
|
447 |
+
}
|
448 |
+
return $output . $input;
|
449 |
+
}
|
450 |
+
|
451 |
+
/**
|
452 |
+
* Replace invalid character with percent encoding
|
453 |
+
*
|
454 |
+
* @param string $string Input string
|
455 |
+
* @param string $extra_chars Valid characters not in iunreserved or
|
456 |
+
* iprivate (this is ASCII-only)
|
457 |
+
* @param bool $iprivate Allow iprivate
|
458 |
+
* @return string
|
459 |
+
*/
|
460 |
+
protected function replace_invalid_with_pct_encoding($string, $extra_chars, $iprivate = false)
|
461 |
+
{
|
462 |
+
// Normalize as many pct-encoded sections as possible
|
463 |
+
$string = preg_replace_callback('/(?:%[A-Fa-f0-9]{2})+/', array(&$this, 'remove_iunreserved_percent_encoded'), $string);
|
464 |
+
|
465 |
+
// Replace invalid percent characters
|
466 |
+
$string = preg_replace('/%(?![A-Fa-f0-9]{2})/', '%25', $string);
|
467 |
+
|
468 |
+
// Add unreserved and % to $extra_chars (the latter is safe because all
|
469 |
+
// pct-encoded sections are now valid).
|
470 |
+
$extra_chars .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~%';
|
471 |
+
|
472 |
+
// Now replace any bytes that aren't allowed with their pct-encoded versions
|
473 |
+
$position = 0;
|
474 |
+
$strlen = strlen($string);
|
475 |
+
while (($position += strspn($string, $extra_chars, $position)) < $strlen)
|
476 |
+
{
|
477 |
+
$value = ord($string[$position]);
|
478 |
+
|
479 |
+
// Start position
|
480 |
+
$start = $position;
|
481 |
+
|
482 |
+
// By default we are valid
|
483 |
+
$valid = true;
|
484 |
+
|
485 |
+
// No one byte sequences are valid due to the while.
|
486 |
+
// Two byte sequence:
|
487 |
+
if (($value & 0xE0) === 0xC0)
|
488 |
+
{
|
489 |
+
$character = ($value & 0x1F) << 6;
|
490 |
+
$length = 2;
|
491 |
+
$remaining = 1;
|
492 |
+
}
|
493 |
+
// Three byte sequence:
|
494 |
+
elseif (($value & 0xF0) === 0xE0)
|
495 |
+
{
|
496 |
+
$character = ($value & 0x0F) << 12;
|
497 |
+
$length = 3;
|
498 |
+
$remaining = 2;
|
499 |
+
}
|
500 |
+
// Four byte sequence:
|
501 |
+
elseif (($value & 0xF8) === 0xF0)
|
502 |
+
{
|
503 |
+
$character = ($value & 0x07) << 18;
|
504 |
+
$length = 4;
|
505 |
+
$remaining = 3;
|
506 |
+
}
|
507 |
+
// Invalid byte:
|
508 |
+
else
|
509 |
+
{
|
510 |
+
$valid = false;
|
511 |
+
$length = 1;
|
512 |
+
$remaining = 0;
|
513 |
+
}
|
514 |
+
|
515 |
+
if ($remaining)
|
516 |
+
{
|
517 |
+
if ($position + $length <= $strlen)
|
518 |
+
{
|
519 |
+
for ($position++; $remaining; $position++)
|
520 |
+
{
|
521 |
+
$value = ord($string[$position]);
|
522 |
+
|
523 |
+
// Check that the byte is valid, then add it to the character:
|
524 |
+
if (($value & 0xC0) === 0x80)
|
525 |
+
{
|
526 |
+
$character |= ($value & 0x3F) << (--$remaining * 6);
|
527 |
+
}
|
528 |
+
// If it is invalid, count the sequence as invalid and reprocess the current byte:
|
529 |
+
else
|
530 |
+
{
|
531 |
+
$valid = false;
|
532 |
+
$position--;
|
533 |
+
break;
|
534 |
+
}
|
535 |
+
}
|
536 |
+
}
|
537 |
+
else
|
538 |
+
{
|
539 |
+
$position = $strlen - 1;
|
540 |
+
$valid = false;
|
541 |
+
}
|
542 |
+
}
|
543 |
+
|
544 |
+
// Percent encode anything invalid or not in ucschar
|
545 |
+
if (
|
546 |
+
// Invalid sequences
|
547 |
+
!$valid
|
548 |
+
// Non-shortest form sequences are invalid
|
549 |
+
|| $length > 1 && $character <= 0x7F
|
550 |
+
|| $length > 2 && $character <= 0x7FF
|
551 |
+
|| $length > 3 && $character <= 0xFFFF
|
552 |
+
// Outside of range of ucschar codepoints
|
553 |
+
// Noncharacters
|
554 |
+
|| ($character & 0xFFFE) === 0xFFFE
|
555 |
+
|| $character >= 0xFDD0 && $character <= 0xFDEF
|
556 |
+
|| (
|
557 |
+
// Everything else not in ucschar
|
558 |
+
$character > 0xD7FF && $character < 0xF900
|
559 |
+
|| $character < 0xA0
|
560 |
+
|| $character > 0xEFFFD
|
561 |
+
)
|
562 |
+
&& (
|
563 |
+
// Everything not in iprivate, if it applies
|
564 |
+
!$iprivate
|
565 |
+
|| $character < 0xE000
|
566 |
+
|| $character > 0x10FFFD
|
567 |
+
)
|
568 |
+
)
|
569 |
+
{
|
570 |
+
// If we were a character, pretend we weren't, but rather an error.
|
571 |
+
if ($valid)
|
572 |
+
$position--;
|
573 |
+
|
574 |
+
for ($j = $start; $j <= $position; $j++)
|
575 |
+
{
|
576 |
+
$string = substr_replace($string, sprintf('%%%02X', ord($string[$j])), $j, 1);
|
577 |
+
$j += 2;
|
578 |
+
$position += 2;
|
579 |
+
$strlen += 2;
|
580 |
+
}
|
581 |
+
}
|
582 |
+
}
|
583 |
+
|
584 |
+
return $string;
|
585 |
+
}
|
586 |
+
|
587 |
+
/**
|
588 |
+
* Callback function for preg_replace_callback.
|
589 |
+
*
|
590 |
+
* Removes sequences of percent encoded bytes that represent UTF-8
|
591 |
+
* encoded characters in iunreserved
|
592 |
+
*
|
593 |
+
* @param array $match PCRE match
|
594 |
+
* @return string Replacement
|
595 |
+
*/
|
596 |
+
protected function remove_iunreserved_percent_encoded($match)
|
597 |
+
{
|
598 |
+
// As we just have valid percent encoded sequences we can just explode
|
599 |
+
// and ignore the first member of the returned array (an empty string).
|
600 |
+
$bytes = explode('%', $match[0]);
|
601 |
+
|
602 |
+
// Initialize the new string (this is what will be returned) and that
|
603 |
+
// there are no bytes remaining in the current sequence (unsurprising
|
604 |
+
// at the first byte!).
|
605 |
+
$string = '';
|
606 |
+
$remaining = 0;
|
607 |
+
|
608 |
+
// Loop over each and every byte, and set $value to its value
|
609 |
+
for ($i = 1, $len = count($bytes); $i < $len; $i++)
|
610 |
+
{
|
611 |
+
$value = hexdec($bytes[$i]);
|
612 |
+
|
613 |
+
// If we're the first byte of sequence:
|
614 |
+
if (!$remaining)
|
615 |
+
{
|
616 |
+
// Start position
|
617 |
+
$start = $i;
|
618 |
+
|
619 |
+
// By default we are valid
|
620 |
+
$valid = true;
|
621 |
+
|
622 |
+
// One byte sequence:
|
623 |
+
if ($value <= 0x7F)
|
624 |
+
{
|
625 |
+
$character = $value;
|
626 |
+
$length = 1;
|
627 |
+
}
|
628 |
+
// Two byte sequence:
|
629 |
+
elseif (($value & 0xE0) === 0xC0)
|
630 |
+
{
|
631 |
+
$character = ($value & 0x1F) << 6;
|
632 |
+
$length = 2;
|
633 |
+
$remaining = 1;
|
634 |
+
}
|
635 |
+
// Three byte sequence:
|
636 |
+
elseif (($value & 0xF0) === 0xE0)
|
637 |
+
{
|
638 |
+
$character = ($value & 0x0F) << 12;
|
639 |
+
$length = 3;
|
640 |
+
$remaining = 2;
|
641 |
+
}
|
642 |
+
// Four byte sequence:
|
643 |
+
elseif (($value & 0xF8) === 0xF0)
|
644 |
+
{
|
645 |
+
$character = ($value & 0x07) << 18;
|
646 |
+
$length = 4;
|
647 |
+
$remaining = 3;
|
648 |
+
}
|
649 |
+
// Invalid byte:
|
650 |
+
else
|
651 |
+
{
|
652 |
+
$valid = false;
|
653 |
+
$remaining = 0;
|
654 |
+
}
|
655 |
+
}
|
656 |
+
// Continuation byte:
|
657 |
+
else
|
658 |
+
{
|
659 |
+
// Check that the byte is valid, then add it to the character:
|
660 |
+
if (($value & 0xC0) === 0x80)
|
661 |
+
{
|
662 |
+
$remaining--;
|
663 |
+
$character |= ($value & 0x3F) << ($remaining * 6);
|
664 |
+
}
|
665 |
+
// If it is invalid, count the sequence as invalid and reprocess the current byte as the start of a sequence:
|
666 |
+
else
|
667 |
+
{
|
668 |
+
$valid = false;
|
669 |
+
$remaining = 0;
|
670 |
+
$i--;
|
671 |
+
}
|
672 |
+
}
|
673 |
+
|
674 |
+
// If we've reached the end of the current byte sequence, append it to Unicode::$data
|
675 |
+
if (!$remaining)
|
676 |
+
{
|
677 |
+
// Percent encode anything invalid or not in iunreserved
|
678 |
+
if (
|
679 |
+
// Invalid sequences
|
680 |
+
!$valid
|
681 |
+
// Non-shortest form sequences are invalid
|
682 |
+
|| $length > 1 && $character <= 0x7F
|
683 |
+
|| $length > 2 && $character <= 0x7FF
|
684 |
+
|| $length > 3 && $character <= 0xFFFF
|
685 |
+
// Outside of range of iunreserved codepoints
|
686 |
+
|| $character < 0x2D
|
687 |
+
|| $character > 0xEFFFD
|
688 |
+
// Noncharacters
|
689 |
+
|| ($character & 0xFFFE) === 0xFFFE
|
690 |
+
|| $character >= 0xFDD0 && $character <= 0xFDEF
|
691 |
+
// Everything else not in iunreserved (this is all BMP)
|
692 |
+
|| $character === 0x2F
|
693 |
+
|| $character > 0x39 && $character < 0x41
|
694 |
+
|| $character > 0x5A && $character < 0x61
|
695 |
+
|| $character > 0x7A && $character < 0x7E
|
696 |
+
|| $character > 0x7E && $character < 0xA0
|
697 |
+
|| $character > 0xD7FF && $character < 0xF900
|
698 |
+
)
|
699 |
+
{
|
700 |
+
for ($j = $start; $j <= $i; $j++)
|
701 |
+
{
|
702 |
+
$string .= '%' . strtoupper($bytes[$j]);
|
703 |
+
}
|
704 |
+
}
|
705 |
+
else
|
706 |
+
{
|
707 |
+
for ($j = $start; $j <= $i; $j++)
|
708 |
+
{
|
709 |
+
$string .= chr(hexdec($bytes[$j]));
|
710 |
+
}
|
711 |
+
}
|
712 |
+
}
|
713 |
+
}
|
714 |
+
|
715 |
+
// If we have any bytes left over they are invalid (i.e., we are
|
716 |
+
// mid-way through a multi-byte sequence)
|
717 |
+
if ($remaining)
|
718 |
+
{
|
719 |
+
for ($j = $start; $j < $len; $j++)
|
720 |
+
{
|
721 |
+
$string .= '%' . strtoupper($bytes[$j]);
|
722 |
+
}
|
723 |
+
}
|
724 |
+
|
725 |
+
return $string;
|
726 |
+
}
|
727 |
+
|
728 |
+
protected function scheme_normalization()
|
729 |
+
{
|
730 |
+
if (isset($this->normalization[$this->scheme]['iuserinfo']) && $this->iuserinfo === $this->normalization[$this->scheme]['iuserinfo'])
|
731 |
+
{
|
732 |
+
$this->iuserinfo = null;
|
733 |
+
}
|
734 |
+
if (isset($this->normalization[$this->scheme]['ihost']) && $this->ihost === $this->normalization[$this->scheme]['ihost'])
|
735 |
+
{
|
736 |
+
$this->ihost = null;
|
737 |
+
}
|
738 |
+
if (isset($this->normalization[$this->scheme]['port']) && $this->port === $this->normalization[$this->scheme]['port'])
|
739 |
+
{
|
740 |
+
$this->port = null;
|
741 |
+
}
|
742 |
+
if (isset($this->normalization[$this->scheme]['ipath']) && $this->ipath === $this->normalization[$this->scheme]['ipath'])
|
743 |
+
{
|
744 |
+
$this->ipath = '';
|
745 |
+
}
|
746 |
+
if (isset($this->normalization[$this->scheme]['iquery']) && $this->iquery === $this->normalization[$this->scheme]['iquery'])
|
747 |
+
{
|
748 |
+
$this->iquery = null;
|
749 |
+
}
|
750 |
+
if (isset($this->normalization[$this->scheme]['ifragment']) && $this->ifragment === $this->normalization[$this->scheme]['ifragment'])
|
751 |
+
{
|
752 |
+
$this->ifragment = null;
|
753 |
+
}
|
754 |
+
}
|
755 |
+
|
756 |
+
/**
|
757 |
+
* Check if the object represents a valid IRI. This needs to be done on each
|
758 |
+
* call as some things change depending on another part of the IRI.
|
759 |
+
*
|
760 |
+
* @return bool
|
761 |
+
*/
|
762 |
+
public function is_valid()
|
763 |
+
{
|
764 |
+
$isauthority = $this->iuserinfo !== null || $this->ihost !== null || $this->port !== null;
|
765 |
+
if ($this->ipath !== '' &&
|
766 |
+
(
|
767 |
+
$isauthority && (
|
768 |
+
$this->ipath[0] !== '/' ||
|
769 |
+
substr($this->ipath, 0, 2) === '//'
|
770 |
+
) ||
|
771 |
+
(
|
772 |
+
$this->scheme === null &&
|
773 |
+
!$isauthority &&
|
774 |
+
strpos($this->ipath, ':') !== false &&
|
775 |
+
(strpos($this->ipath, '/') === false ? true : strpos($this->ipath, ':') < strpos($this->ipath, '/'))
|
776 |
+
)
|
777 |
+
)
|
778 |
+
)
|
779 |
+
{
|
780 |
+
return false;
|
781 |
+
}
|
782 |
+
|
783 |
+
return true;
|
784 |
+
}
|
785 |
+
|
786 |
+
/**
|
787 |
+
* Set the entire IRI. Returns true on success, false on failure (if there
|
788 |
+
* are any invalid characters).
|
789 |
+
*
|
790 |
+
* @param string $iri
|
791 |
+
* @return bool
|
792 |
+
*/
|
793 |
+
protected function set_iri($iri)
|
794 |
+
{
|
795 |
+
static $cache;
|
796 |
+
if (!$cache)
|
797 |
+
{
|
798 |
+
$cache = array();
|
799 |
+
}
|
800 |
+
|
801 |
+
if ($iri === null)
|
802 |
+
{
|
803 |
+
return true;
|
804 |
+
}
|
805 |
+
elseif (isset($cache[$iri]))
|
806 |
+
{
|
807 |
+
list($this->scheme,
|
808 |
+
$this->iuserinfo,
|
809 |
+
$this->ihost,
|
810 |
+
$this->port,
|
811 |
+
$this->ipath,
|
812 |
+
$this->iquery,
|
813 |
+
$this->ifragment,
|
814 |
+
$return) = $cache[$iri];
|
815 |
+
return $return;
|
816 |
+
}
|
817 |
+
else
|
818 |
+
{
|
819 |
+
$parsed = $this->parse_iri((string) $iri);
|
820 |
+
|
821 |
+
$return = $this->set_scheme($parsed['scheme'])
|
822 |
+
&& $this->set_authority($parsed['authority'])
|
823 |
+
&& $this->set_path($parsed['path'])
|
824 |
+
&& $this->set_query($parsed['query'])
|
825 |
+
&& $this->set_fragment($parsed['fragment']);
|
826 |
+
|
827 |
+
$cache[$iri] = array($this->scheme,
|
828 |
+
$this->iuserinfo,
|
829 |
+
$this->ihost,
|
830 |
+
$this->port,
|
831 |
+
$this->ipath,
|
832 |
+
$this->iquery,
|
833 |
+
$this->ifragment,
|
834 |
+
$return);
|
835 |
+
return $return;
|
836 |
+
}
|
837 |
+
}
|
838 |
+
|
839 |
+
/**
|
840 |
+
* Set the scheme. Returns true on success, false on failure (if there are
|
841 |
+
* any invalid characters).
|
842 |
+
*
|
843 |
+
* @param string $scheme
|
844 |
+
* @return bool
|
845 |
+
*/
|
846 |
+
protected function set_scheme($scheme)
|
847 |
+
{
|
848 |
+
if ($scheme === null)
|
849 |
+
{
|
850 |
+
$this->scheme = null;
|
851 |
+
}
|
852 |
+
elseif (!preg_match('/^[A-Za-z][0-9A-Za-z+\-.]*$/', $scheme))
|
853 |
+
{
|
854 |
+
$this->scheme = null;
|
855 |
+
return false;
|
856 |
+
}
|
857 |
+
else
|
858 |
+
{
|
859 |
+
$this->scheme = strtolower($scheme);
|
860 |
+
}
|
861 |
+
return true;
|
862 |
+
}
|
863 |
+
|
864 |
+
/**
|
865 |
+
* Set the authority. Returns true on success, false on failure (if there are
|
866 |
+
* any invalid characters).
|
867 |
+
*
|
868 |
+
* @param string $authority
|
869 |
+
* @return bool
|
870 |
+
*/
|
871 |
+
protected function set_authority($authority)
|
872 |
+
{
|
873 |
+
static $cache;
|
874 |
+
if (!$cache)
|
875 |
+
$cache = array();
|
876 |
+
|
877 |
+
if ($authority === null)
|
878 |
+
{
|
879 |
+
$this->iuserinfo = null;
|
880 |
+
$this->ihost = null;
|
881 |
+
$this->port = null;
|
882 |
+
return true;
|
883 |
+
}
|
884 |
+
elseif (isset($cache[$authority]))
|
885 |
+
{
|
886 |
+
list($this->iuserinfo,
|
887 |
+
$this->ihost,
|
888 |
+
$this->port,
|
889 |
+
$return) = $cache[$authority];
|
890 |
+
|
891 |
+
return $return;
|
892 |
+
}
|
893 |
+
else
|
894 |
+
{
|
895 |
+
$remaining = $authority;
|
896 |
+
if (($iuserinfo_end = strrpos($remaining, '@')) !== false)
|
897 |
+
{
|
898 |
+
$iuserinfo = substr($remaining, 0, $iuserinfo_end);
|
899 |
+
$remaining = substr($remaining, $iuserinfo_end + 1);
|
900 |
+
}
|
901 |
+
else
|
902 |
+
{
|
903 |
+
$iuserinfo = null;
|
904 |
+
}
|
905 |
+
if (($port_start = strpos($remaining, ':', strpos($remaining, ']'))) !== false)
|
906 |
+
{
|
907 |
+
if (($port = substr($remaining, $port_start + 1)) === false)
|
908 |
+
{
|
909 |
+
$port = null;
|
910 |
+
}
|
911 |
+
$remaining = substr($remaining, 0, $port_start);
|
912 |
+
}
|
913 |
+
else
|
914 |
+
{
|
915 |
+
$port = null;
|
916 |
+
}
|
917 |
+
|
918 |
+
$return = $this->set_userinfo($iuserinfo) &&
|
919 |
+
$this->set_host($remaining) &&
|
920 |
+
$this->set_port($port);
|
921 |
+
|
922 |
+
$cache[$authority] = array($this->iuserinfo,
|
923 |
+
$this->ihost,
|
924 |
+
$this->port,
|
925 |
+
$return);
|
926 |
+
|
927 |
+
return $return;
|
928 |
+
}
|
929 |
+
}
|
930 |
+
|
931 |
+
/**
|
932 |
+
* Set the iuserinfo.
|
933 |
+
*
|
934 |
+
* @param string $iuserinfo
|
935 |
+
* @return bool
|
936 |
+
*/
|
937 |
+
protected function set_userinfo($iuserinfo)
|
938 |
+
{
|
939 |
+
if ($iuserinfo === null)
|
940 |
+
{
|
941 |
+
$this->iuserinfo = null;
|
942 |
+
}
|
943 |
+
else
|
944 |
+
{
|
945 |
+
$this->iuserinfo = $this->replace_invalid_with_pct_encoding($iuserinfo, '!$&\'()*+,;=:');
|
946 |
+
$this->scheme_normalization();
|
947 |
+
}
|
948 |
+
|
949 |
+
return true;
|
950 |
+
}
|
951 |
+
|
952 |
+
/**
|
953 |
+
* Set the ihost. Returns true on success, false on failure (if there are
|
954 |
+
* any invalid characters).
|
955 |
+
*
|
956 |
+
* @param string $ihost
|
957 |
+
* @return bool
|
958 |
+
*/
|
959 |
+
protected function set_host($ihost)
|
960 |
+
{
|
961 |
+
if ($ihost === null)
|
962 |
+
{
|
963 |
+
$this->ihost = null;
|
964 |
+
return true;
|
965 |
+
}
|
966 |
+
elseif (substr($ihost, 0, 1) === '[' && substr($ihost, -1) === ']')
|
967 |
+
{
|
968 |
+
if (Requests_IPv6::check_ipv6(substr($ihost, 1, -1)))
|
969 |
+
{
|
970 |
+
$this->ihost = '[' . Requests_IPv6::compress(substr($ihost, 1, -1)) . ']';
|
971 |
+
}
|
972 |
+
else
|
973 |
+
{
|
974 |
+
$this->ihost = null;
|
975 |
+
return false;
|
976 |
+
}
|
977 |
+
}
|
978 |
+
else
|
979 |
+
{
|
980 |
+
$ihost = $this->replace_invalid_with_pct_encoding($ihost, '!$&\'()*+,;=');
|
981 |
+
|
982 |
+
// Lowercase, but ignore pct-encoded sections (as they should
|
983 |
+
// remain uppercase). This must be done after the previous step
|
984 |
+
// as that can add unescaped characters.
|
985 |
+
$position = 0;
|
986 |
+
$strlen = strlen($ihost);
|
987 |
+
while (($position += strcspn($ihost, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ%', $position)) < $strlen)
|
988 |
+
{
|
989 |
+
if ($ihost[$position] === '%')
|
990 |
+
{
|
991 |
+
$position += 3;
|
992 |
+
}
|
993 |
+
else
|
994 |
+
{
|
995 |
+
$ihost[$position] = strtolower($ihost[$position]);
|
996 |
+
$position++;
|
997 |
+
}
|
998 |
+
}
|
999 |
+
|
1000 |
+
$this->ihost = $ihost;
|
1001 |
+
}
|
1002 |
+
|
1003 |
+
$this->scheme_normalization();
|
1004 |
+
|
1005 |
+
return true;
|
1006 |
+
}
|
1007 |
+
|
1008 |
+
/**
|
1009 |
+
* Set the port. Returns true on success, false on failure (if there are
|
1010 |
+
* any invalid characters).
|
1011 |
+
*
|
1012 |
+
* @param string $port
|
1013 |
+
* @return bool
|
1014 |
+
*/
|
1015 |
+
protected function set_port($port)
|
1016 |
+
{
|
1017 |
+
if ($port === null)
|
1018 |
+
{
|
1019 |
+
$this->port = null;
|
1020 |
+
return true;
|
1021 |
+
}
|
1022 |
+
elseif (strspn($port, '0123456789') === strlen($port))
|
1023 |
+
{
|
1024 |
+
$this->port = (int) $port;
|
1025 |
+
$this->scheme_normalization();
|
1026 |
+
return true;
|
1027 |
+
}
|
1028 |
+
else
|
1029 |
+
{
|
1030 |
+
$this->port = null;
|
1031 |
+
return false;
|
1032 |
+
}
|
1033 |
+
}
|
1034 |
+
|
1035 |
+
/**
|
1036 |
+
* Set the ipath.
|
1037 |
+
*
|
1038 |
+
* @param string $ipath
|
1039 |
+
* @return bool
|
1040 |
+
*/
|
1041 |
+
protected function set_path($ipath)
|
1042 |
+
{
|
1043 |
+
static $cache;
|
1044 |
+
if (!$cache)
|
1045 |
+
{
|
1046 |
+
$cache = array();
|
1047 |
+
}
|
1048 |
+
|
1049 |
+
$ipath = (string) $ipath;
|
1050 |
+
|
1051 |
+
if (isset($cache[$ipath]))
|
1052 |
+
{
|
1053 |
+
$this->ipath = $cache[$ipath][(int) ($this->scheme !== null)];
|
1054 |
+
}
|
1055 |
+
else
|
1056 |
+
{
|
1057 |
+
$valid = $this->replace_invalid_with_pct_encoding($ipath, '!$&\'()*+,;=@:/');
|
1058 |
+
$removed = $this->remove_dot_segments($valid);
|
1059 |
+
|
1060 |
+
$cache[$ipath] = array($valid, $removed);
|
1061 |
+
$this->ipath = ($this->scheme !== null) ? $removed : $valid;
|
1062 |
+
}
|
1063 |
+
|
1064 |
+
$this->scheme_normalization();
|
1065 |
+
return true;
|
1066 |
+
}
|
1067 |
+
|
1068 |
+
/**
|
1069 |
+
* Set the iquery.
|
1070 |
+
*
|
1071 |
+
* @param string $iquery
|
1072 |
+
* @return bool
|
1073 |
+
*/
|
1074 |
+
protected function set_query($iquery)
|
1075 |
+
{
|
1076 |
+
if ($iquery === null)
|
1077 |
+
{
|
1078 |
+
$this->iquery = null;
|
1079 |
+
}
|
1080 |
+
else
|
1081 |
+
{
|
1082 |
+
$this->iquery = $this->replace_invalid_with_pct_encoding($iquery, '!$&\'()*+,;=:@/?', true);
|
1083 |
+
$this->scheme_normalization();
|
1084 |
+
}
|
1085 |
+
return true;
|
1086 |
+
}
|
1087 |
+
|
1088 |
+
/**
|
1089 |
+
* Set the ifragment.
|
1090 |
+
*
|
1091 |
+
* @param string $ifragment
|
1092 |
+
* @return bool
|
1093 |
+
*/
|
1094 |
+
protected function set_fragment($ifragment)
|
1095 |
+
{
|
1096 |
+
if ($ifragment === null)
|
1097 |
+
{
|
1098 |
+
$this->ifragment = null;
|
1099 |
+
}
|
1100 |
+
else
|
1101 |
+
{
|
1102 |
+
$this->ifragment = $this->replace_invalid_with_pct_encoding($ifragment, '!$&\'()*+,;=:@/?');
|
1103 |
+
$this->scheme_normalization();
|
1104 |
+
}
|
1105 |
+
return true;
|
1106 |
+
}
|
1107 |
+
|
1108 |
+
/**
|
1109 |
+
* Convert an IRI to a URI (or parts thereof)
|
1110 |
+
*
|
1111 |
+
* @return string
|
1112 |
+
*/
|
1113 |
+
protected function to_uri($string)
|
1114 |
+
{
|
1115 |
+
static $non_ascii;
|
1116 |
+
if (!$non_ascii)
|
1117 |
+
{
|
1118 |
+
$non_ascii = implode('', range("\x80", "\xFF"));
|
1119 |
+
}
|
1120 |
+
|
1121 |
+
$position = 0;
|
1122 |
+
$strlen = strlen($string);
|
1123 |
+
while (($position += strcspn($string, $non_ascii, $position)) < $strlen)
|
1124 |
+
{
|
1125 |
+
$string = substr_replace($string, sprintf('%%%02X', ord($string[$position])), $position, 1);
|
1126 |
+
$position += 3;
|
1127 |
+
$strlen += 2;
|
1128 |
+
}
|
1129 |
+
|
1130 |
+
return $string;
|
1131 |
+
}
|
1132 |
+
|
1133 |
+
/**
|
1134 |
+
* Get the complete IRI
|
1135 |
+
*
|
1136 |
+
* @return string
|
1137 |
+
*/
|
1138 |
+
protected function get_iri()
|
1139 |
+
{
|
1140 |
+
if (!$this->is_valid())
|
1141 |
+
{
|
1142 |
+
return false;
|
1143 |
+
}
|
1144 |
+
|
1145 |
+
$iri = '';
|
1146 |
+
if ($this->scheme !== null)
|
1147 |
+
{
|
1148 |
+
$iri .= $this->scheme . ':';
|
1149 |
+
}
|
1150 |
+
if (($iauthority = $this->get_iauthority()) !== null)
|
1151 |
+
{
|
1152 |
+
$iri .= '//' . $iauthority;
|
1153 |
+
}
|
1154 |
+
$iri .= $this->ipath;
|
1155 |
+
if ($this->iquery !== null)
|
1156 |
+
{
|
1157 |
+
$iri .= '?' . $this->iquery;
|
1158 |
+
}
|
1159 |
+
if ($this->ifragment !== null)
|
1160 |
+
{
|
1161 |
+
$iri .= '#' . $this->ifragment;
|
1162 |
+
}
|
1163 |
+
|
1164 |
+
return $iri;
|
1165 |
+
}
|
1166 |
+
|
1167 |
+
/**
|
1168 |
+
* Get the complete URI
|
1169 |
+
*
|
1170 |
+
* @return string
|
1171 |
+
*/
|
1172 |
+
protected function get_uri()
|
1173 |
+
{
|
1174 |
+
return $this->to_uri($this->get_iri());
|
1175 |
+
}
|
1176 |
+
|
1177 |
+
/**
|
1178 |
+
* Get the complete iauthority
|
1179 |
+
*
|
1180 |
+
* @return string
|
1181 |
+
*/
|
1182 |
+
protected function get_iauthority()
|
1183 |
+
{
|
1184 |
+
if ($this->iuserinfo !== null || $this->ihost !== null || $this->port !== null)
|
1185 |
+
{
|
1186 |
+
$iauthority = '';
|
1187 |
+
if ($this->iuserinfo !== null)
|
1188 |
+
{
|
1189 |
+
$iauthority .= $this->iuserinfo . '@';
|
1190 |
+
}
|
1191 |
+
if ($this->ihost !== null)
|
1192 |
+
{
|
1193 |
+
$iauthority .= $this->ihost;
|
1194 |
+
}
|
1195 |
+
if ($this->port !== null)
|
1196 |
+
{
|
1197 |
+
$iauthority .= ':' . $this->port;
|
1198 |
+
}
|
1199 |
+
return $iauthority;
|
1200 |
+
}
|
1201 |
+
else
|
1202 |
+
{
|
1203 |
+
return null;
|
1204 |
+
}
|
1205 |
+
}
|
1206 |
+
|
1207 |
+
/**
|
1208 |
+
* Get the complete authority
|
1209 |
+
*
|
1210 |
+
* @return string
|
1211 |
+
*/
|
1212 |
+
protected function get_authority()
|
1213 |
+
{
|
1214 |
+
$iauthority = $this->get_iauthority();
|
1215 |
+
if (is_string($iauthority))
|
1216 |
+
return $this->to_uri($iauthority);
|
1217 |
+
else
|
1218 |
+
return $iauthority;
|
1219 |
+
}
|
1220 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Proxy.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Proxy connection interface
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
* @subpackage Proxy
|
7 |
+
* @since 1.6
|
8 |
+
*/
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Proxy connection interface
|
12 |
+
*
|
13 |
+
* Implement this interface to handle proxy settings and authentication
|
14 |
+
*
|
15 |
+
* Parameters should be passed via the constructor where possible, as this
|
16 |
+
* makes it much easier for users to use your provider.
|
17 |
+
*
|
18 |
+
* @see Requests_Hooks
|
19 |
+
* @package Requests
|
20 |
+
* @subpackage Proxy
|
21 |
+
* @since 1.6
|
22 |
+
*/
|
23 |
+
interface Requests_Proxy {
|
24 |
+
/**
|
25 |
+
* Register hooks as needed
|
26 |
+
*
|
27 |
+
* This method is called in {@see Requests::request} when the user has set
|
28 |
+
* an instance as the 'auth' option. Use this callback to register all the
|
29 |
+
* hooks you'll need.
|
30 |
+
*
|
31 |
+
* @see Requests_Hooks::register
|
32 |
+
* @param Requests_Hooks $hooks Hook system
|
33 |
+
*/
|
34 |
+
public function register(Requests_Hooks &$hooks);
|
35 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Proxy/HTTP.php
ADDED
@@ -0,0 +1,150 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* HTTP Proxy connection interface
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
* @subpackage Proxy
|
7 |
+
* @since 1.6
|
8 |
+
*/
|
9 |
+
|
10 |
+
/**
|
11 |
+
* HTTP Proxy connection interface
|
12 |
+
*
|
13 |
+
* Provides a handler for connection via an HTTP proxy
|
14 |
+
*
|
15 |
+
* @package Requests
|
16 |
+
* @subpackage Proxy
|
17 |
+
* @since 1.6
|
18 |
+
*/
|
19 |
+
class Requests_Proxy_HTTP implements Requests_Proxy {
|
20 |
+
/**
|
21 |
+
* Proxy host and port
|
22 |
+
*
|
23 |
+
* Notation: "host:port" (eg 127.0.0.1:8080 or someproxy.com:3128)
|
24 |
+
*
|
25 |
+
* @var string
|
26 |
+
*/
|
27 |
+
public $proxy;
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Username
|
31 |
+
*
|
32 |
+
* @var string
|
33 |
+
*/
|
34 |
+
public $user;
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Password
|
38 |
+
*
|
39 |
+
* @var string
|
40 |
+
*/
|
41 |
+
public $pass;
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Do we need to authenticate? (ie username & password have been provided)
|
45 |
+
*
|
46 |
+
* @var boolean
|
47 |
+
*/
|
48 |
+
public $use_authentication;
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Constructor
|
52 |
+
*
|
53 |
+
* @since 1.6
|
54 |
+
* @throws Requests_Exception On incorrect number of arguments (`authbasicbadargs`)
|
55 |
+
* @param array|null $args Array of user and password. Must have exactly two elements
|
56 |
+
*/
|
57 |
+
public function __construct($args = null) {
|
58 |
+
if (is_string($args)) {
|
59 |
+
$this->proxy = $args;
|
60 |
+
}
|
61 |
+
elseif (is_array($args)) {
|
62 |
+
if (count($args) == 1) {
|
63 |
+
list($this->proxy) = $args;
|
64 |
+
}
|
65 |
+
elseif (count($args) == 3) {
|
66 |
+
list($this->proxy, $this->user, $this->pass) = $args;
|
67 |
+
$this->use_authentication = true;
|
68 |
+
}
|
69 |
+
else {
|
70 |
+
throw new Requests_Exception( 'Invalid number of arguments', 'proxyhttpbadargs');
|
71 |
+
}
|
72 |
+
}
|
73 |
+
}
|
74 |
+
|
75 |
+
/**
|
76 |
+
* Register the necessary callbacks
|
77 |
+
*
|
78 |
+
* @since 1.6
|
79 |
+
* @see curl_before_send
|
80 |
+
* @see fsockopen_remote_socket
|
81 |
+
* @see fsockopen_remote_host_path
|
82 |
+
* @see fsockopen_header
|
83 |
+
* @param Requests_Hooks $hooks Hook system
|
84 |
+
*/
|
85 |
+
public function register(Requests_Hooks &$hooks) {
|
86 |
+
$hooks->register('curl.before_send', array(&$this, 'curl_before_send'));
|
87 |
+
|
88 |
+
$hooks->register('fsockopen.remote_socket', array(&$this, 'fsockopen_remote_socket'));
|
89 |
+
$hooks->register('fsockopen.remote_host_path', array(&$this, 'fsockopen_remote_host_path'));
|
90 |
+
if( $this->use_authentication ) {
|
91 |
+
$hooks->register('fsockopen.after_headers', array(&$this, 'fsockopen_header'));
|
92 |
+
}
|
93 |
+
}
|
94 |
+
|
95 |
+
/**
|
96 |
+
* Set cURL parameters before the data is sent
|
97 |
+
*
|
98 |
+
* @since 1.6
|
99 |
+
* @param resource $handle cURL resource
|
100 |
+
*/
|
101 |
+
public function curl_before_send(&$handle) {
|
102 |
+
curl_setopt($handle, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
|
103 |
+
curl_setopt($handle, CURLOPT_PROXY, $this->proxy);
|
104 |
+
|
105 |
+
if ($this->use_authentication) {
|
106 |
+
curl_setopt($handle, CURLOPT_PROXYAUTH, CURLAUTH_ANY);
|
107 |
+
curl_setopt($handle, CURLOPT_PROXYUSERPWD, $this->get_auth_string());
|
108 |
+
}
|
109 |
+
}
|
110 |
+
|
111 |
+
/**
|
112 |
+
* Alter remote socket information before opening socket connection
|
113 |
+
*
|
114 |
+
* @since 1.6
|
115 |
+
* @param string $out HTTP header string
|
116 |
+
*/
|
117 |
+
public function fsockopen_remote_socket( &$remote_socket ) {
|
118 |
+
$remote_socket = $this->proxy;
|
119 |
+
}
|
120 |
+
|
121 |
+
/**
|
122 |
+
* Alter remote path before getting stream data
|
123 |
+
*
|
124 |
+
* @since 1.6
|
125 |
+
* @param string $out HTTP header string
|
126 |
+
*/
|
127 |
+
public function fsockopen_remote_host_path( &$path, $url ) {
|
128 |
+
$path = $url;
|
129 |
+
}
|
130 |
+
|
131 |
+
/**
|
132 |
+
* Add extra headers to the request before sending
|
133 |
+
*
|
134 |
+
* @since 1.6
|
135 |
+
* @param string $out HTTP header string
|
136 |
+
*/
|
137 |
+
public function fsockopen_header( &$out ) {
|
138 |
+
$out .= "Proxy-Authorization: Basic " . base64_encode($this->get_auth_string()) . "\r\n";
|
139 |
+
}
|
140 |
+
|
141 |
+
/**
|
142 |
+
* Get the authentication string (user:pass)
|
143 |
+
*
|
144 |
+
* @since 1.6
|
145 |
+
* @return string
|
146 |
+
*/
|
147 |
+
public function get_auth_string() {
|
148 |
+
return $this->user . ':' . $this->pass;
|
149 |
+
}
|
150 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Response.php
ADDED
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* HTTP response class
|
4 |
+
*
|
5 |
+
* Contains a response from Requests::request()
|
6 |
+
* @package Requests
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* HTTP response class
|
11 |
+
*
|
12 |
+
* Contains a response from Requests::request()
|
13 |
+
* @package Requests
|
14 |
+
*/
|
15 |
+
class Requests_Response {
|
16 |
+
/**
|
17 |
+
* Constructor
|
18 |
+
*/
|
19 |
+
public function __construct() {
|
20 |
+
$this->headers = new Requests_Response_Headers();
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Response body
|
25 |
+
* @var string
|
26 |
+
*/
|
27 |
+
public $body = '';
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Raw HTTP data from the transport
|
31 |
+
* @var string
|
32 |
+
*/
|
33 |
+
public $raw = '';
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Headers, as an associative array
|
37 |
+
* @var array
|
38 |
+
*/
|
39 |
+
public $headers = array();
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Status code, false if non-blocking
|
43 |
+
* @var integer|boolean
|
44 |
+
*/
|
45 |
+
public $status_code = false;
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Whether the request succeeded or not
|
49 |
+
* @var boolean
|
50 |
+
*/
|
51 |
+
public $success = false;
|
52 |
+
|
53 |
+
/**
|
54 |
+
* Number of redirects the request used
|
55 |
+
* @var integer
|
56 |
+
*/
|
57 |
+
public $redirects = 0;
|
58 |
+
|
59 |
+
/**
|
60 |
+
* URL requested
|
61 |
+
* @var string
|
62 |
+
*/
|
63 |
+
public $url = '';
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Previous requests (from redirects)
|
67 |
+
* @var array Array of Requests_Response objects
|
68 |
+
*/
|
69 |
+
public $history = array();
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Cookies from the request
|
73 |
+
*/
|
74 |
+
public $cookies = array();
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Throws an exception if the request was not successful
|
78 |
+
*
|
79 |
+
* @throws Requests_Exception If `$allow_redirects` is false, and code is 3xx (`response.no_redirects`)
|
80 |
+
* @throws Requests_Exception_HTTP On non-successful status code. Exception class corresponds to code (e.g. {@see Requests_Exception_HTTP_404})
|
81 |
+
* @param boolean $allow_redirects Set to false to throw on a 3xx as well
|
82 |
+
*/
|
83 |
+
public function throw_for_status($allow_redirects = true) {
|
84 |
+
if ($this->status_code >= 300 && $this->status_code < 400) {
|
85 |
+
if (!$allow_redirects) {
|
86 |
+
throw new Requests_Exception('Redirection not allowed', 'response.no_redirects', $this);
|
87 |
+
}
|
88 |
+
}
|
89 |
+
|
90 |
+
elseif (!$this->success) {
|
91 |
+
$exception = Requests_Exception_HTTP::get_class($this->status_code);
|
92 |
+
throw new $exception(null, $this);
|
93 |
+
}
|
94 |
+
}
|
95 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Response/Headers.php
ADDED
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Case-insensitive dictionary, suitable for HTTP headers
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Case-insensitive dictionary, suitable for HTTP headers
|
10 |
+
*
|
11 |
+
* @package Requests
|
12 |
+
*/
|
13 |
+
class Requests_Response_Headers extends Requests_Utility_CaseInsensitiveDictionary {
|
14 |
+
/**
|
15 |
+
* Get the given header
|
16 |
+
*
|
17 |
+
* Unlike {@see self::getValues()}, this returns a string. If there are
|
18 |
+
* multiple values, it concatenates them with a comma as per RFC2616.
|
19 |
+
*
|
20 |
+
* Avoid using this where commas may be used unquoted in values, such as
|
21 |
+
* Set-Cookie headers.
|
22 |
+
*
|
23 |
+
* @param string $key
|
24 |
+
* @return string Header value
|
25 |
+
*/
|
26 |
+
public function offsetGet($key) {
|
27 |
+
$key = strtolower($key);
|
28 |
+
if (!isset($this->data[$key]))
|
29 |
+
return null;
|
30 |
+
|
31 |
+
return $this->flatten($this->data[$key]);
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Set the given item
|
36 |
+
*
|
37 |
+
* @throws Requests_Exception On attempting to use dictionary as list (`invalidset`)
|
38 |
+
*
|
39 |
+
* @param string $key Item name
|
40 |
+
* @param string $value Item value
|
41 |
+
*/
|
42 |
+
public function offsetSet($key, $value) {
|
43 |
+
if ($key === null) {
|
44 |
+
throw new Requests_Exception('Object is a dictionary, not a list', 'invalidset');
|
45 |
+
}
|
46 |
+
|
47 |
+
$key = strtolower($key);
|
48 |
+
|
49 |
+
if (!isset($this->data[$key])) {
|
50 |
+
$this->data[$key] = array();
|
51 |
+
}
|
52 |
+
|
53 |
+
$this->data[$key][] = $value;
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Get all values for a given header
|
58 |
+
*
|
59 |
+
* @param string $key
|
60 |
+
* @return array Header values
|
61 |
+
*/
|
62 |
+
public function getValues($key) {
|
63 |
+
$key = strtolower($key);
|
64 |
+
if (!isset($this->data[$key]))
|
65 |
+
return null;
|
66 |
+
|
67 |
+
return $this->data[$key];
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* Flattens a value into a string
|
72 |
+
*
|
73 |
+
* Converts an array into a string by imploding values with a comma, as per
|
74 |
+
* RFC2616's rules for folding headers.
|
75 |
+
*
|
76 |
+
* @param string|array $value Value to flatten
|
77 |
+
* @return string Flattened value
|
78 |
+
*/
|
79 |
+
public function flatten($value) {
|
80 |
+
if (is_array($value))
|
81 |
+
$value = implode(',', $value);
|
82 |
+
|
83 |
+
return $value;
|
84 |
+
}
|
85 |
+
|
86 |
+
/**
|
87 |
+
* Get an iterator for the data
|
88 |
+
*
|
89 |
+
* Converts the internal
|
90 |
+
* @return ArrayIterator
|
91 |
+
*/
|
92 |
+
public function getIterator() {
|
93 |
+
return new Requests_Utility_FilteredIterator($this->data, array($this, 'flatten'));
|
94 |
+
}
|
95 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/SSL.php
ADDED
@@ -0,0 +1,151 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* SSL utilities for Requests
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
* @subpackage Utilities
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* SSL utilities for Requests
|
11 |
+
*
|
12 |
+
* Collection of utilities for working with and verifying SSL certificates.
|
13 |
+
*
|
14 |
+
* @package Requests
|
15 |
+
* @subpackage Utilities
|
16 |
+
*/
|
17 |
+
class Requests_SSL {
|
18 |
+
/**
|
19 |
+
* Verify the certificate against common name and subject alternative names
|
20 |
+
*
|
21 |
+
* Unfortunately, PHP doesn't check the certificate against the alternative
|
22 |
+
* names, leading things like 'https://www.github.com/' to be invalid.
|
23 |
+
* Instead
|
24 |
+
*
|
25 |
+
* @see http://tools.ietf.org/html/rfc2818#section-3.1 RFC2818, Section 3.1
|
26 |
+
*
|
27 |
+
* @throws Requests_Exception On not obtaining a match for the host (`fsockopen.ssl.no_match`)
|
28 |
+
* @param string $host Host name to verify against
|
29 |
+
* @param resource $context Stream context
|
30 |
+
* @return bool
|
31 |
+
*/
|
32 |
+
public static function verify_certificate($host, $cert) {
|
33 |
+
// Calculate the valid wildcard match if the host is not an IP address
|
34 |
+
$parts = explode('.', $host);
|
35 |
+
if (ip2long($host) === false) {
|
36 |
+
$parts[0] = '*';
|
37 |
+
}
|
38 |
+
$wildcard = implode('.', $parts);
|
39 |
+
|
40 |
+
$has_dns_alt = false;
|
41 |
+
|
42 |
+
// Check the subjectAltName
|
43 |
+
if (!empty($cert['extensions']) && !empty($cert['extensions']['subjectAltName'])) {
|
44 |
+
$altnames = explode(',', $cert['extensions']['subjectAltName']);
|
45 |
+
foreach ($altnames as $altname) {
|
46 |
+
$altname = trim($altname);
|
47 |
+
if (strpos($altname, 'DNS:') !== 0)
|
48 |
+
continue;
|
49 |
+
|
50 |
+
$has_dns_alt = true;
|
51 |
+
|
52 |
+
// Strip the 'DNS:' prefix and trim whitespace
|
53 |
+
$altname = trim(substr($altname, 4));
|
54 |
+
|
55 |
+
// Check for a match
|
56 |
+
if (self::match_domain($host, $altname) === true) {
|
57 |
+
return true;
|
58 |
+
}
|
59 |
+
}
|
60 |
+
}
|
61 |
+
|
62 |
+
// Fall back to checking the common name if we didn't get any dNSName
|
63 |
+
// alt names, as per RFC2818
|
64 |
+
if (!$has_dns_alt && !empty($cert['subject']['CN'])) {
|
65 |
+
// Check for a match
|
66 |
+
if (self::match_domain($host, $cert['subject']['CN']) === true) {
|
67 |
+
return true;
|
68 |
+
}
|
69 |
+
}
|
70 |
+
|
71 |
+
return false;
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Verify that a reference name is valid
|
76 |
+
*
|
77 |
+
* Verifies a dNSName for HTTPS usage, (almost) as per Firefox's rules:
|
78 |
+
* - Wildcards can only occur in a name with more than 3 components
|
79 |
+
* - Wildcards can only occur as the last character in the first
|
80 |
+
* component
|
81 |
+
* - Wildcards may be preceded by additional characters
|
82 |
+
*
|
83 |
+
* We modify these rules to be a bit stricter and only allow the wildcard
|
84 |
+
* character to be the full first component; that is, with the exclusion of
|
85 |
+
* the third rule.
|
86 |
+
*
|
87 |
+
* @param string $reference Reference dNSName
|
88 |
+
* @return boolean Is the name valid?
|
89 |
+
*/
|
90 |
+
public static function verify_reference_name($reference) {
|
91 |
+
$parts = explode('.', $reference);
|
92 |
+
|
93 |
+
// Check the first part of the name
|
94 |
+
$first = array_shift($parts);
|
95 |
+
|
96 |
+
if (strpos($first, '*') !== false) {
|
97 |
+
// Check that the wildcard is the full part
|
98 |
+
if ($first !== '*') {
|
99 |
+
return false;
|
100 |
+
}
|
101 |
+
|
102 |
+
// Check that we have at least 3 components (including first)
|
103 |
+
if (count($parts) < 2) {
|
104 |
+
return false;
|
105 |
+
}
|
106 |
+
}
|
107 |
+
|
108 |
+
// Check the remaining parts
|
109 |
+
foreach ($parts as $part) {
|
110 |
+
if (strpos($part, '*') !== false) {
|
111 |
+
return false;
|
112 |
+
}
|
113 |
+
}
|
114 |
+
|
115 |
+
// Nothing found, verified!
|
116 |
+
return true;
|
117 |
+
}
|
118 |
+
|
119 |
+
/**
|
120 |
+
* Match a hostname against a dNSName reference
|
121 |
+
*
|
122 |
+
* @param string $host Requested host
|
123 |
+
* @param string $reference dNSName to match against
|
124 |
+
* @return boolean Does the domain match?
|
125 |
+
*/
|
126 |
+
public static function match_domain($host, $reference) {
|
127 |
+
// Check if the reference is blacklisted first
|
128 |
+
if (self::verify_reference_name($reference) !== true) {
|
129 |
+
return false;
|
130 |
+
}
|
131 |
+
|
132 |
+
// Check for a direct match
|
133 |
+
if ($host === $reference) {
|
134 |
+
return true;
|
135 |
+
}
|
136 |
+
|
137 |
+
// Calculate the valid wildcard match if the host is not an IP address
|
138 |
+
// Also validates that the host has 3 parts or more, as per Firefox's
|
139 |
+
// ruleset.
|
140 |
+
if (ip2long($host) === false) {
|
141 |
+
$parts = explode('.', $host);
|
142 |
+
$parts[0] = '*';
|
143 |
+
$wildcard = implode('.', $parts);
|
144 |
+
if ($wildcard === $reference) {
|
145 |
+
return true;
|
146 |
+
}
|
147 |
+
}
|
148 |
+
|
149 |
+
return false;
|
150 |
+
}
|
151 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Session.php
ADDED
@@ -0,0 +1,253 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Session handler for persistent requests and default parameters
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
* @subpackage Session Handler
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Session handler for persistent requests and default parameters
|
11 |
+
*
|
12 |
+
* Allows various options to be set as default values, and merges both the
|
13 |
+
* options and URL properties together. A base URL can be set for all requests,
|
14 |
+
* with all subrequests resolved from this. Base options can be set (including
|
15 |
+
* a shared cookie jar), then overridden for individual requests.
|
16 |
+
*
|
17 |
+
* @package Requests
|
18 |
+
* @subpackage Session Handler
|
19 |
+
*/
|
20 |
+
class Requests_Session {
|
21 |
+
/**
|
22 |
+
* Base URL for requests
|
23 |
+
*
|
24 |
+
* URLs will be made absolute using this as the base
|
25 |
+
* @var string|null
|
26 |
+
*/
|
27 |
+
public $url = null;
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Base headers for requests
|
31 |
+
* @var array
|
32 |
+
*/
|
33 |
+
public $headers = array();
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Base data for requests
|
37 |
+
*
|
38 |
+
* If both the base data and the per-request data are arrays, the data will
|
39 |
+
* be merged before sending the request.
|
40 |
+
*
|
41 |
+
* @var array
|
42 |
+
*/
|
43 |
+
public $data = array();
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Base options for requests
|
47 |
+
*
|
48 |
+
* The base options are merged with the per-request data for each request.
|
49 |
+
* The only default option is a shared cookie jar between requests.
|
50 |
+
*
|
51 |
+
* Values here can also be set directly via properties on the Session
|
52 |
+
* object, e.g. `$session->useragent = 'X';`
|
53 |
+
*
|
54 |
+
* @var array
|
55 |
+
*/
|
56 |
+
public $options = array();
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Create a new session
|
60 |
+
*
|
61 |
+
* @param string|null $url Base URL for requests
|
62 |
+
* @param array $headers Default headers for requests
|
63 |
+
* @param array $data Default data for requests
|
64 |
+
* @param array $options Default options for requests
|
65 |
+
*/
|
66 |
+
public function __construct($url = null, $headers = array(), $data = array(), $options = array()) {
|
67 |
+
$this->url = $url;
|
68 |
+
$this->headers = $headers;
|
69 |
+
$this->data = $data;
|
70 |
+
$this->options = $options;
|
71 |
+
|
72 |
+
if (empty($this->options['cookies'])) {
|
73 |
+
$this->options['cookies'] = new Requests_Cookie_Jar();
|
74 |
+
}
|
75 |
+
}
|
76 |
+
|
77 |
+
/**
|
78 |
+
* Get a property's value
|
79 |
+
*
|
80 |
+
* @param string $key Property key
|
81 |
+
* @return mixed|null Property value, null if none found
|
82 |
+
*/
|
83 |
+
public function __get($key) {
|
84 |
+
if (isset($this->options[$key]))
|
85 |
+
return $this->options[$key];
|
86 |
+
|
87 |
+
return null;
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* Set a property's value
|
92 |
+
*
|
93 |
+
* @param string $key Property key
|
94 |
+
* @param mixed $value Property value
|
95 |
+
*/
|
96 |
+
public function __set($key, $value) {
|
97 |
+
$this->options[$key] = $value;
|
98 |
+
}
|
99 |
+
|
100 |
+
/**
|
101 |
+
* Remove a property's value
|
102 |
+
*
|
103 |
+
* @param string $key Property key
|
104 |
+
*/
|
105 |
+
public function __isset($key) {
|
106 |
+
return isset($this->options[$key]);
|
107 |
+
}
|
108 |
+
|
109 |
+
/**
|
110 |
+
* Remove a property's value
|
111 |
+
*
|
112 |
+
* @param string $key Property key
|
113 |
+
*/
|
114 |
+
public function __unset($key) {
|
115 |
+
$this->options[$key] = null;
|
116 |
+
}
|
117 |
+
|
118 |
+
/**#@+
|
119 |
+
* @see request()
|
120 |
+
* @param string $url
|
121 |
+
* @param array $headers
|
122 |
+
* @param array $options
|
123 |
+
* @return Requests_Response
|
124 |
+
*/
|
125 |
+
/**
|
126 |
+
* Send a GET request
|
127 |
+
*/
|
128 |
+
public function get($url, $headers = array(), $options = array()) {
|
129 |
+
return $this->request($url, $headers, null, Requests::GET, $options);
|
130 |
+
}
|
131 |
+
|
132 |
+
/**
|
133 |
+
* Send a HEAD request
|
134 |
+
*/
|
135 |
+
public function head($url, $headers = array(), $options = array()) {
|
136 |
+
return $this->request($url, $headers, null, Requests::HEAD, $options);
|
137 |
+
}
|
138 |
+
|
139 |
+
/**
|
140 |
+
* Send a DELETE request
|
141 |
+
*/
|
142 |
+
public function delete($url, $headers = array(), $options = array()) {
|
143 |
+
return $this->request($url, $headers, null, Requests::DELETE, $options);
|
144 |
+
}
|
145 |
+
/**#@-*/
|
146 |
+
|
147 |
+
/**#@+
|
148 |
+
* @see request()
|
149 |
+
* @param string $url
|
150 |
+
* @param array $headers
|
151 |
+
* @param array $data
|
152 |
+
* @param array $options
|
153 |
+
* @return Requests_Response
|
154 |
+
*/
|
155 |
+
/**
|
156 |
+
* Send a POST request
|
157 |
+
*/
|
158 |
+
public function post($url, $headers = array(), $data = array(), $options = array()) {
|
159 |
+
return $this->request($url, $headers, $data, Requests::POST, $options);
|
160 |
+
}
|
161 |
+
|
162 |
+
/**
|
163 |
+
* Send a PUT request
|
164 |
+
*/
|
165 |
+
public function put($url, $headers = array(), $data = array(), $options = array()) {
|
166 |
+
return $this->request($url, $headers, $data, Requests::PUT, $options);
|
167 |
+
}
|
168 |
+
|
169 |
+
/**
|
170 |
+
* Send a PATCH request
|
171 |
+
*
|
172 |
+
* Note: Unlike {@see post} and {@see put}, `$headers` is required, as the
|
173 |
+
* specification recommends that should send an ETag
|
174 |
+
*
|
175 |
+
* @link http://tools.ietf.org/html/rfc5789
|
176 |
+
*/
|
177 |
+
public function patch($url, $headers, $data = array(), $options = array()) {
|
178 |
+
return $this->request($url, $headers, $data, Requests::PATCH, $options);
|
179 |
+
}
|
180 |
+
/**#@-*/
|
181 |
+
|
182 |
+
/**
|
183 |
+
* Main interface for HTTP requests
|
184 |
+
*
|
185 |
+
* This method initiates a request and sends it via a transport before
|
186 |
+
* parsing.
|
187 |
+
*
|
188 |
+
* @see Requests::request()
|
189 |
+
*
|
190 |
+
* @throws Requests_Exception On invalid URLs (`nonhttp`)
|
191 |
+
*
|
192 |
+
* @param string $url URL to request
|
193 |
+
* @param array $headers Extra headers to send with the request
|
194 |
+
* @param array $data Data to send either as a query string for GET/HEAD requests, or in the body for POST requests
|
195 |
+
* @param string $type HTTP request type (use Requests constants)
|
196 |
+
* @param array $options Options for the request (see {@see Requests::request})
|
197 |
+
* @return Requests_Response
|
198 |
+
*/
|
199 |
+
public function request($url, $headers = array(), $data = array(), $type = Requests::GET, $options = array()) {
|
200 |
+
$request = $this->merge_request(compact('url', 'headers', 'data', 'options'));
|
201 |
+
|
202 |
+
return Requests::request($request['url'], $request['headers'], $request['data'], $type, $request['options']);
|
203 |
+
}
|
204 |
+
|
205 |
+
/**
|
206 |
+
* Send multiple HTTP requests simultaneously
|
207 |
+
*
|
208 |
+
* @see Requests::request_multiple()
|
209 |
+
*
|
210 |
+
* @param array $requests Requests data (see {@see Requests::request_multiple})
|
211 |
+
* @param array $options Global and default options (see {@see Requests::request})
|
212 |
+
* @return array Responses (either Requests_Response or a Requests_Exception object)
|
213 |
+
*/
|
214 |
+
public function request_multiple($requests, $options = array()) {
|
215 |
+
foreach ($requests as $key => $request) {
|
216 |
+
$requests[$key] = $this->merge_request($request, false);
|
217 |
+
}
|
218 |
+
|
219 |
+
$options = array_merge($this->options, $options);
|
220 |
+
|
221 |
+
// Disallow forcing the type, as that's a per request setting
|
222 |
+
unset($options['type']);
|
223 |
+
|
224 |
+
return Requests::request_multiple($requests, $options);
|
225 |
+
}
|
226 |
+
|
227 |
+
/**
|
228 |
+
* Merge a request's data with the default data
|
229 |
+
*
|
230 |
+
* @param array $request Request data (same form as {@see request_multiple})
|
231 |
+
* @param boolean $merge_options Should we merge options as well?
|
232 |
+
* @return array Request data
|
233 |
+
*/
|
234 |
+
protected function merge_request($request, $merge_options = true) {
|
235 |
+
if ($this->url !== null) {
|
236 |
+
$request['url'] = Requests_IRI::absolutize($this->url, $request['url']);
|
237 |
+
$request['url'] = $request['url']->uri;
|
238 |
+
}
|
239 |
+
$request['headers'] = array_merge($this->headers, $request['headers']);
|
240 |
+
|
241 |
+
if (is_array($request['data']) && is_array($this->data)) {
|
242 |
+
$request['data'] = array_merge($this->data, $request['data']);
|
243 |
+
}
|
244 |
+
|
245 |
+
if ($merge_options !== false) {
|
246 |
+
$request['options'] = array_merge($this->options, $request['options']);
|
247 |
+
|
248 |
+
// Disallow forcing the type, as that's a per request setting
|
249 |
+
unset($request['options']['type']);
|
250 |
+
}
|
251 |
+
return $request;
|
252 |
+
}
|
253 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Transport.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Base HTTP transport
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
* @subpackage Transport
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Base HTTP transport
|
11 |
+
*
|
12 |
+
* @package Requests
|
13 |
+
* @subpackage Transport
|
14 |
+
*/
|
15 |
+
interface Requests_Transport {
|
16 |
+
/**
|
17 |
+
* Perform a request
|
18 |
+
*
|
19 |
+
* @param string $url URL to request
|
20 |
+
* @param array $headers Associative array of request headers
|
21 |
+
* @param string|array $data Data to send either as the POST body, or as parameters in the URL for a GET/HEAD
|
22 |
+
* @param array $options Request options, see {@see Requests::response()} for documentation
|
23 |
+
* @return string Raw HTTP result
|
24 |
+
*/
|
25 |
+
public function request($url, $headers = array(), $data = array(), $options = array());
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Send multiple requests simultaneously
|
29 |
+
*
|
30 |
+
* @param array $requests Request data (array of 'url', 'headers', 'data', 'options') as per {@see Requests_Transport::request}
|
31 |
+
* @param array $options Global options, see {@see Requests::response()} for documentation
|
32 |
+
* @return array Array of Requests_Response objects (may contain Requests_Exception or string responses as well)
|
33 |
+
*/
|
34 |
+
public function request_multiple($requests, $options);
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Self-test whether the transport can be used
|
38 |
+
* @return bool
|
39 |
+
*/
|
40 |
+
public static function test();
|
41 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Transport/cURL.php
ADDED
@@ -0,0 +1,351 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* cURL HTTP transport
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
* @subpackage Transport
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* cURL HTTP transport
|
11 |
+
*
|
12 |
+
* @package Requests
|
13 |
+
* @subpackage Transport
|
14 |
+
*/
|
15 |
+
class Requests_Transport_cURL implements Requests_Transport {
|
16 |
+
/**
|
17 |
+
* Raw HTTP data
|
18 |
+
*
|
19 |
+
* @var string
|
20 |
+
*/
|
21 |
+
public $headers = '';
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Information on the current request
|
25 |
+
*
|
26 |
+
* @var array cURL information array, see {@see http://php.net/curl_getinfo}
|
27 |
+
*/
|
28 |
+
public $info;
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Version string
|
32 |
+
*
|
33 |
+
* @var string
|
34 |
+
*/
|
35 |
+
public $version;
|
36 |
+
|
37 |
+
/**
|
38 |
+
* cURL handle
|
39 |
+
*
|
40 |
+
* @var resource
|
41 |
+
*/
|
42 |
+
protected $fp;
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Have we finished the headers yet?
|
46 |
+
*
|
47 |
+
* @var boolean
|
48 |
+
*/
|
49 |
+
protected $done_headers = false;
|
50 |
+
|
51 |
+
/**
|
52 |
+
* If streaming to a file, keep the file pointer
|
53 |
+
*
|
54 |
+
* @var resource
|
55 |
+
*/
|
56 |
+
protected $stream_handle;
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Constructor
|
60 |
+
*/
|
61 |
+
public function __construct() {
|
62 |
+
$curl = curl_version();
|
63 |
+
$this->version = $curl['version'];
|
64 |
+
$this->fp = curl_init();
|
65 |
+
|
66 |
+
curl_setopt($this->fp, CURLOPT_HEADER, false);
|
67 |
+
curl_setopt($this->fp, CURLOPT_RETURNTRANSFER, 1);
|
68 |
+
if (version_compare($this->version, '7.10.5', '>=')) {
|
69 |
+
curl_setopt($this->fp, CURLOPT_ENCODING, '');
|
70 |
+
}
|
71 |
+
if (defined('CURLOPT_PROTOCOLS')) {
|
72 |
+
curl_setopt($this->fp, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS);
|
73 |
+
}
|
74 |
+
if (defined('CURLOPT_REDIR_PROTOCOLS')) {
|
75 |
+
curl_setopt($this->fp, CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS);
|
76 |
+
}
|
77 |
+
}
|
78 |
+
|
79 |
+
/**
|
80 |
+
* Perform a request
|
81 |
+
*
|
82 |
+
* @throws Requests_Exception On a cURL error (`curlerror`)
|
83 |
+
*
|
84 |
+
* @param string $url URL to request
|
85 |
+
* @param array $headers Associative array of request headers
|
86 |
+
* @param string|array $data Data to send either as the POST body, or as parameters in the URL for a GET/HEAD
|
87 |
+
* @param array $options Request options, see {@see Requests::response()} for documentation
|
88 |
+
* @return string Raw HTTP result
|
89 |
+
*/
|
90 |
+
public function request($url, $headers = array(), $data = array(), $options = array()) {
|
91 |
+
$this->setup_handle($url, $headers, $data, $options);
|
92 |
+
|
93 |
+
$options['hooks']->dispatch('curl.before_send', array(&$this->fp));
|
94 |
+
|
95 |
+
if ($options['filename'] !== false) {
|
96 |
+
$this->stream_handle = fopen($options['filename'], 'wb');
|
97 |
+
curl_setopt($this->fp, CURLOPT_FILE, $this->stream_handle);
|
98 |
+
}
|
99 |
+
|
100 |
+
if (isset($options['verify'])) {
|
101 |
+
if ($options['verify'] === false) {
|
102 |
+
curl_setopt($this->fp, CURLOPT_SSL_VERIFYHOST, 0);
|
103 |
+
curl_setopt($this->fp, CURLOPT_SSL_VERIFYPEER, 0);
|
104 |
+
|
105 |
+
} elseif (is_string($options['verify'])) {
|
106 |
+
curl_setopt($this->fp, CURLOPT_CAINFO, $options['verify']);
|
107 |
+
}
|
108 |
+
}
|
109 |
+
|
110 |
+
if (isset($options['verifyname']) && $options['verifyname'] === false) {
|
111 |
+
curl_setopt($this->fp, CURLOPT_SSL_VERIFYHOST, 0);
|
112 |
+
}
|
113 |
+
|
114 |
+
$response = curl_exec($this->fp);
|
115 |
+
|
116 |
+
$options['hooks']->dispatch('curl.after_send', array(&$fake_headers));
|
117 |
+
|
118 |
+
if (curl_errno($this->fp) === 23 || curl_errno($this->fp) === 61) {
|
119 |
+
curl_setopt($this->fp, CURLOPT_ENCODING, 'none');
|
120 |
+
$response = curl_exec($this->fp);
|
121 |
+
}
|
122 |
+
|
123 |
+
$this->process_response($response, $options);
|
124 |
+
curl_close($this->fp);
|
125 |
+
return $this->headers;
|
126 |
+
}
|
127 |
+
|
128 |
+
/**
|
129 |
+
* Send multiple requests simultaneously
|
130 |
+
*
|
131 |
+
* @param array $requests Request data
|
132 |
+
* @param array $options Global options
|
133 |
+
* @return array Array of Requests_Response objects (may contain Requests_Exception or string responses as well)
|
134 |
+
*/
|
135 |
+
public function request_multiple($requests, $options) {
|
136 |
+
$multihandle = curl_multi_init();
|
137 |
+
$subrequests = array();
|
138 |
+
$subhandles = array();
|
139 |
+
|
140 |
+
$class = get_class($this);
|
141 |
+
foreach ($requests as $id => $request) {
|
142 |
+
$subrequests[$id] = new $class();
|
143 |
+
$subhandles[$id] = $subrequests[$id]->get_subrequest_handle($request['url'], $request['headers'], $request['data'], $request['options']);
|
144 |
+
$request['options']['hooks']->dispatch('curl.before_multi_add', array(&$subhandles[$id]));
|
145 |
+
curl_multi_add_handle($multihandle, $subhandles[$id]);
|
146 |
+
}
|
147 |
+
|
148 |
+
$completed = 0;
|
149 |
+
$responses = array();
|
150 |
+
|
151 |
+
$request['options']['hooks']->dispatch('curl.before_multi_exec', array(&$multihandle));
|
152 |
+
|
153 |
+
do {
|
154 |
+
$active = false;
|
155 |
+
|
156 |
+
do {
|
157 |
+
$status = curl_multi_exec($multihandle, $active);
|
158 |
+
}
|
159 |
+
while ($status === CURLM_CALL_MULTI_PERFORM);
|
160 |
+
|
161 |
+
$to_process = array();
|
162 |
+
|
163 |
+
// Read the information as needed
|
164 |
+
while ($done = curl_multi_info_read($multihandle)) {
|
165 |
+
$key = array_search($done['handle'], $subhandles, true);
|
166 |
+
if (!isset($to_process[$key])) {
|
167 |
+
$to_process[$key] = $done;
|
168 |
+
}
|
169 |
+
}
|
170 |
+
|
171 |
+
// Parse the finished requests before we start getting the new ones
|
172 |
+
foreach ($to_process as $key => $done) {
|
173 |
+
$options = $requests[$key]['options'];
|
174 |
+
$responses[$key] = $subrequests[$key]->process_response(curl_multi_getcontent($done['handle']), $options);
|
175 |
+
|
176 |
+
$options['hooks']->dispatch('transport.internal.parse_response', array(&$responses[$key], $requests[$key]));
|
177 |
+
|
178 |
+
curl_multi_remove_handle($multihandle, $done['handle']);
|
179 |
+
curl_close($done['handle']);
|
180 |
+
|
181 |
+
if (!is_string($responses[$key])) {
|
182 |
+
$options['hooks']->dispatch('multiple.request.complete', array(&$responses[$key], $key));
|
183 |
+
}
|
184 |
+
$completed++;
|
185 |
+
}
|
186 |
+
}
|
187 |
+
while ($active || $completed < count($subrequests));
|
188 |
+
|
189 |
+
$request['options']['hooks']->dispatch('curl.after_multi_exec', array(&$multihandle));
|
190 |
+
|
191 |
+
curl_multi_close($multihandle);
|
192 |
+
|
193 |
+
return $responses;
|
194 |
+
}
|
195 |
+
|
196 |
+
/**
|
197 |
+
* Get the cURL handle for use in a multi-request
|
198 |
+
*
|
199 |
+
* @param string $url URL to request
|
200 |
+
* @param array $headers Associative array of request headers
|
201 |
+
* @param string|array $data Data to send either as the POST body, or as parameters in the URL for a GET/HEAD
|
202 |
+
* @param array $options Request options, see {@see Requests::response()} for documentation
|
203 |
+
* @return resource Subrequest's cURL handle
|
204 |
+
*/
|
205 |
+
public function &get_subrequest_handle($url, $headers, $data, $options) {
|
206 |
+
$this->setup_handle($url, $headers, $data, $options);
|
207 |
+
|
208 |
+
if ($options['filename'] !== false) {
|
209 |
+
$this->stream_handle = fopen($options['filename'], 'wb');
|
210 |
+
curl_setopt($this->fp, CURLOPT_FILE, $this->stream_handle);
|
211 |
+
}
|
212 |
+
|
213 |
+
return $this->fp;
|
214 |
+
}
|
215 |
+
|
216 |
+
/**
|
217 |
+
* Setup the cURL handle for the given data
|
218 |
+
*
|
219 |
+
* @param string $url URL to request
|
220 |
+
* @param array $headers Associative array of request headers
|
221 |
+
* @param string|array $data Data to send either as the POST body, or as parameters in the URL for a GET/HEAD
|
222 |
+
* @param array $options Request options, see {@see Requests::response()} for documentation
|
223 |
+
*/
|
224 |
+
protected function setup_handle($url, $headers, $data, $options) {
|
225 |
+
$options['hooks']->dispatch('curl.before_request', array(&$this->fp));
|
226 |
+
|
227 |
+
$headers = Requests::flatten($headers);
|
228 |
+
if (in_array($options['type'], array(Requests::HEAD, Requests::GET, Requests::DELETE)) & !empty($data)) {
|
229 |
+
$url = self::format_get($url, $data);
|
230 |
+
}
|
231 |
+
elseif (!empty($data) && !is_string($data)) {
|
232 |
+
$data = http_build_query($data, null, '&');
|
233 |
+
}
|
234 |
+
|
235 |
+
switch ($options['type']) {
|
236 |
+
case Requests::POST:
|
237 |
+
curl_setopt($this->fp, CURLOPT_POST, true);
|
238 |
+
curl_setopt($this->fp, CURLOPT_POSTFIELDS, $data);
|
239 |
+
break;
|
240 |
+
case Requests::PATCH:
|
241 |
+
case Requests::PUT:
|
242 |
+
curl_setopt($this->fp, CURLOPT_CUSTOMREQUEST, $options['type']);
|
243 |
+
curl_setopt($this->fp, CURLOPT_POSTFIELDS, $data);
|
244 |
+
break;
|
245 |
+
case Requests::DELETE:
|
246 |
+
curl_setopt($this->fp, CURLOPT_CUSTOMREQUEST, 'DELETE');
|
247 |
+
break;
|
248 |
+
case Requests::HEAD:
|
249 |
+
curl_setopt($this->fp, CURLOPT_NOBODY, true);
|
250 |
+
break;
|
251 |
+
}
|
252 |
+
|
253 |
+
curl_setopt($this->fp, CURLOPT_URL, $url);
|
254 |
+
curl_setopt($this->fp, CURLOPT_TIMEOUT, $options['timeout']);
|
255 |
+
curl_setopt($this->fp, CURLOPT_CONNECTTIMEOUT, $options['timeout']);
|
256 |
+
curl_setopt($this->fp, CURLOPT_REFERER, $url);
|
257 |
+
curl_setopt($this->fp, CURLOPT_USERAGENT, $options['useragent']);
|
258 |
+
curl_setopt($this->fp, CURLOPT_HTTPHEADER, $headers);
|
259 |
+
|
260 |
+
if (true === $options['blocking']) {
|
261 |
+
curl_setopt($this->fp, CURLOPT_HEADERFUNCTION, array(&$this, 'stream_headers'));
|
262 |
+
}
|
263 |
+
}
|
264 |
+
|
265 |
+
public function process_response($response, $options) {
|
266 |
+
if ($options['blocking'] === false) {
|
267 |
+
$fake_headers = '';
|
268 |
+
$options['hooks']->dispatch('curl.after_request', array(&$fake_headers));
|
269 |
+
return false;
|
270 |
+
}
|
271 |
+
if ($options['filename'] !== false) {
|
272 |
+
fclose($this->stream_handle);
|
273 |
+
$this->headers = trim($this->headers);
|
274 |
+
}
|
275 |
+
else {
|
276 |
+
$this->headers .= $response;
|
277 |
+
}
|
278 |
+
|
279 |
+
if (curl_errno($this->fp)) {
|
280 |
+
throw new Requests_Exception('cURL error ' . curl_errno($this->fp) . ': ' . curl_error($this->fp), 'curlerror', $this->fp);
|
281 |
+
return;
|
282 |
+
}
|
283 |
+
$this->info = curl_getinfo($this->fp);
|
284 |
+
|
285 |
+
$options['hooks']->dispatch('curl.after_request', array(&$this->headers));
|
286 |
+
return $this->headers;
|
287 |
+
}
|
288 |
+
|
289 |
+
/**
|
290 |
+
* Collect the headers as they are received
|
291 |
+
*
|
292 |
+
* @param resource $handle cURL resource
|
293 |
+
* @param string $headers Header string
|
294 |
+
* @return integer Length of provided header
|
295 |
+
*/
|
296 |
+
protected function stream_headers($handle, $headers) {
|
297 |
+
// Why do we do this? cURL will send both the final response and any
|
298 |
+
// interim responses, such as a 100 Continue. We don't need that.
|
299 |
+
// (We may want to keep this somewhere just in case)
|
300 |
+
if ($this->done_headers) {
|
301 |
+
$this->headers = '';
|
302 |
+
$this->done_headers = false;
|
303 |
+
}
|
304 |
+
$this->headers .= $headers;
|
305 |
+
|
306 |
+
if ($headers === "\r\n") {
|
307 |
+
$this->done_headers = true;
|
308 |
+
}
|
309 |
+
return strlen($headers);
|
310 |
+
}
|
311 |
+
|
312 |
+
/**
|
313 |
+
* Format a URL given GET data
|
314 |
+
*
|
315 |
+
* @param string $url
|
316 |
+
* @param array|object $data Data to build query using, see {@see http://php.net/http_build_query}
|
317 |
+
* @return string URL with data
|
318 |
+
*/
|
319 |
+
protected static function format_get($url, $data) {
|
320 |
+
if (!empty($data)) {
|
321 |
+
$url_parts = parse_url($url);
|
322 |
+
if (empty($url_parts['query'])) {
|
323 |
+
$query = $url_parts['query'] = '';
|
324 |
+
}
|
325 |
+
else {
|
326 |
+
$query = $url_parts['query'];
|
327 |
+
}
|
328 |
+
|
329 |
+
$query .= '&' . http_build_query($data, null, '&');
|
330 |
+
$query = trim($query, '&');
|
331 |
+
|
332 |
+
if (empty($url_parts['query'])) {
|
333 |
+
$url .= '?' . $query;
|
334 |
+
}
|
335 |
+
else {
|
336 |
+
$url = str_replace($url_parts['query'], $query, $url);
|
337 |
+
}
|
338 |
+
}
|
339 |
+
return $url;
|
340 |
+
}
|
341 |
+
|
342 |
+
/**
|
343 |
+
* Whether this transport is valid
|
344 |
+
*
|
345 |
+
* @codeCoverageIgnore
|
346 |
+
* @return boolean True if the transport is valid, false otherwise.
|
347 |
+
*/
|
348 |
+
public static function test() {
|
349 |
+
return (function_exists('curl_init') && function_exists('curl_exec'));
|
350 |
+
}
|
351 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Transport/cacert.pem
ADDED
@@ -0,0 +1,3554 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
##
|
2 |
+
## ca-bundle.crt -- Bundle of CA Root Certificates
|
3 |
+
##
|
4 |
+
## Certificate data from Mozilla as of: Sat Dec 29 20:03:40 2012
|
5 |
+
##
|
6 |
+
## This is a bundle of X.509 certificates of public Certificate Authorities
|
7 |
+
## (CA). These were automatically extracted from Mozilla's root certificates
|
8 |
+
## file (certdata.txt). This file can be found in the mozilla source tree:
|
9 |
+
## http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1
|
10 |
+
##
|
11 |
+
## It contains the certificates in PEM format and therefore
|
12 |
+
## can be directly used with curl / libcurl / php_curl, or with
|
13 |
+
## an Apache+mod_ssl webserver for SSL client authentication.
|
14 |
+
## Just configure this file as the SSLCACertificateFile.
|
15 |
+
##
|
16 |
+
|
17 |
+
# @(#) $RCSfile: certdata.txt,v $ $Revision: 1.87 $ $Date: 2012/12/29 16:32:45 $
|
18 |
+
|
19 |
+
EE Certification Centre Root CA
|
20 |
+
===============================
|
21 |
+
-----BEGIN CERTIFICATE-----
|
22 |
+
MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
|
23 |
+
EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy
|
24 |
+
dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw
|
25 |
+
MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB
|
26 |
+
UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy
|
27 |
+
ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
|
28 |
+
DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM
|
29 |
+
TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2
|
30 |
+
rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw
|
31 |
+
93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN
|
32 |
+
P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T
|
33 |
+
AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ
|
34 |
+
MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF
|
35 |
+
BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj
|
36 |
+
xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM
|
37 |
+
lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
|
38 |
+
uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU
|
39 |
+
3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM
|
40 |
+
dcGWxZ0=
|
41 |
+
-----END CERTIFICATE-----
|
42 |
+
|
43 |
+
GTE CyberTrust Global Root
|
44 |
+
==========================
|
45 |
+
-----BEGIN CERTIFICATE-----
|
46 |
+
MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg
|
47 |
+
Q29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEG
|
48 |
+
A1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJvb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEz
|
49 |
+
MjM1OTAwWjB1MQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQL
|
50 |
+
Ex5HVEUgQ3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0
|
51 |
+
IEdsb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrHiM3dFw4u
|
52 |
+
sJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTSr41tiGeA5u2ylc9yMcql
|
53 |
+
HHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X404Wqk2kmhXBIgD8SFcd5tB8FLztimQID
|
54 |
+
AQABMA0GCSqGSIb3DQEBBAUAA4GBAG3rGwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMW
|
55 |
+
M4ETCJ57NE7fQMh017l93PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OF
|
56 |
+
NMQkpw0PlZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/
|
57 |
+
-----END CERTIFICATE-----
|
58 |
+
|
59 |
+
Thawte Server CA
|
60 |
+
================
|
61 |
+
-----BEGIN CERTIFICATE-----
|
62 |
+
MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT
|
63 |
+
DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
|
64 |
+
dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UE
|
65 |
+
AxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5j
|
66 |
+
b20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNV
|
67 |
+
BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29u
|
68 |
+
c3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcG
|
69 |
+
A1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0
|
70 |
+
ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl
|
71 |
+
/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg7
|
72 |
+
1CcEJRCXL+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzAR
|
73 |
+
MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWDTSEwjsrZqG9J
|
74 |
+
GubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6eQNuozDJ0uW8NxuOzRAvZim+aKZuZ
|
75 |
+
GCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc=
|
76 |
+
-----END CERTIFICATE-----
|
77 |
+
|
78 |
+
Thawte Premium Server CA
|
79 |
+
========================
|
80 |
+
-----BEGIN CERTIFICATE-----
|
81 |
+
MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT
|
82 |
+
DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
|
83 |
+
dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE
|
84 |
+
AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl
|
85 |
+
ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT
|
86 |
+
AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU
|
87 |
+
VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2
|
88 |
+
aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ
|
89 |
+
cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2
|
90 |
+
aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh
|
91 |
+
Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/
|
92 |
+
qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm
|
93 |
+
SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf
|
94 |
+
8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t
|
95 |
+
UCemDaYj+bvLpgcUQg==
|
96 |
+
-----END CERTIFICATE-----
|
97 |
+
|
98 |
+
Equifax Secure CA
|
99 |
+
=================
|
100 |
+
-----BEGIN CERTIFICATE-----
|
101 |
+
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
|
102 |
+
ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
|
103 |
+
MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
|
104 |
+
B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
|
105 |
+
nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
|
106 |
+
fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
|
107 |
+
8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
|
108 |
+
A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
|
109 |
+
CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
|
110 |
+
A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
|
111 |
+
spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
|
112 |
+
Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
|
113 |
+
zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
|
114 |
+
BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
|
115 |
+
70+sB3c4
|
116 |
+
-----END CERTIFICATE-----
|
117 |
+
|
118 |
+
Digital Signature Trust Co. Global CA 1
|
119 |
+
=======================================
|
120 |
+
-----BEGIN CERTIFICATE-----
|
121 |
+
MIIDKTCCApKgAwIBAgIENnAVljANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE
|
122 |
+
ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMTAeFw05ODEy
|
123 |
+
MTAxODEwMjNaFw0xODEyMTAxODQwMjNaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs
|
124 |
+
IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUxMIGdMA0GCSqGSIb3DQEBAQUA
|
125 |
+
A4GLADCBhwKBgQCgbIGpzzQeJN3+hijM3oMv+V7UQtLodGBmE5gGHKlREmlvMVW5SXIACH7TpWJE
|
126 |
+
NySZj9mDSI+ZbZUTu0M7LklOiDfBu1h//uG9+LthzfNHwJmm8fOR6Hh8AMthyUQncWlVSn5JTe2i
|
127 |
+
o74CTADKAqjuAQIxZA9SLRN0dja1erQtcQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo
|
128 |
+
BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0
|
129 |
+
dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTExDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw
|
130 |
+
IoAPMTk5ODEyMTAxODEwMjNagQ8yMDE4MTIxMDE4MTAyM1owCwYDVR0PBAQDAgEGMB8GA1UdIwQY
|
131 |
+
MBaAFGp5fpFpRhgTCgJ3pVlbYJglDqL4MB0GA1UdDgQWBBRqeX6RaUYYEwoCd6VZW2CYJQ6i+DAM
|
132 |
+
BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB
|
133 |
+
ACIS2Hod3IEGtgllsofIH160L+nEHvI8wbsEkBFKg05+k7lNQseSJqBcNJo4cvj9axY+IO6CizEq
|
134 |
+
kzaFI4iKPANo08kJD038bKTaKHKTDomAsH3+gG9lbRgzl4vCa4nuYD3Im+9/KzJic5PLPON74nZ4
|
135 |
+
RbyhkwS7hp86W0N6w4pl
|
136 |
+
-----END CERTIFICATE-----
|
137 |
+
|
138 |
+
Digital Signature Trust Co. Global CA 3
|
139 |
+
=======================================
|
140 |
+
-----BEGIN CERTIFICATE-----
|
141 |
+
MIIDKTCCApKgAwIBAgIENm7TzjANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE
|
142 |
+
ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMjAeFw05ODEy
|
143 |
+
MDkxOTE3MjZaFw0xODEyMDkxOTQ3MjZaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs
|
144 |
+
IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUyMIGdMA0GCSqGSIb3DQEBAQUA
|
145 |
+
A4GLADCBhwKBgQC/k48Xku8zExjrEH9OFr//Bo8qhbxe+SSmJIi2A7fBw18DW9Fvrn5C6mYjuGOD
|
146 |
+
VvsoLeE4i7TuqAHhzhy2iCoiRoX7n6dwqUcUP87eZfCocfdPJmyMvMa1795JJ/9IKn3oTQPMx7JS
|
147 |
+
xhcxEzu1TdvIxPbDDyQq2gyd55FbgM2UnQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo
|
148 |
+
BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0
|
149 |
+
dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTIxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw
|
150 |
+
IoAPMTk5ODEyMDkxOTE3MjZagQ8yMDE4MTIwOTE5MTcyNlowCwYDVR0PBAQDAgEGMB8GA1UdIwQY
|
151 |
+
MBaAFB6CTShlgDzJQW6sNS5ay97u+DlbMB0GA1UdDgQWBBQegk0oZYA8yUFurDUuWsve7vg5WzAM
|
152 |
+
BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB
|
153 |
+
AEeNg61i8tuwnkUiBbmi1gMOOHLnnvx75pO2mqWilMg0HZHRxdf0CiUPPXiBng+xZ8SQTGPdXqfi
|
154 |
+
up/1902lMXucKS1M/mQ+7LZT/uqb7YLbdHVLB3luHtgZg3Pe9T7Qtd7nS2h9Qy4qIOF+oHhEngj1
|
155 |
+
mPnHfxsb1gYgAlihw6ID
|
156 |
+
-----END CERTIFICATE-----
|
157 |
+
|
158 |
+
Verisign Class 3 Public Primary Certification Authority
|
159 |
+
=======================================================
|
160 |
+
-----BEGIN CERTIFICATE-----
|
161 |
+
MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx
|
162 |
+
FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
|
163 |
+
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow
|
164 |
+
XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
|
165 |
+
IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
|
166 |
+
A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
|
167 |
+
f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
|
168 |
+
hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtMEivPLCYA
|
169 |
+
TxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59Ah
|
170 |
+
WM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2Omuf
|
171 |
+
Tqj/ZA1k
|
172 |
+
-----END CERTIFICATE-----
|
173 |
+
|
174 |
+
Verisign Class 3 Public Primary Certification Authority - G2
|
175 |
+
============================================================
|
176 |
+
-----BEGIN CERTIFICATE-----
|
177 |
+
MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT
|
178 |
+
MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
|
179 |
+
eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
|
180 |
+
biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
|
181 |
+
dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT
|
182 |
+
MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
|
183 |
+
eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
|
184 |
+
biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
|
185 |
+
dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCO
|
186 |
+
FoUgRm1HP9SFIIThbbP4pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71
|
187 |
+
lSk8UOg013gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwIDAQAB
|
188 |
+
MA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01UbSuvDV1Ai2TT
|
189 |
+
1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7iF6YM40AIOw7n60RzKprxaZLvcRTD
|
190 |
+
Oaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpYoJ2daZH9
|
191 |
+
-----END CERTIFICATE-----
|
192 |
+
|
193 |
+
GlobalSign Root CA
|
194 |
+
==================
|
195 |
+
-----BEGIN CERTIFICATE-----
|
196 |
+
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
|
197 |
+
GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
|
198 |
+
b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
|
199 |
+
BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
|
200 |
+
VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
|
201 |
+
DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
|
202 |
+
THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
|
203 |
+
Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
|
204 |
+
c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
|
205 |
+
gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
|
206 |
+
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
|
207 |
+
AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
|
208 |
+
Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
|
209 |
+
j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
|
210 |
+
hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
|
211 |
+
X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
|
212 |
+
-----END CERTIFICATE-----
|
213 |
+
|
214 |
+
GlobalSign Root CA - R2
|
215 |
+
=======================
|
216 |
+
-----BEGIN CERTIFICATE-----
|
217 |
+
MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv
|
218 |
+
YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
|
219 |
+
bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
|
220 |
+
aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
|
221 |
+
bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6
|
222 |
+
ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp
|
223 |
+
s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN
|
224 |
+
S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL
|
225 |
+
TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C
|
226 |
+
ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
|
227 |
+
FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i
|
228 |
+
YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN
|
229 |
+
BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
|
230 |
+
9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu
|
231 |
+
01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
|
232 |
+
9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
|
233 |
+
TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
|
234 |
+
-----END CERTIFICATE-----
|
235 |
+
|
236 |
+
ValiCert Class 1 VA
|
237 |
+
===================
|
238 |
+
-----BEGIN CERTIFICATE-----
|
239 |
+
MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
|
240 |
+
b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
|
241 |
+
YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
|
242 |
+
bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIy
|
243 |
+
MjM0OFoXDTE5MDYyNTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
|
244 |
+
d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEg
|
245 |
+
UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
|
246 |
+
LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
|
247 |
+
A4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9YLqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIi
|
248 |
+
GQj4/xEjm84H9b9pGib+TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCm
|
249 |
+
DuJWBQ8YTfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0LBwG
|
250 |
+
lN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLWI8sogTLDAHkY7FkX
|
251 |
+
icnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPwnXS3qT6gpf+2SQMT2iLM7XGCK5nP
|
252 |
+
Orf1LXLI
|
253 |
+
-----END CERTIFICATE-----
|
254 |
+
|
255 |
+
ValiCert Class 2 VA
|
256 |
+
===================
|
257 |
+
-----BEGIN CERTIFICATE-----
|
258 |
+
MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
|
259 |
+
b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
|
260 |
+
YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
|
261 |
+
bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw
|
262 |
+
MTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
|
263 |
+
d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIg
|
264 |
+
UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
|
265 |
+
LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
|
266 |
+
A4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVC
|
267 |
+
CSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7Rf
|
268 |
+
ZHM047QSv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZ
|
269 |
+
SWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZoDJJKPTEjlbV
|
270 |
+
UjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwCW/POuZ6lcg5Ktz885hZo+L7tdEy8
|
271 |
+
W9ViH0Pd
|
272 |
+
-----END CERTIFICATE-----
|
273 |
+
|
274 |
+
RSA Root Certificate 1
|
275 |
+
======================
|
276 |
+
-----BEGIN CERTIFICATE-----
|
277 |
+
MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
|
278 |
+
b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
|
279 |
+
YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
|
280 |
+
bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw
|
281 |
+
MjIzM1oXDTE5MDYyNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
|
282 |
+
d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMg
|
283 |
+
UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
|
284 |
+
LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
|
285 |
+
A4GNADCBiQKBgQDjmFGWHOjVsQaBalfDcnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td
|
286 |
+
3zZxFJmP3MKS8edgkpfs2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89H
|
287 |
+
BFx1cQqYJJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliEZwgs
|
288 |
+
3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJn0WuPIqpsHEzXcjF
|
289 |
+
V9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/APhmcGcwTTYJBtYze4D1gCCAPRX5r
|
290 |
+
on+jjBXu
|
291 |
+
-----END CERTIFICATE-----
|
292 |
+
|
293 |
+
Verisign Class 3 Public Primary Certification Authority - G3
|
294 |
+
============================================================
|
295 |
+
-----BEGIN CERTIFICATE-----
|
296 |
+
MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
|
297 |
+
UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
|
298 |
+
cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
299 |
+
IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
|
300 |
+
dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
|
301 |
+
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
|
302 |
+
dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
|
303 |
+
cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
|
304 |
+
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
305 |
+
ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
|
306 |
+
EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
|
307 |
+
cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
|
308 |
+
EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
|
309 |
+
055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
|
310 |
+
ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
|
311 |
+
j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
|
312 |
+
/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
|
313 |
+
xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
|
314 |
+
t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
|
315 |
+
-----END CERTIFICATE-----
|
316 |
+
|
317 |
+
Verisign Class 4 Public Primary Certification Authority - G3
|
318 |
+
============================================================
|
319 |
+
-----BEGIN CERTIFICATE-----
|
320 |
+
MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
|
321 |
+
UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
|
322 |
+
cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
323 |
+
IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
|
324 |
+
dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
|
325 |
+
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
|
326 |
+
dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
|
327 |
+
cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg
|
328 |
+
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
329 |
+
ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS
|
330 |
+
tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM
|
331 |
+
8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW
|
332 |
+
Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX
|
333 |
+
Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
|
334 |
+
j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt
|
335 |
+
mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
|
336 |
+
fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd
|
337 |
+
RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG
|
338 |
+
UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
|
339 |
+
-----END CERTIFICATE-----
|
340 |
+
|
341 |
+
Entrust.net Secure Server CA
|
342 |
+
============================
|
343 |
+
-----BEGIN CERTIFICATE-----
|
344 |
+
MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMCVVMxFDASBgNV
|
345 |
+
BAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5uZXQvQ1BTIGluY29ycC4gYnkg
|
346 |
+
cmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRl
|
347 |
+
ZDE6MDgGA1UEAxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhv
|
348 |
+
cml0eTAeFw05OTA1MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIG
|
349 |
+
A1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBi
|
350 |
+
eSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1p
|
351 |
+
dGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0
|
352 |
+
aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQ
|
353 |
+
aO2f55M28Qpku0f1BBc/I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5
|
354 |
+
gXpa0zf3wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OCAdcw
|
355 |
+
ggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHboIHYpIHVMIHSMQsw
|
356 |
+
CQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5l
|
357 |
+
dC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
|
358 |
+
bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENl
|
359 |
+
cnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
|
360 |
+
dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0MFqBDzIwMTkw
|
361 |
+
NTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7UISX8+1i0Bow
|
362 |
+
HQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAaMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EA
|
363 |
+
BAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyN
|
364 |
+
Ewr75Ji174z4xRAN95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9
|
365 |
+
n9cd2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
|
366 |
+
-----END CERTIFICATE-----
|
367 |
+
|
368 |
+
Entrust.net Premium 2048 Secure Server CA
|
369 |
+
=========================================
|
370 |
+
-----BEGIN CERTIFICATE-----
|
371 |
+
MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
|
372 |
+
ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp
|
373 |
+
bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
|
374 |
+
BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx
|
375 |
+
NzUwNTFaFw0xOTEyMjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
|
376 |
+
d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
|
377 |
+
MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
|
378 |
+
ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
379 |
+
MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL
|
380 |
+
Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr
|
381 |
+
hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW
|
382 |
+
nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi
|
383 |
+
VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo3QwcjARBglghkgBhvhC
|
384 |
+
AQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB0RGAvtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdER
|
385 |
+
gL7YibkIozH5oSQJFrlwMB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0B
|
386 |
+
AQUFAAOCAQEAWUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFhfGPjK50xA3B20qMo
|
387 |
+
oPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVUKcgF7bISKo30Axv/55IQh7A6tcOdBTcS
|
388 |
+
o8f0FbnVpDkWm1M6I5HxqIKiaohowXkCIryqptau37AUX7iH0N18f3v/rxzP5tsHrV7bhZ3QKw0z
|
389 |
+
2wTR5klAEyt2+z7pnIkPFc4YsIV4IU9rTw76NmfNB/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjX
|
390 |
+
OP/swNlQ8C5LWK5Gb9Auw2DaclVyvUxFnmG6v4SBkgPR0ml8xQ==
|
391 |
+
-----END CERTIFICATE-----
|
392 |
+
|
393 |
+
Baltimore CyberTrust Root
|
394 |
+
=========================
|
395 |
+
-----BEGIN CERTIFICATE-----
|
396 |
+
MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE
|
397 |
+
ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li
|
398 |
+
ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC
|
399 |
+
SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs
|
400 |
+
dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME
|
401 |
+
uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB
|
402 |
+
UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C
|
403 |
+
G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9
|
404 |
+
XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr
|
405 |
+
l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI
|
406 |
+
VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
|
407 |
+
BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh
|
408 |
+
cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5
|
409 |
+
hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa
|
410 |
+
Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
|
411 |
+
RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
|
412 |
+
-----END CERTIFICATE-----
|
413 |
+
|
414 |
+
Equifax Secure Global eBusiness CA
|
415 |
+
==================================
|
416 |
+
-----BEGIN CERTIFICATE-----
|
417 |
+
MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
|
418 |
+
RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp
|
419 |
+
bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx
|
420 |
+
HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds
|
421 |
+
b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV
|
422 |
+
PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN
|
423 |
+
qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn
|
424 |
+
hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j
|
425 |
+
BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs
|
426 |
+
MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN
|
427 |
+
I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY
|
428 |
+
NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
|
429 |
+
-----END CERTIFICATE-----
|
430 |
+
|
431 |
+
Equifax Secure eBusiness CA 1
|
432 |
+
=============================
|
433 |
+
-----BEGIN CERTIFICATE-----
|
434 |
+
MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
|
435 |
+
RXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENB
|
436 |
+
LTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQwMDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UE
|
437 |
+
ChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNz
|
438 |
+
IENBLTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ
|
439 |
+
1MRoRvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBuWqDZQu4a
|
440 |
+
IZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKwEnv+j6YDAgMBAAGjZjBk
|
441 |
+
MBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEp4MlIR21kW
|
442 |
+
Nl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRKeDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQF
|
443 |
+
AAOBgQB1W6ibAxHm6VZMzfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5
|
444 |
+
lSE/9dR+WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN/Bf+
|
445 |
+
KpYrtWKmpj29f5JZzVoqgrI3eQ==
|
446 |
+
-----END CERTIFICATE-----
|
447 |
+
|
448 |
+
Equifax Secure eBusiness CA 2
|
449 |
+
=============================
|
450 |
+
-----BEGIN CERTIFICATE-----
|
451 |
+
MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEXMBUGA1UE
|
452 |
+
ChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0y
|
453 |
+
MB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoT
|
454 |
+
DkVxdWlmYXggU2VjdXJlMSYwJAYDVQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCB
|
455 |
+
nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn
|
456 |
+
2Z0GvxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/BPO3QSQ5
|
457 |
+
BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0CAwEAAaOCAQkwggEFMHAG
|
458 |
+
A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUx
|
459 |
+
JjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoG
|
460 |
+
A1UdEAQTMBGBDzIwMTkwNjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9e
|
461 |
+
uSBIplBqy/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQFMAMB
|
462 |
+
Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAAyGgq3oThr1
|
463 |
+
jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia
|
464 |
+
78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUm
|
465 |
+
V+GRMOrN
|
466 |
+
-----END CERTIFICATE-----
|
467 |
+
|
468 |
+
AddTrust Low-Value Services Root
|
469 |
+
================================
|
470 |
+
-----BEGIN CERTIFICATE-----
|
471 |
+
MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
|
472 |
+
QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU
|
473 |
+
cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw
|
474 |
+
CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO
|
475 |
+
ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB
|
476 |
+
AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6
|
477 |
+
54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr
|
478 |
+
oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1
|
479 |
+
Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui
|
480 |
+
GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w
|
481 |
+
HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD
|
482 |
+
AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT
|
483 |
+
RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw
|
484 |
+
HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt
|
485 |
+
ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph
|
486 |
+
iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
|
487 |
+
eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr
|
488 |
+
mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj
|
489 |
+
ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
|
490 |
+
-----END CERTIFICATE-----
|
491 |
+
|
492 |
+
AddTrust External Root
|
493 |
+
======================
|
494 |
+
-----BEGIN CERTIFICATE-----
|
495 |
+
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
|
496 |
+
QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD
|
497 |
+
VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw
|
498 |
+
NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU
|
499 |
+
cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg
|
500 |
+
Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821
|
501 |
+
+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw
|
502 |
+
Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo
|
503 |
+
aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy
|
504 |
+
2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7
|
505 |
+
7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P
|
506 |
+
BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL
|
507 |
+
VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk
|
508 |
+
VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB
|
509 |
+
IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
|
510 |
+
j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
|
511 |
+
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355
|
512 |
+
e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
|
513 |
+
G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
|
514 |
+
-----END CERTIFICATE-----
|
515 |
+
|
516 |
+
AddTrust Public Services Root
|
517 |
+
=============================
|
518 |
+
-----BEGIN CERTIFICATE-----
|
519 |
+
MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
|
520 |
+
QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU
|
521 |
+
cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ
|
522 |
+
BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l
|
523 |
+
dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF
|
524 |
+
AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu
|
525 |
+
nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i
|
526 |
+
d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG
|
527 |
+
Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw
|
528 |
+
HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G
|
529 |
+
A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
|
530 |
+
/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux
|
531 |
+
FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G
|
532 |
+
A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4
|
533 |
+
JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL
|
534 |
+
+YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
|
535 |
+
GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9
|
536 |
+
Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H
|
537 |
+
EufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
|
538 |
+
-----END CERTIFICATE-----
|
539 |
+
|
540 |
+
AddTrust Qualified Certificates Root
|
541 |
+
====================================
|
542 |
+
-----BEGIN CERTIFICATE-----
|
543 |
+
MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
|
544 |
+
QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU
|
545 |
+
cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx
|
546 |
+
CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ
|
547 |
+
IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG
|
548 |
+
9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx
|
549 |
+
64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3
|
550 |
+
KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o
|
551 |
+
L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR
|
552 |
+
wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU
|
553 |
+
MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/
|
554 |
+
BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE
|
555 |
+
BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y
|
556 |
+
azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD
|
557 |
+
ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG
|
558 |
+
GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
|
559 |
+
dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze
|
560 |
+
RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB
|
561 |
+
iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE=
|
562 |
+
-----END CERTIFICATE-----
|
563 |
+
|
564 |
+
Entrust Root Certification Authority
|
565 |
+
====================================
|
566 |
+
-----BEGIN CERTIFICATE-----
|
567 |
+
MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV
|
568 |
+
BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw
|
569 |
+
b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG
|
570 |
+
A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0
|
571 |
+
MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
|
572 |
+
MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu
|
573 |
+
Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v
|
574 |
+
dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
575 |
+
ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz
|
576 |
+
A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww
|
577 |
+
Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68
|
578 |
+
j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN
|
579 |
+
rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw
|
580 |
+
DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1
|
581 |
+
MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
|
582 |
+
hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
|
583 |
+
A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM
|
584 |
+
Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa
|
585 |
+
v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS
|
586 |
+
W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
|
587 |
+
tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
|
588 |
+
-----END CERTIFICATE-----
|
589 |
+
|
590 |
+
RSA Security 2048 v3
|
591 |
+
====================
|
592 |
+
-----BEGIN CERTIFICATE-----
|
593 |
+
MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK
|
594 |
+
ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy
|
595 |
+
MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb
|
596 |
+
BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
|
597 |
+
AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7
|
598 |
+
Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb
|
599 |
+
WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH
|
600 |
+
KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP
|
601 |
+
+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/
|
602 |
+
MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E
|
603 |
+
FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY
|
604 |
+
v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj
|
605 |
+
0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj
|
606 |
+
VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395
|
607 |
+
nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
|
608 |
+
pKnXwiJPZ9d37CAFYd4=
|
609 |
+
-----END CERTIFICATE-----
|
610 |
+
|
611 |
+
GeoTrust Global CA
|
612 |
+
==================
|
613 |
+
-----BEGIN CERTIFICATE-----
|
614 |
+
MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
|
615 |
+
Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
|
616 |
+
MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
|
617 |
+
LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
618 |
+
CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
|
619 |
+
BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
|
620 |
+
8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
|
621 |
+
T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
|
622 |
+
vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
|
623 |
+
AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
|
624 |
+
DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
|
625 |
+
zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
|
626 |
+
d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
|
627 |
+
mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
|
628 |
+
XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
|
629 |
+
Mw==
|
630 |
+
-----END CERTIFICATE-----
|
631 |
+
|
632 |
+
GeoTrust Global CA 2
|
633 |
+
====================
|
634 |
+
-----BEGIN CERTIFICATE-----
|
635 |
+
MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
|
636 |
+
R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw
|
637 |
+
MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
|
638 |
+
LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
639 |
+
ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/
|
640 |
+
NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k
|
641 |
+
LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA
|
642 |
+
Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b
|
643 |
+
HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF
|
644 |
+
MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH
|
645 |
+
K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7
|
646 |
+
srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh
|
647 |
+
ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL
|
648 |
+
OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC
|
649 |
+
x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF
|
650 |
+
H4z1Ir+rzoPz4iIprn2DQKi6bA==
|
651 |
+
-----END CERTIFICATE-----
|
652 |
+
|
653 |
+
GeoTrust Universal CA
|
654 |
+
=====================
|
655 |
+
-----BEGIN CERTIFICATE-----
|
656 |
+
MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
|
657 |
+
R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1
|
658 |
+
MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu
|
659 |
+
Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
|
660 |
+
ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t
|
661 |
+
JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e
|
662 |
+
RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs
|
663 |
+
7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d
|
664 |
+
8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V
|
665 |
+
qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga
|
666 |
+
Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB
|
667 |
+
Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu
|
668 |
+
KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08
|
669 |
+
ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0
|
670 |
+
XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB
|
671 |
+
hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
|
672 |
+
aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2
|
673 |
+
qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL
|
674 |
+
oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK
|
675 |
+
xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF
|
676 |
+
KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2
|
677 |
+
DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK
|
678 |
+
xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU
|
679 |
+
p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI
|
680 |
+
P/rmMuGNG2+k5o7Y+SlIis5z/iw=
|
681 |
+
-----END CERTIFICATE-----
|
682 |
+
|
683 |
+
GeoTrust Universal CA 2
|
684 |
+
=======================
|
685 |
+
-----BEGIN CERTIFICATE-----
|
686 |
+
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
|
710 |
+
X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
|
711 |
+
-----END CERTIFICATE-----
|
712 |
+
|
713 |
+
America Online Root Certification Authority 1
|
714 |
+
=============================================
|
715 |
+
-----BEGIN CERTIFICATE-----
|
716 |
+
MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
|
717 |
+
QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp
|
718 |
+
Y2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkG
|
719 |
+
A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg
|
720 |
+
T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQAD
|
721 |
+
ggEPADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lkhsmj76CG
|
722 |
+
v2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym1BW32J/X3HGrfpq/m44z
|
723 |
+
DyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsWOqMFf6Dch9Wc/HKpoH145LcxVR5lu9Rh
|
724 |
+
sCFg7RAycsWSJR74kEoYeEfffjA3PlAb2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP
|
725 |
+
8c9GsEsPPt2IYriMqQkoO3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0T
|
726 |
+
AQH/BAUwAwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAUAK3Z
|
727 |
+
o/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQB8itEf
|
728 |
+
GDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkFZu90821fnZmv9ov761KyBZiibyrF
|
729 |
+
VL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAbLjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft
|
730 |
+
3OJvx8Fi8eNy1gTIdGcL+oiroQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43g
|
731 |
+
Kd8hdIaC2y+CMMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds
|
732 |
+
sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7
|
733 |
+
-----END CERTIFICATE-----
|
734 |
+
|
735 |
+
America Online Root Certification Authority 2
|
736 |
+
=============================================
|
737 |
+
-----BEGIN CERTIFICATE-----
|
738 |
+
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
|
763 |
+
cX/9XhmgD0uRuMRUvAawRY8mkaKO/qk=
|
764 |
+
-----END CERTIFICATE-----
|
765 |
+
|
766 |
+
Visa eCommerce Root
|
767 |
+
===================
|
768 |
+
-----BEGIN CERTIFICATE-----
|
769 |
+
MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG
|
770 |
+
EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug
|
771 |
+
QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2
|
772 |
+
WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm
|
773 |
+
VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
|
774 |
+
bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL
|
775 |
+
F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b
|
776 |
+
RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0
|
777 |
+
TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI
|
778 |
+
/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs
|
779 |
+
GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
|
780 |
+
MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc
|
781 |
+
CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW
|
782 |
+
YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz
|
783 |
+
zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
|
784 |
+
YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
|
785 |
+
398znM/jra6O1I7mT1GvFpLgXPYHDw==
|
786 |
+
-----END CERTIFICATE-----
|
787 |
+
|
788 |
+
Certum Root CA
|
789 |
+
==============
|
790 |
+
-----BEGIN CERTIFICATE-----
|
791 |
+
MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK
|
792 |
+
ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla
|
793 |
+
Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u
|
794 |
+
by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x
|
795 |
+
wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL
|
796 |
+
kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ
|
797 |
+
89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K
|
798 |
+
Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P
|
799 |
+
NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
|
800 |
+
hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+
|
801 |
+
GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg
|
802 |
+
GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/
|
803 |
+
0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS
|
804 |
+
qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw==
|
805 |
+
-----END CERTIFICATE-----
|
806 |
+
|
807 |
+
Comodo AAA Services root
|
808 |
+
========================
|
809 |
+
-----BEGIN CERTIFICATE-----
|
810 |
+
MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
|
811 |
+
R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
|
812 |
+
TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
|
813 |
+
MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
|
814 |
+
c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
|
815 |
+
BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
816 |
+
ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
|
817 |
+
C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
|
818 |
+
i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
|
819 |
+
Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
|
820 |
+
Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
|
821 |
+
Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
|
822 |
+
BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
|
823 |
+
cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
|
824 |
+
LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
|
825 |
+
7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
|
826 |
+
Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
|
827 |
+
8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
|
828 |
+
12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
|
829 |
+
-----END CERTIFICATE-----
|
830 |
+
|
831 |
+
Comodo Secure Services root
|
832 |
+
===========================
|
833 |
+
-----BEGIN CERTIFICATE-----
|
834 |
+
MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
|
835 |
+
R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
|
836 |
+
TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw
|
837 |
+
MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu
|
838 |
+
Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi
|
839 |
+
BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
840 |
+
ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP
|
841 |
+
9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc
|
842 |
+
rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC
|
843 |
+
oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V
|
844 |
+
p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E
|
845 |
+
FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
|
846 |
+
gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj
|
847 |
+
YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm
|
848 |
+
aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm
|
849 |
+
4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
|
850 |
+
Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL
|
851 |
+
DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw
|
852 |
+
pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H
|
853 |
+
RR3B7Hzs/Sk=
|
854 |
+
-----END CERTIFICATE-----
|
855 |
+
|
856 |
+
Comodo Trusted Services root
|
857 |
+
============================
|
858 |
+
-----BEGIN CERTIFICATE-----
|
859 |
+
MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
|
860 |
+
R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
|
861 |
+
TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw
|
862 |
+
MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h
|
863 |
+
bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw
|
864 |
+
IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
865 |
+
AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7
|
866 |
+
3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y
|
867 |
+
/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6
|
868 |
+
juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS
|
869 |
+
ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud
|
870 |
+
DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
|
871 |
+
/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp
|
872 |
+
ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl
|
873 |
+
cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw
|
874 |
+
uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
|
875 |
+
pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA
|
876 |
+
BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l
|
877 |
+
R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O
|
878 |
+
9y5Xt5hwXsjEeLBi
|
879 |
+
-----END CERTIFICATE-----
|
880 |
+
|
881 |
+
QuoVadis Root CA
|
882 |
+
================
|
883 |
+
-----BEGIN CERTIFICATE-----
|
884 |
+
MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE
|
885 |
+
ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
|
886 |
+
eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz
|
887 |
+
MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp
|
888 |
+
cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD
|
889 |
+
EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
|
890 |
+
AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk
|
891 |
+
J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL
|
892 |
+
F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL
|
893 |
+
YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen
|
894 |
+
AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w
|
895 |
+
PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y
|
896 |
+
ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7
|
897 |
+
MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj
|
898 |
+
YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
|
899 |
+
ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
|
900 |
+
Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW
|
901 |
+
Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu
|
902 |
+
BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw
|
903 |
+
FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
|
904 |
+
aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6
|
905 |
+
tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo
|
906 |
+
fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul
|
907 |
+
LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x
|
908 |
+
gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi
|
909 |
+
5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi
|
910 |
+
5nrQNiOKSnQ2+Q==
|
911 |
+
-----END CERTIFICATE-----
|
912 |
+
|
913 |
+
QuoVadis Root CA 2
|
914 |
+
==================
|
915 |
+
-----BEGIN CERTIFICATE-----
|
916 |
+
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
|
942 |
+
-----END CERTIFICATE-----
|
943 |
+
|
944 |
+
QuoVadis Root CA 3
|
945 |
+
==================
|
946 |
+
-----BEGIN CERTIFICATE-----
|
947 |
+
MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
|
948 |
+
EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx
|
949 |
+
OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
|
950 |
+
aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
|
951 |
+
DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg
|
952 |
+
DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij
|
953 |
+
KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K
|
954 |
+
DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv
|
955 |
+
BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp
|
956 |
+
p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8
|
957 |
+
nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX
|
958 |
+
MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM
|
959 |
+
Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz
|
960 |
+
uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT
|
961 |
+
BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj
|
962 |
+
YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
|
963 |
+
aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB
|
964 |
+
BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD
|
965 |
+
VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4
|
966 |
+
ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE
|
967 |
+
AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV
|
968 |
+
qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s
|
969 |
+
hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z
|
970 |
+
POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2
|
971 |
+
Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp
|
972 |
+
8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC
|
973 |
+
bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu
|
974 |
+
g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p
|
975 |
+
vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
|
976 |
+
qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
|
977 |
+
-----END CERTIFICATE-----
|
978 |
+
|
979 |
+
Security Communication Root CA
|
980 |
+
==============================
|
981 |
+
-----BEGIN CERTIFICATE-----
|
982 |
+
MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
|
983 |
+
U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
|
984 |
+
HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
|
985 |
+
U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
|
986 |
+
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
|
987 |
+
8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
|
988 |
+
DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
|
989 |
+
5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
|
990 |
+
DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
|
991 |
+
JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
|
992 |
+
DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
|
993 |
+
0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
|
994 |
+
mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
|
995 |
+
s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
|
996 |
+
6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
|
997 |
+
FL39vmwLAw==
|
998 |
+
-----END CERTIFICATE-----
|
999 |
+
|
1000 |
+
Sonera Class 2 Root CA
|
1001 |
+
======================
|
1002 |
+
-----BEGIN CERTIFICATE-----
|
1003 |
+
MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
|
1004 |
+
U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw
|
1005 |
+
NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
|
1006 |
+
IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3
|
1007 |
+
/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT
|
1008 |
+
dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG
|
1009 |
+
f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P
|
1010 |
+
tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH
|
1011 |
+
nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT
|
1012 |
+
XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt
|
1013 |
+
0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI
|
1014 |
+
cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph
|
1015 |
+
Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx
|
1016 |
+
EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
|
1017 |
+
llpwrN9M
|
1018 |
+
-----END CERTIFICATE-----
|
1019 |
+
|
1020 |
+
Staat der Nederlanden Root CA
|
1021 |
+
=============================
|
1022 |
+
-----BEGIN CERTIFICATE-----
|
1023 |
+
MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE
|
1024 |
+
ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g
|
1025 |
+
Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w
|
1026 |
+
HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh
|
1027 |
+
bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt
|
1028 |
+
vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P
|
1029 |
+
jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca
|
1030 |
+
C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth
|
1031 |
+
vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6
|
1032 |
+
22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV
|
1033 |
+
HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v
|
1034 |
+
dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN
|
1035 |
+
BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR
|
1036 |
+
EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw
|
1037 |
+
MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y
|
1038 |
+
nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
|
1039 |
+
iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
|
1040 |
+
-----END CERTIFICATE-----
|
1041 |
+
|
1042 |
+
TDC Internet Root CA
|
1043 |
+
====================
|
1044 |
+
-----BEGIN CERTIFICATE-----
|
1045 |
+
MIIEKzCCAxOgAwIBAgIEOsylTDANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJESzEVMBMGA1UE
|
1046 |
+
ChMMVERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTAeFw0wMTA0MDUx
|
1047 |
+
NjMzMTdaFw0yMTA0MDUxNzAzMTdaMEMxCzAJBgNVBAYTAkRLMRUwEwYDVQQKEwxUREMgSW50ZXJu
|
1048 |
+
ZXQxHTAbBgNVBAsTFFREQyBJbnRlcm5ldCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
1049 |
+
MIIBCgKCAQEAxLhAvJHVYx/XmaCLDEAedLdInUaMArLgJF/wGROnN4NrXceO+YQwzho7+vvOi20j
|
1050 |
+
xsNuZp+Jpd/gQlBn+h9sHvTQBda/ytZO5GhgbEaqHF1j4QeGDmUApy6mcca8uYGoOn0a0vnRrEvL
|
1051 |
+
znWv3Hv6gXPU/Lq9QYjUdLP5Xjg6PEOo0pVOd20TDJ2PeAG3WiAfAzc14izbSysseLlJ28TQx5yc
|
1052 |
+
5IogCSEWVmb/Bexb4/DPqyQkXsN/cHoSxNK1EKC2IeGNeGlVRGn1ypYcNIUXJXfi9i8nmHj9eQY6
|
1053 |
+
otZaQ8H/7AQ77hPv01ha/5Lr7K7a8jcDR0G2l8ktCkEiu7vmpwIDAQABo4IBJTCCASEwEQYJYIZI
|
1054 |
+
AYb4QgEBBAQDAgAHMGUGA1UdHwReMFwwWqBYoFakVDBSMQswCQYDVQQGEwJESzEVMBMGA1UEChMM
|
1055 |
+
VERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTENMAsGA1UEAxMEQ1JM
|
1056 |
+
MTArBgNVHRAEJDAigA8yMDAxMDQwNTE2MzMxN1qBDzIwMjEwNDA1MTcwMzE3WjALBgNVHQ8EBAMC
|
1057 |
+
AQYwHwYDVR0jBBgwFoAUbGQBx/2FbazI2p5QCIUItTxWqFAwHQYDVR0OBBYEFGxkAcf9hW2syNqe
|
1058 |
+
UAiFCLU8VqhQMAwGA1UdEwQFMAMBAf8wHQYJKoZIhvZ9B0EABBAwDhsIVjUuMDo0LjADAgSQMA0G
|
1059 |
+
CSqGSIb3DQEBBQUAA4IBAQBOQ8zR3R0QGwZ/t6T609lN+yOfI1Rb5osvBCiLtSdtiaHsmGnc540m
|
1060 |
+
gwV5dOy0uaOXwTUA/RXaOYE6lTGQ3pfphqiZdwzlWqCE/xIWrG64jcN7ksKsLtB9KOy282A4aW8+
|
1061 |
+
2ARVPp7MVdK6/rtHBNcK2RYKNCn1WBPVT8+PVkuzHu7TmHnaCB4Mb7j4Fifvwm899qNLPg7kbWzb
|
1062 |
+
O0ESm70NRyN/PErQr8Cv9u8btRXE64PECV90i9kR+8JWsTz4cMo0jUNAE4z9mQNUecYu6oah9jrU
|
1063 |
+
Cbz0vGbMPVjQV0kK7iXiQe4T+Zs4NNEA9X7nlB38aQNiuJkFBT1reBK9sG9l
|
1064 |
+
-----END CERTIFICATE-----
|
1065 |
+
|
1066 |
+
UTN DATACorp SGC Root CA
|
1067 |
+
========================
|
1068 |
+
-----BEGIN CERTIFICATE-----
|
1069 |
+
MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE
|
1070 |
+
BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
|
1071 |
+
IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ
|
1072 |
+
BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa
|
1073 |
+
MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w
|
1074 |
+
HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy
|
1075 |
+
dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
1076 |
+
AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys
|
1077 |
+
raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo
|
1078 |
+
wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA
|
1079 |
+
9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv
|
1080 |
+
33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud
|
1081 |
+
DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9
|
1082 |
+
BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD
|
1083 |
+
LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3
|
1084 |
+
DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
|
1085 |
+
Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0
|
1086 |
+
I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx
|
1087 |
+
EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP
|
1088 |
+
DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI
|
1089 |
+
-----END CERTIFICATE-----
|
1090 |
+
|
1091 |
+
UTN USERFirst Hardware Root CA
|
1092 |
+
==============================
|
1093 |
+
-----BEGIN CERTIFICATE-----
|
1094 |
+
MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE
|
1095 |
+
BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
|
1096 |
+
IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd
|
1097 |
+
BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx
|
1098 |
+
OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0
|
1099 |
+
eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
|
1100 |
+
ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3
|
1101 |
+
DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI
|
1102 |
+
wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd
|
1103 |
+
tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8
|
1104 |
+
i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf
|
1105 |
+
Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw
|
1106 |
+
gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF
|
1107 |
+
lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF
|
1108 |
+
UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF
|
1109 |
+
BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
|
1110 |
+
//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW
|
1111 |
+
XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2
|
1112 |
+
lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn
|
1113 |
+
iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67
|
1114 |
+
nfhmqA==
|
1115 |
+
-----END CERTIFICATE-----
|
1116 |
+
|
1117 |
+
Camerfirma Chambers of Commerce Root
|
1118 |
+
====================================
|
1119 |
+
-----BEGIN CERTIFICATE-----
|
1120 |
+
MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
|
1121 |
+
QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
|
1122 |
+
ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx
|
1123 |
+
NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp
|
1124 |
+
cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn
|
1125 |
+
MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC
|
1126 |
+
AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU
|
1127 |
+
xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH
|
1128 |
+
NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW
|
1129 |
+
DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV
|
1130 |
+
d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud
|
1131 |
+
EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v
|
1132 |
+
cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P
|
1133 |
+
AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh
|
1134 |
+
bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD
|
1135 |
+
VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
|
1136 |
+
aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi
|
1137 |
+
fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD
|
1138 |
+
L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN
|
1139 |
+
UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n
|
1140 |
+
ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1
|
1141 |
+
erfutGWaIZDgqtCYvDi1czyL+Nw=
|
1142 |
+
-----END CERTIFICATE-----
|
1143 |
+
|
1144 |
+
Camerfirma Global Chambersign Root
|
1145 |
+
==================================
|
1146 |
+
-----BEGIN CERTIFICATE-----
|
1147 |
+
MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
|
1148 |
+
QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
|
1149 |
+
ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx
|
1150 |
+
NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt
|
1151 |
+
YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg
|
1152 |
+
MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw
|
1153 |
+
ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J
|
1154 |
+
1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O
|
1155 |
+
by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl
|
1156 |
+
6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c
|
1157 |
+
8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/
|
1158 |
+
BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j
|
1159 |
+
aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B
|
1160 |
+
Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj
|
1161 |
+
aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y
|
1162 |
+
ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
|
1163 |
+
bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA
|
1164 |
+
PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y
|
1165 |
+
gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ
|
1166 |
+
PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4
|
1167 |
+
IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
|
1168 |
+
t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
|
1169 |
+
-----END CERTIFICATE-----
|
1170 |
+
|
1171 |
+
NetLock Notary (Class A) Root
|
1172 |
+
=============================
|
1173 |
+
-----BEGIN CERTIFICATE-----
|
1174 |
+
MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI
|
1175 |
+
EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
|
1176 |
+
dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j
|
1177 |
+
ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX
|
1178 |
+
DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH
|
1179 |
+
EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD
|
1180 |
+
VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz
|
1181 |
+
cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM
|
1182 |
+
D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ
|
1183 |
+
z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC
|
1184 |
+
/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7
|
1185 |
+
tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6
|
1186 |
+
4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG
|
1187 |
+
A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC
|
1188 |
+
Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv
|
1189 |
+
bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
|
1190 |
+
IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn
|
1191 |
+
LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0
|
1192 |
+
ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz
|
1193 |
+
IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh
|
1194 |
+
IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu
|
1195 |
+
b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh
|
1196 |
+
bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg
|
1197 |
+
Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp
|
1198 |
+
bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5
|
1199 |
+
ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP
|
1200 |
+
ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB
|
1201 |
+
CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr
|
1202 |
+
KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM
|
1203 |
+
8CgHrTwXZoi1/baI
|
1204 |
+
-----END CERTIFICATE-----
|
1205 |
+
|
1206 |
+
NetLock Business (Class B) Root
|
1207 |
+
===============================
|
1208 |
+
-----BEGIN CERTIFICATE-----
|
1209 |
+
MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMCSFUxETAPBgNVBAcT
|
1210 |
+
CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV
|
1211 |
+
BAsTEVRhbnVzaXR2YW55a2lhZG9rMTIwMAYDVQQDEylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikg
|
1212 |
+
VGFudXNpdHZhbnlraWFkbzAeFw05OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQswCQYD
|
1213 |
+
VQQGEwJIVTERMA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRv
|
1214 |
+
bnNhZ2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxMjAwBgNVBAMTKU5ldExvY2sg
|
1215 |
+
VXpsZXRpIChDbGFzcyBCKSBUYW51c2l0dmFueWtpYWRvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
|
1216 |
+
iQKBgQCx6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xKgZjupNTKihe5In+DCnVMm8Bp2GQ5o+2S
|
1217 |
+
o/1bXHQawEfKOml2mrriRBf8TKPV/riXiK+IA4kfpPIEPsgHC+b5sy96YhQJRhTKZPWLgLViqNhr
|
1218 |
+
1nGTLbO/CVRY7QbrqHvcQ7GhaQIDAQABo4ICnzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV
|
1219 |
+
HQ8BAf8EBAMCAAYwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZ
|
1220 |
+
RUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRh
|
1221 |
+
dGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQuIEEgaGl0
|
1222 |
+
ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRv
|
1223 |
+
c2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUg
|
1224 |
+
YXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJh
|
1225 |
+
c2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBz
|
1226 |
+
Oi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6ZXNA
|
1227 |
+
bmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhl
|
1228 |
+
IHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sgQ1BTIGF2
|
1229 |
+
YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBj
|
1230 |
+
cHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06sPgzTEdM
|
1231 |
+
43WIEJessDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXan3BukxowOR0w2y7jfLKR
|
1232 |
+
stE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKSNitjrFgBazMpUIaD8QFI
|
1233 |
+
-----END CERTIFICATE-----
|
1234 |
+
|
1235 |
+
NetLock Express (Class C) Root
|
1236 |
+
==============================
|
1237 |
+
-----BEGIN CERTIFICATE-----
|
1238 |
+
MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCSFUxETAPBgNVBAcT
|
1239 |
+
CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV
|
1240 |
+
BAsTEVRhbnVzaXR2YW55a2lhZG9rMTQwMgYDVQQDEytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBD
|
1241 |
+
KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsxCzAJ
|
1242 |
+
BgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
|
1243 |
+
dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE0MDIGA1UEAxMrTmV0TG9j
|
1244 |
+
ayBFeHByZXNzeiAoQ2xhc3MgQykgVGFudXNpdHZhbnlraWFkbzCBnzANBgkqhkiG9w0BAQEFAAOB
|
1245 |
+
jQAwgYkCgYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNAOoLO/XXgeDIDhlqGlZHtU/qdQPzm6N3Z
|
1246 |
+
W3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC2VImESLH0iDMgqSaqf64gXadarfSNnU+sYYJ9m5tfk63
|
1247 |
+
euyucYT2BDMIJTLrdKwWRMbkQJMdf60CAwEAAaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQw
|
1248 |
+
DgYDVR0PAQH/BAQDAgAGMBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEWggJN
|
1249 |
+
RklHWUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0YWxhbm9zIFN6b2xn
|
1250 |
+
YWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBB
|
1251 |
+
IGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQgYSBOZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1i
|
1252 |
+
aXp0b3NpdGFzYSB2ZWRpLiBBIGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0
|
1253 |
+
ZWxlIGF6IGVsb2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4gQXogZWxqYXJhcyBs
|
1254 |
+
ZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0LiBJbnRlcm5ldCBob25sYXBqYW4gYSBo
|
1255 |
+
dHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIGNpbWVuIHZhZ3kga2VyaGV0byBheiBlbGxlbm9y
|
1256 |
+
emVzQG5ldGxvY2submV0IGUtbWFpbCBjaW1lbi4gSU1QT1JUQU5UISBUaGUgaXNzdWFuY2UgYW5k
|
1257 |
+
IHRoZSB1c2Ugb2YgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIENQ
|
1258 |
+
UyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cubmV0bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwg
|
1259 |
+
YXQgY3BzQG5ldGxvY2submV0LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmYta3UzbM2
|
1260 |
+
xJZIwVzNmtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2gpO0u9f38vf5NNwgMvOOW
|
1261 |
+
gyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4Fp1hBWeAyNDYpQcCNJgEjTME1A==
|
1262 |
+
-----END CERTIFICATE-----
|
1263 |
+
|
1264 |
+
XRamp Global CA Root
|
1265 |
+
====================
|
1266 |
+
-----BEGIN CERTIFICATE-----
|
1267 |
+
MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
|
1268 |
+
BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj
|
1269 |
+
dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
|
1270 |
+
dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx
|
1271 |
+
HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg
|
1272 |
+
U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
|
1273 |
+
dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu
|
1274 |
+
IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx
|
1275 |
+
foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE
|
1276 |
+
zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs
|
1277 |
+
AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry
|
1278 |
+
xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
|
1279 |
+
EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap
|
1280 |
+
oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC
|
1281 |
+
AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
|
1282 |
+
/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
|
1283 |
+
qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n
|
1284 |
+
nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz
|
1285 |
+
8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
|
1286 |
+
-----END CERTIFICATE-----
|
1287 |
+
|
1288 |
+
Go Daddy Class 2 CA
|
1289 |
+
===================
|
1290 |
+
-----BEGIN CERTIFICATE-----
|
1291 |
+
MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
|
1292 |
+
VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp
|
1293 |
+
ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG
|
1294 |
+
A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
|
1295 |
+
RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD
|
1296 |
+
ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
|
1297 |
+
2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32
|
1298 |
+
qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j
|
1299 |
+
YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY
|
1300 |
+
vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O
|
1301 |
+
BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o
|
1302 |
+
atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu
|
1303 |
+
MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG
|
1304 |
+
A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim
|
1305 |
+
PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
|
1306 |
+
I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
|
1307 |
+
HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI
|
1308 |
+
Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b
|
1309 |
+
vZ8=
|
1310 |
+
-----END CERTIFICATE-----
|
1311 |
+
|
1312 |
+
Starfield Class 2 CA
|
1313 |
+
====================
|
1314 |
+
-----BEGIN CERTIFICATE-----
|
1315 |
+
MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc
|
1316 |
+
U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg
|
1317 |
+
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo
|
1318 |
+
MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
|
1319 |
+
A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG
|
1320 |
+
SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY
|
1321 |
+
bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ
|
1322 |
+
JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm
|
1323 |
+
epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN
|
1324 |
+
F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF
|
1325 |
+
MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f
|
1326 |
+
hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo
|
1327 |
+
bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g
|
1328 |
+
QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs
|
1329 |
+
afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
|
1330 |
+
PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
|
1331 |
+
xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD
|
1332 |
+
KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
|
1333 |
+
QBFGmh95DmK/D5fs4C8fF5Q=
|
1334 |
+
-----END CERTIFICATE-----
|
1335 |
+
|
1336 |
+
StartCom Certification Authority
|
1337 |
+
================================
|
1338 |
+
-----BEGIN CERTIFICATE-----
|
1339 |
+
MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
|
1340 |
+
U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
|
1341 |
+
ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
|
1342 |
+
NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
|
1343 |
+
LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
|
1344 |
+
U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
|
1345 |
+
ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
|
1346 |
+
o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
|
1347 |
+
Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
|
1348 |
+
eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
|
1349 |
+
2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
|
1350 |
+
6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
|
1351 |
+
osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
|
1352 |
+
untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
|
1353 |
+
UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
|
1354 |
+
37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
|
1355 |
+
FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0
|
1356 |
+
Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj
|
1357 |
+
YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH
|
1358 |
+
AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw
|
1359 |
+
Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg
|
1360 |
+
U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5
|
1361 |
+
LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl
|
1362 |
+
cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh
|
1363 |
+
cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT
|
1364 |
+
dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC
|
1365 |
+
AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh
|
1366 |
+
3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm
|
1367 |
+
vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk
|
1368 |
+
fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3
|
1369 |
+
fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ
|
1370 |
+
EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
|
1371 |
+
yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl
|
1372 |
+
1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/
|
1373 |
+
lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro
|
1374 |
+
g14=
|
1375 |
+
-----END CERTIFICATE-----
|
1376 |
+
|
1377 |
+
Taiwan GRCA
|
1378 |
+
===========
|
1379 |
+
-----BEGIN CERTIFICATE-----
|
1380 |
+
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
|
1405 |
+
-----END CERTIFICATE-----
|
1406 |
+
|
1407 |
+
Firmaprofesional Root CA
|
1408 |
+
========================
|
1409 |
+
-----BEGIN CERTIFICATE-----
|
1410 |
+
MIIEVzCCAz+gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBnTELMAkGA1UEBhMCRVMxIjAgBgNVBAcT
|
1411 |
+
GUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMTOUF1dG9yaWRhZCBkZSBDZXJ0aWZp
|
1412 |
+
Y2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODEmMCQGCSqGSIb3DQEJARYXY2FA
|
1413 |
+
ZmlybWFwcm9mZXNpb25hbC5jb20wHhcNMDExMDI0MjIwMDAwWhcNMTMxMDI0MjIwMDAwWjCBnTEL
|
1414 |
+
MAkGA1UEBhMCRVMxIjAgBgNVBAcTGUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMT
|
1415 |
+
OUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2
|
1416 |
+
ODEmMCQGCSqGSIb3DQEJARYXY2FAZmlybWFwcm9mZXNpb25hbC5jb20wggEiMA0GCSqGSIb3DQEB
|
1417 |
+
AQUAA4IBDwAwggEKAoIBAQDnIwNvbyOlXnjOlSztlB5uCp4Bx+ow0Syd3Tfom5h5VtP8c9/Qit5V
|
1418 |
+
j1H5WuretXDE7aTt/6MNbg9kUDGvASdYrv5sp0ovFy3Tc9UTHI9ZpTQsHVQERc1ouKDAA6XPhUJH
|
1419 |
+
lShbz++AbOCQl4oBPB3zhxAwJkh91/zpnZFx/0GaqUC1N5wpIE8fUuOgfRNtVLcK3ulqTgesrBlf
|
1420 |
+
3H5idPayBQC6haD9HThuy1q7hryUZzM1gywfI834yJFxzJeL764P3CkDG8A563DtwW4O2GcLiam8
|
1421 |
+
NeTvtjS0pbbELaW+0MOUJEjb35bTALVmGotmBQ/dPz/LP6pemkr4tErvlTcbAgMBAAGjgZ8wgZww
|
1422 |
+
KgYDVR0RBCMwIYYfaHR0cDovL3d3dy5maXJtYXByb2Zlc2lvbmFsLmNvbTASBgNVHRMBAf8ECDAG
|
1423 |
+
AQH/AgEBMCsGA1UdEAQkMCKADzIwMDExMDI0MjIwMDAwWoEPMjAxMzEwMjQyMjAwMDBaMA4GA1Ud
|
1424 |
+
DwEB/wQEAwIBBjAdBgNVHQ4EFgQUMwugZtHq2s7eYpMEKFK1FH84aLcwDQYJKoZIhvcNAQEFBQAD
|
1425 |
+
ggEBAEdz/o0nVPD11HecJ3lXV7cVVuzH2Fi3AQL0M+2TUIiefEaxvT8Ub/GzR0iLjJcG1+p+o1wq
|
1426 |
+
u00vR+L4OQbJnC4xGgN49Lw4xiKLMzHwFgQEffl25EvXwOaD7FnMP97/T2u3Z36mhoEyIwOdyPdf
|
1427 |
+
wUpgpZKpsaSgYMN4h7Mi8yrrW6ntBas3D7Hi05V2Y1Z0jFhyGzflZKG+TQyTmAyX9odtsz/ny4Cm
|
1428 |
+
7YjHX1BiAuiZdBbQ5rQ58SfLyEDW44YQqSMSkuBpQWOnryULwMWSyx6Yo1q6xTMPoJcB3X/ge9YG
|
1429 |
+
VM+h4k0460tQtcsm9MracEpqoeJ5quGnM/b9Sh/22WA=
|
1430 |
+
-----END CERTIFICATE-----
|
1431 |
+
|
1432 |
+
Wells Fargo Root CA
|
1433 |
+
===================
|
1434 |
+
-----BEGIN CERTIFICATE-----
|
1435 |
+
MIID5TCCAs2gAwIBAgIEOeSXnjANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UEBhMCVVMxFDASBgNV
|
1436 |
+
BAoTC1dlbGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhv
|
1437 |
+
cml0eTEvMC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
|
1438 |
+
MDAxMDExMTY0MTI4WhcNMjEwMTE0MTY0MTI4WjCBgjELMAkGA1UEBhMCVVMxFDASBgNVBAoTC1dl
|
1439 |
+
bGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEv
|
1440 |
+
MC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG
|
1441 |
+
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVqDM7Jvk0/82bfuUER84A4n135zHCLielTWi5MbqNQ1mX
|
1442 |
+
x3Oqfz1cQJ4F5aHiidlMuD+b+Qy0yGIZLEWukR5zcUHESxP9cMIlrCL1dQu3U+SlK93OvRw6esP3
|
1443 |
+
E48mVJwWa2uv+9iWsWCaSOAlIiR5NM4OJgALTqv9i86C1y8IcGjBqAr5dE8Hq6T54oN+J3N0Prj5
|
1444 |
+
OEL8pahbSCOz6+MlsoCultQKnMJ4msZoGK43YjdeUXWoWGPAUe5AeH6orxqg4bB4nVCMe+ez/I4j
|
1445 |
+
sNtlAHCEAQgAFG5Uhpq6zPk3EPbg3oQtnaSFN9OH4xXQwReQfhkhahKpdv0SAulPIV4XAgMBAAGj
|
1446 |
+
YTBfMA8GA1UdEwEB/wQFMAMBAf8wTAYDVR0gBEUwQzBBBgtghkgBhvt7hwcBCzAyMDAGCCsGAQUF
|
1447 |
+
BwIBFiRodHRwOi8vd3d3LndlbGxzZmFyZ28uY29tL2NlcnRwb2xpY3kwDQYJKoZIhvcNAQEFBQAD
|
1448 |
+
ggEBANIn3ZwKdyu7IvICtUpKkfnRLb7kuxpo7w6kAOnu5+/u9vnldKTC2FJYxHT7zmu1Oyl5GFrv
|
1449 |
+
m+0fazbuSCUlFLZWohDo7qd/0D+j0MNdJu4HzMPBJCGHHt8qElNvQRbn7a6U+oxy+hNH8Dx+rn0R
|
1450 |
+
OhPs7fpvcmR7nX1/Jv16+yWt6j4pf0zjAFcysLPp7VMX2YuyFA4w6OXVE8Zkr8QA1dhYJPz1j+zx
|
1451 |
+
x32l2w8n0cbyQIjmH/ZhqPRCyLk306m+LFZ4wnKbWV01QIroTmMatukgalHizqSQ33ZwmVxwQ023
|
1452 |
+
tqcZZE6St8WRPH9IFmV7Fv3L/PvZ1dZPIWU7Sn9Ho/s=
|
1453 |
+
-----END CERTIFICATE-----
|
1454 |
+
|
1455 |
+
Swisscom Root CA 1
|
1456 |
+
==================
|
1457 |
+
-----BEGIN CERTIFICATE-----
|
1458 |
+
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
|
1484 |
+
NY6E0F/6MBr1mmz0DlP5OlvRHA==
|
1485 |
+
-----END CERTIFICATE-----
|
1486 |
+
|
1487 |
+
DigiCert Assured ID Root CA
|
1488 |
+
===========================
|
1489 |
+
-----BEGIN CERTIFICATE-----
|
1490 |
+
MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
|
1491 |
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
|
1492 |
+
IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
|
1493 |
+
MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
|
1494 |
+
ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
|
1495 |
+
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
|
1496 |
+
9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
|
1497 |
+
UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
|
1498 |
+
/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
|
1499 |
+
oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
|
1500 |
+
GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
|
1501 |
+
66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
|
1502 |
+
hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
|
1503 |
+
EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
|
1504 |
+
SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
|
1505 |
+
8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
|
1506 |
+
+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
|
1507 |
+
-----END CERTIFICATE-----
|
1508 |
+
|
1509 |
+
DigiCert Global Root CA
|
1510 |
+
=======================
|
1511 |
+
-----BEGIN CERTIFICATE-----
|
1512 |
+
MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
|
1513 |
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
|
1514 |
+
HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
|
1515 |
+
MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
|
1516 |
+
dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
|
1517 |
+
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
|
1518 |
+
TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
|
1519 |
+
BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
|
1520 |
+
4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
|
1521 |
+
7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
|
1522 |
+
o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
|
1523 |
+
8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
|
1524 |
+
BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
|
1525 |
+
EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
|
1526 |
+
tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
|
1527 |
+
UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
|
1528 |
+
CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
|
1529 |
+
-----END CERTIFICATE-----
|
1530 |
+
|
1531 |
+
DigiCert High Assurance EV Root CA
|
1532 |
+
==================================
|
1533 |
+
-----BEGIN CERTIFICATE-----
|
1534 |
+
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
|
1535 |
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
|
1536 |
+
KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
|
1537 |
+
MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
|
1538 |
+
MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
|
1539 |
+
Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
|
1540 |
+
Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
|
1541 |
+
OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
|
1542 |
+
MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
|
1543 |
+
NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
|
1544 |
+
h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
|
1545 |
+
Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
|
1546 |
+
JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
|
1547 |
+
V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
|
1548 |
+
myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
|
1549 |
+
mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
|
1550 |
+
vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
|
1551 |
+
-----END CERTIFICATE-----
|
1552 |
+
|
1553 |
+
Certplus Class 2 Primary CA
|
1554 |
+
===========================
|
1555 |
+
-----BEGIN CERTIFICATE-----
|
1556 |
+
MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
|
1557 |
+
BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
|
1558 |
+
OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
|
1559 |
+
dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
1560 |
+
ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
|
1561 |
+
5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
|
1562 |
+
Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
|
1563 |
+
YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
|
1564 |
+
e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
|
1565 |
+
CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
|
1566 |
+
YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
|
1567 |
+
L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
|
1568 |
+
P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
|
1569 |
+
TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
|
1570 |
+
7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
|
1571 |
+
//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
|
1572 |
+
l7+ijrRU
|
1573 |
+
-----END CERTIFICATE-----
|
1574 |
+
|
1575 |
+
DST Root CA X3
|
1576 |
+
==============
|
1577 |
+
-----BEGIN CERTIFICATE-----
|
1578 |
+
MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK
|
1579 |
+
ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X
|
1580 |
+
DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1
|
1581 |
+
cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD
|
1582 |
+
ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT
|
1583 |
+
rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9
|
1584 |
+
UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy
|
1585 |
+
xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d
|
1586 |
+
utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T
|
1587 |
+
AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ
|
1588 |
+
MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug
|
1589 |
+
dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE
|
1590 |
+
GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw
|
1591 |
+
RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
|
1592 |
+
fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
|
1593 |
+
-----END CERTIFICATE-----
|
1594 |
+
|
1595 |
+
DST ACES CA X6
|
1596 |
+
==============
|
1597 |
+
-----BEGIN CERTIFICATE-----
|
1598 |
+
MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG
|
1599 |
+
EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT
|
1600 |
+
MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha
|
1601 |
+
MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE
|
1602 |
+
CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC
|
1603 |
+
AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI
|
1604 |
+
DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa
|
1605 |
+
pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow
|
1606 |
+
GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy
|
1607 |
+
MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud
|
1608 |
+
EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu
|
1609 |
+
Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy
|
1610 |
+
dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU
|
1611 |
+
CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2
|
1612 |
+
5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t
|
1613 |
+
Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
|
1614 |
+
nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs
|
1615 |
+
vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
|
1616 |
+
oKfN5XozNmr6mis=
|
1617 |
+
-----END CERTIFICATE-----
|
1618 |
+
|
1619 |
+
TURKTRUST Certificate Services Provider Root 1
|
1620 |
+
==============================================
|
1621 |
+
-----BEGIN CERTIFICATE-----
|
1622 |
+
MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
|
1623 |
+
bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP
|
1624 |
+
MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0
|
1625 |
+
acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx
|
1626 |
+
MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg
|
1627 |
+
U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB
|
1628 |
+
TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC
|
1629 |
+
aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
1630 |
+
AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX
|
1631 |
+
yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i
|
1632 |
+
Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ
|
1633 |
+
8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4
|
1634 |
+
W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME
|
1635 |
+
BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46
|
1636 |
+
sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE
|
1637 |
+
q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy
|
1638 |
+
B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY
|
1639 |
+
nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H
|
1640 |
+
-----END CERTIFICATE-----
|
1641 |
+
|
1642 |
+
TURKTRUST Certificate Services Provider Root 2
|
1643 |
+
==============================================
|
1644 |
+
-----BEGIN CERTIFICATE-----
|
1645 |
+
MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF
|
1646 |
+
bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
|
1647 |
+
MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
|
1648 |
+
QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN
|
1649 |
+
MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr
|
1650 |
+
dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G
|
1651 |
+
A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
|
1652 |
+
acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G
|
1653 |
+
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe
|
1654 |
+
LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI
|
1655 |
+
x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g
|
1656 |
+
QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr
|
1657 |
+
5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB
|
1658 |
+
AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G
|
1659 |
+
A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt
|
1660 |
+
Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
|
1661 |
+
Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+
|
1662 |
+
hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P
|
1663 |
+
9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5
|
1664 |
+
UrbnBEI=
|
1665 |
+
-----END CERTIFICATE-----
|
1666 |
+
|
1667 |
+
SwissSign Gold CA - G2
|
1668 |
+
======================
|
1669 |
+
-----BEGIN CERTIFICATE-----
|
1670 |
+
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
|
1696 |
+
-----END CERTIFICATE-----
|
1697 |
+
|
1698 |
+
SwissSign Silver CA - G2
|
1699 |
+
========================
|
1700 |
+
-----BEGIN CERTIFICATE-----
|
1701 |
+
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
|
1727 |
+
-----END CERTIFICATE-----
|
1728 |
+
|
1729 |
+
GeoTrust Primary Certification Authority
|
1730 |
+
========================================
|
1731 |
+
-----BEGIN CERTIFICATE-----
|
1732 |
+
MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
|
1733 |
+
EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
|
1734 |
+
ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
|
1735 |
+
CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
|
1736 |
+
cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
1737 |
+
CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
|
1738 |
+
b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
|
1739 |
+
nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
|
1740 |
+
RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
|
1741 |
+
tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
|
1742 |
+
AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
|
1743 |
+
hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
|
1744 |
+
Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
|
1745 |
+
NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
|
1746 |
+
Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
|
1747 |
+
1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
|
1748 |
+
-----END CERTIFICATE-----
|
1749 |
+
|
1750 |
+
thawte Primary Root CA
|
1751 |
+
======================
|
1752 |
+
-----BEGIN CERTIFICATE-----
|
1753 |
+
MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
|
1754 |
+
BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
|
1755 |
+
aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
|
1756 |
+
cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
|
1757 |
+
MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
|
1758 |
+
SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
|
1759 |
+
KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
|
1760 |
+
FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
|
1761 |
+
oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
|
1762 |
+
1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
|
1763 |
+
q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
|
1764 |
+
aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
|
1765 |
+
afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
|
1766 |
+
VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
|
1767 |
+
AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
|
1768 |
+
uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
|
1769 |
+
xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
|
1770 |
+
jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
|
1771 |
+
z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
|
1772 |
+
-----END CERTIFICATE-----
|
1773 |
+
|
1774 |
+
VeriSign Class 3 Public Primary Certification Authority - G5
|
1775 |
+
============================================================
|
1776 |
+
-----BEGIN CERTIFICATE-----
|
1777 |
+
MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
|
1778 |
+
BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
|
1779 |
+
ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
|
1780 |
+
IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
|
1781 |
+
ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
|
1782 |
+
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
|
1783 |
+
biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
|
1784 |
+
dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
|
1785 |
+
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
1786 |
+
ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
|
1787 |
+
j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
|
1788 |
+
Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
|
1789 |
+
Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
|
1790 |
+
fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
|
1791 |
+
BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
|
1792 |
+
Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
|
1793 |
+
aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
|
1794 |
+
SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
|
1795 |
+
X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
|
1796 |
+
KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
|
1797 |
+
Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
|
1798 |
+
ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
|
1799 |
+
-----END CERTIFICATE-----
|
1800 |
+
|
1801 |
+
SecureTrust CA
|
1802 |
+
==============
|
1803 |
+
-----BEGIN CERTIFICATE-----
|
1804 |
+
MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG
|
1805 |
+
EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy
|
1806 |
+
dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe
|
1807 |
+
BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC
|
1808 |
+
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX
|
1809 |
+
OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t
|
1810 |
+
DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH
|
1811 |
+
GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b
|
1812 |
+
01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH
|
1813 |
+
ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
|
1814 |
+
BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj
|
1815 |
+
aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
|
1816 |
+
KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu
|
1817 |
+
SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf
|
1818 |
+
mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
|
1819 |
+
nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
|
1820 |
+
3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
|
1821 |
+
-----END CERTIFICATE-----
|
1822 |
+
|
1823 |
+
Secure Global CA
|
1824 |
+
================
|
1825 |
+
-----BEGIN CERTIFICATE-----
|
1826 |
+
MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG
|
1827 |
+
EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH
|
1828 |
+
bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg
|
1829 |
+
MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg
|
1830 |
+
Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx
|
1831 |
+
YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ
|
1832 |
+
bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g
|
1833 |
+
8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV
|
1834 |
+
HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi
|
1835 |
+
0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
|
1836 |
+
EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn
|
1837 |
+
oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA
|
1838 |
+
MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+
|
1839 |
+
OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn
|
1840 |
+
CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
|
1841 |
+
3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
|
1842 |
+
f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
|
1843 |
+
-----END CERTIFICATE-----
|
1844 |
+
|
1845 |
+
COMODO Certification Authority
|
1846 |
+
==============================
|
1847 |
+
-----BEGIN CERTIFICATE-----
|
1848 |
+
MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE
|
1849 |
+
BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
|
1850 |
+
A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1
|
1851 |
+
dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb
|
1852 |
+
MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
|
1853 |
+
T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
|
1854 |
+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH
|
1855 |
+
+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww
|
1856 |
+
xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV
|
1857 |
+
4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA
|
1858 |
+
1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI
|
1859 |
+
rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E
|
1860 |
+
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k
|
1861 |
+
b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC
|
1862 |
+
AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
|
1863 |
+
OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
|
1864 |
+
RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc
|
1865 |
+
IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
|
1866 |
+
+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
|
1867 |
+
-----END CERTIFICATE-----
|
1868 |
+
|
1869 |
+
Network Solutions Certificate Authority
|
1870 |
+
=======================================
|
1871 |
+
-----BEGIN CERTIFICATE-----
|
1872 |
+
MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
|
1873 |
+
EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
|
1874 |
+
IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
|
1875 |
+
MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
|
1876 |
+
MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
|
1877 |
+
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
|
1878 |
+
jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
|
1879 |
+
aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
|
1880 |
+
crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
|
1881 |
+
/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
|
1882 |
+
AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
|
1883 |
+
BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
|
1884 |
+
bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
|
1885 |
+
A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
|
1886 |
+
4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
|
1887 |
+
GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
|
1888 |
+
wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
|
1889 |
+
ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
|
1890 |
+
-----END CERTIFICATE-----
|
1891 |
+
|
1892 |
+
WellsSecure Public Root Certificate Authority
|
1893 |
+
=============================================
|
1894 |
+
-----BEGIN CERTIFICATE-----
|
1895 |
+
MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM
|
1896 |
+
F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw
|
1897 |
+
NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
|
1898 |
+
MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl
|
1899 |
+
bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD
|
1900 |
+
VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
|
1901 |
+
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1
|
1902 |
+
iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13
|
1903 |
+
i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8
|
1904 |
+
bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB
|
1905 |
+
K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB
|
1906 |
+
AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu
|
1907 |
+
cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm
|
1908 |
+
lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB
|
1909 |
+
i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww
|
1910 |
+
GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
|
1911 |
+
Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI
|
1912 |
+
K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0
|
1913 |
+
bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj
|
1914 |
+
qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es
|
1915 |
+
E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ
|
1916 |
+
tylv2G0xffX8oRAHh84vWdw+WNs=
|
1917 |
+
-----END CERTIFICATE-----
|
1918 |
+
|
1919 |
+
COMODO ECC Certification Authority
|
1920 |
+
==================================
|
1921 |
+
-----BEGIN CERTIFICATE-----
|
1922 |
+
MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC
|
1923 |
+
R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
|
1924 |
+
ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB
|
1925 |
+
dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix
|
1926 |
+
GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
|
1927 |
+
Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo
|
1928 |
+
b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X
|
1929 |
+
4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni
|
1930 |
+
wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E
|
1931 |
+
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG
|
1932 |
+
FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
|
1933 |
+
U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
|
1934 |
+
-----END CERTIFICATE-----
|
1935 |
+
|
1936 |
+
IGC/A
|
1937 |
+
=====
|
1938 |
+
-----BEGIN CERTIFICATE-----
|
1939 |
+
MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD
|
1940 |
+
VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE
|
1941 |
+
Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy
|
1942 |
+
MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI
|
1943 |
+
EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT
|
1944 |
+
STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB
|
1945 |
+
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2
|
1946 |
+
TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW
|
1947 |
+
So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy
|
1948 |
+
HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd
|
1949 |
+
frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ
|
1950 |
+
tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB
|
1951 |
+
egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC
|
1952 |
+
iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK
|
1953 |
+
q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q
|
1954 |
+
MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
|
1955 |
+
Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI
|
1956 |
+
lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF
|
1957 |
+
0mBWWg==
|
1958 |
+
-----END CERTIFICATE-----
|
1959 |
+
|
1960 |
+
Security Communication EV RootCA1
|
1961 |
+
=================================
|
1962 |
+
-----BEGIN CERTIFICATE-----
|
1963 |
+
MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
|
1964 |
+
U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh
|
1965 |
+
dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE
|
1966 |
+
BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl
|
1967 |
+
Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
|
1968 |
+
AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO
|
1969 |
+
/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX
|
1970 |
+
WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z
|
1971 |
+
ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4
|
1972 |
+
bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK
|
1973 |
+
9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
|
1974 |
+
SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm
|
1975 |
+
iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG
|
1976 |
+
Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW
|
1977 |
+
mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW
|
1978 |
+
T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
|
1979 |
+
-----END CERTIFICATE-----
|
1980 |
+
|
1981 |
+
OISTE WISeKey Global Root GA CA
|
1982 |
+
===============================
|
1983 |
+
-----BEGIN CERTIFICATE-----
|
1984 |
+
MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE
|
1985 |
+
BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG
|
1986 |
+
A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH
|
1987 |
+
bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD
|
1988 |
+
VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw
|
1989 |
+
IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5
|
1990 |
+
IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9
|
1991 |
+
Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg
|
1992 |
+
Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD
|
1993 |
+
d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ
|
1994 |
+
/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R
|
1995 |
+
LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
|
1996 |
+
AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
|
1997 |
+
KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm
|
1998 |
+
MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4
|
1999 |
+
+vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
|
2000 |
+
hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
|
2001 |
+
okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
|
2002 |
+
-----END CERTIFICATE-----
|
2003 |
+
|
2004 |
+
Microsec e-Szigno Root CA
|
2005 |
+
=========================
|
2006 |
+
-----BEGIN CERTIFICATE-----
|
2007 |
+
MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE
|
2008 |
+
BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL
|
2009 |
+
EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0
|
2010 |
+
MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz
|
2011 |
+
dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT
|
2012 |
+
GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
2013 |
+
AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG
|
2014 |
+
d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N
|
2015 |
+
oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc
|
2016 |
+
QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ
|
2017 |
+
PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb
|
2018 |
+
MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG
|
2019 |
+
IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD
|
2020 |
+
VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3
|
2021 |
+
LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A
|
2022 |
+
dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
|
2023 |
+
AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA
|
2024 |
+
4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg
|
2025 |
+
AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA
|
2026 |
+
egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6
|
2027 |
+
Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO
|
2028 |
+
PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv
|
2029 |
+
c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h
|
2030 |
+
cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw
|
2031 |
+
IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT
|
2032 |
+
WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV
|
2033 |
+
MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER
|
2034 |
+
MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp
|
2035 |
+
Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal
|
2036 |
+
HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT
|
2037 |
+
nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE
|
2038 |
+
aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
|
2039 |
+
86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK
|
2040 |
+
yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB
|
2041 |
+
S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
|
2042 |
+
-----END CERTIFICATE-----
|
2043 |
+
|
2044 |
+
Certigna
|
2045 |
+
========
|
2046 |
+
-----BEGIN CERTIFICATE-----
|
2047 |
+
MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw
|
2048 |
+
EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3
|
2049 |
+
MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI
|
2050 |
+
Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q
|
2051 |
+
XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH
|
2052 |
+
GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p
|
2053 |
+
ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg
|
2054 |
+
DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf
|
2055 |
+
Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ
|
2056 |
+
tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ
|
2057 |
+
BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J
|
2058 |
+
SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA
|
2059 |
+
hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+
|
2060 |
+
ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu
|
2061 |
+
PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
|
2062 |
+
1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
|
2063 |
+
WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
|
2064 |
+
-----END CERTIFICATE-----
|
2065 |
+
|
2066 |
+
AC Ra\xC3\xADz Certic\xC3\xA1mara S.A.
|
2067 |
+
======================================
|
2068 |
+
-----BEGIN CERTIFICATE-----
|
2069 |
+
MIIGZjCCBE6gAwIBAgIPB35Sk3vgFeNX8GmMy+wMMA0GCSqGSIb3DQEBBQUAMHsxCzAJBgNVBAYT
|
2070 |
+
AkNPMUcwRQYDVQQKDD5Tb2NpZWRhZCBDYW1lcmFsIGRlIENlcnRpZmljYWNpw7NuIERpZ2l0YWwg
|
2071 |
+
LSBDZXJ0aWPDoW1hcmEgUy5BLjEjMCEGA1UEAwwaQUMgUmHDrXogQ2VydGljw6FtYXJhIFMuQS4w
|
2072 |
+
HhcNMDYxMTI3MjA0NjI5WhcNMzAwNDAyMjE0MjAyWjB7MQswCQYDVQQGEwJDTzFHMEUGA1UECgw+
|
2073 |
+
U29jaWVkYWQgQ2FtZXJhbCBkZSBDZXJ0aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJh
|
2074 |
+
IFMuQS4xIzAhBgNVBAMMGkFDIFJhw616IENlcnRpY8OhbWFyYSBTLkEuMIICIjANBgkqhkiG9w0B
|
2075 |
+
AQEFAAOCAg8AMIICCgKCAgEAq2uJo1PMSCMI+8PPUZYILrgIem08kBeGqentLhM0R7LQcNzJPNCN
|
2076 |
+
yu5LF6vQhbCnIwTLqKL85XXbQMpiiY9QngE9JlsYhBzLfDe3fezTf3MZsGqy2IiKLUV0qPezuMDU
|
2077 |
+
2s0iiXRNWhU5cxh0T7XrmafBHoi0wpOQY5fzp6cSsgkiBzPZkc0OnB8OIMfuuzONj8LSWKdf/WU3
|
2078 |
+
4ojC2I+GdV75LaeHM/J4Ny+LvB2GNzmxlPLYvEqcgxhaBvzz1NS6jBUJJfD5to0EfhcSM2tXSExP
|
2079 |
+
2yYe68yQ54v5aHxwD6Mq0Do43zeX4lvegGHTgNiRg0JaTASJaBE8rF9ogEHMYELODVoqDA+bMMCm
|
2080 |
+
8Ibbq0nXl21Ii/kDwFJnmxL3wvIumGVC2daa49AZMQyth9VXAnow6IYm+48jilSH5L887uvDdUhf
|
2081 |
+
HjlvgWJsxS3EF1QZtzeNnDeRyPYL1epjb4OsOMLzP96a++EjYfDIJss2yKHzMI+ko6Kh3VOz3vCa
|
2082 |
+
Mh+DkXkwwakfU5tTohVTP92dsxA7SH2JD/ztA/X7JWR1DhcZDY8AFmd5ekD8LVkH2ZD6mq093ICK
|
2083 |
+
5lw1omdMEWux+IBkAC1vImHFrEsm5VoQgpukg3s0956JkSCXjrdCx2bD0Omk1vUgjcTDlaxECp1b
|
2084 |
+
czwmPS9KvqfJpxAe+59QafMCAwEAAaOB5jCB4zAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
|
2085 |
+
AwIBBjAdBgNVHQ4EFgQU0QnQ6dfOeXRU+Tows/RtLAMDG2gwgaAGA1UdIASBmDCBlTCBkgYEVR0g
|
2086 |
+
ADCBiTArBggrBgEFBQcCARYfaHR0cDovL3d3dy5jZXJ0aWNhbWFyYS5jb20vZHBjLzBaBggrBgEF
|
2087 |
+
BQcCAjBOGkxMaW1pdGFjaW9uZXMgZGUgZ2FyYW507WFzIGRlIGVzdGUgY2VydGlmaWNhZG8gc2Ug
|
2088 |
+
cHVlZGVuIGVuY29udHJhciBlbiBsYSBEUEMuMA0GCSqGSIb3DQEBBQUAA4ICAQBclLW4RZFNjmEf
|
2089 |
+
AygPU3zmpFmps4p6xbD/CHwso3EcIRNnoZUSQDWDg4902zNc8El2CoFS3UnUmjIz75uny3XlesuX
|
2090 |
+
EpBcunvFm9+7OSPI/5jOCk0iAUgHforA1SBClETvv3eiiWdIG0ADBaGJ7M9i4z0ldma/Jre7Ir5v
|
2091 |
+
/zlXdLp6yQGVwZVR6Kss+LGGIOk/yzVb0hfpKv6DExdA7ohiZVvVO2Dpezy4ydV/NgIlqmjCMRW3
|
2092 |
+
MGXrfx1IebHPOeJCgBbT9ZMj/EyXyVo3bHwi2ErN0o42gzmRkBDI8ck1fj+404HGIGQatlDCIaR4
|
2093 |
+
3NAvO2STdPCWkPHv+wlaNECW8DYSwaN0jJN+Qd53i+yG2dIPPy3RzECiiWZIHiCznCNZc6lEc7wk
|
2094 |
+
eZBWN7PGKX6jD/EpOe9+XCgycDWs2rjIdWb8m0w5R44bb5tNAlQiM+9hup4phO9OSzNHdpdqy35f
|
2095 |
+
/RWmnkJDW2ZaiogN9xa5P1FlK2Zqi9E4UqLWRhH6/JocdJ6PlwsCT2TG9WjTSy3/pDceiz+/RL5h
|
2096 |
+
RqGEPQgnTIEgd4kI6mdAXmwIUV80WoyWaM3X94nCHNMyAK9Sy9NgWyo6R35rMDOhYil/SrnhLecU
|
2097 |
+
Iw4OGEfhefwVVdCx/CVxY3UzHCMrr1zZ7Ud3YA47Dx7SwNxkBYn8eNZcLCZDqQ==
|
2098 |
+
-----END CERTIFICATE-----
|
2099 |
+
|
2100 |
+
TC TrustCenter Class 2 CA II
|
2101 |
+
============================
|
2102 |
+
-----BEGIN CERTIFICATE-----
|
2103 |
+
MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
|
2104 |
+
REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
|
2105 |
+
IENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYw
|
2106 |
+
MTEyMTQzODQzWhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
|
2107 |
+
c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UE
|
2108 |
+
AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
|
2109 |
+
AQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jftMjWQ+nEdVl//OEd+DFw
|
2110 |
+
IxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKguNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2
|
2111 |
+
xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2JXjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQ
|
2112 |
+
Xa7pIXSSTYtZgo+U4+lK8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7u
|
2113 |
+
SNQZu+995OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1UdEwEB
|
2114 |
+
/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3kUrL84J6E1wIqzCB
|
2115 |
+
7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
|
2116 |
+
Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
|
2117 |
+
cnVzdENlbnRlciUyMENsYXNzJTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
|
2118 |
+
SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
|
2119 |
+
TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iSGNn3Bzn1LL4G
|
2120 |
+
dXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprtZjluS5TmVfwLG4t3wVMTZonZ
|
2121 |
+
KNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8au0WOB9/WIFaGusyiC2y8zl3gK9etmF1Kdsj
|
2122 |
+
TYjKUCjLhdLTEKJZbtOTVAB6okaVhgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kP
|
2123 |
+
JOzHdiEoZa5X6AeIdUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfk
|
2124 |
+
vQ==
|
2125 |
+
-----END CERTIFICATE-----
|
2126 |
+
|
2127 |
+
TC TrustCenter Class 3 CA II
|
2128 |
+
============================
|
2129 |
+
-----BEGIN CERTIFICATE-----
|
2130 |
+
MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
|
2131 |
+
REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
|
2132 |
+
IENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYw
|
2133 |
+
MTEyMTQ0MTU3WhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
|
2134 |
+
c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UE
|
2135 |
+
AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
|
2136 |
+
AQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJWHt4bNwcwIi9v8Qbxq63W
|
2137 |
+
yKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+QVl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo
|
2138 |
+
6SI7dYnWRBpl8huXJh0obazovVkdKyT21oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZ
|
2139 |
+
uV3bOx4a+9P/FRQI2AlqukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk
|
2140 |
+
2ZyqBwi1Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1UdEwEB
|
2141 |
+
/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NXXAek0CSnwPIA1DCB
|
2142 |
+
7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
|
2143 |
+
Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
|
2144 |
+
cnVzdENlbnRlciUyMENsYXNzJTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
|
2145 |
+
SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
|
2146 |
+
TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlNirTzwppVMXzE
|
2147 |
+
O2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8TtXqluJucsG7Kv5sbviRmEb8
|
2148 |
+
yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9
|
2149 |
+
IJqDnxrcOfHFcqMRA/07QlIp2+gB95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal
|
2150 |
+
092Y+tTmBvTwtiBjS+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc
|
2151 |
+
5A==
|
2152 |
+
-----END CERTIFICATE-----
|
2153 |
+
|
2154 |
+
TC TrustCenter Universal CA I
|
2155 |
+
=============================
|
2156 |
+
-----BEGIN CERTIFICATE-----
|
2157 |
+
MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTELMAkGA1UEBhMC
|
2158 |
+
REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy
|
2159 |
+
IFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcN
|
2160 |
+
MDYwMzIyMTU1NDI4WhcNMjUxMjMxMjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMg
|
2161 |
+
VHJ1c3RDZW50ZXIgR21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYw
|
2162 |
+
JAYDVQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcNAQEBBQAD
|
2163 |
+
ggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSRJJZ4Hgmgm5qVSkr1YnwC
|
2164 |
+
qMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3TfCZdzHd55yx4Oagmcw6iXSVphU9VDprv
|
2165 |
+
xrlE4Vc93x9UIuVvZaozhDrzznq+VZeujRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtw
|
2166 |
+
ag+1m7Z3W0hZneTvWq3zwZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9O
|
2167 |
+
gdwZu5GQfezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYDVR0j
|
2168 |
+
BBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
|
2169 |
+
AYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0GCSqGSIb3DQEBBQUAA4IBAQAo0uCG
|
2170 |
+
1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X17caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/Cy
|
2171 |
+
vwbZ71q+s2IhtNerNXxTPqYn8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3
|
2172 |
+
ghUJGooWMNjsydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT
|
2173 |
+
ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/2TYcuiUaUj0a
|
2174 |
+
7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY
|
2175 |
+
-----END CERTIFICATE-----
|
2176 |
+
|
2177 |
+
Deutsche Telekom Root CA 2
|
2178 |
+
==========================
|
2179 |
+
-----BEGIN CERTIFICATE-----
|
2180 |
+
MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT
|
2181 |
+
RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG
|
2182 |
+
A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5
|
2183 |
+
MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G
|
2184 |
+
A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS
|
2185 |
+
b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5
|
2186 |
+
bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI
|
2187 |
+
KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY
|
2188 |
+
AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK
|
2189 |
+
Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV
|
2190 |
+
jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV
|
2191 |
+
HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr
|
2192 |
+
E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy
|
2193 |
+
zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8
|
2194 |
+
rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G
|
2195 |
+
dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
|
2196 |
+
Cm26OWMohpLzGITY+9HPBVZkVw==
|
2197 |
+
-----END CERTIFICATE-----
|
2198 |
+
|
2199 |
+
ComSign Secured CA
|
2200 |
+
==================
|
2201 |
+
-----BEGIN CERTIFICATE-----
|
2202 |
+
MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAwPDEbMBkGA1UE
|
2203 |
+
AxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0w
|
2204 |
+
NDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwxGzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBD
|
2205 |
+
QTEQMA4GA1UEChMHQ29tU2lnbjELMAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
2206 |
+
ggEKAoIBAQDGtWhfHZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs
|
2207 |
+
49ohgHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sWv+bznkqH
|
2208 |
+
7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ueMv5WJDmyVIRD9YTC2LxB
|
2209 |
+
kMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d1
|
2210 |
+
9guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUw
|
2211 |
+
AwEB/zBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29t
|
2212 |
+
U2lnblNlY3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58ADsA
|
2213 |
+
j8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkqhkiG9w0BAQUFAAOC
|
2214 |
+
AQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7piL1DRYHjZiM/EoZNGeQFsOY3wo3a
|
2215 |
+
BijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtCdsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtp
|
2216 |
+
FhpFfTMDZflScZAmlaxMDPWLkz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP
|
2217 |
+
51qJThRv4zdLhfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz
|
2218 |
+
OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw==
|
2219 |
+
-----END CERTIFICATE-----
|
2220 |
+
|
2221 |
+
Cybertrust Global Root
|
2222 |
+
======================
|
2223 |
+
-----BEGIN CERTIFICATE-----
|
2224 |
+
MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li
|
2225 |
+
ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4
|
2226 |
+
MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD
|
2227 |
+
ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
|
2228 |
+
+Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW
|
2229 |
+
0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL
|
2230 |
+
AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin
|
2231 |
+
89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT
|
2232 |
+
8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP
|
2233 |
+
BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2
|
2234 |
+
MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G
|
2235 |
+
A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO
|
2236 |
+
lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi
|
2237 |
+
5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2
|
2238 |
+
hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T
|
2239 |
+
X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
|
2240 |
+
WL1WMRJOEcgh4LMRkWXbtKaIOM5V
|
2241 |
+
-----END CERTIFICATE-----
|
2242 |
+
|
2243 |
+
ePKI Root Certification Authority
|
2244 |
+
=================================
|
2245 |
+
-----BEGIN CERTIFICATE-----
|
2246 |
+
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
|
2272 |
+
-----END CERTIFICATE-----
|
2273 |
+
|
2274 |
+
T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3
|
2275 |
+
=============================================================================================================================
|
2276 |
+
-----BEGIN CERTIFICATE-----
|
2277 |
+
MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH
|
2278 |
+
DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q
|
2279 |
+
aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry
|
2280 |
+
b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV
|
2281 |
+
BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg
|
2282 |
+
S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4
|
2283 |
+
MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl
|
2284 |
+
IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF
|
2285 |
+
n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl
|
2286 |
+
IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft
|
2287 |
+
dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl
|
2288 |
+
cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B
|
2289 |
+
AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO
|
2290 |
+
Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1
|
2291 |
+
xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR
|
2292 |
+
6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
|
2293 |
+
hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd
|
2294 |
+
BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
|
2295 |
+
MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4
|
2296 |
+
N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT
|
2297 |
+
y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh
|
2298 |
+
LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M
|
2299 |
+
dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
|
2300 |
+
-----END CERTIFICATE-----
|
2301 |
+
|
2302 |
+
Buypass Class 2 CA 1
|
2303 |
+
====================
|
2304 |
+
-----BEGIN CERTIFICATE-----
|
2305 |
+
MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
|
2306 |
+
QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2
|
2307 |
+
MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
|
2308 |
+
c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI
|
2309 |
+
hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M
|
2310 |
+
cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83
|
2311 |
+
0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4
|
2312 |
+
0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R
|
2313 |
+
uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC
|
2314 |
+
MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P
|
2315 |
+
AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV
|
2316 |
+
1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt
|
2317 |
+
7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2
|
2318 |
+
fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w
|
2319 |
+
wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
|
2320 |
+
-----END CERTIFICATE-----
|
2321 |
+
|
2322 |
+
Buypass Class 3 CA 1
|
2323 |
+
====================
|
2324 |
+
-----BEGIN CERTIFICATE-----
|
2325 |
+
MIIDUzCCAjugAwIBAgIBAjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
|
2326 |
+
QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMyBDQSAxMB4XDTA1
|
2327 |
+
MDUwOTE0MTMwM1oXDTE1MDUwOTE0MTMwM1owSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
|
2328 |
+
c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDMgQ0EgMTCCASIwDQYJKoZI
|
2329 |
+
hvcNAQEBBQADggEPADCCAQoCggEBAKSO13TZKWTeXx+HgJHqTjnmGcZEC4DVC69TB4sSveZn8AKx
|
2330 |
+
ifZgisRbsELRwCGoy+Gb72RRtqfPFfV0gGgEkKBYouZ0plNTVUhjP5JW3SROjvi6K//zNIqeKNc0
|
2331 |
+
n6wv1g/xpC+9UrJJhW05NfBEMJNGJPO251P7vGGvqaMU+8IXF4Rs4HyI+MkcVyzwPX6UvCWThOia
|
2332 |
+
AJpFBUJXgPROztmuOfbIUxAMZTpHe2DC1vqRycZxbL2RhzyRhkmr8w+gbCZ2Xhysm3HljbybIR6c
|
2333 |
+
1jh+JIAVMYKWsUnTYjdbiAwKYjT+p0h+mbEwi5A3lRyoH6UsjfRVyNvdWQrCrXig9IsCAwEAAaNC
|
2334 |
+
MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUOBTmyPCppAP0Tj4io1vy1uCtQHQwDgYDVR0P
|
2335 |
+
AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQABZ6OMySU9E2NdFm/soT4JXJEVKirZgCFPBdy7
|
2336 |
+
pYmrEzMqnji3jG8CcmPHc3ceCQa6Oyh7pEfJYWsICCD8igWKH7y6xsL+z27sEzNxZy5p+qksP2bA
|
2337 |
+
EllNC1QCkoS72xLvg3BweMhT+t/Gxv/ciC8HwEmdMldg0/L2mSlf56oBzKwzqBwKu5HEA6BvtjT5
|
2338 |
+
htOzdlSY9EqBs1OdTUDs5XcTRa9bqh/YL0yCe/4qxFi7T/ye/QNlGioOw6UgFpRreaaiErS7GqQj
|
2339 |
+
el/wroQk5PMr+4okoyeYZdowdXb8GZHo2+ubPzK/QJcHJrrM85SFSnonk8+QQtS4Wxam58tAA915
|
2340 |
+
-----END CERTIFICATE-----
|
2341 |
+
|
2342 |
+
EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
|
2343 |
+
==========================================================================
|
2344 |
+
-----BEGIN CERTIFICATE-----
|
2345 |
+
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
|
2372 |
+
-----END CERTIFICATE-----
|
2373 |
+
|
2374 |
+
certSIGN ROOT CA
|
2375 |
+
================
|
2376 |
+
-----BEGIN CERTIFICATE-----
|
2377 |
+
MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD
|
2378 |
+
VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa
|
2379 |
+
Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE
|
2380 |
+
CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I
|
2381 |
+
JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH
|
2382 |
+
rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2
|
2383 |
+
ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD
|
2384 |
+
0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943
|
2385 |
+
AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
|
2386 |
+
Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB
|
2387 |
+
AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8
|
2388 |
+
SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0
|
2389 |
+
x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt
|
2390 |
+
vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
|
2391 |
+
TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
|
2392 |
+
-----END CERTIFICATE-----
|
2393 |
+
|
2394 |
+
CNNIC ROOT
|
2395 |
+
==========
|
2396 |
+
-----BEGIN CERTIFICATE-----
|
2397 |
+
MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE
|
2398 |
+
ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw
|
2399 |
+
OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw
|
2400 |
+
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD
|
2401 |
+
o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz
|
2402 |
+
VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT
|
2403 |
+
VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or
|
2404 |
+
czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK
|
2405 |
+
y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC
|
2406 |
+
wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S
|
2407 |
+
lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5
|
2408 |
+
Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM
|
2409 |
+
O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8
|
2410 |
+
BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2
|
2411 |
+
G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m
|
2412 |
+
mxE=
|
2413 |
+
-----END CERTIFICATE-----
|
2414 |
+
|
2415 |
+
ApplicationCA - Japanese Government
|
2416 |
+
===================================
|
2417 |
+
-----BEGIN CERTIFICATE-----
|
2418 |
+
MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT
|
2419 |
+
SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw
|
2420 |
+
MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl
|
2421 |
+
cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
2422 |
+
CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4
|
2423 |
+
fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN
|
2424 |
+
wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE
|
2425 |
+
jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu
|
2426 |
+
nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU
|
2427 |
+
WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV
|
2428 |
+
BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD
|
2429 |
+
vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs
|
2430 |
+
o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g
|
2431 |
+
/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD
|
2432 |
+
io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW
|
2433 |
+
dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
|
2434 |
+
rosot4LKGAfmt1t06SAZf7IbiVQ=
|
2435 |
+
-----END CERTIFICATE-----
|
2436 |
+
|
2437 |
+
GeoTrust Primary Certification Authority - G3
|
2438 |
+
=============================================
|
2439 |
+
-----BEGIN CERTIFICATE-----
|
2440 |
+
MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE
|
2441 |
+
BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0
|
2442 |
+
IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy
|
2443 |
+
eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz
|
2444 |
+
NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo
|
2445 |
+
YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT
|
2446 |
+
LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
|
2447 |
+
hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j
|
2448 |
+
K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE
|
2449 |
+
c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C
|
2450 |
+
IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu
|
2451 |
+
dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC
|
2452 |
+
MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr
|
2453 |
+
2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9
|
2454 |
+
cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE
|
2455 |
+
Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
|
2456 |
+
AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s
|
2457 |
+
t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt
|
2458 |
+
-----END CERTIFICATE-----
|
2459 |
+
|
2460 |
+
thawte Primary Root CA - G2
|
2461 |
+
===========================
|
2462 |
+
-----BEGIN CERTIFICATE-----
|
2463 |
+
MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC
|
2464 |
+
VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu
|
2465 |
+
IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg
|
2466 |
+
Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV
|
2467 |
+
MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG
|
2468 |
+
b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt
|
2469 |
+
IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS
|
2470 |
+
LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5
|
2471 |
+
8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
|
2472 |
+
mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN
|
2473 |
+
G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K
|
2474 |
+
rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
|
2475 |
+
-----END CERTIFICATE-----
|
2476 |
+
|
2477 |
+
thawte Primary Root CA - G3
|
2478 |
+
===========================
|
2479 |
+
-----BEGIN CERTIFICATE-----
|
2480 |
+
MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE
|
2481 |
+
BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
|
2482 |
+
aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
|
2483 |
+
cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w
|
2484 |
+
ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
|
2485 |
+
d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD
|
2486 |
+
VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG
|
2487 |
+
A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
2488 |
+
MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At
|
2489 |
+
P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC
|
2490 |
+
+BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY
|
2491 |
+
7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW
|
2492 |
+
vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E
|
2493 |
+
BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ
|
2494 |
+
KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK
|
2495 |
+
A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
|
2496 |
+
t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC
|
2497 |
+
8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm
|
2498 |
+
er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A=
|
2499 |
+
-----END CERTIFICATE-----
|
2500 |
+
|
2501 |
+
GeoTrust Primary Certification Authority - G2
|
2502 |
+
=============================================
|
2503 |
+
-----BEGIN CERTIFICATE-----
|
2504 |
+
MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC
|
2505 |
+
VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu
|
2506 |
+
Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD
|
2507 |
+
ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1
|
2508 |
+
OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
|
2509 |
+
MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl
|
2510 |
+
b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG
|
2511 |
+
BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc
|
2512 |
+
KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD
|
2513 |
+
VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+
|
2514 |
+
EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m
|
2515 |
+
ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2
|
2516 |
+
npaqBA+K
|
2517 |
+
-----END CERTIFICATE-----
|
2518 |
+
|
2519 |
+
VeriSign Universal Root Certification Authority
|
2520 |
+
===============================================
|
2521 |
+
-----BEGIN CERTIFICATE-----
|
2522 |
+
MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
|
2523 |
+
BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
|
2524 |
+
ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
|
2525 |
+
IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
|
2526 |
+
IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
|
2527 |
+
UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
|
2528 |
+
cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
2529 |
+
IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
|
2530 |
+
aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
|
2531 |
+
1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
|
2532 |
+
MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
|
2533 |
+
9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
|
2534 |
+
AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
|
2535 |
+
tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
|
2536 |
+
CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
|
2537 |
+
a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
|
2538 |
+
DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
|
2539 |
+
Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
|
2540 |
+
Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
|
2541 |
+
P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
|
2542 |
+
wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
|
2543 |
+
mJO37M2CYfE45k+XmCpajQ==
|
2544 |
+
-----END CERTIFICATE-----
|
2545 |
+
|
2546 |
+
VeriSign Class 3 Public Primary Certification Authority - G4
|
2547 |
+
============================================================
|
2548 |
+
-----BEGIN CERTIFICATE-----
|
2549 |
+
MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC
|
2550 |
+
VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
|
2551 |
+
b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
|
2552 |
+
ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj
|
2553 |
+
YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL
|
2554 |
+
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
|
2555 |
+
cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo
|
2556 |
+
b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5
|
2557 |
+
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8
|
2558 |
+
Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz
|
2559 |
+
rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB
|
2560 |
+
/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw
|
2561 |
+
HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u
|
2562 |
+
Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD
|
2563 |
+
A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
|
2564 |
+
AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
|
2565 |
+
-----END CERTIFICATE-----
|
2566 |
+
|
2567 |
+
NetLock Arany (Class Gold) FÅ‘tanúsÃtvány
|
2568 |
+
============================================
|
2569 |
+
-----BEGIN CERTIFICATE-----
|
2570 |
+
MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
|
2571 |
+
A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
|
2572 |
+
dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB
|
2573 |
+
cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx
|
2574 |
+
MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO
|
2575 |
+
ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv
|
2576 |
+
biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6
|
2577 |
+
c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu
|
2578 |
+
0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw
|
2579 |
+
/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk
|
2580 |
+
H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw
|
2581 |
+
fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1
|
2582 |
+
neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB
|
2583 |
+
BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW
|
2584 |
+
qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta
|
2585 |
+
YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
|
2586 |
+
bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna
|
2587 |
+
NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
|
2588 |
+
dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
|
2589 |
+
-----END CERTIFICATE-----
|
2590 |
+
|
2591 |
+
Staat der Nederlanden Root CA - G2
|
2592 |
+
==================================
|
2593 |
+
-----BEGIN CERTIFICATE-----
|
2594 |
+
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
|
2620 |
+
66+KAQ==
|
2621 |
+
-----END CERTIFICATE-----
|
2622 |
+
|
2623 |
+
CA Disig
|
2624 |
+
========
|
2625 |
+
-----BEGIN CERTIFICATE-----
|
2626 |
+
MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK
|
2627 |
+
QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw
|
2628 |
+
MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz
|
2629 |
+
bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3
|
2630 |
+
DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm
|
2631 |
+
GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD
|
2632 |
+
Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo
|
2633 |
+
hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt
|
2634 |
+
ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w
|
2635 |
+
gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P
|
2636 |
+
AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz
|
2637 |
+
aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff
|
2638 |
+
ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa
|
2639 |
+
BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t
|
2640 |
+
WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3
|
2641 |
+
mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
|
2642 |
+
CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K
|
2643 |
+
ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA
|
2644 |
+
4Z7CRneC9VkGjCFMhwnN5ag=
|
2645 |
+
-----END CERTIFICATE-----
|
2646 |
+
|
2647 |
+
Juur-SK
|
2648 |
+
=======
|
2649 |
+
-----BEGIN CERTIFICATE-----
|
2650 |
+
MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA
|
2651 |
+
c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw
|
2652 |
+
DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG
|
2653 |
+
SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy
|
2654 |
+
aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
2655 |
+
ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf
|
2656 |
+
TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC
|
2657 |
+
+Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw
|
2658 |
+
UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa
|
2659 |
+
Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF
|
2660 |
+
MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD
|
2661 |
+
HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh
|
2662 |
+
AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA
|
2663 |
+
cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr
|
2664 |
+
AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw
|
2665 |
+
cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE
|
2666 |
+
FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G
|
2667 |
+
A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo
|
2668 |
+
ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL
|
2669 |
+
abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678
|
2670 |
+
IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh
|
2671 |
+
Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2
|
2672 |
+
yyqcjg==
|
2673 |
+
-----END CERTIFICATE-----
|
2674 |
+
|
2675 |
+
Hongkong Post Root CA 1
|
2676 |
+
=======================
|
2677 |
+
-----BEGIN CERTIFICATE-----
|
2678 |
+
MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT
|
2679 |
+
DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx
|
2680 |
+
NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n
|
2681 |
+
IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF
|
2682 |
+
AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1
|
2683 |
+
ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr
|
2684 |
+
auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh
|
2685 |
+
qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY
|
2686 |
+
V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV
|
2687 |
+
HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i
|
2688 |
+
h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio
|
2689 |
+
l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei
|
2690 |
+
IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps
|
2691 |
+
T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT
|
2692 |
+
c4afU9hDDl3WY4JxHYB0yvbiAmvZWg==
|
2693 |
+
-----END CERTIFICATE-----
|
2694 |
+
|
2695 |
+
SecureSign RootCA11
|
2696 |
+
===================
|
2697 |
+
-----BEGIN CERTIFICATE-----
|
2698 |
+
MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi
|
2699 |
+
SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS
|
2700 |
+
b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw
|
2701 |
+
KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1
|
2702 |
+
cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL
|
2703 |
+
TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO
|
2704 |
+
wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq
|
2705 |
+
g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP
|
2706 |
+
O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA
|
2707 |
+
bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX
|
2708 |
+
t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh
|
2709 |
+
OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r
|
2710 |
+
bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ
|
2711 |
+
Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01
|
2712 |
+
y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
|
2713 |
+
lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
|
2714 |
+
-----END CERTIFICATE-----
|
2715 |
+
|
2716 |
+
ACEDICOM Root
|
2717 |
+
=============
|
2718 |
+
-----BEGIN CERTIFICATE-----
|
2719 |
+
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
|
2745 |
+
-----END CERTIFICATE-----
|
2746 |
+
|
2747 |
+
Verisign Class 3 Public Primary Certification Authority
|
2748 |
+
=======================================================
|
2749 |
+
-----BEGIN CERTIFICATE-----
|
2750 |
+
MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMx
|
2751 |
+
FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
|
2752 |
+
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVow
|
2753 |
+
XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
|
2754 |
+
IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
|
2755 |
+
A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
|
2756 |
+
f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
|
2757 |
+
hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBABByUqkFFBky
|
2758 |
+
CEHwxWsKzH4PIRnN5GfcX6kb5sroc50i2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWX
|
2759 |
+
bj9T/UWZYB2oK0z5XqcJ2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/
|
2760 |
+
D/xwzoiQ
|
2761 |
+
-----END CERTIFICATE-----
|
2762 |
+
|
2763 |
+
Microsec e-Szigno Root CA 2009
|
2764 |
+
==============================
|
2765 |
+
-----BEGIN CERTIFICATE-----
|
2766 |
+
MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER
|
2767 |
+
MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv
|
2768 |
+
c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
|
2769 |
+
dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE
|
2770 |
+
BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt
|
2771 |
+
U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw
|
2772 |
+
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA
|
2773 |
+
fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG
|
2774 |
+
0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA
|
2775 |
+
pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm
|
2776 |
+
1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC
|
2777 |
+
AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf
|
2778 |
+
QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE
|
2779 |
+
FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o
|
2780 |
+
lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX
|
2781 |
+
I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
|
2782 |
+
tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02
|
2783 |
+
yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi
|
2784 |
+
LXpUq3DDfSJlgnCW
|
2785 |
+
-----END CERTIFICATE-----
|
2786 |
+
|
2787 |
+
E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi
|
2788 |
+
===================================================
|
2789 |
+
-----BEGIN CERTIFICATE-----
|
2790 |
+
MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
|
2791 |
+
EwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxpZ2kgQS5TLjE8MDoGA1UEAxMz
|
2792 |
+
ZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3
|
2793 |
+
MDEwNDExMzI0OFoXDTE3MDEwNDExMzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0
|
2794 |
+
cm9uaWsgQmlsZ2kgR3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9u
|
2795 |
+
aWsgU2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
|
2796 |
+
AQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdUMZTe1RK6UxYC6lhj71vY
|
2797 |
+
8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlTL/jDj/6z/P2douNffb7tC+Bg62nsM+3Y
|
2798 |
+
jfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAI
|
2799 |
+
JjjcJRFHLfO6IxClv7wC90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk
|
2800 |
+
9Ok0oSy1c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/BAQD
|
2801 |
+
AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoEVtstxNulMA0GCSqG
|
2802 |
+
SIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLPqk/CaOv/gKlR6D1id4k9CnU58W5d
|
2803 |
+
F4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwq
|
2804 |
+
D2fK/A+JYZ1lpTzlvBNbCNvj/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4
|
2805 |
+
Vwpm+Vganf2XKWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq
|
2806 |
+
fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX
|
2807 |
+
-----END CERTIFICATE-----
|
2808 |
+
|
2809 |
+
GlobalSign Root CA - R3
|
2810 |
+
=======================
|
2811 |
+
-----BEGIN CERTIFICATE-----
|
2812 |
+
MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv
|
2813 |
+
YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
|
2814 |
+
bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
|
2815 |
+
aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
|
2816 |
+
bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt
|
2817 |
+
iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ
|
2818 |
+
0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3
|
2819 |
+
rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl
|
2820 |
+
OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2
|
2821 |
+
xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
|
2822 |
+
FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7
|
2823 |
+
lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8
|
2824 |
+
EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E
|
2825 |
+
bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18
|
2826 |
+
YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r
|
2827 |
+
kpeDMdmztcpHWD9f
|
2828 |
+
-----END CERTIFICATE-----
|
2829 |
+
|
2830 |
+
TC TrustCenter Universal CA III
|
2831 |
+
===============================
|
2832 |
+
-----BEGIN CERTIFICATE-----
|
2833 |
+
MIID4TCCAsmgAwIBAgIOYyUAAQACFI0zFQLkbPQwDQYJKoZIhvcNAQEFBQAwezELMAkGA1UEBhMC
|
2834 |
+
REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy
|
2835 |
+
IFVuaXZlcnNhbCBDQTEoMCYGA1UEAxMfVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIElJSTAe
|
2836 |
+
Fw0wOTA5MDkwODE1MjdaFw0yOTEyMzEyMzU5NTlaMHsxCzAJBgNVBAYTAkRFMRwwGgYDVQQKExNU
|
2837 |
+
QyBUcnVzdENlbnRlciBHbWJIMSQwIgYDVQQLExtUQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0Ex
|
2838 |
+
KDAmBgNVBAMTH1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQSBJSUkwggEiMA0GCSqGSIb3DQEB
|
2839 |
+
AQUAA4IBDwAwggEKAoIBAQDC2pxisLlxErALyBpXsq6DFJmzNEubkKLF5+cvAqBNLaT6hdqbJYUt
|
2840 |
+
QCggbergvbFIgyIpRJ9Og+41URNzdNW88jBmlFPAQDYvDIRlzg9uwliT6CwLOunBjvvya8o84pxO
|
2841 |
+
juT5fdMnnxvVZ3iHLX8LR7PH6MlIfK8vzArZQe+f/prhsq75U7Xl6UafYOPfjdN/+5Z+s7Vy+Eut
|
2842 |
+
CHnNaYlAJ/Uqwa1D7KRTyGG299J5KmcYdkhtWyUB0SbFt1dpIxVbYYqt8Bst2a9c8SaQaanVDED1
|
2843 |
+
M4BDj5yjdipFtK+/fz6HP3bFzSreIMUWWMv5G/UPyw0RUmS40nZid4PxWJ//AgMBAAGjYzBhMB8G
|
2844 |
+
A1UdIwQYMBaAFFbn4VslQ4Dg9ozhcbyO5YAvxEjiMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
|
2845 |
+
BAQDAgEGMB0GA1UdDgQWBBRW5+FbJUOA4PaM4XG8juWAL8RI4jANBgkqhkiG9w0BAQUFAAOCAQEA
|
2846 |
+
g8ev6n9NCjw5sWi+e22JLumzCecYV42FmhfzdkJQEw/HkG8zrcVJYCtsSVgZ1OK+t7+rSbyUyKu+
|
2847 |
+
KGwWaODIl0YgoGhnYIg5IFHYaAERzqf2EQf27OysGh+yZm5WZ2B6dF7AbZc2rrUNXWZzwCUyRdhK
|
2848 |
+
BgePxLcHsU0GDeGl6/R1yrqc0L2z0zIkTO5+4nYES0lT2PLpVDP85XEfPRRclkvxOvIAu2y0+pZV
|
2849 |
+
CIgJwcyRGSmwIC3/yzikQOEXvnlhgP8HA4ZMTnsGnxGGjYnuJ8Tb4rwZjgvDwxPHLQNjO9Po5KIq
|
2850 |
+
woIIlBZU8O8fJ5AluA0OKBtHd0e9HKgl8ZS0Zg==
|
2851 |
+
-----END CERTIFICATE-----
|
2852 |
+
|
2853 |
+
Autoridad de Certificacion Firmaprofesional CIF A62634068
|
2854 |
+
=========================================================
|
2855 |
+
-----BEGIN CERTIFICATE-----
|
2856 |
+
MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA
|
2857 |
+
BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
|
2858 |
+
MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw
|
2859 |
+
QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB
|
2860 |
+
NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD
|
2861 |
+
Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P
|
2862 |
+
B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY
|
2863 |
+
7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH
|
2864 |
+
ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI
|
2865 |
+
plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX
|
2866 |
+
MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX
|
2867 |
+
LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK
|
2868 |
+
bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU
|
2869 |
+
vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud
|
2870 |
+
EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH
|
2871 |
+
DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
|
2872 |
+
cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA
|
2873 |
+
bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx
|
2874 |
+
ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx
|
2875 |
+
51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk
|
2876 |
+
R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP
|
2877 |
+
T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f
|
2878 |
+
Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl
|
2879 |
+
osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR
|
2880 |
+
crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR
|
2881 |
+
saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD
|
2882 |
+
KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi
|
2883 |
+
6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
|
2884 |
+
-----END CERTIFICATE-----
|
2885 |
+
|
2886 |
+
Izenpe.com
|
2887 |
+
==========
|
2888 |
+
-----BEGIN CERTIFICATE-----
|
2889 |
+
MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG
|
2890 |
+
EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz
|
2891 |
+
MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu
|
2892 |
+
QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ
|
2893 |
+
03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK
|
2894 |
+
ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU
|
2895 |
+
+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC
|
2896 |
+
PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT
|
2897 |
+
OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK
|
2898 |
+
F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK
|
2899 |
+
0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+
|
2900 |
+
0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB
|
2901 |
+
leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID
|
2902 |
+
AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+
|
2903 |
+
SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG
|
2904 |
+
NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
|
2905 |
+
MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
|
2906 |
+
BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l
|
2907 |
+
Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga
|
2908 |
+
kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q
|
2909 |
+
hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs
|
2910 |
+
g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5
|
2911 |
+
aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5
|
2912 |
+
nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC
|
2913 |
+
ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo
|
2914 |
+
Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z
|
2915 |
+
WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
|
2916 |
+
-----END CERTIFICATE-----
|
2917 |
+
|
2918 |
+
Chambers of Commerce Root - 2008
|
2919 |
+
================================
|
2920 |
+
-----BEGIN CERTIFICATE-----
|
2921 |
+
MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD
|
2922 |
+
MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
|
2923 |
+
bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
|
2924 |
+
QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy
|
2925 |
+
Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl
|
2926 |
+
ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF
|
2927 |
+
EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl
|
2928 |
+
cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
|
2929 |
+
AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA
|
2930 |
+
XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj
|
2931 |
+
h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/
|
2932 |
+
ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk
|
2933 |
+
NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g
|
2934 |
+
D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331
|
2935 |
+
lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ
|
2936 |
+
0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
|
2937 |
+
ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2
|
2938 |
+
EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI
|
2939 |
+
G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ
|
2940 |
+
BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh
|
2941 |
+
bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh
|
2942 |
+
bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC
|
2943 |
+
CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH
|
2944 |
+
AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1
|
2945 |
+
wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH
|
2946 |
+
3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU
|
2947 |
+
RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6
|
2948 |
+
M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1
|
2949 |
+
YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF
|
2950 |
+
9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK
|
2951 |
+
zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG
|
2952 |
+
nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
|
2953 |
+
OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ
|
2954 |
+
-----END CERTIFICATE-----
|
2955 |
+
|
2956 |
+
Global Chambersign Root - 2008
|
2957 |
+
==============================
|
2958 |
+
-----BEGIN CERTIFICATE-----
|
2959 |
+
MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD
|
2960 |
+
MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
|
2961 |
+
bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
|
2962 |
+
QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx
|
2963 |
+
NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg
|
2964 |
+
Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ
|
2965 |
+
QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
|
2966 |
+
aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf
|
2967 |
+
VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf
|
2968 |
+
XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0
|
2969 |
+
ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB
|
2970 |
+
/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA
|
2971 |
+
TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M
|
2972 |
+
H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe
|
2973 |
+
Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF
|
2974 |
+
HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
|
2975 |
+
wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB
|
2976 |
+
AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT
|
2977 |
+
BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE
|
2978 |
+
BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm
|
2979 |
+
aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm
|
2980 |
+
aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp
|
2981 |
+
1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0
|
2982 |
+
dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG
|
2983 |
+
/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6
|
2984 |
+
ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s
|
2985 |
+
dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg
|
2986 |
+
9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH
|
2987 |
+
foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du
|
2988 |
+
qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr
|
2989 |
+
P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq
|
2990 |
+
c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
|
2991 |
+
09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
|
2992 |
+
-----END CERTIFICATE-----
|
2993 |
+
|
2994 |
+
Go Daddy Root Certificate Authority - G2
|
2995 |
+
========================================
|
2996 |
+
-----BEGIN CERTIFICATE-----
|
2997 |
+
MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
|
2998 |
+
B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu
|
2999 |
+
MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
|
3000 |
+
MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
|
3001 |
+
b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G
|
3002 |
+
A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
|
3003 |
+
hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq
|
3004 |
+
9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD
|
3005 |
+
+qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd
|
3006 |
+
fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl
|
3007 |
+
NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC
|
3008 |
+
MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9
|
3009 |
+
BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac
|
3010 |
+
vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r
|
3011 |
+
5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV
|
3012 |
+
N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
|
3013 |
+
LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1
|
3014 |
+
-----END CERTIFICATE-----
|
3015 |
+
|
3016 |
+
Starfield Root Certificate Authority - G2
|
3017 |
+
=========================================
|
3018 |
+
-----BEGIN CERTIFICATE-----
|
3019 |
+
MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
|
3020 |
+
B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
|
3021 |
+
b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
|
3022 |
+
eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw
|
3023 |
+
DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg
|
3024 |
+
VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB
|
3025 |
+
dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv
|
3026 |
+
W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs
|
3027 |
+
bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk
|
3028 |
+
N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf
|
3029 |
+
ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU
|
3030 |
+
JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
|
3031 |
+
AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol
|
3032 |
+
TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx
|
3033 |
+
4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw
|
3034 |
+
F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
|
3035 |
+
pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ
|
3036 |
+
c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
|
3037 |
+
-----END CERTIFICATE-----
|
3038 |
+
|
3039 |
+
Starfield Services Root Certificate Authority - G2
|
3040 |
+
==================================================
|
3041 |
+
-----BEGIN CERTIFICATE-----
|
3042 |
+
MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
|
3043 |
+
B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
|
3044 |
+
b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl
|
3045 |
+
IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV
|
3046 |
+
BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT
|
3047 |
+
dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg
|
3048 |
+
Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
|
3049 |
+
AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2
|
3050 |
+
h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa
|
3051 |
+
hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP
|
3052 |
+
LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB
|
3053 |
+
rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
|
3054 |
+
AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG
|
3055 |
+
SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP
|
3056 |
+
E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy
|
3057 |
+
xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
|
3058 |
+
iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza
|
3059 |
+
YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6
|
3060 |
+
-----END CERTIFICATE-----
|
3061 |
+
|
3062 |
+
AffirmTrust Commercial
|
3063 |
+
======================
|
3064 |
+
-----BEGIN CERTIFICATE-----
|
3065 |
+
MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS
|
3066 |
+
BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw
|
3067 |
+
MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
|
3068 |
+
bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF
|
3069 |
+
AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb
|
3070 |
+
DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV
|
3071 |
+
C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6
|
3072 |
+
BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww
|
3073 |
+
MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV
|
3074 |
+
HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
|
3075 |
+
AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG
|
3076 |
+
hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi
|
3077 |
+
qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv
|
3078 |
+
0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh
|
3079 |
+
sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
|
3080 |
+
-----END CERTIFICATE-----
|
3081 |
+
|
3082 |
+
AffirmTrust Networking
|
3083 |
+
======================
|
3084 |
+
-----BEGIN CERTIFICATE-----
|
3085 |
+
MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS
|
3086 |
+
BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw
|
3087 |
+
MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
|
3088 |
+
bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF
|
3089 |
+
AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE
|
3090 |
+
Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI
|
3091 |
+
dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24
|
3092 |
+
/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb
|
3093 |
+
h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV
|
3094 |
+
HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
|
3095 |
+
AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu
|
3096 |
+
UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6
|
3097 |
+
12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23
|
3098 |
+
WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9
|
3099 |
+
/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
|
3100 |
+
-----END CERTIFICATE-----
|
3101 |
+
|
3102 |
+
AffirmTrust Premium
|
3103 |
+
===================
|
3104 |
+
-----BEGIN CERTIFICATE-----
|
3105 |
+
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
|
3129 |
+
-----END CERTIFICATE-----
|
3130 |
+
|
3131 |
+
AffirmTrust Premium ECC
|
3132 |
+
=======================
|
3133 |
+
-----BEGIN CERTIFICATE-----
|
3134 |
+
MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV
|
3135 |
+
BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx
|
3136 |
+
MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U
|
3137 |
+
cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA
|
3138 |
+
IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ
|
3139 |
+
N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW
|
3140 |
+
BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK
|
3141 |
+
BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X
|
3142 |
+
57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM
|
3143 |
+
eQ==
|
3144 |
+
-----END CERTIFICATE-----
|
3145 |
+
|
3146 |
+
Certum Trusted Network CA
|
3147 |
+
=========================
|
3148 |
+
-----BEGIN CERTIFICATE-----
|
3149 |
+
MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK
|
3150 |
+
ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv
|
3151 |
+
biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy
|
3152 |
+
MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU
|
3153 |
+
ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
|
3154 |
+
MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
3155 |
+
AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC
|
3156 |
+
l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J
|
3157 |
+
J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4
|
3158 |
+
fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0
|
3159 |
+
cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB
|
3160 |
+
Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw
|
3161 |
+
DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj
|
3162 |
+
jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1
|
3163 |
+
mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj
|
3164 |
+
Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
|
3165 |
+
03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
|
3166 |
+
-----END CERTIFICATE-----
|
3167 |
+
|
3168 |
+
Certinomis - Autorité Racine
|
3169 |
+
=============================
|
3170 |
+
-----BEGIN CERTIFICATE-----
|
3171 |
+
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
|
3196 |
+
vgt2Fl43N+bYdJeimUV5
|
3197 |
+
-----END CERTIFICATE-----
|
3198 |
+
|
3199 |
+
Root CA Generalitat Valenciana
|
3200 |
+
==============================
|
3201 |
+
-----BEGIN CERTIFICATE-----
|
3202 |
+
MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE
|
3203 |
+
ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290
|
3204 |
+
IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3
|
3205 |
+
WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE
|
3206 |
+
CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G
|
3207 |
+
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2
|
3208 |
+
F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B
|
3209 |
+
ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ
|
3210 |
+
D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte
|
3211 |
+
JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB
|
3212 |
+
AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n
|
3213 |
+
dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB
|
3214 |
+
ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl
|
3215 |
+
AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA
|
3216 |
+
YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy
|
3217 |
+
AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
|
3218 |
+
aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt
|
3219 |
+
AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA
|
3220 |
+
YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu
|
3221 |
+
AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA
|
3222 |
+
OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0
|
3223 |
+
dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV
|
3224 |
+
BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G
|
3225 |
+
A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S
|
3226 |
+
b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh
|
3227 |
+
TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz
|
3228 |
+
Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63
|
3229 |
+
NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH
|
3230 |
+
iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt
|
3231 |
+
+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
|
3232 |
+
-----END CERTIFICATE-----
|
3233 |
+
|
3234 |
+
A-Trust-nQual-03
|
3235 |
+
================
|
3236 |
+
-----BEGIN CERTIFICATE-----
|
3237 |
+
MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJBVDFIMEYGA1UE
|
3238 |
+
Cgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy
|
3239 |
+
a2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5RdWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5R
|
3240 |
+
dWFsLTAzMB4XDTA1MDgxNzIyMDAwMFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgw
|
3241 |
+
RgYDVQQKDD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0
|
3242 |
+
ZW52ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMMEEEtVHJ1
|
3243 |
+
c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtPWFuA/OQO8BBC4SA
|
3244 |
+
zewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUjlUC5B3ilJfYKvUWG6Nm9wASOhURh73+n
|
3245 |
+
yfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZznF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPE
|
3246 |
+
SU7l0+m0iKsMrmKS1GWH2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4
|
3247 |
+
iHQF63n1k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs2e3V
|
3248 |
+
cuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECERqlWdV
|
3249 |
+
eRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAVdRU0VlIXLOThaq/Yy/kgM40
|
3250 |
+
ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fGKOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmr
|
3251 |
+
sQd7TZjTXLDR8KdCoLXEjq/+8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZd
|
3252 |
+
JXDRZslo+S4RFGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS
|
3253 |
+
mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmEDNuxUCAKGkq6
|
3254 |
+
ahq97BvIxYSazQ==
|
3255 |
+
-----END CERTIFICATE-----
|
3256 |
+
|
3257 |
+
TWCA Root Certification Authority
|
3258 |
+
=================================
|
3259 |
+
-----BEGIN CERTIFICATE-----
|
3260 |
+
MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ
|
3261 |
+
VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh
|
3262 |
+
dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG
|
3263 |
+
EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB
|
3264 |
+
IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
|
3265 |
+
AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx
|
3266 |
+
QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC
|
3267 |
+
oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP
|
3268 |
+
4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r
|
3269 |
+
y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
|
3270 |
+
BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG
|
3271 |
+
9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC
|
3272 |
+
mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW
|
3273 |
+
QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY
|
3274 |
+
T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny
|
3275 |
+
Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
|
3276 |
+
-----END CERTIFICATE-----
|
3277 |
+
|
3278 |
+
Security Communication RootCA2
|
3279 |
+
==============================
|
3280 |
+
-----BEGIN CERTIFICATE-----
|
3281 |
+
MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
|
3282 |
+
U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh
|
3283 |
+
dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC
|
3284 |
+
SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy
|
3285 |
+
aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
3286 |
+
ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++
|
3287 |
+
+T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R
|
3288 |
+
3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV
|
3289 |
+
spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K
|
3290 |
+
EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8
|
3291 |
+
QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
|
3292 |
+
CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj
|
3293 |
+
u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk
|
3294 |
+
3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q
|
3295 |
+
tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29
|
3296 |
+
mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
|
3297 |
+
-----END CERTIFICATE-----
|
3298 |
+
|
3299 |
+
EC-ACC
|
3300 |
+
======
|
3301 |
+
-----BEGIN CERTIFICATE-----
|
3302 |
+
MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE
|
3303 |
+
BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w
|
3304 |
+
ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD
|
3305 |
+
VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE
|
3306 |
+
CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT
|
3307 |
+
BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7
|
3308 |
+
MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt
|
3309 |
+
SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl
|
3310 |
+
Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh
|
3311 |
+
cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND
|
3312 |
+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK
|
3313 |
+
w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT
|
3314 |
+
ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4
|
3315 |
+
HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a
|
3316 |
+
E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw
|
3317 |
+
0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
|
3318 |
+
BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD
|
3319 |
+
VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0
|
3320 |
+
Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l
|
3321 |
+
dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ
|
3322 |
+
lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa
|
3323 |
+
Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe
|
3324 |
+
l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2
|
3325 |
+
E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D
|
3326 |
+
5EI=
|
3327 |
+
-----END CERTIFICATE-----
|
3328 |
+
|
3329 |
+
Hellenic Academic and Research Institutions RootCA 2011
|
3330 |
+
=======================================================
|
3331 |
+
-----BEGIN CERTIFICATE-----
|
3332 |
+
MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT
|
3333 |
+
O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y
|
3334 |
+
aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
|
3335 |
+
IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT
|
3336 |
+
AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
|
3337 |
+
IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo
|
3338 |
+
IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
3339 |
+
AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI
|
3340 |
+
1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa
|
3341 |
+
71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u
|
3342 |
+
8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH
|
3343 |
+
3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/
|
3344 |
+
MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8
|
3345 |
+
MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu
|
3346 |
+
b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt
|
3347 |
+
XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
|
3348 |
+
TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD
|
3349 |
+
/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N
|
3350 |
+
7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4
|
3351 |
+
-----END CERTIFICATE-----
|
3352 |
+
|
3353 |
+
Actalis Authentication Root CA
|
3354 |
+
==============================
|
3355 |
+
-----BEGIN CERTIFICATE-----
|
3356 |
+
MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM
|
3357 |
+
BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE
|
3358 |
+
AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky
|
3359 |
+
MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz
|
3360 |
+
IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
|
3361 |
+
IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ
|
3362 |
+
wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa
|
3363 |
+
by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6
|
3364 |
+
zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f
|
3365 |
+
YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2
|
3366 |
+
oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l
|
3367 |
+
EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7
|
3368 |
+
hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8
|
3369 |
+
EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5
|
3370 |
+
jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY
|
3371 |
+
iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
|
3372 |
+
ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI
|
3373 |
+
WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0
|
3374 |
+
JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx
|
3375 |
+
K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+
|
3376 |
+
Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC
|
3377 |
+
4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo
|
3378 |
+
2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz
|
3379 |
+
lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem
|
3380 |
+
OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9
|
3381 |
+
vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
|
3382 |
+
-----END CERTIFICATE-----
|
3383 |
+
|
3384 |
+
Trustis FPS Root CA
|
3385 |
+
===================
|
3386 |
+
-----BEGIN CERTIFICATE-----
|
3387 |
+
MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG
|
3388 |
+
EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290
|
3389 |
+
IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV
|
3390 |
+
BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ
|
3391 |
+
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ
|
3392 |
+
RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk
|
3393 |
+
H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa
|
3394 |
+
cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt
|
3395 |
+
o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA
|
3396 |
+
AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd
|
3397 |
+
BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c
|
3398 |
+
GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC
|
3399 |
+
yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P
|
3400 |
+
8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV
|
3401 |
+
l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl
|
3402 |
+
iB6XzCGcKQENZetX2fNXlrtIzYE=
|
3403 |
+
-----END CERTIFICATE-----
|
3404 |
+
|
3405 |
+
StartCom Certification Authority
|
3406 |
+
================================
|
3407 |
+
-----BEGIN CERTIFICATE-----
|
3408 |
+
MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
|
3409 |
+
U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
|
3410 |
+
ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
|
3411 |
+
NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
|
3412 |
+
LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
|
3413 |
+
U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
|
3414 |
+
ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
|
3415 |
+
o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
|
3416 |
+
Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
|
3417 |
+
eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
|
3418 |
+
2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
|
3419 |
+
6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
|
3420 |
+
osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
|
3421 |
+
untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
|
3422 |
+
UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
|
3423 |
+
37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
|
3424 |
+
VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ
|
3425 |
+
Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0
|
3426 |
+
dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu
|
3427 |
+
c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv
|
3428 |
+
bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0
|
3429 |
+
aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0
|
3430 |
+
aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
|
3431 |
+
L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG
|
3432 |
+
cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5
|
3433 |
+
fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm
|
3434 |
+
N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN
|
3435 |
+
Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T
|
3436 |
+
tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX
|
3437 |
+
e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA
|
3438 |
+
2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs
|
3439 |
+
HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
|
3440 |
+
JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib
|
3441 |
+
D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8=
|
3442 |
+
-----END CERTIFICATE-----
|
3443 |
+
|
3444 |
+
StartCom Certification Authority G2
|
3445 |
+
===================================
|
3446 |
+
-----BEGIN CERTIFICATE-----
|
3447 |
+
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
|
3471 |
+
obp573PYtlNXLfbQ4ddI
|
3472 |
+
-----END CERTIFICATE-----
|
3473 |
+
|
3474 |
+
Buypass Class 2 Root CA
|
3475 |
+
=======================
|
3476 |
+
-----BEGIN CERTIFICATE-----
|
3477 |
+
MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
|
3478 |
+
QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X
|
3479 |
+
DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
|
3480 |
+
eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw
|
3481 |
+
DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1
|
3482 |
+
g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn
|
3483 |
+
9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b
|
3484 |
+
/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU
|
3485 |
+
CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff
|
3486 |
+
awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI
|
3487 |
+
zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn
|
3488 |
+
Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX
|
3489 |
+
Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs
|
3490 |
+
M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
|
3491 |
+
VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
|
3492 |
+
AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s
|
3493 |
+
A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI
|
3494 |
+
osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S
|
3495 |
+
aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd
|
3496 |
+
DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD
|
3497 |
+
LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0
|
3498 |
+
oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC
|
3499 |
+
wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS
|
3500 |
+
CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN
|
3501 |
+
rJgWVqA=
|
3502 |
+
-----END CERTIFICATE-----
|
3503 |
+
|
3504 |
+
Buypass Class 3 Root CA
|
3505 |
+
=======================
|
3506 |
+
-----BEGIN CERTIFICATE-----
|
3507 |
+
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
|
3531 |
+
Cp/HuZc=
|
3532 |
+
-----END CERTIFICATE-----
|
3533 |
+
|
3534 |
+
T-TeleSec GlobalRoot Class 3
|
3535 |
+
============================
|
3536 |
+
-----BEGIN CERTIFICATE-----
|
3537 |
+
MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
|
3538 |
+
IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
|
3539 |
+
cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx
|
3540 |
+
MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
|
3541 |
+
dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
|
3542 |
+
ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3
|
3543 |
+
DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK
|
3544 |
+
9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU
|
3545 |
+
NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF
|
3546 |
+
iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W
|
3547 |
+
0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA
|
3548 |
+
MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr
|
3549 |
+
AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb
|
3550 |
+
fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT
|
3551 |
+
ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h
|
3552 |
+
P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
|
3553 |
+
e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw==
|
3554 |
+
-----END CERTIFICATE-----
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Transport/fsockopen.php
ADDED
@@ -0,0 +1,394 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* fsockopen HTTP transport
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
* @subpackage Transport
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* fsockopen HTTP transport
|
11 |
+
*
|
12 |
+
* @package Requests
|
13 |
+
* @subpackage Transport
|
14 |
+
*/
|
15 |
+
class Requests_Transport_fsockopen implements Requests_Transport {
|
16 |
+
/**
|
17 |
+
* Raw HTTP data
|
18 |
+
*
|
19 |
+
* @var string
|
20 |
+
*/
|
21 |
+
public $headers = '';
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Stream metadata
|
25 |
+
*
|
26 |
+
* @var array Associative array of properties, see {@see http://php.net/stream_get_meta_data}
|
27 |
+
*/
|
28 |
+
public $info;
|
29 |
+
|
30 |
+
protected $connect_error = '';
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Perform a request
|
34 |
+
*
|
35 |
+
* @throws Requests_Exception On failure to connect to socket (`fsockopenerror`)
|
36 |
+
* @throws Requests_Exception On socket timeout (`timeout`)
|
37 |
+
*
|
38 |
+
* @param string $url URL to request
|
39 |
+
* @param array $headers Associative array of request headers
|
40 |
+
* @param string|array $data Data to send either as the POST body, or as parameters in the URL for a GET/HEAD
|
41 |
+
* @param array $options Request options, see {@see Requests::response()} for documentation
|
42 |
+
* @return string Raw HTTP result
|
43 |
+
*/
|
44 |
+
public function request($url, $headers = array(), $data = array(), $options = array()) {
|
45 |
+
$options['hooks']->dispatch('fsockopen.before_request');
|
46 |
+
|
47 |
+
$url_parts = parse_url($url);
|
48 |
+
$host = $url_parts['host'];
|
49 |
+
$context = stream_context_create();
|
50 |
+
$verifyname = false;
|
51 |
+
|
52 |
+
// HTTPS support
|
53 |
+
if (isset($url_parts['scheme']) && strtolower($url_parts['scheme']) === 'https') {
|
54 |
+
$remote_socket = 'ssl://' . $host;
|
55 |
+
$url_parts['port'] = 443;
|
56 |
+
|
57 |
+
$context_options = array(
|
58 |
+
'verify_peer' => true,
|
59 |
+
// 'CN_match' => $host,
|
60 |
+
'capture_peer_cert' => true
|
61 |
+
);
|
62 |
+
$verifyname = true;
|
63 |
+
|
64 |
+
// SNI, if enabled (OpenSSL >=0.9.8j)
|
65 |
+
if (defined('OPENSSL_TLSEXT_SERVER_NAME') && OPENSSL_TLSEXT_SERVER_NAME) {
|
66 |
+
$context_options['SNI_enabled'] = true;
|
67 |
+
if (isset($options['verifyname']) && $options['verifyname'] === false) {
|
68 |
+
$context_options['SNI_enabled'] = false;
|
69 |
+
}
|
70 |
+
}
|
71 |
+
|
72 |
+
if (isset($options['verify'])) {
|
73 |
+
if ($options['verify'] === false) {
|
74 |
+
$context_options['verify_peer'] = false;
|
75 |
+
} elseif (is_string($options['verify'])) {
|
76 |
+
$context_options['cafile'] = $options['verify'];
|
77 |
+
}
|
78 |
+
}
|
79 |
+
|
80 |
+
if (isset($options['verifyname']) && $options['verifyname'] === false) {
|
81 |
+
$verifyname = false;
|
82 |
+
}
|
83 |
+
|
84 |
+
stream_context_set_option($context, array('ssl' => $context_options));
|
85 |
+
}
|
86 |
+
else {
|
87 |
+
$remote_socket = 'tcp://' . $host;
|
88 |
+
}
|
89 |
+
|
90 |
+
$proxy = isset( $options['proxy'] );
|
91 |
+
$proxy_auth = $proxy && isset( $options['proxy_username'] ) && isset( $options['proxy_password'] );
|
92 |
+
|
93 |
+
if (!isset($url_parts['port'])) {
|
94 |
+
$url_parts['port'] = 80;
|
95 |
+
}
|
96 |
+
$remote_socket .= ':' . $url_parts['port'];
|
97 |
+
|
98 |
+
set_error_handler(array($this, 'connect_error_handler'), E_WARNING | E_NOTICE);
|
99 |
+
|
100 |
+
$options['hooks']->dispatch('fsockopen.remote_socket', array(&$remote_socket));
|
101 |
+
|
102 |
+
$fp = stream_socket_client($remote_socket, $errno, $errstr, $options['timeout'], STREAM_CLIENT_CONNECT, $context);
|
103 |
+
|
104 |
+
restore_error_handler();
|
105 |
+
|
106 |
+
if ($verifyname) {
|
107 |
+
if (!$this->verify_certificate_from_context($host, $context)) {
|
108 |
+
throw new Requests_Exception('SSL certificate did not match the requested domain name', 'ssl.no_match');
|
109 |
+
}
|
110 |
+
}
|
111 |
+
|
112 |
+
if (!$fp) {
|
113 |
+
if ($errno === 0) {
|
114 |
+
// Connection issue
|
115 |
+
throw new Requests_Exception(rtrim($this->connect_error), 'fsockopen.connect_error');
|
116 |
+
}
|
117 |
+
else {
|
118 |
+
throw new Requests_Exception($errstr, 'fsockopenerror');
|
119 |
+
return;
|
120 |
+
}
|
121 |
+
}
|
122 |
+
|
123 |
+
$request_body = '';
|
124 |
+
$out = '';
|
125 |
+
switch ($options['type']) {
|
126 |
+
case Requests::POST:
|
127 |
+
case Requests::PUT:
|
128 |
+
case Requests::PATCH:
|
129 |
+
if (isset($url_parts['path'])) {
|
130 |
+
$path = $url_parts['path'];
|
131 |
+
if (isset($url_parts['query'])) {
|
132 |
+
$path .= '?' . $url_parts['query'];
|
133 |
+
}
|
134 |
+
}
|
135 |
+
else {
|
136 |
+
$path = '/';
|
137 |
+
}
|
138 |
+
|
139 |
+
$options['hooks']->dispatch( 'fsockopen.remote_host_path', array( &$path, $url ) );
|
140 |
+
$out = $options['type'] . " $path HTTP/1.0\r\n";
|
141 |
+
|
142 |
+
if (is_array($data)) {
|
143 |
+
$request_body = http_build_query($data, null, '&');
|
144 |
+
}
|
145 |
+
else {
|
146 |
+
$request_body = $data;
|
147 |
+
}
|
148 |
+
if (empty($headers['Content-Length'])) {
|
149 |
+
$headers['Content-Length'] = strlen($request_body);
|
150 |
+
}
|
151 |
+
if (empty($headers['Content-Type'])) {
|
152 |
+
$headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
|
153 |
+
}
|
154 |
+
break;
|
155 |
+
case Requests::HEAD:
|
156 |
+
case Requests::GET:
|
157 |
+
case Requests::DELETE:
|
158 |
+
$path = self::format_get($url_parts, $data);
|
159 |
+
$options['hooks']->dispatch('fsockopen.remote_host_path', array(&$path, $url));
|
160 |
+
$out = $options['type'] . " $path HTTP/1.0\r\n";
|
161 |
+
break;
|
162 |
+
}
|
163 |
+
$out .= "Host: {$url_parts['host']}";
|
164 |
+
|
165 |
+
if ($url_parts['port'] !== 80) {
|
166 |
+
$out .= ":{$url_parts['port']}";
|
167 |
+
}
|
168 |
+
$out .= "\r\n";
|
169 |
+
|
170 |
+
$out .= "User-Agent: {$options['useragent']}\r\n";
|
171 |
+
$accept_encoding = $this->accept_encoding();
|
172 |
+
if (!empty($accept_encoding)) {
|
173 |
+
$out .= "Accept-Encoding: $accept_encoding\r\n";
|
174 |
+
}
|
175 |
+
|
176 |
+
$headers = Requests::flatten($headers);
|
177 |
+
|
178 |
+
if (!empty($headers)) {
|
179 |
+
$out .= implode($headers, "\r\n") . "\r\n";
|
180 |
+
}
|
181 |
+
|
182 |
+
$options['hooks']->dispatch('fsockopen.after_headers', array(&$out));
|
183 |
+
|
184 |
+
if (substr($out, -2) !== "\r\n") {
|
185 |
+
$out .= "\r\n";
|
186 |
+
}
|
187 |
+
|
188 |
+
$out .= "Connection: Close\r\n\r\n" . $request_body;
|
189 |
+
|
190 |
+
$options['hooks']->dispatch('fsockopen.before_send', array(&$out));
|
191 |
+
|
192 |
+
fwrite($fp, $out);
|
193 |
+
$options['hooks']->dispatch('fsockopen.after_send', array(&$fake_headers));
|
194 |
+
|
195 |
+
if (!$options['blocking']) {
|
196 |
+
fclose($fp);
|
197 |
+
$fake_headers = '';
|
198 |
+
$options['hooks']->dispatch('fsockopen.after_request', array(&$fake_headers));
|
199 |
+
return '';
|
200 |
+
}
|
201 |
+
stream_set_timeout($fp, $options['timeout']);
|
202 |
+
|
203 |
+
$this->info = stream_get_meta_data($fp);
|
204 |
+
|
205 |
+
$this->headers = '';
|
206 |
+
$this->info = stream_get_meta_data($fp);
|
207 |
+
if (!$options['filename']) {
|
208 |
+
while (!feof($fp)) {
|
209 |
+
$this->info = stream_get_meta_data($fp);
|
210 |
+
if ($this->info['timed_out']) {
|
211 |
+
throw new Requests_Exception('fsocket timed out', 'timeout');
|
212 |
+
}
|
213 |
+
|
214 |
+
$this->headers .= fread($fp, 1160);
|
215 |
+
}
|
216 |
+
}
|
217 |
+
else {
|
218 |
+
$download = fopen($options['filename'], 'wb');
|
219 |
+
$doingbody = false;
|
220 |
+
$response = '';
|
221 |
+
while (!feof($fp)) {
|
222 |
+
$this->info = stream_get_meta_data($fp);
|
223 |
+
if ($this->info['timed_out']) {
|
224 |
+
throw new Requests_Exception('fsocket timed out', 'timeout');
|
225 |
+
}
|
226 |
+
|
227 |
+
$block = fread($fp, 1160);
|
228 |
+
if ($doingbody) {
|
229 |
+
fwrite($download, $block);
|
230 |
+
}
|
231 |
+
else {
|
232 |
+
$response .= $block;
|
233 |
+
if (strpos($response, "\r\n\r\n")) {
|
234 |
+
list($this->headers, $block) = explode("\r\n\r\n", $response, 2);
|
235 |
+
$doingbody = true;
|
236 |
+
fwrite($download, $block);
|
237 |
+
}
|
238 |
+
}
|
239 |
+
}
|
240 |
+
fclose($download);
|
241 |
+
}
|
242 |
+
fclose($fp);
|
243 |
+
|
244 |
+
$options['hooks']->dispatch('fsockopen.after_request', array(&$this->headers));
|
245 |
+
return $this->headers;
|
246 |
+
}
|
247 |
+
|
248 |
+
/**
|
249 |
+
* Send multiple requests simultaneously
|
250 |
+
*
|
251 |
+
* @param array $requests Request data (array of 'url', 'headers', 'data', 'options') as per {@see Requests_Transport::request}
|
252 |
+
* @param array $options Global options, see {@see Requests::response()} for documentation
|
253 |
+
* @return array Array of Requests_Response objects (may contain Requests_Exception or string responses as well)
|
254 |
+
*/
|
255 |
+
public function request_multiple($requests, $options) {
|
256 |
+
$responses = array();
|
257 |
+
$class = get_class($this);
|
258 |
+
foreach ($requests as $id => $request) {
|
259 |
+
try {
|
260 |
+
$handler = new $class();
|
261 |
+
$responses[$id] = $handler->request($request['url'], $request['headers'], $request['data'], $request['options']);
|
262 |
+
|
263 |
+
$request['options']['hooks']->dispatch('transport.internal.parse_response', array(&$responses[$id], $request));
|
264 |
+
}
|
265 |
+
catch (Requests_Exception $e) {
|
266 |
+
$responses[$id] = $e;
|
267 |
+
}
|
268 |
+
|
269 |
+
if (!is_string($responses[$id])) {
|
270 |
+
$request['options']['hooks']->dispatch('multiple.request.complete', array(&$responses[$id], $id));
|
271 |
+
}
|
272 |
+
}
|
273 |
+
|
274 |
+
return $responses;
|
275 |
+
}
|
276 |
+
|
277 |
+
/**
|
278 |
+
* Retrieve the encodings we can accept
|
279 |
+
*
|
280 |
+
* @return string Accept-Encoding header value
|
281 |
+
*/
|
282 |
+
protected static function accept_encoding() {
|
283 |
+
$type = array();
|
284 |
+
if (function_exists('gzinflate')) {
|
285 |
+
$type[] = 'deflate;q=1.0';
|
286 |
+
}
|
287 |
+
|
288 |
+
if (function_exists('gzuncompress')) {
|
289 |
+
$type[] = 'compress;q=0.5';
|
290 |
+
}
|
291 |
+
|
292 |
+
$type[] = 'gzip;q=0.5';
|
293 |
+
|
294 |
+
return implode(', ', $type);
|
295 |
+
}
|
296 |
+
|
297 |
+
/**
|
298 |
+
* Format a URL given GET data
|
299 |
+
*
|
300 |
+
* @param array $url_parts
|
301 |
+
* @param array|object $data Data to build query using, see {@see http://php.net/http_build_query}
|
302 |
+
* @return string URL with data
|
303 |
+
*/
|
304 |
+
protected static function format_get($url_parts, $data) {
|
305 |
+
if (!empty($data)) {
|
306 |
+
if (empty($url_parts['query']))
|
307 |
+
$url_parts['query'] = '';
|
308 |
+
|
309 |
+
$url_parts['query'] .= '&' . http_build_query($data, null, '&');
|
310 |
+
$url_parts['query'] = trim($url_parts['query'], '&');
|
311 |
+
}
|
312 |
+
if (isset($url_parts['path'])) {
|
313 |
+
if (isset($url_parts['query'])) {
|
314 |
+
$get = $url_parts['path'] . '?' . $url_parts['query'];
|
315 |
+
}
|
316 |
+
else {
|
317 |
+
$get = $url_parts['path'];
|
318 |
+
}
|
319 |
+
}
|
320 |
+
else {
|
321 |
+
$get = '/';
|
322 |
+
}
|
323 |
+
return $get;
|
324 |
+
}
|
325 |
+
|
326 |
+
/**
|
327 |
+
* Error handler for stream_socket_client()
|
328 |
+
*
|
329 |
+
* @param int $errno Error number (e.g. E_WARNING)
|
330 |
+
* @param string $errstr Error message
|
331 |
+
*/
|
332 |
+
public function connect_error_handler($errno, $errstr) {
|
333 |
+
// Double-check we can handle it
|
334 |
+
if (($errno & E_WARNING) === 0 && ($errno & E_NOTICE) === 0) {
|
335 |
+
// Return false to indicate the default error handler should engage
|
336 |
+
return false;
|
337 |
+
}
|
338 |
+
|
339 |
+
$this->connect_error .= $errstr . "\n";
|
340 |
+
return true;
|
341 |
+
}
|
342 |
+
|
343 |
+
/**
|
344 |
+
* Verify the certificate against common name and subject alternative names
|
345 |
+
*
|
346 |
+
* Unfortunately, PHP doesn't check the certificate against the alternative
|
347 |
+
* names, leading things like 'https://www.github.com/' to be invalid.
|
348 |
+
* Instead
|
349 |
+
*
|
350 |
+
* @see http://tools.ietf.org/html/rfc2818#section-3.1 RFC2818, Section 3.1
|
351 |
+
*
|
352 |
+
* @throws Requests_Exception On failure to connect via TLS (`fsockopen.ssl.connect_error`)
|
353 |
+
* @throws Requests_Exception On not obtaining a match for the host (`fsockopen.ssl.no_match`)
|
354 |
+
* @param string $host Host name to verify against
|
355 |
+
* @param resource $context Stream context
|
356 |
+
* @return bool
|
357 |
+
*/
|
358 |
+
public function verify_certificate_from_context($host, $context) {
|
359 |
+
$meta = stream_context_get_options($context);
|
360 |
+
|
361 |
+
// If we don't have SSL options, then we couldn't make the connection at
|
362 |
+
// all
|
363 |
+
if (empty($meta) || empty($meta['ssl']) || empty($meta['ssl']['peer_certificate'])) {
|
364 |
+
throw new Requests_Exception(rtrim($this->connect_error), 'ssl.connect_error');
|
365 |
+
}
|
366 |
+
|
367 |
+
$cert = openssl_x509_parse($meta['ssl']['peer_certificate']);
|
368 |
+
|
369 |
+
return Requests_SSL::verify_certificate($host, $cert);
|
370 |
+
}
|
371 |
+
|
372 |
+
/**
|
373 |
+
* Whether this transport is valid
|
374 |
+
*
|
375 |
+
* @codeCoverageIgnore
|
376 |
+
* @return boolean True if the transport is valid, false otherwise.
|
377 |
+
*/
|
378 |
+
public static function test($capabilities = array()) {
|
379 |
+
if (!function_exists('fsockopen'))
|
380 |
+
return false;
|
381 |
+
|
382 |
+
// If needed, check that streams support SSL
|
383 |
+
if (isset( $capabilities['ssl'] ) && $capabilities['ssl']) {
|
384 |
+
if (!extension_loaded('openssl') || !function_exists('openssl_x509_parse'))
|
385 |
+
return false;
|
386 |
+
|
387 |
+
// Currently broken, thanks to https://github.com/facebook/hhvm/issues/2156
|
388 |
+
if (defined('HHVM_VERSION'))
|
389 |
+
return false;
|
390 |
+
}
|
391 |
+
|
392 |
+
return true;
|
393 |
+
}
|
394 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Utility/CaseInsensitiveDictionary.php
ADDED
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Case-insensitive dictionary, suitable for HTTP headers
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
* @subpackage Utilities
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Case-insensitive dictionary, suitable for HTTP headers
|
11 |
+
*
|
12 |
+
* @package Requests
|
13 |
+
* @subpackage Utilities
|
14 |
+
*/
|
15 |
+
class Requests_Utility_CaseInsensitiveDictionary implements ArrayAccess, IteratorAggregate {
|
16 |
+
/**
|
17 |
+
* Actual item data
|
18 |
+
*
|
19 |
+
* @var array
|
20 |
+
*/
|
21 |
+
protected $data = array();
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Check if the given item exists
|
25 |
+
*
|
26 |
+
* @param string $key Item key
|
27 |
+
* @return boolean Does the item exist?
|
28 |
+
*/
|
29 |
+
public function offsetExists($key) {
|
30 |
+
$key = strtolower($key);
|
31 |
+
return isset($this->data[$key]);
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Get the value for the item
|
36 |
+
*
|
37 |
+
* @param string $key Item key
|
38 |
+
* @return string Item value
|
39 |
+
*/
|
40 |
+
public function offsetGet($key) {
|
41 |
+
$key = strtolower($key);
|
42 |
+
if (!isset($this->data[$key]))
|
43 |
+
return null;
|
44 |
+
|
45 |
+
return $this->data[$key];
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Set the given item
|
50 |
+
*
|
51 |
+
* @throws Requests_Exception On attempting to use dictionary as list (`invalidset`)
|
52 |
+
*
|
53 |
+
* @param string $key Item name
|
54 |
+
* @param string $value Item value
|
55 |
+
*/
|
56 |
+
public function offsetSet($key, $value) {
|
57 |
+
if ($key === null) {
|
58 |
+
throw new Requests_Exception('Object is a dictionary, not a list', 'invalidset');
|
59 |
+
}
|
60 |
+
|
61 |
+
$key = strtolower($key);
|
62 |
+
$this->data[$key] = $value;
|
63 |
+
}
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Unset the given header
|
67 |
+
*
|
68 |
+
* @param string $key
|
69 |
+
*/
|
70 |
+
public function offsetUnset($key) {
|
71 |
+
unset($this->data[strtolower($key)]);
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Get an iterator for the data
|
76 |
+
*
|
77 |
+
* @return ArrayIterator
|
78 |
+
*/
|
79 |
+
public function getIterator() {
|
80 |
+
return new ArrayIterator($this->data);
|
81 |
+
}
|
82 |
+
|
83 |
+
/**
|
84 |
+
* Get the headers as an array
|
85 |
+
*
|
86 |
+
* @return array Header data
|
87 |
+
*/
|
88 |
+
public function getAll() {
|
89 |
+
return $this->data;
|
90 |
+
}
|
91 |
+
}
|
razorpay-sdk/libs/Requests-1.6.1/library/Requests/Utility/FilteredIterator.php
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Iterator for arrays requiring filtered values
|
4 |
+
*
|
5 |
+
* @package Requests
|
6 |
+
* @subpackage Utilities
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Iterator for arrays requiring filtered values
|
11 |
+
*
|
12 |
+
* @package Requests
|
13 |
+
* @subpackage Utilities
|
14 |
+
*/
|
15 |
+
class Requests_Utility_FilteredIterator extends ArrayIterator {
|
16 |
+
/**
|
17 |
+
* Create a new iterator
|
18 |
+
*
|
19 |
+
* @param array $data
|
20 |
+
* @param callable $callback Callback to be called on each value
|
21 |
+
*/
|
22 |
+
public function __construct($data, $callback) {
|
23 |
+
parent::__construct($data);
|
24 |
+
|
25 |
+
$this->callback = $callback;
|
26 |
+
}
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Get the current item's value after filtering
|
30 |
+
*
|
31 |
+
* @return string
|
32 |
+
*/
|
33 |
+
public function current() {
|
34 |
+
$value = parent::current();
|
35 |
+
$value = call_user_func($this->callback, $value);
|
36 |
+
return $value;
|
37 |
+
}
|
38 |
+
}
|
razorpay-sdk/src/Api.php
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Razorpay\Api;
|
4 |
+
|
5 |
+
class Api
|
6 |
+
{
|
7 |
+
public static $baseUrl = "https://api.razorpay.com/v1/";
|
8 |
+
|
9 |
+
public static $key = null;
|
10 |
+
|
11 |
+
public static $secret = null;
|
12 |
+
|
13 |
+
const VERSION = '1.2.8';
|
14 |
+
|
15 |
+
/**
|
16 |
+
* @param string $key
|
17 |
+
* @param string $secret
|
18 |
+
*/
|
19 |
+
function __construct($key, $secret)
|
20 |
+
{
|
21 |
+
self::$key = $key;
|
22 |
+
self::$secret = $secret;
|
23 |
+
|
24 |
+
// Add the version to all HTTP Requests
|
25 |
+
Request::addHeader('User-Agent', "Razorpay-PHP/".self::VERSION);
|
26 |
+
}
|
27 |
+
|
28 |
+
/*
|
29 |
+
* Set Headers
|
30 |
+
*
|
31 |
+
*/
|
32 |
+
function setHeader($header, $value)
|
33 |
+
{
|
34 |
+
Request::addHeader($header, $value);
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* @param string $name
|
39 |
+
* @return mixed
|
40 |
+
*/
|
41 |
+
function __get($name)
|
42 |
+
{
|
43 |
+
$className = __NAMESPACE__.'\\'.ucwords($name);
|
44 |
+
|
45 |
+
$entity = new $className();
|
46 |
+
|
47 |
+
return $entity;
|
48 |
+
}
|
49 |
+
}
|
razorpay-sdk/src/ArrayableInterface.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Razorpay\Api;
|
4 |
+
|
5 |
+
interface ArrayableInterface
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Get the instance as an array.
|
9 |
+
*
|
10 |
+
* @return array
|
11 |
+
*/
|
12 |
+
public function toArray();
|
13 |
+
}
|
razorpay-sdk/src/Collection.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Razorpay\Api;
|
4 |
+
|
5 |
+
use Countable;
|
6 |
+
|
7 |
+
class Collection extends Entity implements Countable
|
8 |
+
{
|
9 |
+
public function count()
|
10 |
+
{
|
11 |
+
$count = 0;
|
12 |
+
|
13 |
+
if (isset($this->attributes['count']))
|
14 |
+
{
|
15 |
+
return $this->attributes['count'];
|
16 |
+
}
|
17 |
+
|
18 |
+
return $count;
|
19 |
+
}
|
20 |
+
}
|
razorpay-sdk/src/Customer.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Razorpay\Api;
|
4 |
+
|
5 |
+
class Customer extends Entity
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* @param $id Customer id description
|
9 |
+
*/
|
10 |
+
public function fetch($id)
|
11 |
+
{
|
12 |
+
return parent::fetch($id);
|
13 |
+
}
|
14 |
+
|
15 |
+
public function create($attributes = array())
|
16 |
+
{
|
17 |
+
return parent::create($attributes);
|
18 |
+
}
|
19 |
+
|
20 |
+
public function edit($attributes = null)
|
21 |
+
{
|
22 |
+
$entityUrl = $this->getEntityUrl().$this->id;
|
23 |
+
|
24 |
+
return $this->request('PUT', $entityUrl, $attributes);
|
25 |
+
}
|
26 |
+
|
27 |
+
public function tokens()
|
28 |
+
{
|
29 |
+
$token = new Token();
|
30 |
+
|
31 |
+
$token['customer_id'] = $this->id;
|
32 |
+
|
33 |
+
return $token;
|
34 |
+
}
|
35 |
+
}
|
razorpay-sdk/src/Entity.php
ADDED
@@ -0,0 +1,192 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Razorpay\Api;
|
4 |
+
|
5 |
+
use Razorpay\Api\Errors;
|
6 |
+
|
7 |
+
class Entity extends Resource implements ArrayableInterface
|
8 |
+
{
|
9 |
+
protected $attributes = array();
|
10 |
+
|
11 |
+
protected function create($attributes = null)
|
12 |
+
{
|
13 |
+
$entityUrl = $this->getEntityUrl();
|
14 |
+
|
15 |
+
return $this->request('POST', $entityUrl, $attributes);
|
16 |
+
}
|
17 |
+
|
18 |
+
protected function fetch($id)
|
19 |
+
{
|
20 |
+
$entityUrl = $this->getEntityUrl();
|
21 |
+
|
22 |
+
if ($id === null)
|
23 |
+
{
|
24 |
+
$path = explode('\\', get_class($this));
|
25 |
+
$class = strtolower(array_pop($path));
|
26 |
+
|
27 |
+
$message = 'The ' . $class . ' id provided is null';
|
28 |
+
|
29 |
+
$code = Errors\ErrorCode::BAD_REQUEST_ERROR;
|
30 |
+
|
31 |
+
throw new Errors\BadRequestError($message, $code, 500);
|
32 |
+
}
|
33 |
+
|
34 |
+
$relativeUrl = $entityUrl . $id;
|
35 |
+
|
36 |
+
return $this->request('GET', $relativeUrl);
|
37 |
+
}
|
38 |
+
|
39 |
+
protected function all($options = array())
|
40 |
+
{
|
41 |
+
$entityUrl = $this->getEntityUrl();
|
42 |
+
|
43 |
+
return $this->request('GET', $entityUrl, $options);
|
44 |
+
}
|
45 |
+
|
46 |
+
protected function getEntityUrl()
|
47 |
+
{
|
48 |
+
$fullClassName = get_class($this);
|
49 |
+
$pos = strrpos($fullClassName, '\\');
|
50 |
+
$className = substr($fullClassName, $pos + 1);
|
51 |
+
$className = lcfirst($className);
|
52 |
+
return $className.'s/';
|
53 |
+
}
|
54 |
+
|
55 |
+
protected function request($method, $relativeUrl, $data = null)
|
56 |
+
{
|
57 |
+
$request = new Request();
|
58 |
+
|
59 |
+
$response = $request->request($method, $relativeUrl, $data);
|
60 |
+
|
61 |
+
if ((isset($response['entity'])) and
|
62 |
+
($response['entity'] == $this->getEntity()))
|
63 |
+
{
|
64 |
+
$this->fill($response);
|
65 |
+
|
66 |
+
return $this;
|
67 |
+
}
|
68 |
+
else
|
69 |
+
{
|
70 |
+
return static::buildEntity($response);
|
71 |
+
}
|
72 |
+
}
|
73 |
+
|
74 |
+
protected static function buildEntity($data)
|
75 |
+
{
|
76 |
+
$entities = static::getDefinedEntitiesArray();
|
77 |
+
|
78 |
+
if (isset($data['entity']))
|
79 |
+
{
|
80 |
+
if (in_array($data['entity'], $entities))
|
81 |
+
{
|
82 |
+
$class = static::getEntityClass($data['entity']);
|
83 |
+
$entity = new $class;
|
84 |
+
}
|
85 |
+
else
|
86 |
+
{
|
87 |
+
$entity = new static;
|
88 |
+
}
|
89 |
+
}
|
90 |
+
else
|
91 |
+
{
|
92 |
+
$entity = new static;
|
93 |
+
}
|
94 |
+
|
95 |
+
$entity->fill($data);
|
96 |
+
|
97 |
+
return $entity;
|
98 |
+
}
|
99 |
+
|
100 |
+
protected static function getDefinedEntitiesArray()
|
101 |
+
{
|
102 |
+
return array(
|
103 |
+
'collection',
|
104 |
+
'payment',
|
105 |
+
'refund',
|
106 |
+
'order',
|
107 |
+
'customer',
|
108 |
+
'token');
|
109 |
+
}
|
110 |
+
|
111 |
+
protected static function getEntityClass($name)
|
112 |
+
{
|
113 |
+
return __NAMESPACE__.'\\'.ucfirst($name);
|
114 |
+
}
|
115 |
+
|
116 |
+
protected function getEntity()
|
117 |
+
{
|
118 |
+
$class = get_class($this);
|
119 |
+
$pos = strrpos($class, '\\');
|
120 |
+
$entity = strtolower(substr($class, $pos));
|
121 |
+
|
122 |
+
return $entity;
|
123 |
+
}
|
124 |
+
|
125 |
+
public function fill($data)
|
126 |
+
{
|
127 |
+
$attributes = array();
|
128 |
+
|
129 |
+
foreach ($data as $key => $value)
|
130 |
+
{
|
131 |
+
if (is_array($value))
|
132 |
+
{
|
133 |
+
if (static::isAssocArray($value) === false)
|
134 |
+
{
|
135 |
+
$collection = array();
|
136 |
+
|
137 |
+
foreach ($value as $v)
|
138 |
+
{
|
139 |
+
if (is_array($v))
|
140 |
+
{
|
141 |
+
$entity = static::buildEntity($v);
|
142 |
+
array_push($collection, $entity);
|
143 |
+
}
|
144 |
+
else
|
145 |
+
{
|
146 |
+
array_push($collection, $v);
|
147 |
+
}
|
148 |
+
}
|
149 |
+
|
150 |
+
$value = $collection;
|
151 |
+
}
|
152 |
+
else
|
153 |
+
{
|
154 |
+
$value = static::buildEntity($value);
|
155 |
+
}
|
156 |
+
}
|
157 |
+
|
158 |
+
$attributes[$key] = $value;
|
159 |
+
}
|
160 |
+
|
161 |
+
$this->attributes = $attributes;
|
162 |
+
}
|
163 |
+
|
164 |
+
public static function isAssocArray($arr)
|
165 |
+
{
|
166 |
+
return array_keys($arr) !== range(0, count($arr) - 1);
|
167 |
+
}
|
168 |
+
|
169 |
+
public function toArray()
|
170 |
+
{
|
171 |
+
return $this->convertToArray($this->attributes);
|
172 |
+
}
|
173 |
+
|
174 |
+
protected function convertToArray($attributes)
|
175 |
+
{
|
176 |
+
$array = $attributes;
|
177 |
+
|
178 |
+
foreach ($attributes as $key => $value)
|
179 |
+
{
|
180 |
+
if (is_object($value))
|
181 |
+
{
|
182 |
+
$array[$key] = $value->toArray();
|
183 |
+
}
|
184 |
+
else if (is_array($value) and self::isAssocArray($value) == false)
|
185 |
+
{
|
186 |
+
$array[$key] = $this->convertToArray($value);
|
187 |
+
}
|
188 |
+
}
|
189 |
+
|
190 |
+
return $array;
|
191 |
+
}
|
192 |
+
}
|
razorpay-sdk/src/Errors/BadRequestError.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Razorpay\Api\Errors;
|
4 |
+
|
5 |
+
class BadRequestError extends Error
|
6 |
+
{
|
7 |
+
protected $field = null;
|
8 |
+
|
9 |
+
public function __construct($message, $code, $httpStatusCode, $field = null)
|
10 |
+
{
|
11 |
+
parent::__construct($message, $code, $httpStatusCode);
|
12 |
+
|
13 |
+
$this->field = $field;
|
14 |
+
}
|
15 |
+
|
16 |
+
public function getField()
|
17 |
+
{
|
18 |
+
return $this->field;
|
19 |
+
}
|
20 |
+
}
|
razorpay-sdk/src/Errors/Error.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Razorpay\Api\Errors;
|
4 |
+
|
5 |
+
use Exception;
|
6 |
+
|
7 |
+
class Error extends Exception
|
8 |
+
{
|
9 |
+
protected $httpStatusCode;
|
10 |
+
|
11 |
+
public function __construct($message, $code, $httpStatusCode)
|
12 |
+
{
|
13 |
+
$this->code = $code;
|
14 |
+
|
15 |
+
$this->message = $message;
|
16 |
+
|
17 |
+
$this->httpStatusCode = $httpStatusCode;
|
18 |
+
}
|
19 |
+
|
20 |
+
public function getHttpStatusCode()
|
21 |
+
{
|
22 |
+
return $this->httpStatusCode;
|
23 |
+
}
|
24 |
+
}
|
razorpay-sdk/src/Errors/ErrorCode.php
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Razorpay\Api\Errors;
|
4 |
+
|
5 |
+
class ErrorCode
|
6 |
+
{
|
7 |
+
const BAD_REQUEST_ERROR = 'BAD_REQUEST_ERROR';
|
8 |
+
const SERVER_ERROR = 'SERVER_ERROR';
|
9 |
+
const GATEWAY_ERROR = 'GATEWAY_ERROR';
|
10 |
+
|
11 |
+
public static function exists($code)
|
12 |
+
{
|
13 |
+
return defined(get_class().'::'.$code);
|
14 |
+
}
|
15 |
+
}
|
razorpay-sdk/src/Errors/GatewayError.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Razorpay\Api\Errors;
|
4 |
+
|
5 |
+
class GatewayError extends Error
|
6 |
+
{
|
7 |
+
}
|
razorpay-sdk/src/Errors/ServerError.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Razorpay\Api\Errors;
|
4 |
+
|
5 |
+
class ServerError extends Error
|
6 |
+
{
|
7 |
+
}
|
razorpay-sdk/src/Order.php
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Razorpay\Api;
|
4 |
+
|
5 |
+
class Order extends Entity
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* @param $id Order id description
|
9 |
+
*/
|
10 |
+
|
11 |
+
public function create($attributes = array())
|
12 |
+
{
|
13 |
+
return parent::create($attributes);
|
14 |
+
}
|
15 |
+
|
16 |
+
public function fetch($id)
|
17 |
+
{
|
18 |
+
return parent::fetch($id);
|
19 |
+
}
|
20 |
+
|
21 |
+
public function all($options = array())
|
22 |
+
{
|
23 |
+
return parent::all($options);
|
24 |
+
}
|
25 |
+
|
26 |
+
public function payments()
|
27 |
+
{
|
28 |
+
$relativeUrl = $this->getEntityUrl().$this->id.'/payments';
|
29 |
+
|
30 |
+
return $this->request('GET', $relativeUrl);
|
31 |
+
}
|
32 |
+
}
|
razorpay-sdk/src/Payment.php
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Razorpay\Api;
|
4 |
+
|
5 |
+
class Payment extends Entity
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* @param $id Payment id
|
9 |
+
*/
|
10 |
+
public function fetch($id)
|
11 |
+
{
|
12 |
+
return parent::fetch($id);
|
13 |
+
}
|
14 |
+
|
15 |
+
public function all($options = array())
|
16 |
+
{
|
17 |
+
return parent::all($options);
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
* @param $id Payment id
|
22 |
+
*/
|
23 |
+
public function refund($attributes = array())
|
24 |
+
{
|
25 |
+
$relativeUrl = $this->getEntityUrl() . $this->id . '/refund';
|
26 |
+
|
27 |
+
return $this->request('POST', $relativeUrl, $attributes);
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* @param $id Payment id
|
32 |
+
*/
|
33 |
+
public function capture($attributes = array())
|
34 |
+
{
|
35 |
+
$relativeUrl = $this->getEntityUrl() . $this->id . '/capture';
|
36 |
+
|
37 |
+
return $this->request('POST', $relativeUrl, $attributes);
|
38 |
+
}
|
39 |
+
|
40 |
+
public function refunds()
|
41 |
+
{
|
42 |
+
$refund = new Refund();
|
43 |
+
|
44 |
+
$refund['payment_id'] = $this->id;
|
45 |
+
|
46 |
+
return $refund;
|
47 |
+
}
|
48 |
+
}
|
razorpay-sdk/src/Refund.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Razorpay\Api;
|
4 |
+
|
5 |
+
class Refund extends Entity
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* @param $id Payment id
|
9 |
+
*/
|
10 |
+
public function fetch($id)
|
11 |
+
{
|
12 |
+
$relativeUrl = 'payments/'.$this->payment_id.'/'.$this->getEntityUrl().$id;
|
13 |
+
|
14 |
+
return $this->request('GET', $relativeUrl);
|
15 |
+
}
|
16 |
+
|
17 |
+
public function all($options = array())
|
18 |
+
{
|
19 |
+
$relativeUrl = 'payments/'.$this->payment_id.'/'.$this->getEntityUrl();
|
20 |
+
|
21 |
+
return $this->request('GET', $relativeUrl, $options);
|
22 |
+
}
|
23 |
+
}
|
razorpay-sdk/src/Request.php
ADDED
@@ -0,0 +1,150 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Razorpay\Api;
|
4 |
+
|
5 |
+
use Exception;
|
6 |
+
use Razorpay\Api\Errors;
|
7 |
+
use Razorpay\Api\Errors\ErrorCode;
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Request class to communicate to the request libarary
|
11 |
+
*/
|
12 |
+
class Request
|
13 |
+
{
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Headers to be sent with every http request to the API
|
17 |
+
* @var array
|
18 |
+
*/
|
19 |
+
protected static $headers = array(
|
20 |
+
'Razorpay-API' => 1
|
21 |
+
);
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Fires a request to the API
|
25 |
+
* @param string $method HTTP Verb
|
26 |
+
* @param string $url Relative URL for the request
|
27 |
+
* @param array $data Data to be passed along the request
|
28 |
+
* @return array Response data in array format. Not meant
|
29 |
+
* to be used directly
|
30 |
+
*/
|
31 |
+
public function request($method, $url, $data = null)
|
32 |
+
{
|
33 |
+
$url = Api::$baseUrl . $url;
|
34 |
+
|
35 |
+
if ($data === null)
|
36 |
+
$data = array();
|
37 |
+
|
38 |
+
$options = array(
|
39 |
+
'auth'=> array(Api::$key, Api::$secret),
|
40 |
+
'timeout' => 60
|
41 |
+
);
|
42 |
+
|
43 |
+
$response = \Requests::request($url, self::$headers, $data, $method, $options);
|
44 |
+
|
45 |
+
$this->checkErrors($response);
|
46 |
+
|
47 |
+
return json_decode($response->body, true);
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Adds an additional header to all API requests
|
52 |
+
* @param string $key Header key
|
53 |
+
* @param string $value Header value
|
54 |
+
* @return null
|
55 |
+
*/
|
56 |
+
public static function addHeader($key, $value)
|
57 |
+
{
|
58 |
+
self::$headers[$key] = $value;
|
59 |
+
}
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Returns all headers attached so far
|
63 |
+
* @return array headers
|
64 |
+
*/
|
65 |
+
public static function getHeaders()
|
66 |
+
{
|
67 |
+
return self::$headers;
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* Process the statusCode of the response and throw exception if necessary
|
72 |
+
* @param Object $response The response object returned by Requests
|
73 |
+
*/
|
74 |
+
protected function checkErrors($response)
|
75 |
+
{
|
76 |
+
$body = $response->body;
|
77 |
+
$httpStatusCode = $response->status_code;
|
78 |
+
|
79 |
+
try
|
80 |
+
{
|
81 |
+
$body = json_decode($response->body, true);
|
82 |
+
}
|
83 |
+
catch (Exception $e)
|
84 |
+
{
|
85 |
+
$this->throwServerError($body, $httpStatusCode);
|
86 |
+
}
|
87 |
+
|
88 |
+
if ($httpStatusCode !== 200)
|
89 |
+
{
|
90 |
+
$this->processError($body, $httpStatusCode, $response);
|
91 |
+
}
|
92 |
+
}
|
93 |
+
|
94 |
+
protected function processError($body, $httpStatusCode, $response)
|
95 |
+
{
|
96 |
+
if (is_array($body) === false)
|
97 |
+
{
|
98 |
+
$this->throwServerError($body, $httpStatusCode);
|
99 |
+
}
|
100 |
+
|
101 |
+
if ((isset($body['error']) === false) or
|
102 |
+
(isset($body['error']['code']) === false))
|
103 |
+
{
|
104 |
+
$this->throwServerError($body, $httpStatusCode);
|
105 |
+
}
|
106 |
+
|
107 |
+
$code = $body['error']['code'];
|
108 |
+
|
109 |
+
if (Errors\ErrorCode::exists($code) === false)
|
110 |
+
{
|
111 |
+
$this->throwServerError($body, $httpStatusCode);
|
112 |
+
}
|
113 |
+
|
114 |
+
// We are basically converting the error code to the Error class name
|
115 |
+
// Replace underscores with space
|
116 |
+
// Lowercase the words, capitalize first letter of each word
|
117 |
+
// Remove spaces
|
118 |
+
$error = str_replace('_', ' ', $code);
|
119 |
+
$error = ucwords(strtolower($error));
|
120 |
+
$error = str_replace(' ', '', $error);
|
121 |
+
|
122 |
+
// Add namespace
|
123 |
+
// This is the fully qualified error class name
|
124 |
+
$error = __NAMESPACE__.'\Errors\\' . $error;
|
125 |
+
|
126 |
+
$description = $body['error']['description'];
|
127 |
+
|
128 |
+
$field = null;
|
129 |
+
if (isset($body['error']['field']))
|
130 |
+
{
|
131 |
+
$field = $body['error']['field'];
|
132 |
+
|
133 |
+
// Create an instance of the error and then throw it
|
134 |
+
throw new $error($description, $code, $httpStatusCode, $field);
|
135 |
+
}
|
136 |
+
|
137 |
+
throw new $error($description, $code, $httpStatusCode);
|
138 |
+
}
|
139 |
+
|
140 |
+
protected function throwServerError($body, $httpStatusCode)
|
141 |
+
{
|
142 |
+
$description = "The server did not send back a well-formed response. " . PHP_EOL .
|
143 |
+
"Server Response: $body";
|
144 |
+
|
145 |
+
throw new Errors\ServerError(
|
146 |
+
$description,
|
147 |
+
ErrorCode::SERVER_ERROR,
|
148 |
+
$httpStatusCode);
|
149 |
+
}
|
150 |
+
}
|
razorpay-sdk/src/Resource.php
ADDED
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Razorpay\Api;
|
4 |
+
|
5 |
+
use ArrayAccess;
|
6 |
+
use ArrayIterator;
|
7 |
+
use IteratorAggregate;
|
8 |
+
|
9 |
+
class Resource implements ArrayAccess, IteratorAggregate
|
10 |
+
{
|
11 |
+
protected $attributes = array();
|
12 |
+
|
13 |
+
public function getIterator()
|
14 |
+
{
|
15 |
+
return new ArrayIterator($this->attributes);
|
16 |
+
}
|
17 |
+
|
18 |
+
public function offsetExists($offset)
|
19 |
+
{
|
20 |
+
return (isset($this->attributes[$offset]));
|
21 |
+
}
|
22 |
+
|
23 |
+
public function offsetSet($offset, $value)
|
24 |
+
{
|
25 |
+
$this->attributes[$offset] = $value;
|
26 |
+
}
|
27 |
+
|
28 |
+
public function offsetGet($offset)
|
29 |
+
{
|
30 |
+
return $this->attributes[$offset];
|
31 |
+
}
|
32 |
+
|
33 |
+
public function offsetUnset($offset)
|
34 |
+
{
|
35 |
+
unset($this->attributes[$offset]);
|
36 |
+
}
|
37 |
+
|
38 |
+
public function __get($key)
|
39 |
+
{
|
40 |
+
return $this->attributes[$key];
|
41 |
+
}
|
42 |
+
|
43 |
+
public function __set($key, $value)
|
44 |
+
{
|
45 |
+
return $this->attributes[$key] = $value;
|
46 |
+
}
|
47 |
+
|
48 |
+
public function __isset($key)
|
49 |
+
{
|
50 |
+
return (isset($this->attributes[$key]));
|
51 |
+
}
|
52 |
+
|
53 |
+
public function __unset($key)
|
54 |
+
{
|
55 |
+
unset($this->attributes[$key]);
|
56 |
+
}
|
57 |
+
}
|
razorpay-sdk/src/Token.php
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Razorpay\Api;
|
4 |
+
|
5 |
+
class Token extends Entity
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* @param $id Token id
|
9 |
+
*/
|
10 |
+
public function fetch($id)
|
11 |
+
{
|
12 |
+
$relativeUrl = 'customers/'.$this->customer_id.'/'.$this->getEntityUrl().$id;
|
13 |
+
|
14 |
+
return $this->request('GET', $relativeUrl);
|
15 |
+
}
|
16 |
+
|
17 |
+
public function all($options = array())
|
18 |
+
{
|
19 |
+
$relativeUrl = 'customers/'.$this->customer_id.'/'.$this->getEntityUrl();
|
20 |
+
|
21 |
+
return $this->request('GET', $relativeUrl, $options);
|
22 |
+
}
|
23 |
+
|
24 |
+
public function delete($id)
|
25 |
+
{
|
26 |
+
$relativeUrl = 'customers/'.$this->customer_id.'/'.$this->getEntityUrl().$id;
|
27 |
+
|
28 |
+
return $this->request('DELETE', $relativeUrl);
|
29 |
+
}
|
30 |
+
}
|
readme.txt
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
=== Razorpay for WooCommerce ===
|
2 |
Contributors: razorpay
|
3 |
Tags: razorpay, payments, india, woocommerce, ecommerce
|
4 |
-
Requires at least: 3.
|
5 |
-
Tested up to: 4.
|
6 |
-
Stable tag: 1.
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -17,7 +17,7 @@ This is compatible with both 2.4 and 2.5 series of WooCommerce.
|
|
17 |
|
18 |
== Installation ==
|
19 |
|
20 |
-
1. Download the plugin from [
|
21 |
2. Ensure you have latest version of WooCommerce plugin installed
|
22 |
3. Unzip and upload contents of the plugin to your /wp-content/plugins/ directory
|
23 |
4. Activate the plugin through the 'Plugins' menu in WordPress
|
@@ -25,15 +25,31 @@ This is compatible with both 2.4 and 2.5 series of WooCommerce.
|
|
25 |
If you have downloaded the plugin from GitHub or elsewhere, make sure
|
26 |
that the directory is named `woo-razorpay`.
|
27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
== Configuration ==
|
29 |
|
30 |
1. Visit the WooCommerce settings page, and click on the Checkout/Payment Gateways tab.
|
31 |
2. Click on Razorpay to edit the settings. If you do not see Razorpay in the list at the top of the screen make sure you have activated the plugin in the WordPress Plugin Manager.
|
32 |
-
3. Enable the Payment Method, name it Credit Card / Debit Card / Internet Banking (this will show up on the payment page your customer sees), add in your
|
|
|
33 |
|
34 |
== Support ==
|
35 |
|
36 |
-
Visit [razorpay.com](https://razorpay.com) for support requests or email us at <
|
37 |
|
38 |
== License ==
|
39 |
|
1 |
=== Razorpay for WooCommerce ===
|
2 |
Contributors: razorpay
|
3 |
Tags: razorpay, payments, india, woocommerce, ecommerce
|
4 |
+
Requires at least: 3.9.2
|
5 |
+
Tested up to: 4.7
|
6 |
+
Stable tag: 1.3.0
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
17 |
|
18 |
== Installation ==
|
19 |
|
20 |
+
1. Download the plugin from [github releases](https://github.com/razorpay/razorpay-woocommerce/archive/1.2.11.zip)
|
21 |
2. Ensure you have latest version of WooCommerce plugin installed
|
22 |
3. Unzip and upload contents of the plugin to your /wp-content/plugins/ directory
|
23 |
4. Activate the plugin through the 'Plugins' menu in WordPress
|
25 |
If you have downloaded the plugin from GitHub or elsewhere, make sure
|
26 |
that the directory is named `woo-razorpay`.
|
27 |
|
28 |
+
This is how your directory structure should look like:
|
29 |
+
|
30 |
+
```
|
31 |
+
wordpress/
|
32 |
+
wp-content/
|
33 |
+
plugins/
|
34 |
+
woo-razorpay/
|
35 |
+
ca-bundle.crt
|
36 |
+
images/
|
37 |
+
LICENSE
|
38 |
+
razorpay-payments.php
|
39 |
+
readme.txt
|
40 |
+
woocommerce/
|
41 |
+
```
|
42 |
+
|
43 |
== Configuration ==
|
44 |
|
45 |
1. Visit the WooCommerce settings page, and click on the Checkout/Payment Gateways tab.
|
46 |
2. Click on Razorpay to edit the settings. If you do not see Razorpay in the list at the top of the screen make sure you have activated the plugin in the WordPress Plugin Manager.
|
47 |
+
3. Enable the Payment Method, name it Credit Card / Debit Card / Internet Banking (this will show up on the payment page your customer sees), add in your Key id and Key Secret.
|
48 |
+
4. The Payment Action should be set to "Authorize and Capture". If you want to capture payments manually from the Dashboard after manual verification, set it to "Authorize".
|
49 |
|
50 |
== Support ==
|
51 |
|
52 |
+
Visit [razorpay.com](https://razorpay.com) for support requests or email us at <integrations@razorpay.com>.
|
53 |
|
54 |
== License ==
|
55 |
|