*Add new utilities on plugin api
*add access to compact-encoding via binaryEncoding *add access to b4a via bufferEncoding *add crypto utility with createHash helper
This commit is contained in:
parent
72c663795a
commit
8d52e40f20
|
@ -19,6 +19,7 @@ import {
|
|||
import { get as getSSl, SSLManager } from "./ssl.js";
|
||||
import type { HDKey } from "micro-ed25519-hdkey";
|
||||
import corePlugins from "../plugins";
|
||||
import Util from "./plugin/util";
|
||||
|
||||
let pluginAPIManager: PluginAPIManager;
|
||||
let pluginAPI: PluginAPI;
|
||||
|
@ -51,6 +52,12 @@ class PluginAPI extends EventEmitter2 {
|
|||
this._swarm = swarm;
|
||||
}
|
||||
|
||||
private _util: Util = new Util();
|
||||
|
||||
get util(): Util {
|
||||
return this._util;
|
||||
}
|
||||
|
||||
private _swarm: any;
|
||||
|
||||
get swarm(): any {
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
import Crypto from "./util/crypto";
|
||||
import b4a from "b4a";
|
||||
// @ts-ignore
|
||||
import c from "compact-encoding";
|
||||
|
||||
export default class Util {
|
||||
private _crypto: Crypto = new Crypto();
|
||||
|
||||
get crypto(): Crypto {
|
||||
return this._crypto;
|
||||
}
|
||||
get bufferEncoding(): typeof b4a {
|
||||
return b4a;
|
||||
}
|
||||
|
||||
get binaryEncoding(): typeof c {
|
||||
return c;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
// @ts-ignore
|
||||
import sodium from "sodium-universal";
|
||||
import { getPluginAPI } from "../../plugin";
|
||||
|
||||
export default class Crypto {
|
||||
createHash(data: string): Buffer {
|
||||
const b4a = getPluginAPI().util.bufferEncoding;
|
||||
const buffer = b4a.from(data);
|
||||
let hash = b4a.allocUnsafe(32) as Buffer;
|
||||
sodium.crypto_generichash(hash, buffer);
|
||||
|
||||
return hash;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue