aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs/Lib/Multibase.php
diff options
context:
space:
mode:
Diffstat (limited to 'Zotlabs/Lib/Multibase.php')
-rw-r--r--Zotlabs/Lib/Multibase.php34
1 files changed, 34 insertions, 0 deletions
diff --git a/Zotlabs/Lib/Multibase.php b/Zotlabs/Lib/Multibase.php
new file mode 100644
index 000000000..099723630
--- /dev/null
+++ b/Zotlabs/Lib/Multibase.php
@@ -0,0 +1,34 @@
+<?php
+namespace Zotlabs\Lib;
+
+use StephenHill\Base58;
+
+class Multibase {
+
+ protected $key = null;
+
+ 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);
+ }
+
+}