PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 3.1.13.4
JetBackup – Backup, Restore & Migrate v3.1.13.4
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 / Common / Traits / Fingerprint.php
backup / src / JetBackup / 3rdparty / phpseclib3 / Crypt / Common / Traits Last commit date
.htaccess 9 months ago Fingerprint.php 9 months ago PasswordProtected.php 9 months ago index.html 9 months ago web.config 9 months ago
Fingerprint.php
59 lines
1 <?php
2
3 /**
4 * Fingerprint Trait for Public Keys
5 *
6 * PHP version 5
7 *
8 * @author Jim Wigginton <terrafrost@php.net>
9 * @copyright 2015 Jim Wigginton
10 * @license http://www.opensource.org/licenses/mit-license.html MIT License
11 * @link http://phpseclib.sourceforge.net
12 */
13
14 declare(strict_types=1);
15
16 namespace phpseclib3\Crypt\Common\Traits;
17
18 use phpseclib3\Crypt\Hash;
19
20 /**
21 * Fingerprint Trait for Private Keys
22 *
23 * @author Jim Wigginton <terrafrost@php.net>
24 */
25 trait Fingerprint
26 {
27 /**
28 * Returns the public key's fingerprint
29 *
30 * The public key's fingerprint is returned, which is equivalent to running `ssh-keygen -lf rsa.pub`. If there is
31 * no public key currently loaded, false is returned.
32 * Example output (md5): "c1:b1:30:29:d7:b8:de:6c:97:77:10:d7:46:41:63:87" (as specified by RFC 4716)
33 *
34 * @param string $algorithm The hashing algorithm to be used. Valid options are 'md5' and 'sha256'. False is returned
35 * for invalid values.
36 */
37 public function getFingerprint($algorithm = 'md5')
38 {
39 $type = self::validatePlugin('Keys', 'OpenSSH', 'savePublicKey');
40 if ($type === false) {
41 return false;
42 }
43 $key = $this->toString('OpenSSH', ['binary' => true]);
44 if ($key === false) {
45 return false;
46 }
47 switch ($algorithm) {
48 case 'sha256':
49 $hash = new Hash('sha256');
50 $base = base64_encode($hash->hash($key));
51 return substr($base, 0, strlen($base) - 1);
52 case 'md5':
53 return substr(chunk_split(md5($key), 2, ':'), 0, -1);
54 default:
55 return false;
56 }
57 }
58 }
59