[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/libraries/vendor/phpseclib/phpseclib/phpseclib/Crypt/Common/Traits/ -> Fingerprint.php (source)

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


Generated: Wed Sep 7 05:41:13 2022 Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer