[ 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-2020 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 Jose\Component\Core\Util; 15 16 /** 17 * @internal 18 */ 19 class Hash 20 { 21 /** 22 * Hash Parameter. 23 * 24 * @var string 25 */ 26 private $hash; 27 28 /** 29 * DER encoding T. 30 * 31 * @var string 32 */ 33 private $t; 34 35 /** 36 * Hash Length. 37 * 38 * @var int 39 */ 40 private $length; 41 42 private function __construct(string $hash, int $length, string $t) 43 { 44 $this->hash = $hash; 45 $this->length = $length; 46 $this->t = $t; 47 } 48 49 /** 50 * @return Hash 51 */ 52 public static function sha1(): self 53 { 54 return new self('sha1', 20, "\x30\x21\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14"); 55 } 56 57 /** 58 * @return Hash 59 */ 60 public static function sha256(): self 61 { 62 return new self('sha256', 32, "\x30\x31\x30\x0d\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20"); 63 } 64 65 /** 66 * @return Hash 67 */ 68 public static function sha384(): self 69 { 70 return new self('sha384', 48, "\x30\x41\x30\x0d\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x02\x05\x00\x04\x30"); 71 } 72 73 /** 74 * @return Hash 75 */ 76 public static function sha512(): self 77 { 78 return new self('sha512', 64, "\x30\x51\x30\x0d\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x03\x05\x00\x04\x40"); 79 } 80 81 public function getLength(): int 82 { 83 return $this->length; 84 } 85 86 /** 87 * Compute the HMAC. 88 */ 89 public function hash(string $text): string 90 { 91 return hash($this->hash, $text, true); 92 } 93 94 public function name(): string 95 { 96 return $this->hash; 97 } 98 99 public function t(): string 100 { 101 return $this->t; 102 } 103 }
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 |