@@ -15,31 +15,31 @@ |
||
15 | 15 | $tag = $this->peek(); |
16 | 16 | |
17 | 17 | switch ($tag) { |
18 | - case 0: |
|
19 | - $res['otherName'] = $this->oid(-6); |
|
20 | - break; |
|
21 | - |
|
22 | - case 1: |
|
23 | - $res['rfc822Name'] = $this->next(-22); |
|
24 | - break; |
|
25 | - |
|
26 | - case 2: |
|
27 | - $res['dNSName'] = $this->next(-22); |
|
28 | - break; |
|
29 | - |
|
30 | - case 4: |
|
31 | - $this->next(4); |
|
32 | - $res['directoryName'] = $this->name(); |
|
33 | - $res['directoryName_'] = $this->nameasstring($res['directoryName']); |
|
34 | - break; |
|
35 | - |
|
36 | - case 6: |
|
37 | - $res['uniformResourceIdentifier'] = $this->next(-22); |
|
38 | - break; |
|
39 | - |
|
40 | - default: |
|
41 | - throw new \Exception("Unsupported GeneralName: {$tag}"); |
|
42 | -# trigger_error("Unsupported GeneralName: $tag", E_USER_ERROR); |
|
18 | + case 0: |
|
19 | + $res['otherName'] = $this->oid(-6); |
|
20 | + break; |
|
21 | + |
|
22 | + case 1: |
|
23 | + $res['rfc822Name'] = $this->next(-22); |
|
24 | + break; |
|
25 | + |
|
26 | + case 2: |
|
27 | + $res['dNSName'] = $this->next(-22); |
|
28 | + break; |
|
29 | + |
|
30 | + case 4: |
|
31 | + $this->next(4); |
|
32 | + $res['directoryName'] = $this->name(); |
|
33 | + $res['directoryName_'] = $this->nameasstring($res['directoryName']); |
|
34 | + break; |
|
35 | + |
|
36 | + case 6: |
|
37 | + $res['uniformResourceIdentifier'] = $this->next(-22); |
|
38 | + break; |
|
39 | + |
|
40 | + default: |
|
41 | + throw new \Exception("Unsupported GeneralName: {$tag}"); |
|
42 | + # trigger_error("Unsupported GeneralName: $tag", E_USER_ERROR); |
|
43 | 43 | } |
44 | 44 | |
45 | 45 | return $res; |
@@ -29,62 +29,62 @@ |
||
29 | 29 | if (!isset($actionType)) |
30 | 30 | continue; |
31 | 31 | switch ($actionType) { |
32 | - case 'certificate': |
|
33 | - $data = $this->verifyCertificate($actionData); |
|
34 | - $response = [ |
|
35 | - 'type' => 3, |
|
36 | - 'status' => $data['status'], |
|
37 | - 'message' => $data['message'], |
|
38 | - 'data' => $data['data'], |
|
39 | - ]; |
|
40 | - $this->addActionData('certificate', $response); |
|
41 | - $GLOBALS['bus']->addData($this->getResponseData()); |
|
42 | - break; |
|
32 | + case 'certificate': |
|
33 | + $data = $this->verifyCertificate($actionData); |
|
34 | + $response = [ |
|
35 | + 'type' => 3, |
|
36 | + 'status' => $data['status'], |
|
37 | + 'message' => $data['message'], |
|
38 | + 'data' => $data['data'], |
|
39 | + ]; |
|
40 | + $this->addActionData('certificate', $response); |
|
41 | + $GLOBALS['bus']->addData($this->getResponseData()); |
|
42 | + break; |
|
43 | 43 | |
44 | - case 'passphrase': |
|
45 | - $data = $this->verifyPassphrase($actionData); |
|
46 | - $response = [ |
|
47 | - 'type' => 3, |
|
48 | - 'status' => $data['status'], |
|
49 | - ]; |
|
50 | - $this->addActionData('passphrase', $response); |
|
51 | - $GLOBALS['bus']->addData($this->getResponseData()); |
|
52 | - break; |
|
44 | + case 'passphrase': |
|
45 | + $data = $this->verifyPassphrase($actionData); |
|
46 | + $response = [ |
|
47 | + 'type' => 3, |
|
48 | + 'status' => $data['status'], |
|
49 | + ]; |
|
50 | + $this->addActionData('passphrase', $response); |
|
51 | + $GLOBALS['bus']->addData($this->getResponseData()); |
|
52 | + break; |
|
53 | 53 | |
54 | - case 'changepassphrase': |
|
55 | - $data = $this->changePassphrase($actionData); |
|
56 | - if ($data === CHANGE_PASSPHRASE_SUCCESS) { |
|
57 | - // Reset cached passphrase. |
|
58 | - $encryptionStore = EncryptionStore::getInstance(); |
|
59 | - withPHPSession(function () use ($encryptionStore) { |
|
60 | - $encryptionStore->add('smime', ''); |
|
61 | - }); |
|
62 | - } |
|
63 | - $response = [ |
|
64 | - 'type' => 3, |
|
65 | - 'code' => $data, |
|
66 | - ]; |
|
67 | - $this->addActionData('changepassphrase', $response); |
|
68 | - $GLOBALS['bus']->addData($this->getResponseData()); |
|
69 | - break; |
|
54 | + case 'changepassphrase': |
|
55 | + $data = $this->changePassphrase($actionData); |
|
56 | + if ($data === CHANGE_PASSPHRASE_SUCCESS) { |
|
57 | + // Reset cached passphrase. |
|
58 | + $encryptionStore = EncryptionStore::getInstance(); |
|
59 | + withPHPSession(function () use ($encryptionStore) { |
|
60 | + $encryptionStore->add('smime', ''); |
|
61 | + }); |
|
62 | + } |
|
63 | + $response = [ |
|
64 | + 'type' => 3, |
|
65 | + 'code' => $data, |
|
66 | + ]; |
|
67 | + $this->addActionData('changepassphrase', $response); |
|
68 | + $GLOBALS['bus']->addData($this->getResponseData()); |
|
69 | + break; |
|
70 | 70 | |
71 | - case 'list': |
|
72 | - $data = $this->getPublicCertificates(); |
|
73 | - $this->addActionData('list', $data); |
|
74 | - $GLOBALS['bus']->addData($this->getResponseData()); |
|
75 | - break; |
|
71 | + case 'list': |
|
72 | + $data = $this->getPublicCertificates(); |
|
73 | + $this->addActionData('list', $data); |
|
74 | + $GLOBALS['bus']->addData($this->getResponseData()); |
|
75 | + break; |
|
76 | 76 | |
77 | - case 'delete': |
|
78 | - // FIXME: handle multiple deletes? Separate function? |
|
79 | - $entryid = $actionData['entryid']; |
|
80 | - $root = mapi_msgstore_openentry($this->store, null); |
|
81 | - mapi_folder_deletemessages($root, [hex2bin($entryid)]); |
|
77 | + case 'delete': |
|
78 | + // FIXME: handle multiple deletes? Separate function? |
|
79 | + $entryid = $actionData['entryid']; |
|
80 | + $root = mapi_msgstore_openentry($this->store, null); |
|
81 | + mapi_folder_deletemessages($root, [hex2bin($entryid)]); |
|
82 | 82 | |
83 | - $this->sendFeedback(true); |
|
84 | - break; |
|
83 | + $this->sendFeedback(true); |
|
84 | + break; |
|
85 | 85 | |
86 | - default: |
|
87 | - $this->handleUnknownActionType($actionType); |
|
86 | + default: |
|
87 | + $this->handleUnknownActionType($actionType); |
|
88 | 88 | } |
89 | 89 | } |
90 | 90 | catch (Exception $e) { |
@@ -56,7 +56,7 @@ discard block |
||
56 | 56 | if ($data === CHANGE_PASSPHRASE_SUCCESS) { |
57 | 57 | // Reset cached passphrase. |
58 | 58 | $encryptionStore = EncryptionStore::getInstance(); |
59 | - withPHPSession(function () use ($encryptionStore) { |
|
59 | + withPHPSession(function() use ($encryptionStore) { |
|
60 | 60 | $encryptionStore->add('smime', ''); |
61 | 61 | }); |
62 | 62 | } |
@@ -167,7 +167,7 @@ discard block |
||
167 | 167 | $encryptionStore->add('smime', $data['passphrase'], time() + (5 * 60)); |
168 | 168 | } |
169 | 169 | else { |
170 | - withPHPSession(function () use ($encryptionStore, $data) { |
|
170 | + withPHPSession(function() use ($encryptionStore, $data) { |
|
171 | 171 | $encryptionStore->add('smime', $data['passphrase']); |
172 | 172 | }); |
173 | 173 | } |
@@ -25,9 +25,11 @@ |
||
25 | 25 | * @return bool true on success or false on failure |
26 | 26 | */ |
27 | 27 | public function execute() { |
28 | - foreach ($this->data as $actionType => $actionData) try { |
|
28 | + foreach ($this->data as $actionType => $actionData) { |
|
29 | + try { |
|
29 | 30 | if (!isset($actionType)) |
30 | 31 | continue; |
32 | + } |
|
31 | 33 | switch ($actionType) { |
32 | 34 | case 'certificate': |
33 | 35 | $data = $this->verifyCertificate($actionData); |
@@ -163,9 +163,9 @@ discard block |
||
163 | 163 | $messageClass = mapi_getprops($message, [PR_MESSAGE_CLASS]); |
164 | 164 | $messageClass = $messageClass[PR_MESSAGE_CLASS]; |
165 | 165 | if ($messageClass !== 'IPM.Note.SMIME' && |
166 | - $messageClass !== 'IPM.Note.SMIME.SignedEncrypt' && |
|
167 | - $messageClass !== 'IPM.Note.deferSMIME' && |
|
168 | - $messageClass !== 'IPM.Note.deferSMIME.SignedEncrypt') |
|
166 | + $messageClass !== 'IPM.Note.SMIME.SignedEncrypt' && |
|
167 | + $messageClass !== 'IPM.Note.deferSMIME' && |
|
168 | + $messageClass !== 'IPM.Note.deferSMIME.SignedEncrypt') |
|
169 | 169 | return; |
170 | 170 | |
171 | 171 | $recipients = $data['action']['props']['smime']; |
@@ -607,17 +607,17 @@ discard block |
||
607 | 607 | if (!isset($messageClass)) |
608 | 608 | return; |
609 | 609 | if (stripos($messageClass, 'IPM.Note.deferSMIME') === false && |
610 | - stripos($messageClass, 'IPM.Note.SMIME') === false) |
|
610 | + stripos($messageClass, 'IPM.Note.SMIME') === false) |
|
611 | 611 | return; |
612 | 612 | |
613 | 613 | // FIXME: for now return when we are going to sign but we don't have the passphrase set |
614 | 614 | // This should never happen sign |
615 | 615 | $encryptionStore = \EncryptionStore::getInstance(); |
616 | 616 | if (($messageClass === 'IPM.Note.deferSMIME.SignedEncrypt' || |
617 | - $messageClass === 'IPM.Note.deferSMIME.MultipartSigned' || |
|
618 | - $messageClass === 'IPM.Note.SMIME.SignedEncrypt' || |
|
619 | - $messageClass === 'IPM.Note.SMIME.MultipartSigned') && |
|
620 | - !$encryptionStore->get('smime')) |
|
617 | + $messageClass === 'IPM.Note.deferSMIME.MultipartSigned' || |
|
618 | + $messageClass === 'IPM.Note.SMIME.SignedEncrypt' || |
|
619 | + $messageClass === 'IPM.Note.SMIME.MultipartSigned') && |
|
620 | + !$encryptionStore->get('smime')) |
|
621 | 621 | return; |
622 | 622 | // NOTE: setting message class to IPM.Note, so that mapi_inetmapi_imtoinet converts the message to plain email |
623 | 623 | // and doesn't fail when handling the attachments. |
@@ -92,45 +92,45 @@ discard block |
||
92 | 92 | public function execute($eventID, &$data) { |
93 | 93 | switch ($eventID) { |
94 | 94 | // Register plugin |
95 | - case 'server.core.settings.init.before': |
|
96 | - $this->onBeforeSettingsInit($data); |
|
97 | - break; |
|
98 | - // Verify a signed or encrypted message when an email is opened |
|
99 | - case 'server.util.parse_smime.signed': |
|
100 | - $this->onSignedMessage($data); |
|
101 | - break; |
|
102 | - |
|
103 | - case 'server.util.parse_smime.encrypted': |
|
104 | - $this->onEncrypted($data); |
|
105 | - break; |
|
106 | - // Add S/MIME property, which is send to the client |
|
107 | - case 'server.module.itemmodule.open.after': |
|
108 | - $this->onAfterOpen($data); |
|
109 | - break; |
|
110 | - // Catch uploaded certificate |
|
111 | - case 'server.upload_attachment.upload': |
|
112 | - $this->onUploadCertificate($data); |
|
113 | - break; |
|
114 | - // Sign email before sending |
|
115 | - case 'server.core.operations.submitmessage': |
|
116 | - $this->onBeforeSend($data); |
|
117 | - break; |
|
118 | - // Verify that we have public certificates for all recipients |
|
119 | - case 'server.module.createmailitemmodule.beforesend': |
|
120 | - $this->onCertificateCheck($data); |
|
121 | - break; |
|
122 | - |
|
123 | - case 'server.index.load.custom': |
|
124 | - if ($data['name'] === 'smime_passphrase') { |
|
125 | - include 'templates/passphrase.tpl.php'; |
|
126 | - exit(); |
|
127 | - } |
|
128 | - if ($data['name'] === 'smime_passphrasecheck') { |
|
129 | - // No need to do anything, this is just used to trigger |
|
130 | - // the browser's autofill save password dialog. |
|
131 | - exit(); |
|
132 | - } |
|
133 | - break; |
|
95 | + case 'server.core.settings.init.before': |
|
96 | + $this->onBeforeSettingsInit($data); |
|
97 | + break; |
|
98 | + // Verify a signed or encrypted message when an email is opened |
|
99 | + case 'server.util.parse_smime.signed': |
|
100 | + $this->onSignedMessage($data); |
|
101 | + break; |
|
102 | + |
|
103 | + case 'server.util.parse_smime.encrypted': |
|
104 | + $this->onEncrypted($data); |
|
105 | + break; |
|
106 | + // Add S/MIME property, which is send to the client |
|
107 | + case 'server.module.itemmodule.open.after': |
|
108 | + $this->onAfterOpen($data); |
|
109 | + break; |
|
110 | + // Catch uploaded certificate |
|
111 | + case 'server.upload_attachment.upload': |
|
112 | + $this->onUploadCertificate($data); |
|
113 | + break; |
|
114 | + // Sign email before sending |
|
115 | + case 'server.core.operations.submitmessage': |
|
116 | + $this->onBeforeSend($data); |
|
117 | + break; |
|
118 | + // Verify that we have public certificates for all recipients |
|
119 | + case 'server.module.createmailitemmodule.beforesend': |
|
120 | + $this->onCertificateCheck($data); |
|
121 | + break; |
|
122 | + |
|
123 | + case 'server.index.load.custom': |
|
124 | + if ($data['name'] === 'smime_passphrase') { |
|
125 | + include 'templates/passphrase.tpl.php'; |
|
126 | + exit(); |
|
127 | + } |
|
128 | + if ($data['name'] === 'smime_passphrasecheck') { |
|
129 | + // No need to do anything, this is just used to trigger |
|
130 | + // the browser's autofill save password dialog. |
|
131 | + exit(); |
|
132 | + } |
|
133 | + break; |
|
134 | 134 | } |
135 | 135 | } |
136 | 136 | |
@@ -663,23 +663,23 @@ discard block |
||
663 | 663 | |
664 | 664 | // Sign then Encrypt email |
665 | 665 | switch ($messageClass) { |
666 | - case 'IPM.Note.deferSMIME.SignedEncrypt': |
|
667 | - case 'IPM.Note.SMIME.SignedEncrypt': |
|
668 | - $tmpFile = tempnam(sys_get_temp_dir(), true); |
|
669 | - $this->sign($tmpSendEmail, $tmpFile, $message, $signedAttach, $smimeProps); |
|
670 | - $this->encrypt($tmpFile, $tmpSendSmimeEmail, $message, $signedAttach, $smimeProps); |
|
671 | - unlink($tmpFile); |
|
672 | - break; |
|
673 | - |
|
674 | - case 'IPM.Note.deferSMIME.MultipartSigned': |
|
675 | - case 'IPM.Note.SMIME.MultipartSigned': |
|
676 | - $this->sign($tmpSendEmail, $tmpSendSmimeEmail, $message, $signedAttach, $smimeProps); |
|
677 | - break; |
|
678 | - |
|
679 | - case 'IPM.Note.deferSMIME': |
|
680 | - case 'IPM.Note.SMIME': |
|
681 | - $this->encrypt($tmpSendEmail, $tmpSendSmimeEmail, $message, $signedAttach, $smimeProps); |
|
682 | - break; |
|
666 | + case 'IPM.Note.deferSMIME.SignedEncrypt': |
|
667 | + case 'IPM.Note.SMIME.SignedEncrypt': |
|
668 | + $tmpFile = tempnam(sys_get_temp_dir(), true); |
|
669 | + $this->sign($tmpSendEmail, $tmpFile, $message, $signedAttach, $smimeProps); |
|
670 | + $this->encrypt($tmpFile, $tmpSendSmimeEmail, $message, $signedAttach, $smimeProps); |
|
671 | + unlink($tmpFile); |
|
672 | + break; |
|
673 | + |
|
674 | + case 'IPM.Note.deferSMIME.MultipartSigned': |
|
675 | + case 'IPM.Note.SMIME.MultipartSigned': |
|
676 | + $this->sign($tmpSendEmail, $tmpSendSmimeEmail, $message, $signedAttach, $smimeProps); |
|
677 | + break; |
|
678 | + |
|
679 | + case 'IPM.Note.deferSMIME': |
|
680 | + case 'IPM.Note.SMIME': |
|
681 | + $this->encrypt($tmpSendEmail, $tmpSendSmimeEmail, $message, $signedAttach, $smimeProps); |
|
682 | + break; |
|
683 | 683 | } |
684 | 684 | |
685 | 685 | // Save the signed message as attachment of the send email |
@@ -165,8 +165,9 @@ discard block |
||
165 | 165 | if ($messageClass !== 'IPM.Note.SMIME' && |
166 | 166 | $messageClass !== 'IPM.Note.SMIME.SignedEncrypt' && |
167 | 167 | $messageClass !== 'IPM.Note.deferSMIME' && |
168 | - $messageClass !== 'IPM.Note.deferSMIME.SignedEncrypt') |
|
169 | - return; |
|
168 | + $messageClass !== 'IPM.Note.deferSMIME.SignedEncrypt') { |
|
169 | + return; |
|
170 | + } |
|
170 | 171 | |
171 | 172 | $recipients = $data['action']['props']['smime']; |
172 | 173 | $missingCerts = []; |
@@ -300,8 +301,9 @@ discard block |
||
300 | 301 | $importCert = file_get_contents($outcert); |
301 | 302 | $parsedImportCert = openssl_x509_parse($importCert); |
302 | 303 | $parsedUserCert = openssl_x509_parse($userCert); |
303 | - if (!$signed_ok || $openssl_error_code === OPENSSL_CA_VERIFY_FAIL) |
|
304 | - continue; |
|
304 | + if (!$signed_ok || $openssl_error_code === OPENSSL_CA_VERIFY_FAIL) { |
|
305 | + continue; |
|
306 | + } |
|
305 | 307 | |
306 | 308 | // CA Checks out |
307 | 309 | $caCerts = $this->extractCAs($tmpfname); |
@@ -528,8 +530,9 @@ discard block |
||
528 | 530 | * @param {mixed} $data |
529 | 531 | */ |
530 | 532 | public function onUploadCertificate($data) { |
531 | - if ($data['sourcetype'] !== 'certificate') |
|
532 | - return; |
|
533 | + if ($data['sourcetype'] !== 'certificate') { |
|
534 | + return; |
|
535 | + } |
|
533 | 536 | $passphrase = $_POST['passphrase']; |
534 | 537 | $saveCert = false; |
535 | 538 | $tmpname = $data['tmpname']; |
@@ -604,11 +607,13 @@ discard block |
||
604 | 607 | $props = mapi_getprops($message, [PR_MESSAGE_CLASS]); |
605 | 608 | $messageClass = $props[PR_MESSAGE_CLASS]; |
606 | 609 | |
607 | - if (!isset($messageClass)) |
|
608 | - return; |
|
610 | + if (!isset($messageClass)) { |
|
611 | + return; |
|
612 | + } |
|
609 | 613 | if (stripos($messageClass, 'IPM.Note.deferSMIME') === false && |
610 | - stripos($messageClass, 'IPM.Note.SMIME') === false) |
|
611 | - return; |
|
614 | + stripos($messageClass, 'IPM.Note.SMIME') === false) { |
|
615 | + return; |
|
616 | + } |
|
612 | 617 | |
613 | 618 | // FIXME: for now return when we are going to sign but we don't have the passphrase set |
614 | 619 | // This should never happen sign |
@@ -617,8 +622,9 @@ discard block |
||
617 | 622 | $messageClass === 'IPM.Note.deferSMIME.MultipartSigned' || |
618 | 623 | $messageClass === 'IPM.Note.SMIME.SignedEncrypt' || |
619 | 624 | $messageClass === 'IPM.Note.SMIME.MultipartSigned') && |
620 | - !$encryptionStore->get('smime')) |
|
621 | - return; |
|
625 | + !$encryptionStore->get('smime')) { |
|
626 | + return; |
|
627 | + } |
|
622 | 628 | // NOTE: setting message class to IPM.Note, so that mapi_inetmapi_imtoinet converts the message to plain email |
623 | 629 | // and doesn't fail when handling the attachments. |
624 | 630 | mapi_setprops($message, [PR_MESSAGE_CLASS => 'IPM.Note']); |
@@ -862,8 +868,9 @@ discard block |
||
862 | 868 | foreach ($certs as $cert) { |
863 | 869 | $pubkey = mapi_msgstore_openentry($this->getStore(), $cert[PR_ENTRYID]); |
864 | 870 | $certificate = ""; |
865 | - if ($pubkey == false) |
|
866 | - continue; |
|
871 | + if ($pubkey == false) { |
|
872 | + continue; |
|
873 | + } |
|
867 | 874 | // retrieve pkcs#11 certificate from body |
868 | 875 | $stream = mapi_openproperty($pubkey, PR_BODY, IID_IStream, 0, 0); |
869 | 876 | $stat = mapi_stream_stat($stream); |
@@ -985,8 +992,9 @@ discard block |
||
985 | 992 | */ |
986 | 993 | public function importCertificate($cert, $certData, $type = 'public', $force = false) { |
987 | 994 | $certEmail = getCertEmail($certData); |
988 | - if ($this->pubcertExists($certEmail) && !$force && $type !== 'private') |
|
989 | - return; |
|
995 | + if ($this->pubcertExists($certEmail) && !$force && $type !== 'private') { |
|
996 | + return; |
|
997 | + } |
|
990 | 998 | $issued_by = ""; |
991 | 999 | foreach (array_keys($certData['issuer']) as $key) { |
992 | 1000 | $issued_by .= $key . '=' . $certData['issuer'][$key] . "\n"; |
@@ -1110,8 +1118,9 @@ discard block |
||
1110 | 1118 | * @return array with properties |
1111 | 1119 | */ |
1112 | 1120 | public function getSenderAddress($mapiMessage) { |
1113 | - if (method_exists($GLOBALS['operations'], 'getSenderAddress')) |
|
1114 | - return $GLOBALS["operations"]->getSenderAddress($mapiMessage); |
|
1121 | + if (method_exists($GLOBALS['operations'], 'getSenderAddress')) { |
|
1122 | + return $GLOBALS["operations"]->getSenderAddress($mapiMessage); |
|
1123 | + } |
|
1115 | 1124 | |
1116 | 1125 | $messageProps = mapi_getprops($mapiMessage, [PR_SENT_REPRESENTING_ENTRYID, PR_SENDER_ENTRYID]); |
1117 | 1126 | $senderEntryID = isset($messageProps[PR_SENT_REPRESENTING_ENTRYID]) ? $messageProps[PR_SENT_REPRESENTING_ENTRYID] : $messageProps[PR_SENDER_ENTRYID]; |
@@ -33,14 +33,14 @@ |
||
33 | 33 | } |
34 | 34 | |
35 | 35 | switch ($this->status) { |
36 | - case 'good': |
|
37 | - return OCSP_CERT_STATUS_GOOD; |
|
36 | + case 'good': |
|
37 | + return OCSP_CERT_STATUS_GOOD; |
|
38 | 38 | |
39 | - case 'revoked': |
|
40 | - return OCSP_CERT_STATUS_REVOKED; |
|
39 | + case 'revoked': |
|
40 | + return OCSP_CERT_STATUS_REVOKED; |
|
41 | 41 | |
42 | - default: |
|
43 | - return OCSP_CERT_STATUS_UNKOWN; |
|
42 | + default: |
|
43 | + return OCSP_CERT_STATUS_UNKOWN; |
|
44 | 44 | } |
45 | 45 | } |
46 | 46 | } |
@@ -98,8 +98,9 @@ |
||
98 | 98 | // Get messages from certificates |
99 | 99 | foreach ($privateCerts as $privateCert) { |
100 | 100 | $privateCertMessage = mapi_msgstore_openentry($store, $privateCert[PR_ENTRYID]); |
101 | - if ($privateCertMessage === false) |
|
102 | - continue; |
|
101 | + if ($privateCertMessage === false) { |
|
102 | + continue; |
|
103 | + } |
|
103 | 104 | $pkcs12 = ""; |
104 | 105 | $certs = []; |
105 | 106 | // Read pkcs12 cert from message |