PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / trunk
JetBackup – Backup, Restore & Migrate vtrunk
3.1.22.4 3.1.22.3 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.8.1 1.4.9 1.5.0 1.5.1 1.5.1.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.10 1.6.11 1.6.12 1.6.13 1.6.15 1.6.5.1 1.6.8.8 1.6.9 1.6.9.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7.5 2.0.8.7 2.0.9.11 2.0.9.14 2.0.9.15 2.0.9.6 2.0.9.7 2.0.9.9 3.1.10.7 3.1.11.1 3.1.12.3 3.1.13.4 3.1.14.17 3.1.15.4 3.1.16.1 3.1.17.5 3.1.18.10 3.1.18.8 3.1.18.9 3.1.19.8 3.1.20.3 3.1.21.3 3.1.7.9 3.1.9.2 trunk 1.1.90 1.1.91 1.2.0 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2
backup / src / JetBackup / 3rdparty / phpseclib3 / Crypt / DSA / Formats / Signature / SSH2.php
backup / src / JetBackup / 3rdparty / phpseclib3 / Crypt / DSA / Formats / Signature Last commit date
.htaccess 1 year ago ASN1.php 1 year ago Raw.php 1 year ago SSH2.php 1 year ago index.html 1 year ago web.config 1 year ago
SSH2.php
72 lines
1 <?php
2
3 /**
4 * SSH2 Signature Handler
5 *
6 * PHP version 5
7 *
8 * Handles signatures in the format used by SSH2
9 *
10 * @author Jim Wigginton <terrafrost@php.net>
11 * @copyright 2016 Jim Wigginton
12 * @license http://www.opensource.org/licenses/mit-license.html MIT License
13 * @link http://phpseclib.sourceforge.net
14 */
15
16 declare(strict_types=1);
17
18 namespace phpseclib3\Crypt\DSA\Formats\Signature;
19
20 use phpseclib3\Common\Functions\Strings;
21 use phpseclib3\Math\BigInteger;
22
23 /**
24 * SSH2 Signature Handler
25 *
26 * @author Jim Wigginton <terrafrost@php.net>
27 */
28 abstract class SSH2
29 {
30 /**
31 * Loads a signature
32 */
33 public static function load(string $sig)
34 {
35 if (!is_string($sig)) {
36 return false;
37 }
38
39 $result = Strings::unpackSSH2('ss', $sig);
40 if ($result === false) {
41 return false;
42 }
43 [$type, $blob] = $result;
44 if ($type != 'ssh-dss' || strlen($blob) != 40) {
45 return false;
46 }
47
48 return [
49 'r' => new BigInteger(substr($blob, 0, 20), 256),
50 's' => new BigInteger(substr($blob, 20), 256),
51 ];
52 }
53
54 /**
55 * Returns a signature in the appropriate format
56 *
57 * @return string
58 */
59 public static function save(BigInteger $r, BigInteger $s)
60 {
61 if ($r->getLength() > 160 || $s->getLength() > 160) {
62 return false;
63 }
64 return Strings::packSSH2(
65 'ss',
66 'ssh-dss',
67 str_pad($r->toBytes(), 20, "\0", STR_PAD_LEFT) .
68 str_pad($s->toBytes(), 20, "\0", STR_PAD_LEFT)
69 );
70 }
71 }
72