Skip to content

Commit 6e94593

Browse files
authored
Merge pull request #249 from php-enqueue/amqp-add-ssl-pass-phrase-option
Amqp add ssl pass phrase option
2 parents a578d82 + b0452ae commit 6e94593

File tree

3 files changed

+79
-51
lines changed

3 files changed

+79
-51
lines changed

Diff for: pkg/amqp-lib/AmqpConnectionFactory.php

+1
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ private function establishConnection()
9393
'local_pk' => $this->config->getSslKey(),
9494
'verify_peer' => $this->config->isSslVerify(),
9595
'verify_peer_name' => $this->config->isSslVerify(),
96+
'passphrase' => $this->getConfig()->getSslPassPhrase(),
9697
], function ($value) { return '' !== $value; });
9798

9899
$con = new AMQPSSLConnection(

Diff for: pkg/amqp-tools/ConnectionConfig.php

+14-3
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
* ssl_cacert - Location of Certificate Authority file on local filesystem which should be used with the verify_peer context option to authenticate the identity of the remote peer. A string.
2626
* ssl_cert - Path to local certificate file on filesystem. It must be a PEM encoded file which contains your certificate and private key. A string
2727
* ssl_key - Path to local private key file on filesystem in case of separate files for certificate (local_cert) and private key. A string.
28+
* ssl_passphrase - Passphrase with which your local_cert file was encoded. A string
2829
*
2930
* 2. null - in this case it tries to connect to localhost with default settings
3031
* 3. amqp: same as 2.
@@ -81,9 +82,10 @@ public function __construct($config = null)
8182
'qos_prefetch_count' => 1,
8283
'ssl_on' => false,
8384
'ssl_verify' => true,
84-
'ssl_cacert' => null,
85-
'ssl_cert' => null,
86-
'ssl_key' => null,
85+
'ssl_cacert' => '',
86+
'ssl_cert' => '',
87+
'ssl_key' => '',
88+
'ssl_passphrase' => '',
8789
];
8890

8991
$this->addSupportedScheme('amqp');
@@ -158,6 +160,7 @@ public function parse()
158160
$config['ssl_cacert'] = (string) $config['ssl_cacert'];
159161
$config['ssl_cert'] = (string) $config['ssl_cert'];
160162
$config['ssl_key'] = (string) $config['ssl_key'];
163+
$config['ssl_passphrase'] = (string) $config['ssl_passphrase'];
161164

162165
$this->config = $config;
163166

@@ -316,6 +319,14 @@ public function getSslKey()
316319
return $this->getOption('ssl_key');
317320
}
318321

