UNPKG

@julesl23/s5js

Version:

Enhanced TypeScript SDK for S5 decentralized storage with path-based API, media processing, and directory utilities

44 lines 1.47 kB
import { RECORD_TYPE_REGISTRY_ENTRY } from "../constants.js"; import { decodeLittleEndian, encodeLittleEndian } from "../util/little_endian.js"; export function serializeRegistryEntry(entry) { return new Uint8Array([ RECORD_TYPE_REGISTRY_ENTRY, ...entry.pk, ...encodeLittleEndian(entry.revision, 8), entry.data.length, ...entry.data, ...entry.signature, ]); } export function deserializeRegistryEntry(data) { const dataLength = data[42]; return { pk: data.subarray(1, 34), revision: decodeLittleEndian(data.subarray(34, 42)), data: data.subarray(43, 43 + dataLength), signature: data.subarray(43 + dataLength), }; } export async function createRegistryEntry(keyPair, data, revision, crypto) { const signature = await crypto.signEd25519(keyPair, new Uint8Array([ RECORD_TYPE_REGISTRY_ENTRY, ...encodeLittleEndian(revision, 8), data.length, // 1 byte ...data, ])); return { pk: keyPair.publicKey, revision: revision, data: data, signature: signature, }; } export function verifyRegistryEntry(entry, crypto) { return crypto.verifyEd25519(entry.pk.subarray(1), new Uint8Array([ RECORD_TYPE_REGISTRY_ENTRY, ...encodeLittleEndian(entry.revision, 8), entry.data.length, // 1 byte ...entry.data, ]), entry.signature); } //# sourceMappingURL=entry.js.map