public static function calculateX509Fingerprint($x509cert, $alg = 'sha1')
    {
        assert('is_string($x509cert)');

        $arCert = explode("\n", $x509cert);
        $data = '';
        $inData = false;

        foreach ($arCert as $curData) {
            if (! $inData) {
                if (strncmp($curData, '-----BEGIN CERTIFICATE', 22) == 0) {
                    $inData = true;
                } elseif ((strncmp($curData, '-----BEGIN PUBLIC KEY', 21) == 0) || (strncmp($curData, '-----BEGIN RSA PRIVATE KEY', 26) == 0)) {
                    /* This isn't an X509 certificate. */
                    return null;
                }
            } else {
                if (strncmp($curData, '-----END CERTIFICATE', 20) == 0) {
                    break;
                }
                $data .= trim($curData);
            }
        }

        if (empty($data)) {
            return null;
        }

        $decodedData = base64_decode($data);

        switch ($alg) {
            case 'sha512':
            case 'sha384':
            case 'sha256':
                $fingerprint = hash($alg, $decodedData, false);
                break;
            case 'sha1':
            default:
                $fingerprint = strtolower(sha1($decodedData));
                break;
        }
        return $fingerprint;
    }
public static function calculateX509Fingerprint($x509cert, $alg = 'sha1')
    {
        assert('is_string($x509cert)');

        $arCert = explode("\n", $x509cert);
        $data = '';
        $inData = false;

        foreach ($arCert as $curData) {
            if (! $inData) {
                if (strncmp($curData, '-----BEGIN CERTIFICATE', 22) == 0) {
                    $inData = true;
                } elseif ((strncmp($curData, '-----BEGIN PUBLIC KEY', 21) == 0) || (strncmp($curData, '-----BEGIN RSA PRIVATE KEY', 26) == 0)) {
                    /* This isn't an X509 certificate. */
                    return null;
                }
            } else {
                if (strncmp($curData, '-----END CERTIFICATE', 20) == 0) {
                    break;
                }
                $data .= trim($curData);
            }
        }

        if (empty($data)) {
            return null;
        }

        $decodedData = base64_decode($data);

        switch ($alg) {
            case 'sha512':
            case 'sha384':
            case 'sha256':
                $fingerprint = hash($alg, $decodedData, false);
                break;
            case 'sha1':
            default:
                $fingerprint = strtolower(sha1($decodedData));
                break;
        }
        return $fingerprint;
    }
public static function calculateX509Fingerprint ( $ x509cert , $ alg = 'sha1' ) { assert ( 'is_string($x509cert)' ) ; $ arCert = explode ( "\n" , $ x509cert ) ; $ data = '' ; $ inData = false ; foreach ( $ arCert as $ curData ) { if ( ! $ inData ) { if ( strncmp ( $ curData , '-----BEGIN CERTIFICATE' , 22 ) == 0 ) { $ inData = true ; } elseif ( ( strncmp ( $ curData , '-----BEGIN PUBLIC KEY' , 21 ) == 0 ) || ( strncmp ( $ curData , '-----BEGIN RSA PRIVATE KEY' , 26 ) == 0 ) ) { /* This isn't an X509 certificate. */ return null ; } } else { if ( strncmp ( $ curData , '-----END CERTIFICATE' , 20 ) == 0 ) { break ; } $ data .= trim ( $ curData ) ; } } if ( empty ( $ data ) ) { return null ; } $ decodedData = base64_decode ( $ data ) ; switch ( $ alg ) { case 'sha512' : case 'sha384' : case 'sha256' : $ fingerprint = hash ( $ alg , $ decodedData , false ) ; break ; case 'sha1' : default : $ fingerprint = strtolower ( sha1 ( $ decodedData ) ) ; break ; } return $ fingerprint ; }
Calculates the fingerprint of a x509cert.

@param string $x509cert x509 cert
@param string $alg

@return null|string Formatted fingerprint
Calculates the fingerprint of a x509cert .