UNPKG

@polkadot/util-keyring

Version:
35 lines (24 loc) 1.25 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = encode; var _concat = _interopRequireDefault(require("@polkadot/util/u8a/concat")); var _fixLength = _interopRequireDefault(require("@polkadot/util/u8a/fixLength")); var _fromString = _interopRequireDefault(require("@polkadot/util/u8a/fromString")); var _encrypt = _interopRequireDefault(require("@polkadot/util-crypto/nacl/encrypt")); var _defaults = require("./defaults"); // Copyright 2017-2018 @polkadot/util-keyring authors & contributors // This software may be modified and distributed under the terms // of the ISC license. See the LICENSE file for details. function encode(secretKey, passphrase) { const encoded = (0, _concat.default)(_defaults.PKCS8_HEADER, secretKey.subarray(0, 32), _defaults.PKCS8_DIVIDER, secretKey.subarray(32, 64)); if (!passphrase) { return encoded; } const _naclEncrypt = (0, _encrypt.default)(encoded, (0, _fixLength.default)((0, _fromString.default)(passphrase), 256, true)), encrypted = _naclEncrypt.encrypted, nonce = _naclEncrypt.nonce; return (0, _concat.default)(nonce, encrypted); }