@taquito/ledger-signer 12.1.1 → 13.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/taquito-ledger-signer.js.map +1 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/version.js +2 -2
- package/dist/taquito-ledger-signer.es6.js +3 -3
- package/dist/taquito-ledger-signer.es6.js.map +1 -1
- package/dist/taquito-ledger-signer.umd.js +3 -3
- package/dist/taquito-ledger-signer.umd.js.map +1 -1
- package/package.json +14 -14
- package/src/taquito-ledger-signer.ts +1 -1
- package/src/utils.ts +1 -1
- package/src/version.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taquito-ledger-signer.js","sourceRoot":"","sources":["../../src/taquito-ledger-signer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"taquito-ledger-signer.js","sourceRoot":"","sources":["../../src/taquito-ledger-signer.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAAC,IAAY;IAChD,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/version.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.VERSION = void 0;
|
|
4
4
|
// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
|
|
5
5
|
exports.VERSION = {
|
|
6
|
-
"commitHash": "
|
|
7
|
-
"version": "
|
|
6
|
+
"commitHash": "6d90b3d5e616a6e9b9ad9dd8453b5068e7396fff",
|
|
7
|
+
"version": "13.0.1"
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=version.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { b58cencode, ProhibitedActionError, prefix, Prefix } from '@taquito/utils';
|
|
2
2
|
import { hash } from '@stablelib/blake2b';
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
/******************************************************************************
|
|
5
5
|
Copyright (c) Microsoft Corporation.
|
|
6
6
|
|
|
7
7
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -180,8 +180,8 @@ class PublicKeyHashRetrievalError extends Error {
|
|
|
180
180
|
|
|
181
181
|
// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
|
|
182
182
|
const VERSION = {
|
|
183
|
-
"commitHash": "
|
|
184
|
-
"version": "
|
|
183
|
+
"commitHash": "6d90b3d5e616a6e9b9ad9dd8453b5068e7396fff",
|
|
184
|
+
"version": "13.0.1"
|
|
185
185
|
};
|
|
186
186
|
|
|
187
187
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taquito-ledger-signer.es6.js","sources":["../src/utils.ts","../src/error.ts","../src/version.ts","../src/taquito-ledger-signer.ts"],"sourcesContent":["/*\n * Some code in this file is adapted from sotez\n * Copyright (c) 2018 Andrew Kishino\n */\n\nimport { DerivationType } from './taquito-ledger-signer';\n\nconst MAX_CHUNK_SIZE = 230;\n\n/**\n *\n * @description Convert the path to a buffer that will be used as LC and CDATA in the APDU send to the ledger device (https://github.com/obsidiansystems/ledger-app-tezos/blob/master/APDUs.md)\n *\n * @param path The ledger derivation path (default is \"44'/1729'/0'/0'\")\n * @returns A buffer where the first element is the length of the path (default is 4), then 3 bytes for each number of the path to which is added 0x8000000\n */\nexport function transformPathToBuffer(path: string): Buffer {\n const result: any[] = [];\n const components = path.split('/');\n components.forEach((element) => {\n let toNumber = parseInt(element, 10);\n if (Number.isNaN(toNumber)) {\n return;\n }\n if (element.length > 1 && element[element.length - 1] === \"'\") {\n toNumber += 0x80000000;\n }\n result.push(toNumber);\n });\n const buffer = Buffer.alloc(1 + result.length * 4);\n buffer[0] = result.length;\n result.forEach((element, index) => {\n buffer.writeUInt32BE(element, 1 + 4 * index);\n });\n return buffer;\n}\n\n/**\n *\n * @description Converts uncompressed ledger key to standard tezos binary representation\n */\nexport function compressPublicKey(publicKey: Buffer, curve: DerivationType) {\n if (curve === 0x00) {\n publicKey = publicKey.slice(1);\n } else {\n publicKey[0] = 0x02 + (publicKey[64] & 0x01);\n publicKey = publicKey.slice(0, 33);\n }\n return publicKey;\n}\n\nexport function appendWatermark(bytes: string, watermark?: Uint8Array): string {\n let transactionHex = bytes;\n if (typeof watermark !== 'undefined') {\n const hexWatermark = Buffer.from(watermark).toString('hex');\n transactionHex = hexWatermark.concat(bytes);\n }\n return transactionHex;\n}\n\n/**\n *\n * @description In order not to exceed the data length allowed by the Ledger device, split the operation into buffers of 230 bytes (max) and add them to the message to send to the Ledger\n * @param messageToSend The message to send to the Ledger device\n * @param operation The operation which will be chunk if its length is over 230 bytes\n * @returns The instruction to send to the Ledger device\n */\nexport function chunkOperation(messageToSend: any, operation: Buffer) {\n let offset = 0;\n while (offset !== operation.length) {\n const chunkSize =\n offset + MAX_CHUNK_SIZE >= operation.length ? operation.length - offset : MAX_CHUNK_SIZE;\n const buff = Buffer.alloc(chunkSize);\n operation.copy(buff, 0, offset, offset + chunkSize);\n messageToSend.push(buff);\n offset += chunkSize;\n }\n return messageToSend;\n}\n\n/**\n *\n * @description Verify if the signature returned by the ledger for tz2 and tz3 is valid\n * @param response The signature returned by the Ledger (return from the signWithLedger function)\n * @returns True if valid, false otherwise\n */\nexport function validateResponse(response: Buffer): boolean {\n let valid = true;\n if (response[0] !== 0x31 && response[0] !== 0x30) {\n valid = false;\n }\n if (response[1] + 4 !== response.length) {\n valid = false;\n }\n if (response[2] !== 0x02) {\n valid = false;\n }\n const rLength = response[3];\n if (response[4 + rLength] !== 0x02) {\n valid = false;\n }\n\n const idxLengthSVal = 5 + rLength;\n const sLength = response[idxLengthSVal];\n if (idxLengthSVal + 1 + sLength + 2 !== response.length) {\n valid = false;\n }\n return valid;\n}\n\n/**\n *\n * @description Extract a part of the response returned by the Ledger\n * @param idxLength The index in the response from the Ledger that corresponds to the length of the part to extract\n * @param response The signature returned by the Ledger (return from the signWithLedger function)\n * @returns An object that contains the extracted buffer, the index where it starts in the response and the length of the extracted part\n */\nexport function extractValue(idxLength: number, response: Buffer) {\n const buffer = Buffer.alloc(32);\n buffer.fill(0);\n\n let length = response[idxLength];\n let idxValueStart = idxLength + 1;\n if (length > 32) {\n idxValueStart += length - 32;\n length = 32;\n }\n response.copy(buffer, 32 - length, idxValueStart, idxValueStart + length);\n return { buffer, idxValueStart, length };\n}\n","/**\n * @category Error\n * @description Error that indicates an invalid or unparseable ledger response\n */\nexport class InvalidLedgerResponseError extends Error {\n public name = 'InvalidLedgerResponseError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to retrieve a Public Key from Ledger signer\n */\nexport class PublicKeyRetrievalError extends Error {\n public name = 'PublicKeyRetrievalError';\n constructor() {\n super(`Unable to retrieve Public Key from Ledger`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to retrieve a Public Key Hash from Ledger signer\n */\nexport class PublicKeyHashRetrievalError extends Error {\n public name = 'PublicKeyHashRetrievalError';\n constructor() {\n super(`Unable to retrieve Public Key Hash from Ledger`);\n }\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"38da814ec2bb4e81c7ad5a45b6b183a4d0b8dc25\",\n \"version\": \"12.1.1\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/ledger-signer\n */\n\nimport { Signer } from '@taquito/taquito';\nimport Transport from '@ledgerhq/hw-transport';\nimport { b58cencode, prefix, Prefix, ProhibitedActionError } from '@taquito/utils';\nimport {\n appendWatermark,\n transformPathToBuffer,\n compressPublicKey,\n chunkOperation,\n validateResponse,\n extractValue,\n} from './utils';\nimport { hash } from '@stablelib/blake2b';\nimport {\n PublicKeyHashRetrievalError,\n PublicKeyRetrievalError,\n InvalidLedgerResponseError,\n} from './error';\n\nexport type LedgerTransport = Pick<Transport, 'send' | 'decorateAppAPIMethods' | 'setScrambleKey'>;\n\nexport enum DerivationType {\n ED25519 = 0x00, // tz1\n SECP256K1 = 0x01, // tz2\n P256 = 0x02, // tz3\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid derivation type being passed or used\n */\nexport class InvalidDerivationTypeError extends Error {\n public name = 'InvalidDerivationTypeError';\n constructor(public derivationType: string) {\n super(\n `The derivation type ${derivationType} is invalid. The derivation type must be DerivationType.ED25519, DerivationType.SECP256K1 or DerivationType.P256`\n );\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid derivation path being passed or used\n */\nexport class InvalidDerivationPathError extends Error {\n public name = 'InvalidDerivationPathError';\n constructor(public derivationPath: string) {\n super(\n `The derivation path ${derivationPath} is invalid. The derivation path must start with 44'/1729`\n );\n }\n}\n\nexport const HDPathTemplate = (account: number) => {\n return `44'/1729'/${account}'/0'`;\n};\n\nexport { VERSION } from './version';\n\n/**\n *\n * @description Implementation of the Signer interface that will allow signing operation from a Ledger Nano device\n *\n * @param transport A transport instance from LedgerJS libraries depending on the platform used (e.g. Web, Node)\n * @param path The ledger derivation path (default is \"44'/1729'/0'/0'\")\n * @param prompt Whether to prompt the ledger for public key (default is true)\n * @param derivationType The value which defines the curve to use (DerivationType.ED25519(default), DerivationType.SECP256K1, DerivationType.P256)\n *\n * @example\n * ```\n * import TransportNodeHid from \"@ledgerhq/hw-transport-node-hid\";\n * const transport = await TransportNodeHid.create();\n * const ledgerSigner = new LedgerSigner(transport, \"44'/1729'/0'/0'\", false, DerivationType.ED25519);\n * ```\n *\n * @example\n * ```\n * import TransportU2F from \"@ledgerhq/hw-transport-u2f\";\n * const transport = await TransportU2F.create();\n * const ledgerSigner = new LedgerSigner(transport, \"44'/1729'/0'/0'\", true, DerivationType.SECP256K1);\n * ```\n */\nexport class LedgerSigner implements Signer {\n // constants for APDU requests (https://github.com/obsidiansystems/ledger-app-tezos/blob/master/APDUs.md)\n private readonly CLA = 0x80; // Instruction class (always 0x80)\n private readonly INS_GET_PUBLIC_KEY = 0x02; // Instruction code to get the ledger’s internal public key without prompt\n private readonly INS_PROMPT_PUBLIC_KEY = 0x03; // Instruction code to get the ledger’s internal public key with prompt\n private readonly INS_SIGN = 0x04; // Sign a message with the ledger’s key\n private readonly FIRST_MESSAGE_SEQUENCE = 0x00;\n private readonly LAST_MESSAGE_SEQUENCE = 0x81;\n private readonly OTHER_MESSAGE_SEQUENCE = 0x01;\n\n private _publicKey?: string;\n private _publicKeyHash?: string;\n constructor(\n private transport: LedgerTransport,\n private path: string = \"44'/1729'/0'/0'\",\n private prompt: boolean = true,\n private derivationType: DerivationType = DerivationType.ED25519\n ) {\n this.transport.setScrambleKey('XTZ');\n if (!path.startsWith(\"44'/1729'\")) {\n throw new InvalidDerivationPathError(path);\n }\n if (!Object.values(DerivationType).includes(derivationType)) {\n throw new InvalidDerivationTypeError(derivationType.toString());\n }\n }\n\n async publicKeyHash(): Promise<string> {\n if (!this._publicKeyHash) {\n await this.publicKey();\n }\n if (this._publicKeyHash) {\n return this._publicKeyHash;\n }\n throw new PublicKeyHashRetrievalError();\n }\n\n async publicKey(): Promise<string> {\n if (this._publicKey) {\n return this._publicKey;\n }\n const responseLedger = await this.getLedgerPublicKey();\n const publicKeyLength = responseLedger[0];\n const rawPublicKey = responseLedger.slice(1, 1 + publicKeyLength);\n const compressedPublicKey = compressPublicKey(rawPublicKey, this.derivationType);\n\n const prefixes = this.getPrefixes();\n const publicKey = b58cencode(compressedPublicKey, prefixes.prefPk);\n const publicKeyHash = b58cencode(hash(compressedPublicKey, 20), prefixes.prefPkh);\n\n this._publicKey = publicKey;\n this._publicKeyHash = publicKeyHash;\n return publicKey;\n }\n\n private async getLedgerPublicKey(): Promise<Buffer> {\n try {\n let ins = this.INS_PROMPT_PUBLIC_KEY;\n if (this.prompt === false) {\n ins = this.INS_GET_PUBLIC_KEY;\n }\n const responseLedger = await this.transport.send(\n this.CLA,\n ins,\n this.FIRST_MESSAGE_SEQUENCE,\n this.derivationType,\n transformPathToBuffer(this.path)\n );\n return responseLedger;\n } catch (error) {\n throw new PublicKeyRetrievalError();\n }\n }\n\n async secretKey(): Promise<string> {\n throw new ProhibitedActionError('Secret key cannot be exposed');\n }\n\n async sign(bytes: string, watermark?: Uint8Array) {\n const watermarkedBytes = appendWatermark(bytes, watermark);\n const watermarkedBytes2buff = Buffer.from(watermarkedBytes, 'hex');\n let messageToSend = [];\n messageToSend.push(transformPathToBuffer(this.path));\n messageToSend = chunkOperation(messageToSend, watermarkedBytes2buff);\n const ledgerResponse = await this.signWithLedger(messageToSend);\n let signature;\n if (this.derivationType === DerivationType.ED25519) {\n signature = ledgerResponse.slice(0, ledgerResponse.length - 2).toString('hex');\n } else {\n if (!validateResponse(ledgerResponse)) {\n throw new InvalidLedgerResponseError('Cannot parse ledger response');\n }\n const idxLengthRVal = 3; // Third element of response is length of r value\n const rValue = extractValue(idxLengthRVal, ledgerResponse);\n const idxLengthSVal = rValue.idxValueStart + rValue.length + 1;\n const sValue = extractValue(idxLengthSVal, ledgerResponse);\n const signatureBuffer = Buffer.concat([rValue.buffer, sValue.buffer]);\n signature = signatureBuffer.toString('hex');\n }\n\n return {\n bytes,\n sig: b58cencode(signature, prefix[Prefix.SIG]),\n prefixSig: b58cencode(signature, this.getPrefixes().prefSig),\n sbytes: bytes + signature,\n };\n }\n\n private async signWithLedger(message: any): Promise<Buffer> {\n // first element of the message represents the path\n let ledgerResponse = await this.transport.send(\n this.CLA,\n this.INS_SIGN,\n this.FIRST_MESSAGE_SEQUENCE,\n this.derivationType,\n message[0]\n );\n for (let i = 1; i < message.length; i++) {\n const p1 =\n i === message.length - 1 ? this.LAST_MESSAGE_SEQUENCE : this.OTHER_MESSAGE_SEQUENCE;\n ledgerResponse = await this.transport.send(\n this.CLA,\n this.INS_SIGN,\n p1,\n this.derivationType,\n message[i]\n );\n }\n return ledgerResponse;\n }\n\n private getPrefixes() {\n if (this.derivationType === DerivationType.ED25519) {\n return {\n prefPk: prefix[Prefix.EDPK],\n prefPkh: prefix[Prefix.TZ1],\n prefSig: prefix[Prefix.EDSIG],\n };\n } else if (this.derivationType === DerivationType.SECP256K1) {\n return {\n prefPk: prefix[Prefix.SPPK],\n prefPkh: prefix[Prefix.TZ2],\n prefSig: prefix[Prefix.SPSIG],\n };\n } else {\n return {\n prefPk: prefix[Prefix.P2PK],\n prefPkh: prefix[Prefix.TZ3],\n prefSig: prefix[Prefix.P2SIG],\n };\n }\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taquito-ledger-signer.es6.js","sources":["../src/utils.ts","../src/error.ts","../src/version.ts","../src/taquito-ledger-signer.ts"],"sourcesContent":["/*\n * Some code in this file is adapted from sotez\n * Copyright (c) 2018 Andrew Kishino\n */\n\nimport { DerivationType } from './taquito-ledger-signer';\n\nconst MAX_CHUNK_SIZE = 230;\n\n/**\n *\n * @description Convert the path to a buffer that will be used as LC and CDATA in the APDU send to the ledger device (https://github.com/obsidiansystems/ledger-app-tezos/blob/master/APDUs.md)\n *\n * @param path The ledger derivation path (default is \"44'/1729'/0'/0'\")\n * @returns A buffer where the first element is the length of the path (default is 4), then 3 bytes for each number of the path to which is added 0x8000000\n */\nexport function transformPathToBuffer(path: string): Buffer {\n const result: number[] = [];\n const components = path.split('/');\n components.forEach((element) => {\n let toNumber = parseInt(element, 10);\n if (Number.isNaN(toNumber)) {\n return;\n }\n if (element.length > 1 && element[element.length - 1] === \"'\") {\n toNumber += 0x80000000;\n }\n result.push(toNumber);\n });\n const buffer = Buffer.alloc(1 + result.length * 4);\n buffer[0] = result.length;\n result.forEach((element, index) => {\n buffer.writeUInt32BE(element, 1 + 4 * index);\n });\n return buffer;\n}\n\n/**\n *\n * @description Converts uncompressed ledger key to standard tezos binary representation\n */\nexport function compressPublicKey(publicKey: Buffer, curve: DerivationType) {\n if (curve === 0x00) {\n publicKey = publicKey.slice(1);\n } else {\n publicKey[0] = 0x02 + (publicKey[64] & 0x01);\n publicKey = publicKey.slice(0, 33);\n }\n return publicKey;\n}\n\nexport function appendWatermark(bytes: string, watermark?: Uint8Array): string {\n let transactionHex = bytes;\n if (typeof watermark !== 'undefined') {\n const hexWatermark = Buffer.from(watermark).toString('hex');\n transactionHex = hexWatermark.concat(bytes);\n }\n return transactionHex;\n}\n\n/**\n *\n * @description In order not to exceed the data length allowed by the Ledger device, split the operation into buffers of 230 bytes (max) and add them to the message to send to the Ledger\n * @param messageToSend The message to send to the Ledger device\n * @param operation The operation which will be chunk if its length is over 230 bytes\n * @returns The instruction to send to the Ledger device\n */\nexport function chunkOperation(messageToSend: any, operation: Buffer) {\n let offset = 0;\n while (offset !== operation.length) {\n const chunkSize =\n offset + MAX_CHUNK_SIZE >= operation.length ? operation.length - offset : MAX_CHUNK_SIZE;\n const buff = Buffer.alloc(chunkSize);\n operation.copy(buff, 0, offset, offset + chunkSize);\n messageToSend.push(buff);\n offset += chunkSize;\n }\n return messageToSend;\n}\n\n/**\n *\n * @description Verify if the signature returned by the ledger for tz2 and tz3 is valid\n * @param response The signature returned by the Ledger (return from the signWithLedger function)\n * @returns True if valid, false otherwise\n */\nexport function validateResponse(response: Buffer): boolean {\n let valid = true;\n if (response[0] !== 0x31 && response[0] !== 0x30) {\n valid = false;\n }\n if (response[1] + 4 !== response.length) {\n valid = false;\n }\n if (response[2] !== 0x02) {\n valid = false;\n }\n const rLength = response[3];\n if (response[4 + rLength] !== 0x02) {\n valid = false;\n }\n\n const idxLengthSVal = 5 + rLength;\n const sLength = response[idxLengthSVal];\n if (idxLengthSVal + 1 + sLength + 2 !== response.length) {\n valid = false;\n }\n return valid;\n}\n\n/**\n *\n * @description Extract a part of the response returned by the Ledger\n * @param idxLength The index in the response from the Ledger that corresponds to the length of the part to extract\n * @param response The signature returned by the Ledger (return from the signWithLedger function)\n * @returns An object that contains the extracted buffer, the index where it starts in the response and the length of the extracted part\n */\nexport function extractValue(idxLength: number, response: Buffer) {\n const buffer = Buffer.alloc(32);\n buffer.fill(0);\n\n let length = response[idxLength];\n let idxValueStart = idxLength + 1;\n if (length > 32) {\n idxValueStart += length - 32;\n length = 32;\n }\n response.copy(buffer, 32 - length, idxValueStart, idxValueStart + length);\n return { buffer, idxValueStart, length };\n}\n","/**\n * @category Error\n * @description Error that indicates an invalid or unparseable ledger response\n */\nexport class InvalidLedgerResponseError extends Error {\n public name = 'InvalidLedgerResponseError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to retrieve a Public Key from Ledger signer\n */\nexport class PublicKeyRetrievalError extends Error {\n public name = 'PublicKeyRetrievalError';\n constructor() {\n super(`Unable to retrieve Public Key from Ledger`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to retrieve a Public Key Hash from Ledger signer\n */\nexport class PublicKeyHashRetrievalError extends Error {\n public name = 'PublicKeyHashRetrievalError';\n constructor() {\n super(`Unable to retrieve Public Key Hash from Ledger`);\n }\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"6d90b3d5e616a6e9b9ad9dd8453b5068e7396fff\",\n \"version\": \"13.0.1\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/ledger-signer\n */\n\nimport { Signer } from '@taquito/taquito';\nimport Transport from '@ledgerhq/hw-transport';\nimport { b58cencode, prefix, Prefix, ProhibitedActionError } from '@taquito/utils';\nimport {\n appendWatermark,\n transformPathToBuffer,\n compressPublicKey,\n chunkOperation,\n validateResponse,\n extractValue,\n} from './utils';\nimport { hash } from '@stablelib/blake2b';\nimport {\n PublicKeyHashRetrievalError,\n PublicKeyRetrievalError,\n InvalidLedgerResponseError,\n} from './error';\n\nexport type LedgerTransport = Pick<Transport, 'send' | 'decorateAppAPIMethods' | 'setScrambleKey'>;\n\nexport enum DerivationType {\n ED25519 = 0x00, // tz1\n SECP256K1 = 0x01, // tz2\n P256 = 0x02, // tz3\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid derivation type being passed or used\n */\nexport class InvalidDerivationTypeError extends Error {\n public name = 'InvalidDerivationTypeError';\n constructor(public derivationType: string) {\n super(\n `The derivation type ${derivationType} is invalid. The derivation type must be DerivationType.ED25519, DerivationType.SECP256K1 or DerivationType.P256`\n );\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid derivation path being passed or used\n */\nexport class InvalidDerivationPathError extends Error {\n public name = 'InvalidDerivationPathError';\n constructor(public derivationPath: string) {\n super(\n `The derivation path ${derivationPath} is invalid. The derivation path must start with 44'/1729`\n );\n }\n}\n\nexport const HDPathTemplate = (account: number) => {\n return `44'/1729'/${account}'/0'`;\n};\n\nexport { VERSION } from './version';\n\n/**\n *\n * @description Implementation of the Signer interface that will allow signing operation from a Ledger Nano device\n *\n * @param transport A transport instance from LedgerJS libraries depending on the platform used (e.g. Web, Node)\n * @param path The ledger derivation path (default is \"44'/1729'/0'/0'\")\n * @param prompt Whether to prompt the ledger for public key (default is true)\n * @param derivationType The value which defines the curve to use (DerivationType.ED25519(default), DerivationType.SECP256K1, DerivationType.P256)\n *\n * @example\n * ```\n * import TransportNodeHid from \"@ledgerhq/hw-transport-node-hid\";\n * const transport = await TransportNodeHid.create();\n * const ledgerSigner = new LedgerSigner(transport, \"44'/1729'/0'/0'\", false, DerivationType.ED25519);\n * ```\n *\n * @example\n * ```\n * import TransportU2F from \"@ledgerhq/hw-transport-u2f\";\n * const transport = await TransportU2F.create();\n * const ledgerSigner = new LedgerSigner(transport, \"44'/1729'/0'/0'\", true, DerivationType.SECP256K1);\n * ```\n */\nexport class LedgerSigner implements Signer {\n // constants for APDU requests (https://github.com/obsidiansystems/ledger-app-tezos/blob/master/APDUs.md)\n private readonly CLA = 0x80; // Instruction class (always 0x80)\n private readonly INS_GET_PUBLIC_KEY = 0x02; // Instruction code to get the ledger’s internal public key without prompt\n private readonly INS_PROMPT_PUBLIC_KEY = 0x03; // Instruction code to get the ledger’s internal public key with prompt\n private readonly INS_SIGN = 0x04; // Sign a message with the ledger’s key\n private readonly FIRST_MESSAGE_SEQUENCE = 0x00;\n private readonly LAST_MESSAGE_SEQUENCE = 0x81;\n private readonly OTHER_MESSAGE_SEQUENCE = 0x01;\n\n private _publicKey?: string;\n private _publicKeyHash?: string;\n constructor(\n private transport: LedgerTransport,\n private path: string = \"44'/1729'/0'/0'\",\n private prompt: boolean = true,\n private derivationType: DerivationType = DerivationType.ED25519\n ) {\n this.transport.setScrambleKey('XTZ');\n if (!path.startsWith(\"44'/1729'\")) {\n throw new InvalidDerivationPathError(path);\n }\n if (!Object.values(DerivationType).includes(derivationType)) {\n throw new InvalidDerivationTypeError(derivationType.toString());\n }\n }\n\n async publicKeyHash(): Promise<string> {\n if (!this._publicKeyHash) {\n await this.publicKey();\n }\n if (this._publicKeyHash) {\n return this._publicKeyHash;\n }\n throw new PublicKeyHashRetrievalError();\n }\n\n async publicKey(): Promise<string> {\n if (this._publicKey) {\n return this._publicKey;\n }\n const responseLedger = await this.getLedgerPublicKey();\n const publicKeyLength = responseLedger[0];\n const rawPublicKey = responseLedger.slice(1, 1 + publicKeyLength);\n const compressedPublicKey = compressPublicKey(rawPublicKey, this.derivationType);\n\n const prefixes = this.getPrefixes();\n const publicKey = b58cencode(compressedPublicKey, prefixes.prefPk);\n const publicKeyHash = b58cencode(hash(compressedPublicKey, 20), prefixes.prefPkh);\n\n this._publicKey = publicKey;\n this._publicKeyHash = publicKeyHash;\n return publicKey;\n }\n\n private async getLedgerPublicKey(): Promise<Buffer> {\n try {\n let ins = this.INS_PROMPT_PUBLIC_KEY;\n if (this.prompt === false) {\n ins = this.INS_GET_PUBLIC_KEY;\n }\n const responseLedger = await this.transport.send(\n this.CLA,\n ins,\n this.FIRST_MESSAGE_SEQUENCE,\n this.derivationType,\n transformPathToBuffer(this.path)\n );\n return responseLedger;\n } catch (error) {\n throw new PublicKeyRetrievalError();\n }\n }\n\n async secretKey(): Promise<string> {\n throw new ProhibitedActionError('Secret key cannot be exposed');\n }\n\n async sign(bytes: string, watermark?: Uint8Array) {\n const watermarkedBytes = appendWatermark(bytes, watermark);\n const watermarkedBytes2buff = Buffer.from(watermarkedBytes, 'hex');\n let messageToSend = [];\n messageToSend.push(transformPathToBuffer(this.path));\n messageToSend = chunkOperation(messageToSend, watermarkedBytes2buff);\n const ledgerResponse = await this.signWithLedger(messageToSend);\n let signature;\n if (this.derivationType === DerivationType.ED25519) {\n signature = ledgerResponse.slice(0, ledgerResponse.length - 2).toString('hex');\n } else {\n if (!validateResponse(ledgerResponse)) {\n throw new InvalidLedgerResponseError('Cannot parse ledger response');\n }\n const idxLengthRVal = 3; // Third element of response is length of r value\n const rValue = extractValue(idxLengthRVal, ledgerResponse);\n const idxLengthSVal = rValue.idxValueStart + rValue.length + 1;\n const sValue = extractValue(idxLengthSVal, ledgerResponse);\n const signatureBuffer = Buffer.concat([rValue.buffer, sValue.buffer]);\n signature = signatureBuffer.toString('hex');\n }\n\n return {\n bytes,\n sig: b58cencode(signature, prefix[Prefix.SIG]),\n prefixSig: b58cencode(signature, this.getPrefixes().prefSig),\n sbytes: bytes + signature,\n };\n }\n\n private async signWithLedger(message: Buffer[]): Promise<Buffer> {\n // first element of the message represents the path\n let ledgerResponse = await this.transport.send(\n this.CLA,\n this.INS_SIGN,\n this.FIRST_MESSAGE_SEQUENCE,\n this.derivationType,\n message[0]\n );\n for (let i = 1; i < message.length; i++) {\n const p1 =\n i === message.length - 1 ? this.LAST_MESSAGE_SEQUENCE : this.OTHER_MESSAGE_SEQUENCE;\n ledgerResponse = await this.transport.send(\n this.CLA,\n this.INS_SIGN,\n p1,\n this.derivationType,\n message[i]\n );\n }\n return ledgerResponse;\n }\n\n private getPrefixes() {\n if (this.derivationType === DerivationType.ED25519) {\n return {\n prefPk: prefix[Prefix.EDPK],\n prefPkh: prefix[Prefix.TZ1],\n prefSig: prefix[Prefix.EDSIG],\n };\n } else if (this.derivationType === DerivationType.SECP256K1) {\n return {\n prefPk: prefix[Prefix.SPPK],\n prefPkh: prefix[Prefix.TZ2],\n prefSig: prefix[Prefix.SPSIG],\n };\n } else {\n return {\n prefPk: prefix[Prefix.P2PK],\n prefPkh: prefix[Prefix.TZ3],\n prefSig: prefix[Prefix.P2SIG],\n };\n }\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.taquitoLedgerSigner = {}, global.utils, global.blake2b));
|
|
5
5
|
})(this, (function (exports, utils, blake2b) { 'use strict';
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
/******************************************************************************
|
|
8
8
|
Copyright (c) Microsoft Corporation.
|
|
9
9
|
|
|
10
10
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -183,8 +183,8 @@
|
|
|
183
183
|
|
|
184
184
|
// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
|
|
185
185
|
const VERSION = {
|
|
186
|
-
"commitHash": "
|
|
187
|
-
"version": "
|
|
186
|
+
"commitHash": "6d90b3d5e616a6e9b9ad9dd8453b5068e7396fff",
|
|
187
|
+
"version": "13.0.1"
|
|
188
188
|
};
|
|
189
189
|
|
|
190
190
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taquito-ledger-signer.umd.js","sources":["../src/utils.ts","../src/error.ts","../src/version.ts","../src/taquito-ledger-signer.ts"],"sourcesContent":["/*\n * Some code in this file is adapted from sotez\n * Copyright (c) 2018 Andrew Kishino\n */\n\nimport { DerivationType } from './taquito-ledger-signer';\n\nconst MAX_CHUNK_SIZE = 230;\n\n/**\n *\n * @description Convert the path to a buffer that will be used as LC and CDATA in the APDU send to the ledger device (https://github.com/obsidiansystems/ledger-app-tezos/blob/master/APDUs.md)\n *\n * @param path The ledger derivation path (default is \"44'/1729'/0'/0'\")\n * @returns A buffer where the first element is the length of the path (default is 4), then 3 bytes for each number of the path to which is added 0x8000000\n */\nexport function transformPathToBuffer(path: string): Buffer {\n const result: any[] = [];\n const components = path.split('/');\n components.forEach((element) => {\n let toNumber = parseInt(element, 10);\n if (Number.isNaN(toNumber)) {\n return;\n }\n if (element.length > 1 && element[element.length - 1] === \"'\") {\n toNumber += 0x80000000;\n }\n result.push(toNumber);\n });\n const buffer = Buffer.alloc(1 + result.length * 4);\n buffer[0] = result.length;\n result.forEach((element, index) => {\n buffer.writeUInt32BE(element, 1 + 4 * index);\n });\n return buffer;\n}\n\n/**\n *\n * @description Converts uncompressed ledger key to standard tezos binary representation\n */\nexport function compressPublicKey(publicKey: Buffer, curve: DerivationType) {\n if (curve === 0x00) {\n publicKey = publicKey.slice(1);\n } else {\n publicKey[0] = 0x02 + (publicKey[64] & 0x01);\n publicKey = publicKey.slice(0, 33);\n }\n return publicKey;\n}\n\nexport function appendWatermark(bytes: string, watermark?: Uint8Array): string {\n let transactionHex = bytes;\n if (typeof watermark !== 'undefined') {\n const hexWatermark = Buffer.from(watermark).toString('hex');\n transactionHex = hexWatermark.concat(bytes);\n }\n return transactionHex;\n}\n\n/**\n *\n * @description In order not to exceed the data length allowed by the Ledger device, split the operation into buffers of 230 bytes (max) and add them to the message to send to the Ledger\n * @param messageToSend The message to send to the Ledger device\n * @param operation The operation which will be chunk if its length is over 230 bytes\n * @returns The instruction to send to the Ledger device\n */\nexport function chunkOperation(messageToSend: any, operation: Buffer) {\n let offset = 0;\n while (offset !== operation.length) {\n const chunkSize =\n offset + MAX_CHUNK_SIZE >= operation.length ? operation.length - offset : MAX_CHUNK_SIZE;\n const buff = Buffer.alloc(chunkSize);\n operation.copy(buff, 0, offset, offset + chunkSize);\n messageToSend.push(buff);\n offset += chunkSize;\n }\n return messageToSend;\n}\n\n/**\n *\n * @description Verify if the signature returned by the ledger for tz2 and tz3 is valid\n * @param response The signature returned by the Ledger (return from the signWithLedger function)\n * @returns True if valid, false otherwise\n */\nexport function validateResponse(response: Buffer): boolean {\n let valid = true;\n if (response[0] !== 0x31 && response[0] !== 0x30) {\n valid = false;\n }\n if (response[1] + 4 !== response.length) {\n valid = false;\n }\n if (response[2] !== 0x02) {\n valid = false;\n }\n const rLength = response[3];\n if (response[4 + rLength] !== 0x02) {\n valid = false;\n }\n\n const idxLengthSVal = 5 + rLength;\n const sLength = response[idxLengthSVal];\n if (idxLengthSVal + 1 + sLength + 2 !== response.length) {\n valid = false;\n }\n return valid;\n}\n\n/**\n *\n * @description Extract a part of the response returned by the Ledger\n * @param idxLength The index in the response from the Ledger that corresponds to the length of the part to extract\n * @param response The signature returned by the Ledger (return from the signWithLedger function)\n * @returns An object that contains the extracted buffer, the index where it starts in the response and the length of the extracted part\n */\nexport function extractValue(idxLength: number, response: Buffer) {\n const buffer = Buffer.alloc(32);\n buffer.fill(0);\n\n let length = response[idxLength];\n let idxValueStart = idxLength + 1;\n if (length > 32) {\n idxValueStart += length - 32;\n length = 32;\n }\n response.copy(buffer, 32 - length, idxValueStart, idxValueStart + length);\n return { buffer, idxValueStart, length };\n}\n","/**\n * @category Error\n * @description Error that indicates an invalid or unparseable ledger response\n */\nexport class InvalidLedgerResponseError extends Error {\n public name = 'InvalidLedgerResponseError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to retrieve a Public Key from Ledger signer\n */\nexport class PublicKeyRetrievalError extends Error {\n public name = 'PublicKeyRetrievalError';\n constructor() {\n super(`Unable to retrieve Public Key from Ledger`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to retrieve a Public Key Hash from Ledger signer\n */\nexport class PublicKeyHashRetrievalError extends Error {\n public name = 'PublicKeyHashRetrievalError';\n constructor() {\n super(`Unable to retrieve Public Key Hash from Ledger`);\n }\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"38da814ec2bb4e81c7ad5a45b6b183a4d0b8dc25\",\n \"version\": \"12.1.1\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/ledger-signer\n */\n\nimport { Signer } from '@taquito/taquito';\nimport Transport from '@ledgerhq/hw-transport';\nimport { b58cencode, prefix, Prefix, ProhibitedActionError } from '@taquito/utils';\nimport {\n appendWatermark,\n transformPathToBuffer,\n compressPublicKey,\n chunkOperation,\n validateResponse,\n extractValue,\n} from './utils';\nimport { hash } from '@stablelib/blake2b';\nimport {\n PublicKeyHashRetrievalError,\n PublicKeyRetrievalError,\n InvalidLedgerResponseError,\n} from './error';\n\nexport type LedgerTransport = Pick<Transport, 'send' | 'decorateAppAPIMethods' | 'setScrambleKey'>;\n\nexport enum DerivationType {\n ED25519 = 0x00, // tz1\n SECP256K1 = 0x01, // tz2\n P256 = 0x02, // tz3\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid derivation type being passed or used\n */\nexport class InvalidDerivationTypeError extends Error {\n public name = 'InvalidDerivationTypeError';\n constructor(public derivationType: string) {\n super(\n `The derivation type ${derivationType} is invalid. The derivation type must be DerivationType.ED25519, DerivationType.SECP256K1 or DerivationType.P256`\n );\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid derivation path being passed or used\n */\nexport class InvalidDerivationPathError extends Error {\n public name = 'InvalidDerivationPathError';\n constructor(public derivationPath: string) {\n super(\n `The derivation path ${derivationPath} is invalid. The derivation path must start with 44'/1729`\n );\n }\n}\n\nexport const HDPathTemplate = (account: number) => {\n return `44'/1729'/${account}'/0'`;\n};\n\nexport { VERSION } from './version';\n\n/**\n *\n * @description Implementation of the Signer interface that will allow signing operation from a Ledger Nano device\n *\n * @param transport A transport instance from LedgerJS libraries depending on the platform used (e.g. Web, Node)\n * @param path The ledger derivation path (default is \"44'/1729'/0'/0'\")\n * @param prompt Whether to prompt the ledger for public key (default is true)\n * @param derivationType The value which defines the curve to use (DerivationType.ED25519(default), DerivationType.SECP256K1, DerivationType.P256)\n *\n * @example\n * ```\n * import TransportNodeHid from \"@ledgerhq/hw-transport-node-hid\";\n * const transport = await TransportNodeHid.create();\n * const ledgerSigner = new LedgerSigner(transport, \"44'/1729'/0'/0'\", false, DerivationType.ED25519);\n * ```\n *\n * @example\n * ```\n * import TransportU2F from \"@ledgerhq/hw-transport-u2f\";\n * const transport = await TransportU2F.create();\n * const ledgerSigner = new LedgerSigner(transport, \"44'/1729'/0'/0'\", true, DerivationType.SECP256K1);\n * ```\n */\nexport class LedgerSigner implements Signer {\n // constants for APDU requests (https://github.com/obsidiansystems/ledger-app-tezos/blob/master/APDUs.md)\n private readonly CLA = 0x80; // Instruction class (always 0x80)\n private readonly INS_GET_PUBLIC_KEY = 0x02; // Instruction code to get the ledger’s internal public key without prompt\n private readonly INS_PROMPT_PUBLIC_KEY = 0x03; // Instruction code to get the ledger’s internal public key with prompt\n private readonly INS_SIGN = 0x04; // Sign a message with the ledger’s key\n private readonly FIRST_MESSAGE_SEQUENCE = 0x00;\n private readonly LAST_MESSAGE_SEQUENCE = 0x81;\n private readonly OTHER_MESSAGE_SEQUENCE = 0x01;\n\n private _publicKey?: string;\n private _publicKeyHash?: string;\n constructor(\n private transport: LedgerTransport,\n private path: string = \"44'/1729'/0'/0'\",\n private prompt: boolean = true,\n private derivationType: DerivationType = DerivationType.ED25519\n ) {\n this.transport.setScrambleKey('XTZ');\n if (!path.startsWith(\"44'/1729'\")) {\n throw new InvalidDerivationPathError(path);\n }\n if (!Object.values(DerivationType).includes(derivationType)) {\n throw new InvalidDerivationTypeError(derivationType.toString());\n }\n }\n\n async publicKeyHash(): Promise<string> {\n if (!this._publicKeyHash) {\n await this.publicKey();\n }\n if (this._publicKeyHash) {\n return this._publicKeyHash;\n }\n throw new PublicKeyHashRetrievalError();\n }\n\n async publicKey(): Promise<string> {\n if (this._publicKey) {\n return this._publicKey;\n }\n const responseLedger = await this.getLedgerPublicKey();\n const publicKeyLength = responseLedger[0];\n const rawPublicKey = responseLedger.slice(1, 1 + publicKeyLength);\n const compressedPublicKey = compressPublicKey(rawPublicKey, this.derivationType);\n\n const prefixes = this.getPrefixes();\n const publicKey = b58cencode(compressedPublicKey, prefixes.prefPk);\n const publicKeyHash = b58cencode(hash(compressedPublicKey, 20), prefixes.prefPkh);\n\n this._publicKey = publicKey;\n this._publicKeyHash = publicKeyHash;\n return publicKey;\n }\n\n private async getLedgerPublicKey(): Promise<Buffer> {\n try {\n let ins = this.INS_PROMPT_PUBLIC_KEY;\n if (this.prompt === false) {\n ins = this.INS_GET_PUBLIC_KEY;\n }\n const responseLedger = await this.transport.send(\n this.CLA,\n ins,\n this.FIRST_MESSAGE_SEQUENCE,\n this.derivationType,\n transformPathToBuffer(this.path)\n );\n return responseLedger;\n } catch (error) {\n throw new PublicKeyRetrievalError();\n }\n }\n\n async secretKey(): Promise<string> {\n throw new ProhibitedActionError('Secret key cannot be exposed');\n }\n\n async sign(bytes: string, watermark?: Uint8Array) {\n const watermarkedBytes = appendWatermark(bytes, watermark);\n const watermarkedBytes2buff = Buffer.from(watermarkedBytes, 'hex');\n let messageToSend = [];\n messageToSend.push(transformPathToBuffer(this.path));\n messageToSend = chunkOperation(messageToSend, watermarkedBytes2buff);\n const ledgerResponse = await this.signWithLedger(messageToSend);\n let signature;\n if (this.derivationType === DerivationType.ED25519) {\n signature = ledgerResponse.slice(0, ledgerResponse.length - 2).toString('hex');\n } else {\n if (!validateResponse(ledgerResponse)) {\n throw new InvalidLedgerResponseError('Cannot parse ledger response');\n }\n const idxLengthRVal = 3; // Third element of response is length of r value\n const rValue = extractValue(idxLengthRVal, ledgerResponse);\n const idxLengthSVal = rValue.idxValueStart + rValue.length + 1;\n const sValue = extractValue(idxLengthSVal, ledgerResponse);\n const signatureBuffer = Buffer.concat([rValue.buffer, sValue.buffer]);\n signature = signatureBuffer.toString('hex');\n }\n\n return {\n bytes,\n sig: b58cencode(signature, prefix[Prefix.SIG]),\n prefixSig: b58cencode(signature, this.getPrefixes().prefSig),\n sbytes: bytes + signature,\n };\n }\n\n private async signWithLedger(message: any): Promise<Buffer> {\n // first element of the message represents the path\n let ledgerResponse = await this.transport.send(\n this.CLA,\n this.INS_SIGN,\n this.FIRST_MESSAGE_SEQUENCE,\n this.derivationType,\n message[0]\n );\n for (let i = 1; i < message.length; i++) {\n const p1 =\n i === message.length - 1 ? this.LAST_MESSAGE_SEQUENCE : this.OTHER_MESSAGE_SEQUENCE;\n ledgerResponse = await this.transport.send(\n this.CLA,\n this.INS_SIGN,\n p1,\n this.derivationType,\n message[i]\n );\n }\n return ledgerResponse;\n }\n\n private getPrefixes() {\n if (this.derivationType === DerivationType.ED25519) {\n return {\n prefPk: prefix[Prefix.EDPK],\n prefPkh: prefix[Prefix.TZ1],\n prefSig: prefix[Prefix.EDSIG],\n };\n } else if (this.derivationType === DerivationType.SECP256K1) {\n return {\n prefPk: prefix[Prefix.SPPK],\n prefPkh: prefix[Prefix.TZ2],\n prefSig: prefix[Prefix.SPSIG],\n };\n } else {\n return {\n prefPk: prefix[Prefix.P2PK],\n prefPkh: prefix[Prefix.TZ3],\n prefSig: prefix[Prefix.P2SIG],\n };\n }\n }\n}\n"],"names":["DerivationType","b58cencode","hash","ProhibitedActionError","prefix","Prefix"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taquito-ledger-signer.umd.js","sources":["../src/utils.ts","../src/error.ts","../src/version.ts","../src/taquito-ledger-signer.ts"],"sourcesContent":["/*\n * Some code in this file is adapted from sotez\n * Copyright (c) 2018 Andrew Kishino\n */\n\nimport { DerivationType } from './taquito-ledger-signer';\n\nconst MAX_CHUNK_SIZE = 230;\n\n/**\n *\n * @description Convert the path to a buffer that will be used as LC and CDATA in the APDU send to the ledger device (https://github.com/obsidiansystems/ledger-app-tezos/blob/master/APDUs.md)\n *\n * @param path The ledger derivation path (default is \"44'/1729'/0'/0'\")\n * @returns A buffer where the first element is the length of the path (default is 4), then 3 bytes for each number of the path to which is added 0x8000000\n */\nexport function transformPathToBuffer(path: string): Buffer {\n const result: number[] = [];\n const components = path.split('/');\n components.forEach((element) => {\n let toNumber = parseInt(element, 10);\n if (Number.isNaN(toNumber)) {\n return;\n }\n if (element.length > 1 && element[element.length - 1] === \"'\") {\n toNumber += 0x80000000;\n }\n result.push(toNumber);\n });\n const buffer = Buffer.alloc(1 + result.length * 4);\n buffer[0] = result.length;\n result.forEach((element, index) => {\n buffer.writeUInt32BE(element, 1 + 4 * index);\n });\n return buffer;\n}\n\n/**\n *\n * @description Converts uncompressed ledger key to standard tezos binary representation\n */\nexport function compressPublicKey(publicKey: Buffer, curve: DerivationType) {\n if (curve === 0x00) {\n publicKey = publicKey.slice(1);\n } else {\n publicKey[0] = 0x02 + (publicKey[64] & 0x01);\n publicKey = publicKey.slice(0, 33);\n }\n return publicKey;\n}\n\nexport function appendWatermark(bytes: string, watermark?: Uint8Array): string {\n let transactionHex = bytes;\n if (typeof watermark !== 'undefined') {\n const hexWatermark = Buffer.from(watermark).toString('hex');\n transactionHex = hexWatermark.concat(bytes);\n }\n return transactionHex;\n}\n\n/**\n *\n * @description In order not to exceed the data length allowed by the Ledger device, split the operation into buffers of 230 bytes (max) and add them to the message to send to the Ledger\n * @param messageToSend The message to send to the Ledger device\n * @param operation The operation which will be chunk if its length is over 230 bytes\n * @returns The instruction to send to the Ledger device\n */\nexport function chunkOperation(messageToSend: any, operation: Buffer) {\n let offset = 0;\n while (offset !== operation.length) {\n const chunkSize =\n offset + MAX_CHUNK_SIZE >= operation.length ? operation.length - offset : MAX_CHUNK_SIZE;\n const buff = Buffer.alloc(chunkSize);\n operation.copy(buff, 0, offset, offset + chunkSize);\n messageToSend.push(buff);\n offset += chunkSize;\n }\n return messageToSend;\n}\n\n/**\n *\n * @description Verify if the signature returned by the ledger for tz2 and tz3 is valid\n * @param response The signature returned by the Ledger (return from the signWithLedger function)\n * @returns True if valid, false otherwise\n */\nexport function validateResponse(response: Buffer): boolean {\n let valid = true;\n if (response[0] !== 0x31 && response[0] !== 0x30) {\n valid = false;\n }\n if (response[1] + 4 !== response.length) {\n valid = false;\n }\n if (response[2] !== 0x02) {\n valid = false;\n }\n const rLength = response[3];\n if (response[4 + rLength] !== 0x02) {\n valid = false;\n }\n\n const idxLengthSVal = 5 + rLength;\n const sLength = response[idxLengthSVal];\n if (idxLengthSVal + 1 + sLength + 2 !== response.length) {\n valid = false;\n }\n return valid;\n}\n\n/**\n *\n * @description Extract a part of the response returned by the Ledger\n * @param idxLength The index in the response from the Ledger that corresponds to the length of the part to extract\n * @param response The signature returned by the Ledger (return from the signWithLedger function)\n * @returns An object that contains the extracted buffer, the index where it starts in the response and the length of the extracted part\n */\nexport function extractValue(idxLength: number, response: Buffer) {\n const buffer = Buffer.alloc(32);\n buffer.fill(0);\n\n let length = response[idxLength];\n let idxValueStart = idxLength + 1;\n if (length > 32) {\n idxValueStart += length - 32;\n length = 32;\n }\n response.copy(buffer, 32 - length, idxValueStart, idxValueStart + length);\n return { buffer, idxValueStart, length };\n}\n","/**\n * @category Error\n * @description Error that indicates an invalid or unparseable ledger response\n */\nexport class InvalidLedgerResponseError extends Error {\n public name = 'InvalidLedgerResponseError';\n constructor(public message: string) {\n super(message);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to retrieve a Public Key from Ledger signer\n */\nexport class PublicKeyRetrievalError extends Error {\n public name = 'PublicKeyRetrievalError';\n constructor() {\n super(`Unable to retrieve Public Key from Ledger`);\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates a failure when trying to retrieve a Public Key Hash from Ledger signer\n */\nexport class PublicKeyHashRetrievalError extends Error {\n public name = 'PublicKeyHashRetrievalError';\n constructor() {\n super(`Unable to retrieve Public Key Hash from Ledger`);\n }\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"6d90b3d5e616a6e9b9ad9dd8453b5068e7396fff\",\n \"version\": \"13.0.1\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/ledger-signer\n */\n\nimport { Signer } from '@taquito/taquito';\nimport Transport from '@ledgerhq/hw-transport';\nimport { b58cencode, prefix, Prefix, ProhibitedActionError } from '@taquito/utils';\nimport {\n appendWatermark,\n transformPathToBuffer,\n compressPublicKey,\n chunkOperation,\n validateResponse,\n extractValue,\n} from './utils';\nimport { hash } from '@stablelib/blake2b';\nimport {\n PublicKeyHashRetrievalError,\n PublicKeyRetrievalError,\n InvalidLedgerResponseError,\n} from './error';\n\nexport type LedgerTransport = Pick<Transport, 'send' | 'decorateAppAPIMethods' | 'setScrambleKey'>;\n\nexport enum DerivationType {\n ED25519 = 0x00, // tz1\n SECP256K1 = 0x01, // tz2\n P256 = 0x02, // tz3\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid derivation type being passed or used\n */\nexport class InvalidDerivationTypeError extends Error {\n public name = 'InvalidDerivationTypeError';\n constructor(public derivationType: string) {\n super(\n `The derivation type ${derivationType} is invalid. The derivation type must be DerivationType.ED25519, DerivationType.SECP256K1 or DerivationType.P256`\n );\n }\n}\n\n/**\n * @category Error\n * @description Error that indicates an invalid derivation path being passed or used\n */\nexport class InvalidDerivationPathError extends Error {\n public name = 'InvalidDerivationPathError';\n constructor(public derivationPath: string) {\n super(\n `The derivation path ${derivationPath} is invalid. The derivation path must start with 44'/1729`\n );\n }\n}\n\nexport const HDPathTemplate = (account: number) => {\n return `44'/1729'/${account}'/0'`;\n};\n\nexport { VERSION } from './version';\n\n/**\n *\n * @description Implementation of the Signer interface that will allow signing operation from a Ledger Nano device\n *\n * @param transport A transport instance from LedgerJS libraries depending on the platform used (e.g. Web, Node)\n * @param path The ledger derivation path (default is \"44'/1729'/0'/0'\")\n * @param prompt Whether to prompt the ledger for public key (default is true)\n * @param derivationType The value which defines the curve to use (DerivationType.ED25519(default), DerivationType.SECP256K1, DerivationType.P256)\n *\n * @example\n * ```\n * import TransportNodeHid from \"@ledgerhq/hw-transport-node-hid\";\n * const transport = await TransportNodeHid.create();\n * const ledgerSigner = new LedgerSigner(transport, \"44'/1729'/0'/0'\", false, DerivationType.ED25519);\n * ```\n *\n * @example\n * ```\n * import TransportU2F from \"@ledgerhq/hw-transport-u2f\";\n * const transport = await TransportU2F.create();\n * const ledgerSigner = new LedgerSigner(transport, \"44'/1729'/0'/0'\", true, DerivationType.SECP256K1);\n * ```\n */\nexport class LedgerSigner implements Signer {\n // constants for APDU requests (https://github.com/obsidiansystems/ledger-app-tezos/blob/master/APDUs.md)\n private readonly CLA = 0x80; // Instruction class (always 0x80)\n private readonly INS_GET_PUBLIC_KEY = 0x02; // Instruction code to get the ledger’s internal public key without prompt\n private readonly INS_PROMPT_PUBLIC_KEY = 0x03; // Instruction code to get the ledger’s internal public key with prompt\n private readonly INS_SIGN = 0x04; // Sign a message with the ledger’s key\n private readonly FIRST_MESSAGE_SEQUENCE = 0x00;\n private readonly LAST_MESSAGE_SEQUENCE = 0x81;\n private readonly OTHER_MESSAGE_SEQUENCE = 0x01;\n\n private _publicKey?: string;\n private _publicKeyHash?: string;\n constructor(\n private transport: LedgerTransport,\n private path: string = \"44'/1729'/0'/0'\",\n private prompt: boolean = true,\n private derivationType: DerivationType = DerivationType.ED25519\n ) {\n this.transport.setScrambleKey('XTZ');\n if (!path.startsWith(\"44'/1729'\")) {\n throw new InvalidDerivationPathError(path);\n }\n if (!Object.values(DerivationType).includes(derivationType)) {\n throw new InvalidDerivationTypeError(derivationType.toString());\n }\n }\n\n async publicKeyHash(): Promise<string> {\n if (!this._publicKeyHash) {\n await this.publicKey();\n }\n if (this._publicKeyHash) {\n return this._publicKeyHash;\n }\n throw new PublicKeyHashRetrievalError();\n }\n\n async publicKey(): Promise<string> {\n if (this._publicKey) {\n return this._publicKey;\n }\n const responseLedger = await this.getLedgerPublicKey();\n const publicKeyLength = responseLedger[0];\n const rawPublicKey = responseLedger.slice(1, 1 + publicKeyLength);\n const compressedPublicKey = compressPublicKey(rawPublicKey, this.derivationType);\n\n const prefixes = this.getPrefixes();\n const publicKey = b58cencode(compressedPublicKey, prefixes.prefPk);\n const publicKeyHash = b58cencode(hash(compressedPublicKey, 20), prefixes.prefPkh);\n\n this._publicKey = publicKey;\n this._publicKeyHash = publicKeyHash;\n return publicKey;\n }\n\n private async getLedgerPublicKey(): Promise<Buffer> {\n try {\n let ins = this.INS_PROMPT_PUBLIC_KEY;\n if (this.prompt === false) {\n ins = this.INS_GET_PUBLIC_KEY;\n }\n const responseLedger = await this.transport.send(\n this.CLA,\n ins,\n this.FIRST_MESSAGE_SEQUENCE,\n this.derivationType,\n transformPathToBuffer(this.path)\n );\n return responseLedger;\n } catch (error) {\n throw new PublicKeyRetrievalError();\n }\n }\n\n async secretKey(): Promise<string> {\n throw new ProhibitedActionError('Secret key cannot be exposed');\n }\n\n async sign(bytes: string, watermark?: Uint8Array) {\n const watermarkedBytes = appendWatermark(bytes, watermark);\n const watermarkedBytes2buff = Buffer.from(watermarkedBytes, 'hex');\n let messageToSend = [];\n messageToSend.push(transformPathToBuffer(this.path));\n messageToSend = chunkOperation(messageToSend, watermarkedBytes2buff);\n const ledgerResponse = await this.signWithLedger(messageToSend);\n let signature;\n if (this.derivationType === DerivationType.ED25519) {\n signature = ledgerResponse.slice(0, ledgerResponse.length - 2).toString('hex');\n } else {\n if (!validateResponse(ledgerResponse)) {\n throw new InvalidLedgerResponseError('Cannot parse ledger response');\n }\n const idxLengthRVal = 3; // Third element of response is length of r value\n const rValue = extractValue(idxLengthRVal, ledgerResponse);\n const idxLengthSVal = rValue.idxValueStart + rValue.length + 1;\n const sValue = extractValue(idxLengthSVal, ledgerResponse);\n const signatureBuffer = Buffer.concat([rValue.buffer, sValue.buffer]);\n signature = signatureBuffer.toString('hex');\n }\n\n return {\n bytes,\n sig: b58cencode(signature, prefix[Prefix.SIG]),\n prefixSig: b58cencode(signature, this.getPrefixes().prefSig),\n sbytes: bytes + signature,\n };\n }\n\n private async signWithLedger(message: Buffer[]): Promise<Buffer> {\n // first element of the message represents the path\n let ledgerResponse = await this.transport.send(\n this.CLA,\n this.INS_SIGN,\n this.FIRST_MESSAGE_SEQUENCE,\n this.derivationType,\n message[0]\n );\n for (let i = 1; i < message.length; i++) {\n const p1 =\n i === message.length - 1 ? this.LAST_MESSAGE_SEQUENCE : this.OTHER_MESSAGE_SEQUENCE;\n ledgerResponse = await this.transport.send(\n this.CLA,\n this.INS_SIGN,\n p1,\n this.derivationType,\n message[i]\n );\n }\n return ledgerResponse;\n }\n\n private getPrefixes() {\n if (this.derivationType === DerivationType.ED25519) {\n return {\n prefPk: prefix[Prefix.EDPK],\n prefPkh: prefix[Prefix.TZ1],\n prefSig: prefix[Prefix.EDSIG],\n };\n } else if (this.derivationType === DerivationType.SECP256K1) {\n return {\n prefPk: prefix[Prefix.SPPK],\n prefPkh: prefix[Prefix.TZ2],\n prefSig: prefix[Prefix.SPSIG],\n };\n } else {\n return {\n prefPk: prefix[Prefix.P2PK],\n prefPkh: prefix[Prefix.TZ3],\n prefSig: prefix[Prefix.P2SIG],\n };\n }\n }\n}\n"],"names":["DerivationType","b58cencode","hash","ProhibitedActionError","prefix","Prefix"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taquito/ledger-signer",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "13.0.1",
|
|
4
4
|
"description": "Ledger signer provider",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"tezos",
|
|
@@ -59,8 +59,8 @@
|
|
|
59
59
|
"dependencies": {
|
|
60
60
|
"@ledgerhq/hw-transport": "^6.20.0",
|
|
61
61
|
"@stablelib/blake2b": "^1.0.1",
|
|
62
|
-
"@taquito/taquito": "^
|
|
63
|
-
"@taquito/utils": "^
|
|
62
|
+
"@taquito/taquito": "^13.0.1",
|
|
63
|
+
"@taquito/utils": "^13.0.1",
|
|
64
64
|
"buffer": "^6.0.3"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
@@ -68,29 +68,29 @@
|
|
|
68
68
|
"@types/jest": "^26.0.24",
|
|
69
69
|
"@types/node": "^17.0.0",
|
|
70
70
|
"@types/ws": "^8.2.2",
|
|
71
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
72
|
-
"@typescript-eslint/parser": "^5.
|
|
71
|
+
"@typescript-eslint/eslint-plugin": "^5.28.0",
|
|
72
|
+
"@typescript-eslint/parser": "^5.28.0",
|
|
73
73
|
"colors": "^1.4.0",
|
|
74
74
|
"coveralls": "^3.1.1",
|
|
75
75
|
"cross-env": "^7.0.3",
|
|
76
|
-
"eslint": "^8.
|
|
76
|
+
"eslint": "^8.17.0",
|
|
77
77
|
"jest": "^26.6.3",
|
|
78
78
|
"jest-config": "^26.6.3",
|
|
79
|
-
"lint-staged": "^
|
|
79
|
+
"lint-staged": "^13.0.1",
|
|
80
80
|
"lodash.camelcase": "^4.3.0",
|
|
81
|
-
"prettier": "^2.
|
|
82
|
-
"prompt": "^1.
|
|
83
|
-
"replace-in-file": "^6.3.
|
|
81
|
+
"prettier": "^2.7.0",
|
|
82
|
+
"prompt": "^1.3.0",
|
|
83
|
+
"replace-in-file": "^6.3.5",
|
|
84
84
|
"rimraf": "^3.0.2",
|
|
85
|
-
"rollup": "^2.
|
|
85
|
+
"rollup": "^2.75.6",
|
|
86
86
|
"rollup-plugin-json": "^4.0.0",
|
|
87
87
|
"rollup-plugin-sourcemaps": "^0.6.3",
|
|
88
|
-
"rollup-plugin-typescript2": "^0.
|
|
89
|
-
"shelljs": "^0.8.
|
|
88
|
+
"rollup-plugin-typescript2": "^0.32.1",
|
|
89
|
+
"shelljs": "^0.8.5",
|
|
90
90
|
"ts-jest": "^26.4.4",
|
|
91
91
|
"ts-node": "^10.4.0",
|
|
92
92
|
"ts-toolbelt": "^9.6.0",
|
|
93
93
|
"typescript": "~4.1.5"
|
|
94
94
|
},
|
|
95
|
-
"gitHead": "
|
|
95
|
+
"gitHead": "6979668ac998ee33bfd4071482fa2bf605db8cde"
|
|
96
96
|
}
|
|
@@ -192,7 +192,7 @@ export class LedgerSigner implements Signer {
|
|
|
192
192
|
};
|
|
193
193
|
}
|
|
194
194
|
|
|
195
|
-
private async signWithLedger(message:
|
|
195
|
+
private async signWithLedger(message: Buffer[]): Promise<Buffer> {
|
|
196
196
|
// first element of the message represents the path
|
|
197
197
|
let ledgerResponse = await this.transport.send(
|
|
198
198
|
this.CLA,
|
package/src/utils.ts
CHANGED
|
@@ -15,7 +15,7 @@ const MAX_CHUNK_SIZE = 230;
|
|
|
15
15
|
* @returns A buffer where the first element is the length of the path (default is 4), then 3 bytes for each number of the path to which is added 0x8000000
|
|
16
16
|
*/
|
|
17
17
|
export function transformPathToBuffer(path: string): Buffer {
|
|
18
|
-
const result:
|
|
18
|
+
const result: number[] = [];
|
|
19
19
|
const components = path.split('/');
|
|
20
20
|
components.forEach((element) => {
|
|
21
21
|
let toNumber = parseInt(element, 10);
|
package/src/version.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
|
|
3
3
|
export const VERSION = {
|
|
4
|
-
"commitHash": "
|
|
5
|
-
"version": "
|
|
4
|
+
"commitHash": "6d90b3d5e616a6e9b9ad9dd8453b5068e7396fff",
|
|
5
|
+
"version": "13.0.1"
|
|
6
6
|
};
|