HEX
Server: LiteSpeed
System: Linux cpir1.prohostdns.com 4.18.0-553.123.2.lve.el8.x86_64 #1 SMP Thu May 7 23:17:13 UTC 2026 x86_64
User: pelakir (2976)
PHP: 8.2.31
Disabled: exec, shell_exec, system, passthru, proc_open, proc_close, proc_terminate, proc_get_status, popen, pclose, pcntl_exec
Upload Files
File: /home/pelakir/www/wp-content/plugins/digits/libphonenumber/vendor/starkbank/ecdsa/src/publickey.php
<?php

namespace EllipticCurve;


class PublicKey {
    
    function __construct ($pem) {
        $this->pem = $pem;
        $this->openSslPublicKey = openssl_get_publickey($pem);
    }

    function toString () {
        return base64_encode($this->toDer());
    }

    function toDer () {
        $pem = $this->toPem();
    
        $lines = array();
        foreach(explode("\n", $pem) as $value) { 
            if (substr($value, 0, 5) !== "-----") {
                array_push($lines, $value);
            }
        }

        $pem_data = join("", $lines);

        return base64_decode($pem_data);
    }

    function toPem () {
        return $this->pem;
    }

    static function fromPem ($str) {
        $rebuilt = array();
        foreach(explode("\n", $str) as $line) { 
            $line = trim($line);
            if (strlen($line) > 1) {
                array_push($rebuilt, $line);
            }
        };
        $rebuilt = join("\n", $rebuilt) . "\n";
        return new PublicKey($rebuilt);
    }

    static function fromDer ($str) {
        $pem_data = base64_encode($str);
        $pem = "-----BEGIN PUBLIC KEY-----\n" . substr($pem_data, 0, 64) . "\n" . substr($pem_data, 64) . "\n-----END PUBLIC KEY-----\n";
        return new PublicKey($pem);
    }

    static function fromString ($str) {
        return PublicKey::fromDer(base64_decode($str));
    }

}

?>