[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
1 <?php 2 3 declare(strict_types=1); 4 5 /* 6 * The MIT License (MIT) 7 * 8 * Copyright (c) 2014-2019 Spomky-Labs 9 * 10 * This software may be modified and distributed under the terms 11 * of the MIT license. See the LICENSE file for details. 12 */ 13 14 namespace Webauthn\Util; 15 16 use Cose\Algorithm\Signature\ECDSA; 17 use Cose\Algorithm\Signature\Signature; 18 19 /** 20 * This class fixes the signature of the ECDSA based algorithms. 21 * 22 * @internal 23 * 24 * @see https://www.w3.org/TR/webauthn/#signature-attestation-types 25 */ 26 abstract class CoseSignatureFixer 27 { 28 public static function fix(string $signature, Signature $algorithm): string 29 { 30 switch ($algorithm::identifier()) { 31 case ECDSA\ES256K::ID: 32 case ECDSA\ES256::ID: 33 if (64 === mb_strlen($signature, '8bit')) { 34 return $signature; 35 } 36 37 return ECDSA\ECSignature::fromAsn1($signature, 64); //TODO: fix this hardcoded value by adding a dedicated method for the algorithms 38 case ECDSA\ES384::ID: 39 if (96 === mb_strlen($signature, '8bit')) { 40 return $signature; 41 } 42 43 return ECDSA\ECSignature::fromAsn1($signature, 96); 44 case ECDSA\ES512::ID: 45 if (132 === mb_strlen($signature, '8bit')) { 46 return $signature; 47 } 48 49 return ECDSA\ECSignature::fromAsn1($signature, 132); 50 } 51 52 return $signature; 53 } 54 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Sep 7 05:41:13 2022 | Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer |