function getPublicKeyFingerprint($algorithm = 'md5')
    {
        if (empty($this->modulus) || empty($this->publicExponent)) {
            return false;
        }

        $modulus = $this->modulus->toBytes(true);
        $publicExponent = $this->publicExponent->toBytes(true);

        $RSAPublicKey = pack('Na*Na*Na*', strlen('ssh-rsa'), 'ssh-rsa', strlen($publicExponent), $publicExponent, strlen($modulus), $modulus);

        switch ($algorithm) {
            case 'sha256':
                $hash = new Hash('sha256');
                $base = base64_encode($hash->hash($RSAPublicKey));
                return substr($base, 0, strlen($base) - 1);
            case 'md5':
                return substr(chunk_split(md5($RSAPublicKey), 2, ':'), 0, -1);
            default:
                return false;
        }
    }
function getPublicKeyFingerprint($algorithm = 'md5')
    {
        if (empty($this->modulus) || empty($this->publicExponent)) {
            return false;
        }

        $modulus = $this->modulus->toBytes(true);
        $publicExponent = $this->publicExponent->toBytes(true);

        $RSAPublicKey = pack('Na*Na*Na*', strlen('ssh-rsa'), 'ssh-rsa', strlen($publicExponent), $publicExponent, strlen($modulus), $modulus);

        switch ($algorithm) {
            case 'sha256':
                $hash = new Hash('sha256');
                $base = base64_encode($hash->hash($RSAPublicKey));
                return substr($base, 0, strlen($base) - 1);
            case 'md5':
                return substr(chunk_split(md5($RSAPublicKey), 2, ':'), 0, -1);
            default:
                return false;
        }
    }
function getPublicKeyFingerprint ( $ algorithm = 'md5' ) { if ( empty ( $ this -> modulus ) || empty ( $ this -> publicExponent ) ) { return false ; } $ modulus = $ this -> modulus -> toBytes ( true ) ; $ publicExponent = $ this -> publicExponent -> toBytes ( true ) ; $ RSAPublicKey = pack ( 'Na*Na*Na*' , strlen ( 'ssh-rsa' ) , 'ssh-rsa' , strlen ( $ publicExponent ) , $ publicExponent , strlen ( $ modulus ) , $ modulus ) ; switch ( $ algorithm ) { case 'sha256' : $ hash = new Hash ( 'sha256' ) ; $ base = base64_encode ( $ hash -> hash ( $ RSAPublicKey ) ) ; return substr ( $ base , 0 , strlen ( $ base ) - 1 ) ; case 'md5' : return substr ( chunk_split ( md5 ( $ RSAPublicKey ) , 2 , ':' ) , 0 , - 1 ) ; default : return false ; } }
Returns the public key's fingerprint

The public key's fingerprint is returned, which is equivalent to running `ssh-keygen -lf rsa.pub`. If there is
no public key currently loaded, false is returned.
Example output (md5): "c1:b1:30:29:d7:b8:de:6c:97:77:10:d7:46:41:63:87" (as specified by RFC 4716)

@access public
@param string $algorithm The hashing algorithm to be used. Valid options are 'md5' and 'sha256'. False is returned
for invalid values.
@return mixed
Returns the public key s fingerprint