| @@ 691-707 (lines=17) @@ | ||
| 688 | * @return string |
|
| 689 | * @throws TypeError |
|
| 690 | */ |
|
| 691 | public static function generichash_final($ctx, $outlen = 32) |
|
| 692 | { |
|
| 693 | if (!is_string($ctx)) { |
|
| 694 | throw new TypeError('Context must be a string'); |
|
| 695 | } |
|
| 696 | $out = new SplFixedArray($outlen); |
|
| 697 | ||
| 698 | /** @var SplFixedArray $context */ |
|
| 699 | $context = ParagonIE_Sodium_Core_BLAKE2b::stringToContext($ctx); |
|
| 700 | ||
| 701 | /** @var SplFixedArray $out */ |
|
| 702 | $out = ParagonIE_Sodium_Core_BLAKE2b::finish($context, $out); |
|
| 703 | ||
| 704 | /** @var array<int, int> */ |
|
| 705 | $outArray = $out->toArray(); |
|
| 706 | return ParagonIE_Sodium_Core_Util::intArrayToString($outArray); |
|
| 707 | } |
|
| 708 | ||
| 709 | /** |
|
| 710 | * Initialize a hashing context for BLAKE2b. |
|
| @@ 676-692 (lines=17) @@ | ||
| 673 | * @return string |
|
| 674 | * @throws TypeError |
|
| 675 | */ |
|
| 676 | public static function generichash_final($ctx, $outlen = 32) |
|
| 677 | { |
|
| 678 | if (!is_string($ctx)) { |
|
| 679 | throw new TypeError('Context must be a string'); |
|
| 680 | } |
|
| 681 | $out = new SplFixedArray($outlen); |
|
| 682 | ||
| 683 | /** @var SplFixedArray $context */ |
|
| 684 | $context = ParagonIE_Sodium_Core32_BLAKE2b::stringToContext($ctx); |
|
| 685 | ||
| 686 | /** @var SplFixedArray $out */ |
|
| 687 | $out = ParagonIE_Sodium_Core32_BLAKE2b::finish($context, $out); |
|
| 688 | ||
| 689 | /** @var array<int, int> */ |
|
| 690 | $outArray = $out->toArray(); |
|
| 691 | return ParagonIE_Sodium_Core32_Util::intArrayToString($outArray); |
|
| 692 | } |
|
| 693 | ||
| 694 | /** |
|
| 695 | * Initialize a hashing context for BLAKE2b. |
|