322+
/**
323+
* @return string
324+
*/
325+
public function getSslPassPhrase()
326+
{
327+
return $this->getOption('ssl_passphrase');
328+
}
329+
319330
/**
320331
* @param string $name
321332
* @param mixed $default

Diff for: pkg/amqp-tools/Tests/ConnectionConfigTest.php

+64-48
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,10 @@ public function testShouldParseEmptyDsnWithDriverSet()
7272
'heartbeat' => 0.0,
7373
'ssl_on' => false,
7474
'ssl_verify' => true,
75-
'ssl_cacert' => null,
76-
'ssl_cert' => null,
77-
'ssl_key' => null,
75+
'ssl_cacert' => '',
76+
'ssl_cert' => '',
77+
'ssl_key' => '',
78+
'ssl_passphrase' => '',
7879
], $config->getConfig());
7980
}
8081

@@ -102,9 +103,10 @@ public function testShouldParseCustomDsnWithDriverSet()
102103
'heartbeat' => 0.0,
103104
'ssl_on' => false,
104105
'ssl_verify' => true,
105-
'ssl_cacert' => null,
106-
'ssl_cert' => null,
107-
'ssl_key' => null,
106+
'ssl_cacert' => '',
107+
'ssl_cert' => '',
108+
'ssl_key' => '',
109+
'ssl_passphrase' => '',
108110
], $config->getConfig());
109111
}
110112

@@ -143,9 +145,10 @@ public static function provideConfigs()
143145
'heartbeat' => 0.0,
144146
'ssl_on' => false,
145147
'ssl_verify' => true,
146-
'ssl_cacert' => null,
147-
'ssl_cert' => null,
148-
'ssl_key' => null,
148+
'ssl_cacert' => '',
149+
'ssl_cert' => '',
150+
'ssl_key' => '',
151+
'ssl_passphrase' => '',
149152
],
150153
];
151154

@@ -168,9 +171,10 @@ public static function provideConfigs()
168171
'heartbeat' => 0.0,
169172
'ssl_on' => false,
170173
'ssl_verify' => true,
171-
'ssl_cacert' => null,
172-
'ssl_cert' => null,
173-
'ssl_key' => null,
174+
'ssl_cacert' => '',
175+
'ssl_cert' => '',
176+
'ssl_key' => '',
177+
'ssl_passphrase' => '',
174178
],
175179
];
176180

@@ -193,9 +197,10 @@ public static function provideConfigs()
193197
'heartbeat' => 0.0,
194198
'ssl_on' => false,
195199
'ssl_verify' => true,
196-
'ssl_cacert' => null,
197-
'ssl_cert' => null,
198-
'ssl_key' => null,
200+
'ssl_cacert' => '',
201+
'ssl_cert' => '',
202+
'ssl_key' => '',
203+
'ssl_passphrase' => '',
199204
],
200205
];
201206

@@ -218,9 +223,10 @@ public static function provideConfigs()
218223
'heartbeat' => 0.0,
219224
'ssl_on' => true,
220225
'ssl_verify' => true,
221-
'ssl_cacert' => null,
222-
'ssl_cert' => null,
223-
'ssl_key' => null,
226+
'ssl_cacert' => '',
227+
'ssl_cert' => '',
228+
'ssl_key' => '',
229+
'ssl_passphrase' => '',
224230
],
225231
];
226232

@@ -243,9 +249,10 @@ public static function provideConfigs()
243249
'heartbeat' => 0.0,
244250
'ssl_on' => false,
245251
'ssl_verify' => true,
246-
'ssl_cacert' => null,
247-
'ssl_cert' => null,
248-
'ssl_key' => null,
252+
'ssl_cacert' => '',
253+
'ssl_cert' => '',
254+
'ssl_key' => '',
255+
'ssl_passphrase' => '',
249256
],
250257
];
251258

@@ -268,9 +275,10 @@ public static function provideConfigs()
268275
'heartbeat' => 0.0,
269276
'ssl_on' => false,
270277
'ssl_verify' => true,
271-
'ssl_cacert' => null,
272-
'ssl_cert' => null,
273-
'ssl_key' => null,
278+
'ssl_cacert' => '',
279+
'ssl_cert' => '',
280+
'ssl_key' => '',
281+
'ssl_passphrase' => '',
274282
],
275283
];
276284

@@ -293,9 +301,10 @@ public static function provideConfigs()
293301
'heartbeat' => 23.3,
294302
'ssl_on' => false,
295303
'ssl_verify' => true,
296-
'ssl_cacert' => null,
297-
'ssl_cert' => null,
298-
'ssl_key' => null,
304+
'ssl_cacert' => '',
305+
'ssl_cert' => '',
306+
'ssl_key' => '',
307+
'ssl_passphrase' => '',
299308
],
300309
];
301310

@@ -318,9 +327,10 @@ public static function provideConfigs()
318327
'heartbeat' => 0.0,
319328
'ssl_on' => false,
320329
'ssl_verify' => true,
321-
'ssl_cacert' => null,
322-
'ssl_cert' => null,
323-
'ssl_key' => null,
330+
'ssl_cacert' => '',
331+
'ssl_cert' => '',
332+
'ssl_key' => '',
333+
'ssl_passphrase' => '',
324334
],
325335
];
326336

@@ -343,9 +353,10 @@ public static function provideConfigs()
343353
'heartbeat' => 0.0,
344354
'ssl_on' => false,
345355
'ssl_verify' => true,
346-
'ssl_cacert' => null,
347-
'ssl_cert' => null,
348-
'ssl_key' => null,
356+
'ssl_cacert' => '',
357+
'ssl_cert' => '',
358+
'ssl_key' => '',
359+
'ssl_passphrase' => '',
349360
],
350361
];
351362

@@ -368,9 +379,10 @@ public static function provideConfigs()
368379
'heartbeat' => 0.0,
369380
'ssl_on' => false,
370381
'ssl_verify' => true,
371-
'ssl_cacert' => null,
372-
'ssl_cert' => null,
373-
'ssl_key' => null,
382+
'ssl_cacert' => '',
383+
'ssl_cert' => '',
384+
'ssl_key' => '',
385+
'ssl_passphrase' => '',
374386
],
375387
];
376388

@@ -393,9 +405,10 @@ public static function provideConfigs()
393405
'heartbeat' => 0.0,
394406
'ssl_on' => false,
395407
'ssl_verify' => true,
396-
'ssl_cacert' => null,
397-
'ssl_cert' => null,
398-
'ssl_key' => null,
408+
'ssl_cacert' => '',
409+
'ssl_cert' => '',
410+
'ssl_key' => '',
411+
'ssl_passphrase' => '',
399412
],
400413
];
401414

@@ -418,9 +431,10 @@ public static function provideConfigs()
418431
'heartbeat' => 0.0,
419432
'ssl_on' => false,
420433
'ssl_verify' => true,
421-
'ssl_cacert' => null,
422-
'ssl_cert' => null,
423-
'ssl_key' => null,
434+
'ssl_cacert' => '',
435+
'ssl_cert' => '',
436+
'ssl_key' => '',
437+
'ssl_passphrase' => '',
424438
],
425439
];
426440

@@ -449,9 +463,10 @@ public static function provideConfigs()
449463
'heartbeat' => 0.0,
450464
'ssl_on' => false,
451465
'ssl_verify' => true,
452-
'ssl_cacert' => null,
453-
'ssl_cert' => null,
454-
'ssl_key' => null,
466+
'ssl_cacert' => '',
467+
'ssl_cert' => '',
468+
'ssl_key' => '',
469+
'ssl_passphrase' => '',
455470
],
456471
];
457472

@@ -477,9 +492,10 @@ public static function provideConfigs()
477492
'heartbeat' => 0.0,
478493
'ssl_on' => true,
479494
'ssl_verify' => true,
480-
'ssl_cacert' => null,
481-
'ssl_cert' => null,
482-
'ssl_key' => null,
495+
'ssl_cacert' => '',
496+
'ssl_cert' => '',
497+
'ssl_key' => '',
498+
'ssl_passphrase' => '',
483499
],
484500
];
485501
}

0 commit comments

Comments
 (0)