streams/Code/Lib/Multibase.php
Mike Macgirvin 4c4809e787 cleanup
2024-01-02 19:58:31 +11:00

36 lines
908 B
PHP

<?php
namespace Code\Lib;
use StephenHill\Base58;
class Multibase
{
public function __construct()
{
return $this;
}
public function publicKey($key)
{
$base58 = new Base58();
$raw = hex2bin('ed01') . sodium_base642bin($key, SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING);
return 'z' . $base58->encode($raw);
}
public function secretKey($key)
{
$base58 = new Base58();
$raw = hex2bin('8026') . sodium_base642bin($key, SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING);
return 'z' . $base58->encode($raw);
}
public function decode($key, $binary = false)
{
$base58 = new Base58();
$key = substr($key,1);
$raw = $base58->decode($key);
$binaryKey = substr($raw, 2);
return $binary ? $binaryKey : sodium_bin2base64($binaryKey, SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING);
}
}