@@ -9,21 +9,21 @@ discard block |
||
| 9 | 9 | |
| 10 | 10 | <h1><?php echo htmlspecialchars($this->t('{webauthn:webauthn:heading1}')); ?></h1> |
| 11 | 11 | <h2><?php echo htmlspecialchars($this->t('{webauthn:webauthn:accountEnabled}')); ?></h2> |
| 12 | - <?php if((isset($this->data['FIDO2Tokens'])?((is_array($this->data['FIDO2Tokens']) || $this->data['FIDO2Tokens'] instanceof Countable)?count($this->data['FIDO2Tokens']):strlen($this->data['FIDO2Tokens'])):0) > 0): ?> |
|
| 12 | + <?php if ((isset($this->data['FIDO2Tokens']) ? ((is_array($this->data['FIDO2Tokens']) || $this->data['FIDO2Tokens'] instanceof Countable) ?count($this->data['FIDO2Tokens']) : strlen($this->data['FIDO2Tokens'])) : 0) > 0) : ?> |
|
| 13 | 13 | <div id="currentTokens"> |
| 14 | 14 | <span id='tokencaption'><?php echo htmlspecialchars($this->t('{webauthn:webauthn:tokenList}')); ?></span> |
| 15 | 15 | <ul> |
| 16 | - <?php foreach($this->data['FIDO2Tokens'] as $index => $this->data['token']): ?> |
|
| 17 | - <?php if($this->data['FIDO2AuthSuccessful'] == false or $this->data['FIDO2AuthSuccessful'] != $this->data['token'][0]): ?> |
|
| 16 | + <?php foreach ($this->data['FIDO2Tokens'] as $index => $this->data['token']): ?> |
|
| 17 | + <?php if ($this->data['FIDO2AuthSuccessful'] == false or $this->data['FIDO2AuthSuccessful'] != $this->data['token'][0]): ?> |
|
| 18 | 18 | <li class='othertoken'><?php echo htmlspecialchars($this->data['token'][3]); ?></li> |
| 19 | 19 | <?php else: ?> |
| 20 | 20 | <li class='currenttoken'><?php echo htmlspecialchars($this->data['token'][3]); ?> <?php echo htmlspecialchars($this->t('{webauthn:webauthn:currentToken}')); ?></li> |
| 21 | 21 | <?php endif; ?> |
| 22 | - <?php endforeach;?> |
|
| 22 | + <?php endforeach; ?> |
|
| 23 | 23 | </ul> |
| 24 | 24 | </div> |
| 25 | 25 | <?php endif; ?> |
| 26 | - <?php if((isset($this->data['regURL'])?((is_array($this->data['regURL']) || $this->data['regURL'] instanceof Countable)?count($this->data['regURL']):strlen($this->data['regURL'])):0) > 0): ?> |
|
| 26 | + <?php if ((isset($this->data['regURL']) ? ((is_array($this->data['regURL']) || $this->data['regURL'] instanceof Countable) ?count($this->data['regURL']) : strlen($this->data['regURL'])) : 0) > 0) : ?> |
|
| 27 | 27 | <form id='regform' method='POST' action='<?php echo $this->data['regURL']; ?>'> |
| 28 | 28 | <input type='hidden' id='resp' name='response_id' value='0'/> |
| 29 | 29 | <input type='hidden' id='data' name='attestation_client_data_json' value='nix'/> |
@@ -36,9 +36,9 @@ discard block |
||
| 36 | 36 | value='<?php echo htmlspecialchars($this->t('{webauthn:webauthn:newTokenDefaultName}')); ?> <?php echo htmlspecialchars((new DateTime("now"))->format('Y-m-d')); ?>' /> |
| 37 | 37 | </form> |
| 38 | 38 | <div class='space'></div> |
| 39 | - <?php if((isset($this->data['FIDO2Tokens'])?((is_array($this->data['FIDO2Tokens']) || $this->data['FIDO2Tokens'] instanceof Countable)?count($this->data['FIDO2Tokens']):strlen($this->data['FIDO2Tokens'])):0) > 0): ?> |
|
| 40 | - <?php foreach($this->data['FIDO2Tokens'] as $index => $this->data['token']): ?> |
|
| 41 | - <?php if($this->data['FIDO2AuthSuccessful'] != $this->data['token'][0]): ?> |
|
| 39 | + <?php if ((isset($this->data['FIDO2Tokens']) ? ((is_array($this->data['FIDO2Tokens']) || $this->data['FIDO2Tokens'] instanceof Countable) ?count($this->data['FIDO2Tokens']) : strlen($this->data['FIDO2Tokens'])) : 0) > 0) : ?> |
|
| 40 | + <?php foreach ($this->data['FIDO2Tokens'] as $index => $this->data['token']): ?> |
|
| 41 | + <?php if ($this->data['FIDO2AuthSuccessful'] != $this->data['token'][0]): ?> |
|
| 42 | 42 | <form class='deleteform' id='delete-<?php echo htmlspecialchars($index); ?>' method='POST' action='<?php echo $this->data['delURL']; ?>'> |
| 43 | 43 | <input type='hidden' id='credId-<?php echo htmlspecialchars($index); ?>' name='credId' value='<?php echo htmlspecialchars($this->data['token'][0]); ?>'/> |
| 44 | 44 | <button type='submit' id='submit-<?php echo htmlspecialchars($index); ?>' name='submit' value='DELETE'> |
@@ -46,7 +46,7 @@ discard block |
||
| 46 | 46 | </button> |
| 47 | 47 | </form> |
| 48 | 48 | <?php endif; ?> |
| 49 | - <?php endforeach;?> |
|
| 49 | + <?php endforeach; ?> |
|
| 50 | 50 | <div class='space'></div> |
| 51 | 51 | <form id='nevermind' method='POST' action='<?php echo $this->data['delURL']; ?>'> |
| 52 | 52 | <button type='submit' id='submit-nevermind' name='submit' value='NEVERMIND'> |
@@ -55,7 +55,7 @@ discard block |
||
| 55 | 55 | </form> |
| 56 | 56 | <?php endif; ?> |
| 57 | 57 | <?php endif; ?> |
| 58 | - <?php if((isset($this->data['authURL'])?((is_array($this->data['authURL']) || $this->data['authURL'] instanceof Countable)?count($this->data['authURL']):strlen($this->data['authURL'])):0) > 0): ?> |
|
| 58 | + <?php if ((isset($this->data['authURL']) ? ((is_array($this->data['authURL']) || $this->data['authURL'] instanceof Countable) ?count($this->data['authURL']) : strlen($this->data['authURL'])) : 0) > 0) : ?> |
|
| 59 | 59 | <form id='authform' method='POST' action='<?php echo $this->data['authURL']; ?>'> |
| 60 | 60 | <input type='hidden' id='resp' name='response_id' value='0'/> |
| 61 | 61 | <input type='hidden' id='data_raw_b64' name='client_data_raw' value='garnix'/> |
@@ -67,7 +67,7 @@ discard block |
||
| 67 | 67 | <input type='hidden' id='operation' name='operation' value='AUTH'/> |
| 68 | 68 | <input type='checkbox' id='credentialChange' name='credentialChange'> |
| 69 | 69 | <label for='credentialChange'> |
| 70 | - <?php if((isset($this->data['FIDO2Tokens'])?((is_array($this->data['FIDO2Tokens']) || $this->data['FIDO2Tokens'] instanceof Countable)?count($this->data['FIDO2Tokens']):strlen($this->data['FIDO2Tokens'])):0) < 2): ?> |
|
| 70 | + <?php if ((isset($this->data['FIDO2Tokens']) ? ((is_array($this->data['FIDO2Tokens']) || $this->data['FIDO2Tokens'] instanceof Countable) ?count($this->data['FIDO2Tokens']) : strlen($this->data['FIDO2Tokens'])) : 0) < 2) : ?> |
|
| 71 | 71 | <?php echo htmlspecialchars($this->t('{webauthn:webauthn:wantsAdd}')); ?> |
| 72 | 72 | <?php else: ?> |
| 73 | 73 | <?php echo htmlspecialchars($this->t('{webauthn:webauthn:wantsModification}')); ?> |
@@ -130,7 +130,7 @@ |
||
| 130 | 130 | $frontendData = []; |
| 131 | 131 | $frontendData['challengeEncoded'] = $challengeEncoded; |
| 132 | 132 | $frontendData['state'] = []; |
| 133 | - foreach (['Source', 'FIDO2Scope','FIDO2Username','FIDO2Displayname','requestTokenModel'] as $stateItem) { |
|
| 133 | + foreach (['Source', 'FIDO2Scope', 'FIDO2Username', 'FIDO2Displayname', 'requestTokenModel'] as $stateItem) { |
|
| 134 | 134 | $frontendData['state'][$stateItem] = $state[$stateItem]; |
| 135 | 135 | } |
| 136 | 136 | |
@@ -196,7 +196,7 @@ |
||
| 196 | 196 | $id = $this->authState::saveState($state, 'webauthn:request'); |
| 197 | 197 | if ($debugEnabled === true) { |
| 198 | 198 | $response = new RunnableResponse( |
| 199 | - function ($regObject, $id) { |
|
| 199 | + function($regObject, $id) { |
|
| 200 | 200 | echo $regObject->getDebugBuffer(); |
| 201 | 201 | echo $regObject->getValidateBuffer(); |
| 202 | 202 | echo "<form id='regform' method='POST' action='" . |
@@ -172,7 +172,7 @@ |
||
| 172 | 172 | |
| 173 | 173 | if ($debugEnabled) { |
| 174 | 174 | $response = new RunnableResponse( |
| 175 | - function ($authObject, $state) { |
|
| 175 | + function($authObject, $state) { |
|
| 176 | 176 | echo $authObject->getDebugBuffer(); |
| 177 | 177 | echo $authObject->getValidateBuffer(); |
| 178 | 178 | echo "Debug mode, not continuing to " . ($state['FIDO2WantsRegister'] ? "credential registration page." : "destination."); |
@@ -7,7 +7,7 @@ |
||
| 7 | 7 | <?php $this->includeAtTemplateBase('includes/header.php'); ?> |
| 8 | 8 | |
| 9 | 9 | <h1><?php echo htmlspecialchars($this->t('{webauthn:webauthn:heading1}')); ?></h1> |
| 10 | - <?php if((isset($this->data['authURL'])?((is_array($this->data['authURL']) || $this->data['authURL'] instanceof Countable)?count($this->data['authURL']):strlen($this->data['authURL'])):0) > 0): ?> |
|
| 10 | + <?php if ((isset($this->data['authURL']) ? ((is_array($this->data['authURL']) || $this->data['authURL'] instanceof Countable) ?count($this->data['authURL']) : strlen($this->data['authURL'])) : 0) > 0) : ?> |
|
| 11 | 11 | <form id='authform' method='POST' action='<?php echo $this->data['authURL']; ?>'> |
| 12 | 12 | <input type='hidden' id='resp' name='response_id' value='0'/> |
| 13 | 13 | <input type='hidden' id='data' name='attestation_client_data_json' value='nix'/> |
@@ -23,7 +23,7 @@ discard block |
||
| 23 | 23 | */ |
| 24 | 24 | public const PK_ALGORITHM_ECDSA = "-7"; |
| 25 | 25 | public const PK_ALGORITHM_RSA = "-257"; |
| 26 | - public const PK_ALGORITHM = [ self::PK_ALGORITHM_ECDSA, self::PK_ALGORITHM_RSA ]; |
|
| 26 | + public const PK_ALGORITHM = [self::PK_ALGORITHM_ECDSA, self::PK_ALGORITHM_RSA]; |
|
| 27 | 27 | public const AAGUID_ASSURANCE_LEVEL_NONE = 0; |
| 28 | 28 | public const AAGUID_ASSURANCE_LEVEL_SELF = 1; |
| 29 | 29 | public const AAGUID_ASSURANCE_LEVEL_BASIC = 2; |
@@ -184,7 +184,7 @@ discard block |
||
| 184 | 184 | // Found the root CA with Google, see above, and will perform chain validation even if the spec doesn't say so. |
| 185 | 185 | |
| 186 | 186 | // first, clear the openssl error backlog. We might need error data in case things go sideways. |
| 187 | - while(openssl_error_string() !== false); |
|
| 187 | + while (openssl_error_string() !== false); |
|
| 188 | 188 | |
| 189 | 189 | $stmtDecoded = $attestationArray['attStmt']; |
| 190 | 190 | if (!isset($stmtDecoded['x5c'])) { |
@@ -200,7 +200,7 @@ discard block |
||
| 200 | 200 | !isset($certProps['extensions']['1.2.840.113635.100.8.2']) |
| 201 | 201 | || empty($certProps['extensions']['1.2.840.113635.100.8.2']) |
| 202 | 202 | ) { |
| 203 | - $this->fail( "The required nonce value is not present in the OID." ); |
|
| 203 | + $this->fail("The required nonce value is not present in the OID."); |
|
| 204 | 204 | } |
| 205 | 205 | $toCompare = substr($certProps['extensions']['1.2.840.113635.100.8.2'], 6); |
| 206 | 206 | if ($nonce != $toCompare) { |
@@ -208,7 +208,7 @@ discard block |
||
| 208 | 208 | } |
| 209 | 209 | |
| 210 | 210 | // chain validation first |
| 211 | - foreach ( $stmtDecoded['x5c'] as $runIndex => $runCert ) { |
|
| 211 | + foreach ($stmtDecoded['x5c'] as $runIndex => $runCert) { |
|
| 212 | 212 | if (isset($stmtDecoded['x5c'][$runIndex + 1])) { // there is a next cert, so follow the chain |
| 213 | 213 | $certResource = openssl_x509_read(Utils\Crypto::der2pem($runCert)); |
| 214 | 214 | $signerPubKey = openssl_pkey_get_public(Utils\Crypto::der2pem($stmtDecoded['x5c'][$runIndex + 1])); |
@@ -222,7 +222,7 @@ discard block |
||
| 222 | 222 | $certResource = openssl_x509_read(Utils\Crypto::der2pem($runCert)); |
| 223 | 223 | $signerPubKey = openssl_pkey_get_public($APPLE_WEBAUTHN_ROOT_CA); |
| 224 | 224 | if (openssl_x509_verify($certResource, $signerPubKey) != 1) { |
| 225 | - $this->fail("Error during root CA validation of the attestation chain certificate, which is ".Utils\Crypto::der2pem($runCert)); |
|
| 225 | + $this->fail("Error during root CA validation of the attestation chain certificate, which is " . Utils\Crypto::der2pem($runCert)); |
|
| 226 | 226 | } |
| 227 | 227 | } |
| 228 | 228 | } |
@@ -254,9 +254,9 @@ discard block |
||
| 254 | 254 | // § 8.8 Bullet 5 |
| 255 | 255 | $credentialDetails = openssl_pkey_get_details($credentialResource); |
| 256 | 256 | $keyDetails = openssl_pkey_get_details($keyResource); |
| 257 | - if ( $credentialDetails['bits'] != $keyDetails['bits'] || |
|
| 258 | - $credentialDetails['key'] != $keyDetails['key'] || |
|
| 259 | - $credentialDetails['type'] != $keyDetails['type'] ) { |
|
| 257 | + if ($credentialDetails['bits'] != $keyDetails['bits'] || |
|
| 258 | + $credentialDetails['key'] != $keyDetails['key'] || |
|
| 259 | + $credentialDetails['type'] != $keyDetails['type']) { |
|
| 260 | 260 | $this->fail("The credential public key does not match the certificate public key in attestationData. (" |
| 261 | 261 | . $credentialDetails['key'] |
| 262 | 262 | . " - " |