UNPKG

@airgap/crypto

Version:

The @airgap/crypto packages provides common crypto functionalities.

44 lines 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.bytesDecodeNode = exports.bytesEncodeNode = void 0; var factory_1 = require("./factory"); function bytesEncodeNode(node) { return { type: 'bytes', secretKey: encodeKey(node, 'secretKey'), publicKey: encodeKey(node, 'publicKey') }; } exports.bytesEncodeNode = bytesEncodeNode; function encodeKey(node, keyType) { var depth = Buffer.alloc(1); depth.writeUInt8(node.depth); var parentFingerprint = Buffer.alloc(4); parentFingerprint.writeUInt32BE(node.parentFingerprint); var index = Buffer.alloc(4); index.writeUInt32BE(node.index); var chainCode = node.chainCode; var key = node[keyType]; return Buffer.concat([depth, parentFingerprint, index, chainCode, key]); } function bytesDecodeNode(node) { var xprvDecoded = decodeKey(node.secretKey); var xpubDecoded = decodeKey(node.publicKey); return (0, factory_1.newDerivationNodeFromKeys)(xprvDecoded, xpubDecoded); } exports.bytesDecodeNode = bytesDecodeNode; function decodeKey(buffer) { var depth = buffer.readUInt8(0); var parentFingerprint = buffer.readUInt32BE(1); var index = buffer.readUInt32BE(5); var chainCode = buffer.slice(9, 41); var key = buffer.slice(41); return { depth: depth, parentFingerprint: parentFingerprint, index: index, chainCode: chainCode, key: key }; } //# sourceMappingURL=bytes.js.map