@airgap/crypto
Version:
The @airgap/crypto packages provides common crypto functionalities.
48 lines • 2.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.newCryptoDerivativeFromNode = exports.newCryptoDerivativeFromKeys = exports.newDerivationNodeFromKeys = exports.newDerivationNodeFromDerivative = void 0;
function newDerivationNodeFromDerivative(derivative) {
return {
depth: derivative.depth,
parentFingerprint: derivative.parentFingerprint,
index: derivative.index,
chainCode: Buffer.from(derivative.chainCode, 'hex'),
secretKey: Buffer.from(derivative.secretKey, 'hex'),
publicKey: Buffer.from(derivative.publicKey, 'hex')
};
}
exports.newDerivationNodeFromDerivative = newDerivationNodeFromDerivative;
function newDerivationNodeFromKeys(secretKey, publicKey) {
if (secretKey.depth !== publicKey.depth ||
secretKey.parentFingerprint !== publicKey.parentFingerprint ||
secretKey.index !== publicKey.index ||
!secretKey.chainCode.equals(publicKey.chainCode)) {
throw new Error('Derivation keys mismatch');
}
return {
depth: secretKey.depth,
parentFingerprint: secretKey.parentFingerprint,
index: secretKey.index,
chainCode: secretKey.chainCode,
secretKey: secretKey.key,
publicKey: publicKey.key
};
}
exports.newDerivationNodeFromKeys = newDerivationNodeFromKeys;
function newCryptoDerivativeFromKeys(secretKey, publicKey) {
var node = newDerivationNodeFromKeys(secretKey, publicKey);
return newCryptoDerivativeFromNode(node);
}
exports.newCryptoDerivativeFromKeys = newCryptoDerivativeFromKeys;
function newCryptoDerivativeFromNode(node) {
return {
depth: node.depth,
parentFingerprint: node.parentFingerprint,
index: node.index,
chainCode: node.chainCode.toString('hex'),
secretKey: node.secretKey.toString('hex'),
publicKey: node.publicKey.toString('hex')
};
}
exports.newCryptoDerivativeFromNode = newCryptoDerivativeFromNode;
//# sourceMappingURL=factory.js.map