@ledgerhq/device-trusted-app-kit-ledger-keyring-protocol 0.0.0-web-ble-29-08---20250829104351 → 0.0.0-wrong-error-when-in-experimental-provider-20251021161219
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/lib/cjs/api/LedgerKeyringProtocol.js +1 -1
- package/lib/cjs/api/LedgerKeyringProtocol.js.map +1 -1
- package/lib/cjs/api/LedgerKeyringProtocolBuilder.js +1 -1
- package/lib/cjs/api/LedgerKeyringProtocolBuilder.js.map +3 -3
- package/lib/cjs/api/app-binder/AddToTrustchainDeviceActionTypes.js.map +2 -2
- package/lib/cjs/api/app-binder/AuthenticateDeviceActionTypes.js.map +1 -1
- package/lib/cjs/api/app-binder/GetVersionCommandTypes.js +1 -1
- package/lib/cjs/api/app-binder/GetVersionCommandTypes.js.map +1 -1
- package/lib/cjs/api/crypto/CryptoService.js +2 -0
- package/lib/cjs/api/crypto/CryptoService.js.map +7 -0
- package/lib/cjs/api/crypto/Key.js +2 -0
- package/lib/cjs/api/crypto/Key.js.map +7 -0
- package/lib/cjs/api/crypto/KeyPair.js +2 -0
- package/lib/cjs/api/crypto/KeyPair.js.map +7 -0
- package/lib/cjs/api/crypto/noble/NobleCryptoService.js +2 -0
- package/lib/cjs/api/crypto/noble/NobleCryptoService.js.map +7 -0
- package/lib/cjs/api/crypto/noble/NobleCryptoService.test.js +2 -0
- package/lib/cjs/api/crypto/noble/NobleCryptoService.test.js.map +7 -0
- package/lib/cjs/api/crypto/noble/NobleKey.js +2 -0
- package/lib/cjs/api/crypto/noble/NobleKey.js.map +7 -0
- package/lib/cjs/api/crypto/noble/NobleKey.test.js +2 -0
- package/lib/cjs/api/crypto/noble/NobleKey.test.js.map +7 -0
- package/lib/cjs/api/crypto/noble/NobleKeyPair.js +2 -0
- package/lib/cjs/api/crypto/noble/NobleKeyPair.js.map +7 -0
- package/lib/cjs/api/crypto/noble/NobleKeyPair.test.js +2 -0
- package/lib/cjs/api/crypto/noble/NobleKeyPair.test.js.map +7 -0
- package/lib/cjs/api/index.js +1 -1
- package/lib/cjs/api/index.js.map +2 -2
- package/lib/cjs/api/model/Env.js +2 -0
- package/lib/cjs/api/model/Env.js.map +7 -0
- package/lib/cjs/api/{app-binder → model}/Errors.js.map +1 -1
- package/lib/cjs/api/model/JWT.js +2 -0
- package/lib/cjs/api/model/JWT.js.map +7 -0
- package/lib/cjs/api/model/Permissions.js +2 -0
- package/lib/cjs/api/model/Permissions.js.map +7 -0
- package/lib/cjs/internal/DefaultLedgerKeyringProtocol.js +1 -1
- package/lib/cjs/internal/DefaultLedgerKeyringProtocol.js.map +3 -3
- package/lib/cjs/internal/app-binder/LedgerKeyringProtocolBinder.js +1 -1
- package/lib/cjs/internal/app-binder/LedgerKeyringProtocolBinder.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/GetAppNameCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/GetAppNameCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/GetSeedIdCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/GetSeedIdCommand.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/GetSeedIdCommand.test.js +2 -2
- package/lib/cjs/internal/app-binder/command/GetSeedIdCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/GetVersionCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/InitCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/InitCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/InitCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/InitCommand.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/ParseBlockSignatureCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/ParseBlockSignatureCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/ParseBlockSignatureCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/ParseBlockSignatureCommand.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/ParseStreamBlockCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/ParseStreamBlockCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/ParseStreamBlockCommand.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/ParseStreamBlockHeader.js +1 -1
- package/lib/cjs/internal/app-binder/command/ParseStreamBlockHeader.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/ParseStreamBlockHeader.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/SetTrustedMemberCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/SetTrustedMemberCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/SetTrustedMemberCommand.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/SignBlockHeader.js +1 -1
- package/lib/cjs/internal/app-binder/command/SignBlockHeader.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/SignBlockHeader.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/SignBlockHeader.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/SignBlockSignatureCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/SignBlockSignatureCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/SignBlockSignatureCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/SignBlockSignatureCommand.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/SignBlockSingleCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/SignBlockSingleCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/SignBlockSingleCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/SignBlockSingleCommand.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/device-action/AddToTrustchainDeviceAction.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/AddToTrustchainDeviceAction.js.map +3 -3
- package/lib/cjs/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.js.map +2 -2
- package/lib/cjs/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.js.map +2 -2
- package/lib/cjs/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.js.map +1 -1
- package/lib/cjs/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.js.map +1 -1
- package/lib/cjs/internal/app-binder/task/ExtractEncryptionKeyTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/ExtractEncryptionKeyTask.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/InitTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/InitTask.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/ParseStreamToDeviceTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/ParseStreamToDeviceTask.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/SignBlockTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/SignBlockTask.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/SignChallengeWithKeypairTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/SignChallengeWithKeypairTask.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/SignChallengeWithKeypairTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/SignChallengeWithKeypairTask.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/utils/TrustedProperties.js +1 -1
- package/lib/cjs/internal/app-binder/task/utils/TrustedProperties.js.map +2 -2
- package/lib/cjs/internal/di.js +1 -1
- package/lib/cjs/internal/di.js.map +3 -3
- package/lib/cjs/internal/externalTypes.js +1 -1
- package/lib/cjs/internal/externalTypes.js.map +2 -2
- package/lib/cjs/internal/lkrp-datasource/data/HttpLKRPDataSource.js +1 -1
- package/lib/cjs/internal/lkrp-datasource/data/HttpLKRPDataSource.js.map +2 -2
- package/lib/cjs/internal/lkrp-datasource/data/HttpLKRPDataSource.test.js +1 -1
- package/lib/cjs/internal/lkrp-datasource/data/HttpLKRPDataSource.test.js.map +2 -2
- package/lib/cjs/internal/lkrp-datasource/data/LKRPDataSource.js.map +1 -1
- package/lib/cjs/internal/use-cases/authentication/AuthenticateUseCase.js +1 -1
- package/lib/cjs/internal/use-cases/authentication/AuthenticateUseCase.js.map +2 -2
- package/lib/cjs/internal/use-cases/authentication/DecryptDataUseCase.js +1 -1
- package/lib/cjs/internal/use-cases/authentication/DecryptDataUseCase.js.map +3 -3
- package/lib/cjs/internal/use-cases/authentication/EncryptDataUseCase.js +1 -1
- package/lib/cjs/internal/use-cases/authentication/EncryptDataUseCase.js.map +3 -3
- package/lib/cjs/internal/utils/LKRPBlock.js +4 -4
- package/lib/cjs/internal/utils/LKRPBlock.js.map +3 -3
- package/lib/cjs/internal/utils/LKRPBlock.test.js +3 -3
- package/lib/cjs/internal/utils/LKRPBlock.test.js.map +3 -3
- package/lib/cjs/internal/utils/LKRPBlockStream.js +2 -2
- package/lib/cjs/internal/utils/LKRPBlockStream.js.map +3 -3
- package/lib/cjs/internal/utils/LKRPBlockStream.test.js +2 -2
- package/lib/cjs/internal/utils/LKRPBlockStream.test.js.map +3 -3
- package/lib/cjs/internal/utils/LKRPCommand.js +2 -2
- package/lib/cjs/internal/utils/LKRPCommand.js.map +3 -3
- package/lib/cjs/internal/utils/LKRPCommand.test.js +2 -2
- package/lib/cjs/internal/utils/LKRPCommand.test.js.map +3 -3
- package/lib/cjs/internal/utils/TLVParser.js +1 -1
- package/lib/cjs/internal/utils/TLVParser.js.map +3 -3
- package/lib/cjs/internal/utils/TLVParser.test.js +1 -1
- package/lib/cjs/internal/utils/TLVParser.test.js.map +2 -2
- package/lib/cjs/internal/utils/required.js +1 -1
- package/lib/cjs/internal/utils/required.js.map +2 -2
- package/lib/cjs/package.json +2 -2
- package/lib/esm/api/LedgerKeyringProtocolBuilder.js +1 -1
- package/lib/esm/api/LedgerKeyringProtocolBuilder.js.map +3 -3
- package/lib/esm/api/app-binder/AddToTrustchainDeviceActionTypes.js.map +2 -2
- package/lib/esm/api/app-binder/AuthenticateDeviceActionTypes.js.map +1 -1
- package/lib/esm/api/crypto/CryptoService.js +2 -0
- package/lib/esm/api/crypto/CryptoService.js.map +7 -0
- package/lib/esm/api/crypto/Key.js +2 -0
- package/lib/esm/api/crypto/Key.js.map +7 -0
- package/lib/esm/api/crypto/KeyPair.js +2 -0
- package/lib/esm/api/crypto/KeyPair.js.map +7 -0
- package/lib/esm/api/crypto/noble/NobleCryptoService.js +2 -0
- package/lib/esm/api/crypto/noble/NobleCryptoService.js.map +7 -0
- package/lib/esm/api/crypto/noble/NobleCryptoService.test.js +2 -0
- package/lib/esm/api/crypto/noble/NobleCryptoService.test.js.map +7 -0
- package/lib/esm/api/crypto/noble/NobleKey.js +2 -0
- package/lib/esm/api/crypto/noble/NobleKey.js.map +7 -0
- package/lib/esm/api/crypto/noble/NobleKey.test.js +2 -0
- package/lib/esm/api/crypto/noble/NobleKey.test.js.map +7 -0
- package/lib/esm/api/crypto/noble/NobleKeyPair.js +2 -0
- package/lib/esm/api/crypto/noble/NobleKeyPair.js.map +7 -0
- package/lib/esm/api/crypto/noble/NobleKeyPair.test.js +2 -0
- package/lib/esm/api/crypto/noble/NobleKeyPair.test.js.map +7 -0
- package/lib/esm/api/index.js +1 -1
- package/lib/esm/api/index.js.map +2 -2
- package/lib/esm/api/model/Env.js +2 -0
- package/lib/esm/api/model/Env.js.map +7 -0
- package/lib/esm/api/{app-binder → model}/Errors.js.map +1 -1
- package/lib/esm/api/model/JWT.js +1 -0
- package/lib/esm/api/model/Permissions.js +2 -0
- package/lib/esm/api/model/Permissions.js.map +7 -0
- package/lib/esm/internal/DefaultLedgerKeyringProtocol.js +1 -1
- package/lib/esm/internal/DefaultLedgerKeyringProtocol.js.map +3 -3
- package/lib/esm/internal/app-binder/LedgerKeyringProtocolBinder.js +1 -1
- package/lib/esm/internal/app-binder/LedgerKeyringProtocolBinder.js.map +3 -3
- package/lib/esm/internal/app-binder/command/GetAppNameCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/GetAppNameCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/GetSeedIdCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/GetSeedIdCommand.js.map +3 -3
- package/lib/esm/internal/app-binder/command/GetSeedIdCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/GetSeedIdCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/GetVersionCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/InitCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/InitCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/InitCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/InitCommand.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/ParseBlockSignatureCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/ParseBlockSignatureCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/ParseBlockSignatureCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/ParseBlockSignatureCommand.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/ParseStreamBlockCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/ParseStreamBlockCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/ParseStreamBlockCommand.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/ParseStreamBlockHeader.js +1 -1
- package/lib/esm/internal/app-binder/command/ParseStreamBlockHeader.js.map +2 -2
- package/lib/esm/internal/app-binder/command/ParseStreamBlockHeader.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/SetTrustedMemberCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/SetTrustedMemberCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/SetTrustedMemberCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/SetTrustedMemberCommand.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/SignBlockHeader.js +1 -1
- package/lib/esm/internal/app-binder/command/SignBlockHeader.js.map +2 -2
- package/lib/esm/internal/app-binder/command/SignBlockHeader.test.js +1 -1
- package/lib/esm/internal/app-binder/command/SignBlockHeader.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/SignBlockSignatureCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/SignBlockSignatureCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/SignBlockSignatureCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/SignBlockSignatureCommand.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/SignBlockSingleCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/SignBlockSingleCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/SignBlockSingleCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/SignBlockSingleCommand.test.js.map +2 -2
- package/lib/esm/internal/app-binder/device-action/AddToTrustchainDeviceAction.js +1 -1
- package/lib/esm/internal/app-binder/device-action/AddToTrustchainDeviceAction.js.map +3 -3
- package/lib/esm/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.js +1 -1
- package/lib/esm/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.js.map +2 -2
- package/lib/esm/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.js +1 -1
- package/lib/esm/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.js.map +2 -2
- package/lib/esm/internal/app-binder/task/ExtractEncryptionKeyTask.js +1 -1
- package/lib/esm/internal/app-binder/task/ExtractEncryptionKeyTask.js.map +3 -3
- package/lib/esm/internal/app-binder/task/InitTask.js +1 -1
- package/lib/esm/internal/app-binder/task/InitTask.js.map +3 -3
- package/lib/esm/internal/app-binder/task/ParseStreamToDeviceTask.js +1 -1
- package/lib/esm/internal/app-binder/task/ParseStreamToDeviceTask.js.map +3 -3
- package/lib/esm/internal/app-binder/task/SignBlockTask.js +1 -1
- package/lib/esm/internal/app-binder/task/SignBlockTask.js.map +3 -3
- package/lib/esm/internal/app-binder/task/SignChallengeWithKeypairTask.js +1 -1
- package/lib/esm/internal/app-binder/task/SignChallengeWithKeypairTask.js.map +3 -3
- package/lib/esm/internal/app-binder/task/SignChallengeWithKeypairTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/SignChallengeWithKeypairTask.test.js.map +3 -3
- package/lib/esm/internal/app-binder/task/utils/TrustedProperties.js +1 -1
- package/lib/esm/internal/app-binder/task/utils/TrustedProperties.js.map +2 -2
- package/lib/esm/internal/di.js +1 -1
- package/lib/esm/internal/di.js.map +3 -3
- package/lib/esm/internal/externalTypes.js +1 -1
- package/lib/esm/internal/externalTypes.js.map +2 -2
- package/lib/esm/internal/lkrp-datasource/data/HttpLKRPDataSource.js +1 -1
- package/lib/esm/internal/lkrp-datasource/data/HttpLKRPDataSource.js.map +2 -2
- package/lib/esm/internal/lkrp-datasource/data/HttpLKRPDataSource.test.js +1 -1
- package/lib/esm/internal/lkrp-datasource/data/HttpLKRPDataSource.test.js.map +2 -2
- package/lib/esm/internal/use-cases/authentication/AuthenticateUseCase.js +1 -1
- package/lib/esm/internal/use-cases/authentication/AuthenticateUseCase.js.map +2 -2
- package/lib/esm/internal/use-cases/authentication/DecryptDataUseCase.js +1 -1
- package/lib/esm/internal/use-cases/authentication/DecryptDataUseCase.js.map +3 -3
- package/lib/esm/internal/use-cases/authentication/EncryptDataUseCase.js +1 -1
- package/lib/esm/internal/use-cases/authentication/EncryptDataUseCase.js.map +3 -3
- package/lib/esm/internal/utils/LKRPBlock.js +3 -3
- package/lib/esm/internal/utils/LKRPBlock.js.map +3 -3
- package/lib/esm/internal/utils/LKRPBlock.test.js +2 -2
- package/lib/esm/internal/utils/LKRPBlock.test.js.map +3 -3
- package/lib/esm/internal/utils/LKRPBlockStream.js +2 -2
- package/lib/esm/internal/utils/LKRPBlockStream.js.map +3 -3
- package/lib/esm/internal/utils/LKRPBlockStream.test.js +1 -1
- package/lib/esm/internal/utils/LKRPBlockStream.test.js.map +3 -3
- package/lib/esm/internal/utils/LKRPCommand.js +2 -2
- package/lib/esm/internal/utils/LKRPCommand.js.map +3 -3
- package/lib/esm/internal/utils/LKRPCommand.test.js +2 -2
- package/lib/esm/internal/utils/LKRPCommand.test.js.map +3 -3
- package/lib/esm/internal/utils/TLVParser.js +1 -1
- package/lib/esm/internal/utils/TLVParser.js.map +3 -3
- package/lib/esm/internal/utils/TLVParser.test.js +1 -1
- package/lib/esm/internal/utils/TLVParser.test.js.map +2 -2
- package/lib/esm/internal/utils/required.js +1 -1
- package/lib/esm/internal/utils/required.js.map +2 -2
- package/lib/esm/package.json +2 -2
- package/lib/types/api/LedgerKeyringProtocol.d.ts +2 -2
- package/lib/types/api/LedgerKeyringProtocol.d.ts.map +1 -1
- package/lib/types/api/LedgerKeyringProtocolBuilder.d.ts +4 -1
- package/lib/types/api/LedgerKeyringProtocolBuilder.d.ts.map +1 -1
- package/lib/types/api/app-binder/AddToTrustchainDeviceActionTypes.d.ts +8 -4
- package/lib/types/api/app-binder/AddToTrustchainDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/app-binder/AuthenticateDeviceActionTypes.d.ts +2 -2
- package/lib/types/api/app-binder/AuthenticateDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/app-binder/GetVersionCommandTypes.d.ts +0 -1
- package/lib/types/api/app-binder/GetVersionCommandTypes.d.ts.map +1 -1
- package/lib/types/api/crypto/CryptoService.d.ts +22 -0
- package/lib/types/api/crypto/CryptoService.d.ts.map +1 -0
- package/lib/types/api/crypto/Key.d.ts +7 -0
- package/lib/types/api/crypto/Key.d.ts.map +1 -0
- package/lib/types/api/crypto/KeyPair.d.ts +13 -0
- package/lib/types/api/crypto/KeyPair.d.ts.map +1 -0
- package/lib/types/api/crypto/noble/NobleCryptoService.d.ts +13 -0
- package/lib/types/api/crypto/noble/NobleCryptoService.d.ts.map +1 -0
- package/lib/types/api/crypto/noble/NobleCryptoService.test.d.ts +2 -0
- package/lib/types/api/crypto/noble/NobleCryptoService.test.d.ts.map +1 -0
- package/lib/types/api/crypto/noble/NobleKey.d.ts +11 -0
- package/lib/types/api/crypto/noble/NobleKey.d.ts.map +1 -0
- package/lib/types/api/crypto/noble/NobleKey.test.d.ts +2 -0
- package/lib/types/api/crypto/noble/NobleKey.test.d.ts.map +1 -0
- package/lib/types/api/crypto/noble/NobleKeyPair.d.ts +18 -0
- package/lib/types/api/crypto/noble/NobleKeyPair.d.ts.map +1 -0
- package/lib/types/api/crypto/noble/NobleKeyPair.test.d.ts +2 -0
- package/lib/types/api/crypto/noble/NobleKeyPair.test.d.ts.map +1 -0
- package/lib/types/api/index.d.ts +10 -2
- package/lib/types/api/index.d.ts.map +1 -1
- package/lib/types/api/model/Env.d.ts +5 -0
- package/lib/types/api/model/Env.d.ts.map +1 -0
- package/lib/types/api/model/Errors.d.ts.map +1 -0
- package/lib/types/api/model/JWT.d.ts +9 -0
- package/lib/types/api/model/JWT.d.ts.map +1 -0
- package/lib/types/api/{app-binder/LKRPTypes.d.ts → model/Permissions.d.ts} +1 -19
- package/lib/types/api/model/Permissions.d.ts.map +1 -0
- package/lib/types/internal/DefaultLedgerKeyringProtocol.d.ts +6 -4
- package/lib/types/internal/DefaultLedgerKeyringProtocol.d.ts.map +1 -1
- package/lib/types/internal/app-binder/LedgerKeyringProtocolBinder.d.ts +7 -4
- package/lib/types/internal/app-binder/LedgerKeyringProtocolBinder.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/GetAppNameCommand.d.ts +4 -1
- package/lib/types/internal/app-binder/command/GetAppNameCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/GetSeedIdCommand.d.ts +13 -1
- package/lib/types/internal/app-binder/command/GetSeedIdCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/GetVersionCommand.d.ts +2 -1
- package/lib/types/internal/app-binder/command/GetVersionCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/InitCommand.d.ts +4 -1
- package/lib/types/internal/app-binder/command/InitCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/ParseBlockSignatureCommand.d.ts +4 -1
- package/lib/types/internal/app-binder/command/ParseBlockSignatureCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/ParseStreamBlockCommand.d.ts +5 -1
- package/lib/types/internal/app-binder/command/ParseStreamBlockCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/ParseStreamBlockHeader.d.ts +4 -1
- package/lib/types/internal/app-binder/command/ParseStreamBlockHeader.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/SetTrustedMemberCommand.d.ts +5 -1
- package/lib/types/internal/app-binder/command/SetTrustedMemberCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/SignBlockHeader.d.ts +5 -1
- package/lib/types/internal/app-binder/command/SignBlockHeader.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/SignBlockSignatureCommand.d.ts +5 -1
- package/lib/types/internal/app-binder/command/SignBlockSignatureCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/SignBlockSingleCommand.d.ts +4 -1
- package/lib/types/internal/app-binder/command/SignBlockSingleCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/AddToTrustchainDeviceAction.d.ts +8 -4
- package/lib/types/internal/app-binder/device-action/AddToTrustchainDeviceAction.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.d.ts +5 -2
- package/lib/types/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.d.ts +5 -2
- package/lib/types/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.d.ts +5 -2
- package/lib/types/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.d.ts +5 -2
- package/lib/types/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/ExtractEncryptionKeyTask.d.ts +4 -7
- package/lib/types/internal/app-binder/task/ExtractEncryptionKeyTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/InitTask.d.ts +5 -3
- package/lib/types/internal/app-binder/task/InitTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/ParseStreamToDeviceTask.d.ts +1 -1
- package/lib/types/internal/app-binder/task/ParseStreamToDeviceTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/SignBlockTask.d.ts +11 -8
- package/lib/types/internal/app-binder/task/SignBlockTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/SignChallengeWithKeypairTask.d.ts +5 -3
- package/lib/types/internal/app-binder/task/SignChallengeWithKeypairTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/utils/TrustedProperties.d.ts +1 -1
- package/lib/types/internal/app-binder/task/utils/TrustedProperties.d.ts.map +1 -1
- package/lib/types/internal/di.d.ts +3 -1
- package/lib/types/internal/di.d.ts.map +1 -1
- package/lib/types/internal/externalTypes.d.ts +1 -0
- package/lib/types/internal/externalTypes.d.ts.map +1 -1
- package/lib/types/internal/lkrp-datasource/data/HttpLKRPDataSource.d.ts +2 -2
- package/lib/types/internal/lkrp-datasource/data/HttpLKRPDataSource.d.ts.map +1 -1
- package/lib/types/internal/lkrp-datasource/data/LKRPDataSource.d.ts +2 -2
- package/lib/types/internal/lkrp-datasource/data/LKRPDataSource.d.ts.map +1 -1
- package/lib/types/internal/use-cases/authentication/AuthenticateUseCase.d.ts +3 -2
- package/lib/types/internal/use-cases/authentication/AuthenticateUseCase.d.ts.map +1 -1
- package/lib/types/internal/use-cases/authentication/DecryptDataUseCase.d.ts +4 -1
- package/lib/types/internal/use-cases/authentication/DecryptDataUseCase.d.ts.map +1 -1
- package/lib/types/internal/use-cases/authentication/EncryptDataUseCase.d.ts +4 -1
- package/lib/types/internal/use-cases/authentication/EncryptDataUseCase.d.ts.map +1 -1
- package/lib/types/internal/utils/LKRPBlock.d.ts +1 -1
- package/lib/types/internal/utils/LKRPBlock.d.ts.map +1 -1
- package/lib/types/internal/utils/LKRPBlockStream.d.ts +4 -3
- package/lib/types/internal/utils/LKRPBlockStream.d.ts.map +1 -1
- package/lib/types/internal/utils/LKRPCommand.d.ts +1 -1
- package/lib/types/internal/utils/LKRPCommand.d.ts.map +1 -1
- package/lib/types/internal/utils/TLVParser.d.ts +1 -1
- package/lib/types/internal/utils/TLVParser.d.ts.map +1 -1
- package/lib/types/internal/utils/required.d.ts +1 -1
- package/lib/types/internal/utils/required.d.ts.map +1 -1
- package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/lib/cjs/api/app-binder/GetAppNameCommandTypes.js +0 -2
- package/lib/cjs/api/app-binder/GetAppNameCommandTypes.js.map +0 -7
- package/lib/cjs/api/app-binder/GetSeedIdCommandTypes.js +0 -2
- package/lib/cjs/api/app-binder/GetSeedIdCommandTypes.js.map +0 -7
- package/lib/cjs/api/app-binder/InitCommandTypes.js +0 -2
- package/lib/cjs/api/app-binder/InitCommandTypes.js.map +0 -7
- package/lib/cjs/api/app-binder/KeypairFromBytes.js +0 -2
- package/lib/cjs/api/app-binder/KeypairFromBytes.js.map +0 -7
- package/lib/cjs/api/app-binder/LKRPTypes.js +0 -2
- package/lib/cjs/api/app-binder/LKRPTypes.js.map +0 -7
- package/lib/cjs/api/app-binder/ParseStreamBlockCommandCommandTypes.js +0 -2
- package/lib/cjs/api/app-binder/ParseStreamBlockCommandCommandTypes.js.map +0 -7
- package/lib/cjs/api/app-binder/ParseStreamBlockHeaderCommandTypes.js +0 -2
- package/lib/cjs/api/app-binder/ParseStreamBlockHeaderCommandTypes.js.map +0 -7
- package/lib/cjs/api/app-binder/ParseStreamBlockSignatureTypes.js +0 -2
- package/lib/cjs/api/app-binder/ParseStreamBlockSignatureTypes.js.map +0 -7
- package/lib/cjs/api/app-binder/SetTrustedMemberTypes.js +0 -2
- package/lib/cjs/api/app-binder/SetTrustedMemberTypes.js.map +0 -7
- package/lib/cjs/api/app-binder/SignBlockCommandTypes.js +0 -2
- package/lib/cjs/api/app-binder/SignBlockCommandTypes.js.map +0 -7
- package/lib/cjs/api/app-binder/SignBlockHeaderCommandTypes.js +0 -2
- package/lib/cjs/api/app-binder/SignBlockHeaderCommandTypes.js.map +0 -7
- package/lib/cjs/api/app-binder/SignBlockSignatureCommandTypes.js +0 -2
- package/lib/cjs/api/app-binder/SignBlockSignatureCommandTypes.js.map +0 -7
- package/lib/cjs/api/app-binder/SignBlockSingleCommandTypes.js +0 -2
- package/lib/cjs/api/app-binder/SignBlockSingleCommandTypes.js.map +0 -7
- package/lib/cjs/internal/utils/TLVBuilder.js +0 -2
- package/lib/cjs/internal/utils/TLVBuilder.js.map +0 -7
- package/lib/cjs/internal/utils/crypto.js +0 -2
- package/lib/cjs/internal/utils/crypto.js.map +0 -7
- package/lib/cjs/internal/utils/hex.js +0 -2
- package/lib/cjs/internal/utils/hex.js.map +0 -7
- package/lib/esm/api/app-binder/GetAppNameCommandTypes.js +0 -1
- package/lib/esm/api/app-binder/GetSeedIdCommandTypes.js +0 -1
- package/lib/esm/api/app-binder/GetSeedIdCommandTypes.js.map +0 -7
- package/lib/esm/api/app-binder/InitCommandTypes.js +0 -1
- package/lib/esm/api/app-binder/InitCommandTypes.js.map +0 -7
- package/lib/esm/api/app-binder/KeypairFromBytes.js +0 -2
- package/lib/esm/api/app-binder/KeypairFromBytes.js.map +0 -7
- package/lib/esm/api/app-binder/LKRPTypes.js +0 -2
- package/lib/esm/api/app-binder/LKRPTypes.js.map +0 -7
- package/lib/esm/api/app-binder/ParseStreamBlockCommandCommandTypes.js +0 -1
- package/lib/esm/api/app-binder/ParseStreamBlockCommandCommandTypes.js.map +0 -7
- package/lib/esm/api/app-binder/ParseStreamBlockHeaderCommandTypes.js +0 -1
- package/lib/esm/api/app-binder/ParseStreamBlockHeaderCommandTypes.js.map +0 -7
- package/lib/esm/api/app-binder/ParseStreamBlockSignatureTypes.js +0 -1
- package/lib/esm/api/app-binder/ParseStreamBlockSignatureTypes.js.map +0 -7
- package/lib/esm/api/app-binder/SetTrustedMemberTypes.js +0 -1
- package/lib/esm/api/app-binder/SetTrustedMemberTypes.js.map +0 -7
- package/lib/esm/api/app-binder/SignBlockCommandTypes.js +0 -1
- package/lib/esm/api/app-binder/SignBlockCommandTypes.js.map +0 -7
- package/lib/esm/api/app-binder/SignBlockHeaderCommandTypes.js +0 -1
- package/lib/esm/api/app-binder/SignBlockHeaderCommandTypes.js.map +0 -7
- package/lib/esm/api/app-binder/SignBlockSignatureCommandTypes.js +0 -1
- package/lib/esm/api/app-binder/SignBlockSignatureCommandTypes.js.map +0 -7
- package/lib/esm/api/app-binder/SignBlockSingleCommandTypes.js +0 -1
- package/lib/esm/api/app-binder/SignBlockSingleCommandTypes.js.map +0 -7
- package/lib/esm/internal/utils/TLVBuilder.js +0 -2
- package/lib/esm/internal/utils/TLVBuilder.js.map +0 -7
- package/lib/esm/internal/utils/crypto.js +0 -2
- package/lib/esm/internal/utils/crypto.js.map +0 -7
- package/lib/esm/internal/utils/hex.js +0 -2
- package/lib/esm/internal/utils/hex.js.map +0 -7
- package/lib/types/api/app-binder/Errors.d.ts.map +0 -1
- package/lib/types/api/app-binder/GetAppNameCommandTypes.d.ts +0 -5
- package/lib/types/api/app-binder/GetAppNameCommandTypes.d.ts.map +0 -1
- package/lib/types/api/app-binder/GetSeedIdCommandTypes.d.ts +0 -14
- package/lib/types/api/app-binder/GetSeedIdCommandTypes.d.ts.map +0 -1
- package/lib/types/api/app-binder/InitCommandTypes.d.ts +0 -5
- package/lib/types/api/app-binder/InitCommandTypes.d.ts.map +0 -1
- package/lib/types/api/app-binder/KeypairFromBytes.d.ts +0 -11
- package/lib/types/api/app-binder/KeypairFromBytes.d.ts.map +0 -1
- package/lib/types/api/app-binder/LKRPTypes.d.ts.map +0 -1
- package/lib/types/api/app-binder/ParseStreamBlockCommandCommandTypes.d.ts +0 -6
- package/lib/types/api/app-binder/ParseStreamBlockCommandCommandTypes.d.ts.map +0 -1
- package/lib/types/api/app-binder/ParseStreamBlockHeaderCommandTypes.d.ts +0 -5
- package/lib/types/api/app-binder/ParseStreamBlockHeaderCommandTypes.d.ts.map +0 -1
- package/lib/types/api/app-binder/ParseStreamBlockSignatureTypes.d.ts +0 -5
- package/lib/types/api/app-binder/ParseStreamBlockSignatureTypes.d.ts.map +0 -1
- package/lib/types/api/app-binder/SetTrustedMemberTypes.d.ts +0 -6
- package/lib/types/api/app-binder/SetTrustedMemberTypes.d.ts.map +0 -1
- package/lib/types/api/app-binder/SignBlockCommandTypes.d.ts +0 -9
- package/lib/types/api/app-binder/SignBlockCommandTypes.d.ts.map +0 -1
- package/lib/types/api/app-binder/SignBlockHeaderCommandTypes.d.ts +0 -6
- package/lib/types/api/app-binder/SignBlockHeaderCommandTypes.d.ts.map +0 -1
- package/lib/types/api/app-binder/SignBlockSignatureCommandTypes.d.ts +0 -6
- package/lib/types/api/app-binder/SignBlockSignatureCommandTypes.d.ts.map +0 -1
- package/lib/types/api/app-binder/SignBlockSingleCommandTypes.d.ts +0 -5
- package/lib/types/api/app-binder/SignBlockSingleCommandTypes.d.ts.map +0 -1
- package/lib/types/internal/utils/TLVBuilder.d.ts +0 -15
- package/lib/types/internal/utils/TLVBuilder.d.ts.map +0 -1
- package/lib/types/internal/utils/crypto.d.ts +0 -19
- package/lib/types/internal/utils/crypto.d.ts.map +0 -1
- package/lib/types/internal/utils/hex.d.ts +0 -3
- package/lib/types/internal/utils/hex.d.ts.map +0 -1
- /package/lib/cjs/api/{app-binder → model}/Errors.js +0 -0
- /package/lib/esm/api/{app-binder → model}/Errors.js +0 -0
- /package/lib/esm/api/{app-binder/GetAppNameCommandTypes.js.map → model/JWT.js.map} +0 -0
- /package/lib/types/api/{app-binder → model}/Errors.d.ts +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/GetSeedIdCommand.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,
|
|
6
|
-
"names": ["GetSeedIdCommand_exports", "__export", "GetSeedIdCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_eitherSeqRecord", "
|
|
4
|
+
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n bufferToHexaString,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport { eitherSeqRecord } from \"@internal/utils/eitherSeqRecord\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport type GetSeedIdCommandResponse = {\n readonly credential: {\n readonly version: number;\n readonly curveId: number;\n readonly signAlgorithm: number;\n readonly publicKey: string;\n };\n readonly signature: string;\n readonly attestation: string;\n};\n\nexport type GetSeedIdCommandArgs = {\n readonly challengeTLV: string;\n};\n\nexport class GetSeedIdCommand\n implements\n Command<\n GetSeedIdCommandResponse,\n GetSeedIdCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n GetSeedIdCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n constructor(private readonly args: GetSeedIdCommandArgs) {}\n getApdu(): Apdu {\n const { challengeTLV } = this.args;\n const getSeedIdArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x05,\n p1: 0x00,\n p2: 0x00,\n };\n\n return new ApduBuilder(getSeedIdArgs)\n .addHexaStringToData(challengeTLV)\n .build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<GetSeedIdCommandResponse, LedgerKeyringProtocolErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n\n const required = <T>(value: T | undefined, errorMsg: string) =>\n Maybe.fromNullable(value).toEither(\n new InvalidStatusWordError(errorMsg),\n );\n\n return eitherSeqRecord({\n credential: () =>\n eitherSeqRecord({\n version: () =>\n required(parser.extract8BitUInt(), \"Version is missing\"),\n curveId: () =>\n required(parser.extract8BitUInt(), \"Curve ID is missing\"),\n signAlgorithm: () =>\n required(parser.extract8BitUInt(), \"Sign algorithm is missing\"),\n publicKey: () =>\n required(parser.extract8BitUInt(), \"Public key length is missing\")\n .chain((length) =>\n required(\n parser.extractFieldByLength(length),\n \"Public key is missing\",\n ),\n )\n .map((str) => bufferToHexaString(str, false)),\n }),\n\n signature: () =>\n required(parser.extract8BitUInt(), \"Signature length is missing\")\n .chain((length) =>\n required(\n parser.extractFieldByLength(length),\n \"Signature is missing\",\n ),\n )\n .map((str) => bufferToHexaString(str, false)),\n\n attestation: () =>\n eitherSeqRecord({\n id: () =>\n required(\n parser.extractFieldByLength(0x01),\n \"Attestation Id is missing\",\n ),\n version: () =>\n required(\n parser.extract8BitUInt(),\n \"Attestation version is missing\",\n ),\n curveId: () =>\n required(\n parser.extract8BitUInt(),\n \"Attestation curve ID is missing\",\n ),\n signAlgorithm: () =>\n required(\n parser.extract8BitUInt(),\n \"Attestation sign algorithm is missing\",\n ),\n publicKey: () =>\n required(\n parser.extract8BitUInt(),\n \"Attestation key length is missing\",\n ).chain((length) =>\n required(\n parser.extractFieldByLength(length),\n \"Attestation key is missing\",\n ),\n ),\n signature: () =>\n required(\n parser.extract8BitUInt(),\n \"Attestation signature length is missing\",\n ).chain((length) =>\n required(\n parser.extractFieldByLength(length),\n \"Attestation signature is missing\",\n ),\n ),\n }).map((attestation) =>\n bufferToHexaString(\n Uint8Array.from([\n ...attestation.id,\n attestation.version,\n attestation.curveId,\n attestation.signAlgorithm,\n attestation.publicKey.length,\n ...attestation.publicKey,\n attestation.signature.length,\n ...attestation.signature,\n ]),\n false,\n ),\n ),\n }).caseOf({\n Left: (error) => CommandResultFactory({ error }),\n Right: (data) => CommandResultFactory({ data }),\n });\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAWO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAAgC,2CAEhCC,EAIO,+CAiBA,MAAMN,CAOb,CAME,YAA6BO,EAA4B,CAA5B,UAAAA,CAA6B,CALzC,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAGvD,SAAgB,CACd,KAAM,CAAE,aAAAC,CAAa,EAAI,KAAK,KACxBC,EAAiC,CACrC,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,EAEA,OAAO,IAAI,cAAYA,CAAa,EACjC,oBAAoBD,CAAY,EAChC,MAAM,CACX,CAEA,cACEE,EAC0E,CAC1E,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAI,aAAWD,CAAY,EAEpCE,EAAW,CAAIC,EAAsBC,IACzC,QAAM,aAAaD,CAAK,EAAE,SACxB,IAAI,yBAAuBC,CAAQ,CACrC,EAEF,SAAO,mBAAgB,CACrB,WAAY,OACV,mBAAgB,CACd,QAAS,IACPF,EAASD,EAAO,gBAAgB,EAAG,oBAAoB,EACzD,QAAS,IACPC,EAASD,EAAO,gBAAgB,EAAG,qBAAqB,EAC1D,cAAe,IACbC,EAASD,EAAO,gBAAgB,EAAG,2BAA2B,EAChE,UAAW,IACTC,EAASD,EAAO,gBAAgB,EAAG,8BAA8B,EAC9D,MAAOI,GACNH,EACED,EAAO,qBAAqBI,CAAM,EAClC,uBACF,CACF,EACC,IAAKC,MAAQ,sBAAmBA,EAAK,EAAK,CAAC,CAClD,CAAC,EAEH,UAAW,IACTJ,EAASD,EAAO,gBAAgB,EAAG,6BAA6B,EAC7D,MAAOI,GACNH,EACED,EAAO,qBAAqBI,CAAM,EAClC,sBACF,CACF,EACC,IAAKC,MAAQ,sBAAmBA,EAAK,EAAK,CAAC,EAEhD,YAAa,OACX,mBAAgB,CACd,GAAI,IACFJ,EACED,EAAO,qBAAqB,CAAI,EAChC,2BACF,EACF,QAAS,IACPC,EACED,EAAO,gBAAgB,EACvB,gCACF,EACF,QAAS,IACPC,EACED,EAAO,gBAAgB,EACvB,iCACF,EACF,cAAe,IACbC,EACED,EAAO,gBAAgB,EACvB,uCACF,EACF,UAAW,IACTC,EACED,EAAO,gBAAgB,EACvB,mCACF,EAAE,MAAOI,GACPH,EACED,EAAO,qBAAqBI,CAAM,EAClC,4BACF,CACF,EACF,UAAW,IACTH,EACED,EAAO,gBAAgB,EACvB,yCACF,EAAE,MAAOI,GACPH,EACED,EAAO,qBAAqBI,CAAM,EAClC,kCACF,CACF,CACJ,CAAC,EAAE,IAAKE,MACN,sBACE,WAAW,KAAK,CACd,GAAGA,EAAY,GACfA,EAAY,QACZA,EAAY,QACZA,EAAY,cACZA,EAAY,UAAU,OACtB,GAAGA,EAAY,UACfA,EAAY,UAAU,OACtB,GAAGA,EAAY,SACjB,CAAC,EACD,EACF,CACF,CACJ,CAAC,EAAE,OAAO,CACR,KAAOC,MAAU,wBAAqB,CAAE,MAAAA,CAAM,CAAC,EAC/C,MAAQC,MAAS,wBAAqB,CAAE,KAAAA,CAAK,CAAC,CAChD,CAAC,CACH,CAAC,CACH,CACF",
|
|
6
|
+
"names": ["GetSeedIdCommand_exports", "__export", "GetSeedIdCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_eitherSeqRecord", "import_ledgerKeyringProtocolErrors", "args", "challengeTLV", "getSeedIdArgs", "apduResponse", "parser", "required", "value", "errorMsg", "length", "str", "attestation", "error", "data"]
|
|
7
7
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var o=require("@ledgerhq/device-management-kit"),s=require("
|
|
1
|
+
"use strict";var o=require("@ledgerhq/device-management-kit"),s=require("@ledgerhq/device-management-kit"),n=require("./GetSeedIdCommand");describe("GetSeedIdCommand",()=>{const r="01020304";it("should build the correct APDU",()=>{const t=new n.GetSeedIdCommand({challengeTLV:r}).getApdu(),e=(0,s.hexaStringToBuffer)(r);expect(t.getRawApdu()).toEqual(Uint8Array.from([224,5,0,0,e.length,...e]))}),it("should parse the response correctly",()=>{const a=new n.GetSeedIdCommand({challengeTLV:r}),t=(0,s.hexaStringToBuffer)(`
|
|
2
2
|
01 02 03
|
|
3
3
|
06
|
|
4
4
|
05 06 07 08 09 0a
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
05
|
|
12
12
|
2e 2f 30 31 32
|
|
13
13
|
12 13 14
|
|
14
|
-
`.replace(/\s+/g,"")),e=a.parseResponse({statusCode:Uint8Array.from([144,0]),data:t});expect(e).toStrictEqual((0,o.CommandResultFactory)({data:{credential:{version:1,curveId:2,signAlgorithm:3,publicKey:"05060708090a"},signature:"161718191a",attestation:"1b0102030720212223242526052e2f303132"}}))}),it("should parsing error response",()=>{const a=new n.GetSeedIdCommand({challengeTLV:r}),t=(0,s.
|
|
14
|
+
`.replace(/\s+/g,"")),e=a.parseResponse({statusCode:Uint8Array.from([144,0]),data:t});expect(e).toStrictEqual((0,o.CommandResultFactory)({data:{credential:{version:1,curveId:2,signAlgorithm:3,publicKey:"05060708090a"},signature:"161718191a",attestation:"1b0102030720212223242526052e2f303132"}}))}),it("should parsing error response",()=>{const a=new n.GetSeedIdCommand({challengeTLV:r}),t=(0,s.hexaStringToBuffer)(`
|
|
15
15
|
01 02 03
|
|
16
16
|
06
|
|
17
17
|
05
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/GetSeedIdCommand.test.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\
|
|
5
|
-
"mappings": "aAAA,IAAAA,EAGO,
|
|
6
|
-
"names": ["import_device_management_kit", "
|
|
4
|
+
"sourcesContent": ["import {\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\n\nimport { GetSeedIdCommand } from \"./GetSeedIdCommand\";\n\ndescribe(\"GetSeedIdCommand\", () => {\n const mockedChallenge = \"01020304\";\n\n it(\"should build the correct APDU\", () => {\n // GIVEN\n const command = new GetSeedIdCommand({\n challengeTLV: mockedChallenge,\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n const challengeBytes = hexaStringToBuffer(mockedChallenge)!;\n expect(apdu.getRawApdu()).toEqual(\n Uint8Array.from([\n 0xe0, // CLA\n 0x05, // INS\n 0x00, // P1\n 0x00, // P2\n challengeBytes.length, // Lc\n ...challengeBytes, // CData\n ]),\n );\n });\n\n it(\"should parse the response correctly\", () => {\n // GIVEN\n const command = new GetSeedIdCommand({\n challengeTLV: mockedChallenge,\n });\n const mockedResponse = hexaStringToBuffer(\n `\n 01 02 03\n 06\n 05 06 07 08 09 0a\n 05\n 16 17 18 19 1a\n 1b\n 01 02 03\n 07\n 20 21 22 23 24 25 26\n 05\n 2e 2f 30 31 32\n 12 13 14\n `.replace(/\\s+/g, \"\"), // (the last three bytes should be ignored)\n )!;\n\n // WHEN\n const result = command.parseResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: mockedResponse,\n });\n\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: {\n credential: {\n version: 1,\n curveId: 2,\n signAlgorithm: 3,\n publicKey: \"05060708090a\",\n },\n signature: \"161718191a\",\n attestation: \"1b0102030720212223242526052e2f303132\",\n },\n }),\n );\n });\n\n it(\"should parsing error response\", () => {\n // GIVEN\n const command = new GetSeedIdCommand({\n challengeTLV: mockedChallenge,\n });\n const mockedResponse = hexaStringToBuffer(\n `\n 01 02 03\n 06\n 05\n 05\n 16 17 18 19 1a\n 1b\n 01 02 03\n 07\n 20 21 22 23 24 25 26\n 05\n 2e 2f 30 31 32\n `.replace(/\\s+/g, \"\"),\n )!;\n\n // WHEN\n const result = command.parseResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: mockedResponse,\n });\n\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n error: expect.any(InvalidStatusWordError), // (That's not an assignment to `any` maybe an eslint bug)\n }),\n );\n });\n});\n"],
|
|
5
|
+
"mappings": "aAAA,IAAAA,EAGO,2CACPA,EAAmC,2CAEnCC,EAAiC,8BAEjC,SAAS,mBAAoB,IAAM,CACjC,MAAMC,EAAkB,WAExB,GAAG,gCAAiC,IAAM,CAOxC,MAAMC,EALU,IAAI,mBAAiB,CACnC,aAAcD,CAChB,CAAC,EAGoB,QAAQ,EAGvBE,KAAiB,sBAAmBF,CAAe,EACzD,OAAOC,EAAK,WAAW,CAAC,EAAE,QACxB,WAAW,KAAK,CACd,IACA,EACA,EACA,EACAC,EAAe,OACf,GAAGA,CACL,CAAC,CACH,CACF,CAAC,EAED,GAAG,sCAAuC,IAAM,CAE9C,MAAMC,EAAU,IAAI,mBAAiB,CACnC,aAAcH,CAChB,CAAC,EACKI,KAAiB,sBACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAaE,QAAQ,OAAQ,EAAE,CACtB,EAGMC,EAASF,EAAQ,cAAc,CACnC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAMC,CACR,CAAC,EAGD,OAAOC,CAAM,EAAE,iBACb,wBAAqB,CACnB,KAAM,CACJ,WAAY,CACV,QAAS,EACT,QAAS,EACT,cAAe,EACf,UAAW,cACb,EACA,UAAW,aACX,YAAa,sCACf,CACF,CAAC,CACH,CACF,CAAC,EAED,GAAG,gCAAiC,IAAM,CAExC,MAAMF,EAAU,IAAI,mBAAiB,CACnC,aAAcH,CAChB,CAAC,EACKI,KAAiB,sBACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAYE,QAAQ,OAAQ,EAAE,CACtB,EAGMC,EAASF,EAAQ,cAAc,CACnC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAMC,CACR,CAAC,EAGD,OAAOC,CAAM,EAAE,iBACb,wBAAqB,CAEnB,MAAO,OAAO,IAAI,wBAAsB,CAC1C,CAAC,CACH,CACF,CAAC,CACH,CAAC",
|
|
6
|
+
"names": ["import_device_management_kit", "import_GetSeedIdCommand", "mockedChallenge", "apdu", "challengeBytes", "command", "mockedResponse", "result"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/GetVersionCommand.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAUO,2CACPC,EAAmC,kCACnCC,EAAsB,
|
|
4
|
+
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport { type GetVersionCommandResponse } from \"@api/app-binder/GetVersionCommandTypes\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport type GetVersionCommandArgs = undefined;\n\nexport class GetVersionCommand\n implements\n Command<\n GetVersionCommandResponse,\n GetVersionCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n GetVersionCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n getApdu(): Apdu {\n const getVersionArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x03,\n p1: 0x00,\n p2: 0x00,\n };\n\n const builder = new ApduBuilder(getVersionArgs);\n return builder.build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<GetVersionCommandResponse, LedgerKeyringProtocolErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n\n const version = parser.encodeToString(apduResponse.data);\n\n if (!version) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(`Version is missing`),\n });\n }\n\n return CommandResultFactory({\n data: { version },\n });\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAUO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAItBC,EAIO,+CAIA,MAAML,CAOb,CACmB,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAEvD,SAAgB,CACd,MAAMM,EAAkC,CACtC,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,EAGA,OADgB,IAAI,cAAYA,CAAc,EAC/B,MAAM,CACvB,CAEA,cACEC,EAC2E,CAC3E,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CAGpB,MAAMC,EAFS,IAAI,aAAWD,CAAY,EAEnB,eAAeA,EAAa,IAAI,EAEvD,OAAKC,KAME,wBAAqB,CAC1B,KAAM,CAAE,QAAAA,CAAQ,CAClB,CAAC,KAPQ,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,oBAAoB,CACxD,CAAC,CAML,CAAC,CACH,CACF",
|
|
6
6
|
"names": ["GetVersionCommand_exports", "__export", "GetVersionCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ledgerKeyringProtocolErrors", "getVersionArgs", "apduResponse", "version"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var a=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var y=(o,r)=>{for(var t in r)a(o,t,{get:r[t],enumerable:!0})},g=(o,r,t,m)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of l(r))!u.call(o,n)&&n!==t&&a(o,n,{get:()=>r[n],enumerable:!(m=i(r,n))||m.enumerable});return o};var C=o=>g(a({},"__esModule",{value:!0}),o);var R={};y(R,{InitCommand:()=>c});module.exports=C(R);var e=require("@ledgerhq/device-management-kit"),p=require("@ledgerhq/signer-utils"),s=require("purify-ts"),d=require("./utils/ledgerKeyringProtocolErrors");class c{constructor(r){this.args=r}errorHelper=new p.CommandErrorHelper(d.LEDGER_SYNC_ERRORS,d.LedgerKeyringProtocolErrorFactory);getApdu(){const{publicKey:r}=this.args;return new e.ApduBuilder({cla:224,ins:6,p1:0,p2:0}).addBufferToData(r).build()}parseResponse(r){return s.Maybe.fromNullable(this.errorHelper.getError(r)).orDefaultLazy(()=>new e.ApduParser(r).getUnparsedRemainingLength()!==0?(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("Unexpected response data for SetTrustedMemberCommand")}):(0,e.CommandResultFactory)({data:void 0}))}}0&&(module.exports={InitCommand});
|
|
2
2
|
//# sourceMappingURL=InitCommand.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/InitCommand.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,
|
|
4
|
+
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport type InitCommandResponse = void;\n\nexport type InitCommandArgs = {\n publicKey: Uint8Array;\n};\n\nexport class InitCommand\n implements\n Command<\n InitCommandResponse,\n InitCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n constructor(private readonly args: InitCommandArgs) {}\n\n private readonly errorHelper = new CommandErrorHelper<\n void,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n getApdu(): Apdu {\n const { publicKey } = this.args;\n\n return new ApduBuilder({ cla: 0xe0, ins: 0x06, p1: 0x00, p2: 0x00 })\n .addBufferToData(publicKey)\n .build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<InitCommandResponse, LedgerKeyringProtocolErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n if (parser.getUnparsedRemainingLength() !== 0) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"Unexpected response data for SetTrustedMemberCommand\",\n ),\n });\n }\n return CommandResultFactory({ data: undefined });\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAIO,+CAQA,MAAML,CAOb,CACE,YAA6BM,EAAuB,CAAvB,UAAAA,CAAwB,CAEpC,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAEvD,SAAgB,CACd,KAAM,CAAE,UAAAC,CAAU,EAAI,KAAK,KAE3B,OAAO,IAAI,cAAY,CAAE,IAAK,IAAM,IAAK,EAAM,GAAI,EAAM,GAAI,CAAK,CAAC,EAChE,gBAAgBA,CAAS,EACzB,MAAM,CACX,CAEA,cACEC,EACqE,CACrE,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IACC,IAAI,aAAWA,CAAY,EAC/B,2BAA2B,IAAM,KACnC,wBAAqB,CAC1B,MAAO,IAAI,yBACT,sDACF,CACF,CAAC,KAEI,wBAAqB,CAAE,KAAM,MAAU,CAAC,CAChD,CACH,CACF",
|
|
6
6
|
"names": ["InitCommand_exports", "__export", "InitCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ledgerKeyringProtocolErrors", "args", "publicKey", "apduResponse"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var o=require("@ledgerhq/device-management-kit"),r=require("vitest"),n=require("./InitCommand");const d=Uint8Array.from([2,...Array(32).fill(0)]),
|
|
1
|
+
"use strict";var o=require("@ledgerhq/device-management-kit"),r=require("vitest"),n=require("./InitCommand");const d=Uint8Array.from([2,...Array(32).fill(0)]),c=Uint8Array.from([240,202,204,26]),a=()=>({publicKey:d});(0,r.describe)("InitCommand",()=>{(0,r.describe)("getApdu()",()=>{(0,r.it)("builds correct APDU",()=>{const t=new n.InitCommand(a()).getApdu(),e=Uint8Array.from([224,6,0,0,33,2,...new Array(32).fill(0)]);(0,r.expect)(t.getRawApdu()).toEqual(e)})}),(0,r.describe)("parseResponse()",()=>{(0,r.it)("returns success when no data and SW=0x9000",()=>{const s=new n.InitCommand(a()),t=new o.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array([])}),e=s.parseResponse(t);(0,r.expect)((0,o.isSuccessCommandResult)(e)).toBe(!0),(0,o.isSuccessCommandResult)(e)&&(0,r.expect)(e.data).toBeUndefined()}),(0,r.it)("errors on unexpected trailing data",()=>{const s=new n.InitCommand(a()),t=new o.ApduResponse({statusCode:Uint8Array.from([144,0]),data:c}),e=s.parseResponse(t);(0,r.expect)((0,o.isSuccessCommandResult)(e)).toBe(!1),(0,o.isSuccessCommandResult)(e)||((0,r.expect)(e.error).toBeInstanceOf(o.InvalidStatusWordError),(0,r.expect)(e.error.originalError.message).toMatch("Unexpected response data"))}),(0,r.it)("maps SW errors to CommandResult error",()=>{const s=new n.InitCommand(a()),t=new o.ApduResponse({statusCode:Uint8Array.from([106,134]),data:new Uint8Array([])}),e=s.parseResponse(t);if((0,r.expect)((0,o.isSuccessCommandResult)(e)).toBe(!1),!(0,o.isSuccessCommandResult)(e))if("errorCode"in e.error)(0,r.expect)(e.error.errorCode).toEqual("6a86");else throw new Error("Unexpected error type: missing errorCode")})})});
|
|
2
2
|
//# sourceMappingURL=InitCommand.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/InitCommand.test.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport {\n ApduResponse,\n InvalidStatusWordError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport
|
|
5
|
-
"mappings": "aACA,IAAAA,EAIO,2CACPC,EAAqC,
|
|
4
|
+
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport {\n ApduResponse,\n InvalidStatusWordError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport { InitCommand, type InitCommandArgs } from \"./InitCommand\";\n\nconst DUMMY_PUBKEY_HEX = Uint8Array.from([0x02, ...Array(32).fill(0x00)]);\nconst PLACEHOLDER_BYTES = Uint8Array.from([0xf0, 0xca, 0xcc, 0x1a]);\n\nconst makeArgs = (): InitCommandArgs => ({ publicKey: DUMMY_PUBKEY_HEX });\n\ndescribe(\"InitCommand\", () => {\n describe(\"getApdu()\", () => {\n it(\"builds correct APDU\", () => {\n // given\n const cmd = new InitCommand(makeArgs());\n\n // when\n const apdu = cmd.getApdu();\n const expected = Uint8Array.from([\n 0xe0,\n 0x06,\n 0x00,\n 0x00,\n 0x21,\n 0x02,\n ...new Array(32).fill(0),\n ]);\n\n // then\n expect(apdu.getRawApdu()).toEqual(expected);\n });\n });\n\n describe(\"parseResponse()\", () => {\n it(\"returns success when no data and SW=0x9000\", () => {\n // given\n const cmd = new InitCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([]),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toBeUndefined();\n }\n });\n\n it(\"errors on unexpected trailing data\", () => {\n // given\n const cmd = new InitCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: PLACEHOLDER_BYTES,\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toBeInstanceOf(InvalidStatusWordError);\n expect((result.error.originalError as Error).message).toMatch(\n \"Unexpected response data\",\n );\n }\n });\n\n it(\"maps SW errors to CommandResult error\", () => {\n // given\n const cmd = new InitCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x86]),\n data: new Uint8Array([]),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n if (\"errorCode\" in result.error) {\n expect(result.error.errorCode).toEqual(\"6a86\");\n } else {\n throw new Error(\"Unexpected error type: missing errorCode\");\n }\n }\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "aACA,IAAAA,EAIO,2CACPC,EAAqC,kBAErCC,EAAkD,yBAElD,MAAMC,EAAmB,WAAW,KAAK,CAAC,EAAM,GAAG,MAAM,EAAE,EAAE,KAAK,CAAI,CAAC,CAAC,EAClEC,EAAoB,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,EAE5DC,EAAW,KAAwB,CAAE,UAAWF,CAAiB,MAEvE,YAAS,cAAe,IAAM,IAC5B,YAAS,YAAa,IAAM,IAC1B,MAAG,sBAAuB,IAAM,CAK9B,MAAMG,EAHM,IAAI,cAAYD,EAAS,CAAC,EAGrB,QAAQ,EACnBE,EAAW,WAAW,KAAK,CAC/B,IACA,EACA,EACA,EACA,GACA,EACA,GAAG,IAAI,MAAM,EAAE,EAAE,KAAK,CAAC,CACzB,CAAC,KAGD,UAAOD,EAAK,WAAW,CAAC,EAAE,QAAQC,CAAQ,CAC5C,CAAC,CACH,CAAC,KAED,YAAS,kBAAmB,IAAM,IAChC,MAAG,6CAA8C,IAAM,CAErD,MAAMC,EAAM,IAAI,cAAYH,EAAS,CAAC,EAChCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,cAAc,CAEtC,CAAC,KAED,MAAG,qCAAsC,IAAM,CAE7C,MAAMF,EAAM,IAAI,cAAYH,EAAS,CAAC,EAChCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAML,CACR,CAAC,EAGKM,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,OAChC,UAAOA,EAAO,KAAK,EAAE,eAAe,wBAAsB,KAC1D,UAAQA,EAAO,MAAM,cAAwB,OAAO,EAAE,QACpD,0BACF,EAEJ,CAAC,KAED,MAAG,wCAAyC,IAAM,CAEhD,MAAMF,EAAM,IAAI,cAAYH,EAAS,CAAC,EAChCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,EAIzC,MADA,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,EAC7C,IAAC,0BAAuBA,CAAM,EAChC,GAAI,cAAeA,EAAO,SACxB,UAAOA,EAAO,MAAM,SAAS,EAAE,QAAQ,MAAM,MAE7C,OAAM,IAAI,MAAM,0CAA0C,CAGhE,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
6
|
"names": ["import_device_management_kit", "import_vitest", "import_InitCommand", "DUMMY_PUBKEY_HEX", "PLACEHOLDER_BYTES", "makeArgs", "apdu", "expected", "cmd", "response", "result"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var d=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var u=(o,r)=>{for(var t in r)d(o,t,{get:r[t],enumerable:!0})},c=(o,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of l(r))!g.call(o,a)&&a!==t&&d(o,a,{get:()=>r[a],enumerable:!(n=i(r,a))||n.enumerable});return o};var y=o=>c(d({},"__esModule",{value:!0}),o);var P={};u(P,{ParseBlockSignatureCommand:()=>C});module.exports=y(P);var e=require("@ledgerhq/device-management-kit"),m=require("@ledgerhq/signer-utils"),p=require("purify-ts"),s=require("./utils/ledgerKeyringProtocolErrors");class C{constructor(r){this.args=r}errorHelper=new m.CommandErrorHelper(s.LEDGER_SYNC_ERRORS,s.LedgerKeyringProtocolErrorFactory);getApdu(){const{signature:r}=this.args;return new e.ApduBuilder({cla:224,ins:8,p1:2,p2:0}).addBufferToData(r).build()}parseResponse(r){return p.Maybe.fromNullable(this.errorHelper.getError(r)).orDefaultLazy(()=>{const t=new e.ApduParser(r),n=t.getUnparsedRemainingLength(),a=t.extractFieldByLength(n);return a?(0,e.CommandResultFactory)({data:a}):(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("No data returned by ParseBlockSignatureCommand")})})}}0&&(module.exports={ParseBlockSignatureCommand});
|
|
2
2
|
//# sourceMappingURL=ParseBlockSignatureCommand.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/ParseBlockSignatureCommand.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,
|
|
4
|
+
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport type ParseBlockSignatureCommandResponse = Uint8Array;\n\nexport type ParseBlockSignatureCommandArgs = { signature: Uint8Array };\n\nexport class ParseBlockSignatureCommand\n implements\n Command<\n ParseBlockSignatureCommandResponse,\n ParseBlockSignatureCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n ParseBlockSignatureCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n constructor(private readonly args: ParseBlockSignatureCommandArgs) {}\n\n getApdu(): Apdu {\n const { signature } = this.args;\n return (\n new ApduBuilder({\n cla: 0xe0,\n ins: 0x08,\n p1: 0x02,\n p2: 0x00,\n })\n // raw signature chunk\n .addBufferToData(signature)\n .build()\n );\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<\n ParseBlockSignatureCommandResponse,\n LedgerKeyringProtocolErrorCodes\n > {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n const remaining = parser.getUnparsedRemainingLength();\n const payload = parser.extractFieldByLength(remaining);\n if (!payload) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"No data returned by ParseBlockSignatureCommand\",\n ),\n });\n }\n return CommandResultFactory({ data: payload });\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAIO,+CAMA,MAAML,CAOb,CAME,YAA6BM,EAAsC,CAAtC,UAAAA,CAAuC,CALnD,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAIvD,SAAgB,CACd,KAAM,CAAE,UAAAC,CAAU,EAAI,KAAK,KAC3B,OACE,IAAI,cAAY,CACd,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,CAAC,EAEE,gBAAgBA,CAAS,EACzB,MAAM,CAEb,CAEA,cACEC,EAIA,CACA,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAI,aAAWD,CAAY,EACpCE,EAAYD,EAAO,2BAA2B,EAC9CE,EAAUF,EAAO,qBAAqBC,CAAS,EACrD,OAAKC,KAOE,wBAAqB,CAAE,KAAMA,CAAQ,CAAC,KANpC,wBAAqB,CAC1B,MAAO,IAAI,yBACT,gDACF,CACF,CAAC,CAGL,CAAC,CACH,CACF",
|
|
6
6
|
"names": ["ParseBlockSignatureCommand_exports", "__export", "ParseBlockSignatureCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ledgerKeyringProtocolErrors", "args", "signature", "apduResponse", "parser", "remaining", "payload"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var t=require("@ledgerhq/device-management-kit"),r=require("vitest"),a=require("./ParseBlockSignatureCommand");const c=Uint8Array.from([10,11,12]),
|
|
1
|
+
"use strict";var t=require("@ledgerhq/device-management-kit"),r=require("vitest"),a=require("./ParseBlockSignatureCommand");const c=Uint8Array.from([10,11,12]),d=Uint8Array.from([240,202,204,26]);(0,r.describe)("ParseBlockSignatureCommand",()=>{const n=()=>({signature:c});(0,r.describe)("getApdu()",()=>{(0,r.it)("builds correct APDU for signature chunk",()=>{const e=new a.ParseBlockSignatureCommand(n()).getApdu().getRawApdu();(0,r.expect)(e).toEqual(Uint8Array.from([224,8,2,0,c.length,...c]))})}),(0,r.describe)("parseResponse()",()=>{(0,r.it)("returns raw TLV payload on success",()=>{const s=new a.ParseBlockSignatureCommand(n()),o=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:d}),e=s.parseResponse(o);(0,r.expect)((0,t.isSuccessCommandResult)(e)).toBe(!0),(0,t.isSuccessCommandResult)(e)&&(0,r.expect)(e.data).toEqual(d)}),(0,r.it)("maps SW errors to CommandResult error",()=>{const s=new a.ParseBlockSignatureCommand(n()),o=new t.ApduResponse({statusCode:Uint8Array.from([106,134]),data:new Uint8Array}),e=s.parseResponse(o);(0,r.expect)((0,t.isSuccessCommandResult)(e)).toBe(!1),(0,t.isSuccessCommandResult)(e)||(0,r.expect)(e.error.errorCode).toBe("6a86")}),(0,r.it)("errors when no TLV data returned",()=>{const s=new a.ParseBlockSignatureCommand(n()),o=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array}),e=s.parseResponse(o);(0,r.expect)((0,t.isSuccessCommandResult)(e)).toBe(!0),(0,t.isSuccessCommandResult)(e)&&(0,r.expect)(e.data).toEqual(new Uint8Array([]))})})});
|
|
2
2
|
//# sourceMappingURL=ParseBlockSignatureCommand.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/ParseBlockSignatureCommand.test.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport
|
|
5
|
-
"mappings": "aAEA,IAAAA,EAGO,2CACPC,EAAqC,
|
|
4
|
+
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport {\n ParseBlockSignatureCommand,\n type ParseBlockSignatureCommandArgs,\n} from \"./ParseBlockSignatureCommand\";\n\nconst DUMMY_SIGNATURE = Uint8Array.from([0x0a, 0x0b, 0x0c]);\n\nconst PLACEHOLDER_BYTES = Uint8Array.from([0xf0, 0xca, 0xcc, 0x1a]);\n\ndescribe(\"ParseBlockSignatureCommand\", () => {\n const makeArgs = (): ParseBlockSignatureCommandArgs => ({\n signature: DUMMY_SIGNATURE,\n });\n\n describe(\"getApdu()\", () => {\n it(\"builds correct APDU for signature chunk\", () => {\n // given\n const cmd = new ParseBlockSignatureCommand(makeArgs());\n\n // when\n const apdu = cmd.getApdu();\n const raw = apdu.getRawApdu();\n\n // then\n expect(raw).toEqual(\n Uint8Array.from([\n 0xe0,\n 0x08,\n 0x02,\n 0x00,\n DUMMY_SIGNATURE.length,\n ...DUMMY_SIGNATURE,\n ]),\n );\n });\n });\n\n describe(\"parseResponse()\", () => {\n it(\"returns raw TLV payload on success\", () => {\n // given\n const cmd = new ParseBlockSignatureCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: PLACEHOLDER_BYTES,\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(PLACEHOLDER_BYTES);\n }\n });\n\n it(\"maps SW errors to CommandResult error\", () => {\n // given\n const cmd = new ParseBlockSignatureCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x86]),\n data: new Uint8Array(),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect((result.error as any).errorCode).toBe(\"6a86\");\n }\n });\n\n it(\"errors when no TLV data returned\", () => {\n // given\n const cmd = new ParseBlockSignatureCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array(),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(new Uint8Array([]));\n }\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "aAEA,IAAAA,EAGO,2CACPC,EAAqC,kBAErCC,EAGO,wCAEP,MAAMC,EAAkB,WAAW,KAAK,CAAC,GAAM,GAAM,EAAI,CAAC,EAEpDC,EAAoB,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,KAElE,YAAS,6BAA8B,IAAM,CAC3C,MAAMC,EAAW,KAAuC,CACtD,UAAWF,CACb,MAEA,YAAS,YAAa,IAAM,IAC1B,MAAG,0CAA2C,IAAM,CAMlD,MAAMG,EAJM,IAAI,6BAA2BD,EAAS,CAAC,EAGpC,QAAQ,EACR,WAAW,KAG5B,UAAOC,CAAG,EAAE,QACV,WAAW,KAAK,CACd,IACA,EACA,EACA,EACAH,EAAgB,OAChB,GAAGA,CACL,CAAC,CACH,CACF,CAAC,CACH,CAAC,KAED,YAAS,kBAAmB,IAAM,IAChC,MAAG,qCAAsC,IAAM,CAE7C,MAAMI,EAAM,IAAI,6BAA2BF,EAAS,CAAC,EAC/CG,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAMJ,CACR,CAAC,EAGKK,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQL,CAAiB,CAEjD,CAAC,KAED,MAAG,wCAAyC,IAAM,CAEhD,MAAMG,EAAM,IAAI,6BAA2BF,EAAS,CAAC,EAC/CG,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,UACZ,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,MAChC,UAAQA,EAAO,MAAc,SAAS,EAAE,KAAK,MAAM,CAEvD,CAAC,KAED,MAAG,mCAAoC,IAAM,CAE3C,MAAMF,EAAM,IAAI,6BAA2BF,EAAS,CAAC,EAC/CG,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,UACZ,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,CAElD,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
6
|
"names": ["import_device_management_kit", "import_vitest", "import_ParseBlockSignatureCommand", "DUMMY_SIGNATURE", "PLACEHOLDER_BYTES", "makeArgs", "raw", "cmd", "response", "result"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/ParseStreamBlockCommand.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,
|
|
4
|
+
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport type ParseSingleCommandArgs = {\n command: Uint8Array;\n outputTrustedParam?: boolean;\n};\n\nexport type ParseSingleCommandResponse = Uint8Array;\n\nexport class ParseSingleCommand\n implements\n Command<\n ParseSingleCommandResponse,\n ParseSingleCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n ParseSingleCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n constructor(private readonly args: ParseSingleCommandArgs) {}\n\n getApdu(): Apdu {\n const { command, outputTrustedParam = true } = this.args;\n return (\n new ApduBuilder({\n cla: 0xe0,\n ins: 0x08,\n p1: 0x01,\n p2: outputTrustedParam ? 0x01 : 0x00,\n })\n // raw command chunk\n .addBufferToData(command)\n .build()\n );\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<\n ParseSingleCommandResponse,\n LedgerKeyringProtocolErrorCodes\n > {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n const remaining = parser.getUnparsedRemainingLength();\n const payload = parser.extractFieldByLength(remaining);\n if (!payload) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"No data returned by ParseSingleCommand\",\n ),\n });\n }\n return CommandResultFactory({ data: payload });\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAIO,+CASA,MAAML,CAOb,CAME,YAA6BM,EAA8B,CAA9B,UAAAA,CAA+B,CAL3C,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAIvD,SAAgB,CACd,KAAM,CAAE,QAAAC,EAAS,mBAAAC,EAAqB,EAAK,EAAI,KAAK,KACpD,OACE,IAAI,cAAY,CACd,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAIA,EAAqB,EAAO,CAClC,CAAC,EAEE,gBAAgBD,CAAO,EACvB,MAAM,CAEb,CAEA,cACEE,EAIA,CACA,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAI,aAAWD,CAAY,EACpCE,EAAYD,EAAO,2BAA2B,EAC9CE,EAAUF,EAAO,qBAAqBC,CAAS,EACrD,OAAKC,KAOE,wBAAqB,CAAE,KAAMA,CAAQ,CAAC,KANpC,wBAAqB,CAC1B,MAAO,IAAI,yBACT,wCACF,CACF,CAAC,CAGL,CAAC,CACH,CACF",
|
|
6
6
|
"names": ["ParseStreamBlockCommand_exports", "__export", "ParseSingleCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ledgerKeyringProtocolErrors", "args", "command", "outputTrustedParam", "apduResponse", "parser", "remaining", "payload"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var t=require("@ledgerhq/device-management-kit"),e=require("vitest"),o=require("./ParseStreamBlockCommand");const
|
|
1
|
+
"use strict";var t=require("@ledgerhq/device-management-kit"),e=require("vitest"),o=require("./ParseStreamBlockCommand");const d=Uint8Array.from([1,2,3]),c=Uint8Array.from([240,202,204,26]);(0,e.describe)("ParseSingleCommand",()=>{const n=(s=!1)=>({command:d,outputTrustedParam:s});(0,e.describe)("getApdu()",()=>{(0,e.it)("builds correct APDU without trustedParam",()=>{const r=new o.ParseSingleCommand(n(!1)).getApdu().getRawApdu();(0,e.expect)(r).toEqual(Uint8Array.from([224,8,1,0,d.length,...d]))}),(0,e.it)("builds correct APDU with trustedParam",()=>{const r=new o.ParseSingleCommand(n(!0)).getApdu().getRawApdu();(0,e.expect)(r).toEqual(Uint8Array.from([224,8,1,1,d.length,...d]))})}),(0,e.describe)("parseResponse()",()=>{(0,e.it)("returns raw TLV payload on success",()=>{const s=new o.ParseSingleCommand(n()),a=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:c}),r=s.parseResponse(a);(0,e.expect)((0,t.isSuccessCommandResult)(r)).toBe(!0),(0,t.isSuccessCommandResult)(r)&&(0,e.expect)(r.data).toEqual(c)}),(0,e.it)("maps SW errors to CommandResult error",()=>{const s=new o.ParseSingleCommand(n()),a=new t.ApduResponse({statusCode:Uint8Array.from([106,134]),data:new Uint8Array}),r=s.parseResponse(a);(0,e.expect)((0,t.isSuccessCommandResult)(r)).toBe(!1),(0,t.isSuccessCommandResult)(r)||(0,e.expect)(r.error.errorCode).toBe("6a86")}),(0,e.it)("errors when no TLV data returned",()=>{const s=new o.ParseSingleCommand(n()),a=new t.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array}),r=s.parseResponse(a);(0,e.expect)((0,t.isSuccessCommandResult)(r)).toBe(!0),(0,t.isSuccessCommandResult)(r)&&(0,e.expect)(r.data).toEqual(new Uint8Array([]))})})});
|
|
2
2
|
//# sourceMappingURL=ParseStreamBlockCommand.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/ParseStreamBlockCommand.test.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport
|
|
5
|
-
"mappings": "aAEA,IAAAA,EAGO,2CACPC,EAAqC,
|
|
4
|
+
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport {\n ParseSingleCommand,\n type ParseSingleCommandArgs,\n} from \"./ParseStreamBlockCommand\";\n\nconst DUMMY_COMMAND = Uint8Array.from([0x01, 0x02, 0x03]);\nconst PLACEHOLDER_BYTES = Uint8Array.from([0xf0, 0xca, 0xcc, 0x1a]);\n\ndescribe(\"ParseSingleCommand\", () => {\n const makeArgs = (outputTrustedParam = false): ParseSingleCommandArgs => ({\n command: DUMMY_COMMAND,\n outputTrustedParam,\n });\n\n describe(\"getApdu()\", () => {\n it(\"builds correct APDU without trustedParam\", () => {\n // given\n const cmd = new ParseSingleCommand(makeArgs(false));\n\n // when\n const apdu = cmd.getApdu();\n const raw = apdu.getRawApdu();\n\n // then\n expect(raw).toEqual(\n Uint8Array.from([\n 0xe0,\n 0x08,\n 0x01,\n 0x00,\n DUMMY_COMMAND.length,\n ...DUMMY_COMMAND,\n ]),\n );\n });\n\n it(\"builds correct APDU with trustedParam\", () => {\n // given\n const cmd = new ParseSingleCommand(makeArgs(true));\n\n // when\n const apdu = cmd.getApdu();\n const raw = apdu.getRawApdu();\n\n // then\n expect(raw).toEqual(\n Uint8Array.from([\n 0xe0,\n 0x08,\n 0x01,\n 0x01,\n DUMMY_COMMAND.length,\n ...DUMMY_COMMAND,\n ]),\n );\n });\n });\n\n describe(\"parseResponse()\", () => {\n it(\"returns raw TLV payload on success\", () => {\n // given\n const cmd = new ParseSingleCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: PLACEHOLDER_BYTES,\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(PLACEHOLDER_BYTES);\n }\n });\n\n it(\"maps SW errors to CommandResult error\", () => {\n // given\n const cmd = new ParseSingleCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x86]),\n data: new Uint8Array(),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect((result.error as any).errorCode).toBe(\"6a86\");\n }\n });\n\n it(\"errors when no TLV data returned\", () => {\n // given\n const cmd = new ParseSingleCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array(),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(new Uint8Array([]));\n }\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "aAEA,IAAAA,EAGO,2CACPC,EAAqC,kBAErCC,EAGO,qCAEP,MAAMC,EAAgB,WAAW,KAAK,CAAC,EAAM,EAAM,CAAI,CAAC,EAClDC,EAAoB,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,KAElE,YAAS,qBAAsB,IAAM,CACnC,MAAMC,EAAW,CAACC,EAAqB,MAAmC,CACxE,QAASH,EACT,mBAAAG,CACF,MAEA,YAAS,YAAa,IAAM,IAC1B,MAAG,2CAA4C,IAAM,CAMnD,MAAMC,EAJM,IAAI,qBAAmBF,EAAS,EAAK,CAAC,EAGjC,QAAQ,EACR,WAAW,KAG5B,UAAOE,CAAG,EAAE,QACV,WAAW,KAAK,CACd,IACA,EACA,EACA,EACAJ,EAAc,OACd,GAAGA,CACL,CAAC,CACH,CACF,CAAC,KAED,MAAG,wCAAyC,IAAM,CAMhD,MAAMI,EAJM,IAAI,qBAAmBF,EAAS,EAAI,CAAC,EAGhC,QAAQ,EACR,WAAW,KAG5B,UAAOE,CAAG,EAAE,QACV,WAAW,KAAK,CACd,IACA,EACA,EACA,EACAJ,EAAc,OACd,GAAGA,CACL,CAAC,CACH,CACF,CAAC,CACH,CAAC,KAED,YAAS,kBAAmB,IAAM,IAChC,MAAG,qCAAsC,IAAM,CAE7C,MAAMK,EAAM,IAAI,qBAAmBH,EAAS,CAAC,EACvCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAML,CACR,CAAC,EAGKM,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQN,CAAiB,CAEjD,CAAC,KAED,MAAG,wCAAyC,IAAM,CAEhD,MAAMI,EAAM,IAAI,qBAAmBH,EAAS,CAAC,EACvCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,UACZ,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,MAChC,UAAQA,EAAO,MAAc,SAAS,EAAE,KAAK,MAAM,CAEvD,CAAC,KAED,MAAG,mCAAoC,IAAM,CAE3C,MAAMF,EAAM,IAAI,qBAAmBH,EAAS,CAAC,EACvCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,UACZ,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,CAElD,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
6
|
"names": ["import_device_management_kit", "import_vitest", "import_ParseStreamBlockCommand", "DUMMY_COMMAND", "PLACEHOLDER_BYTES", "makeArgs", "outputTrustedParam", "raw", "cmd", "response", "result"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var s=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var
|
|
1
|
+
"use strict";var s=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var y=(o,r)=>{for(var t in r)s(o,t,{get:r[t],enumerable:!0})},g=(o,r,t,d)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of i(r))!c.call(o,a)&&a!==t&&s(o,a,{get:()=>r[a],enumerable:!(d=l(r,a))||d.enumerable});return o};var u=o=>g(s({},"__esModule",{value:!0}),o);var P={};y(P,{ParseBlockHeaderCommand:()=>C});module.exports=u(P);var e=require("@ledgerhq/device-management-kit"),m=require("@ledgerhq/signer-utils"),p=require("purify-ts"),n=require("./utils/ledgerKeyringProtocolErrors");class C{constructor(r){this.args=r}errorHelper=new m.CommandErrorHelper(n.LEDGER_SYNC_ERRORS,n.LedgerKeyringProtocolErrorFactory);getApdu(){const{header:r}=this.args;return new e.ApduBuilder({cla:224,ins:8,p1:0,p2:0}).addBufferToData(r).build()}parseResponse(r){return p.Maybe.fromNullable(this.errorHelper.getError(r)).orDefaultLazy(()=>{const t=new e.ApduParser(r),d=t.getUnparsedRemainingLength(),a=t.extractFieldByLength(d);return a?(0,e.CommandResultFactory)({data:a}):(0,e.CommandResultFactory)({error:new e.InvalidStatusWordError("No data returned by parseBlockHeader")})})}}0&&(module.exports={ParseBlockHeaderCommand});
|
|
2
2
|
//# sourceMappingURL=ParseStreamBlockHeader.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/ParseStreamBlockHeader.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,
|
|
4
|
+
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport type ParseBlockHeaderCommandResponse = Uint8Array;\n\nexport type ParseBlockHeaderCommandArgs = {\n header: Uint8Array;\n};\n\nexport class ParseBlockHeaderCommand\n implements\n Command<\n ParseBlockHeaderCommandResponse,\n ParseBlockHeaderCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n ParseBlockHeaderCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n constructor(private readonly args: ParseBlockHeaderCommandArgs) {}\n\n getApdu(): Apdu {\n const { header } = this.args;\n return (\n new ApduBuilder({ cla: 0xe0, ins: 0x08, p1: 0x00, p2: 0x00 })\n // raw block header\n .addBufferToData(header)\n .build()\n );\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<\n ParseBlockHeaderCommandResponse,\n LedgerKeyringProtocolErrorCodes\n > {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n const remaining = parser.getUnparsedRemainingLength();\n const payload = parser.extractFieldByLength(remaining);\n if (!payload) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"No data returned by parseBlockHeader\",\n ),\n });\n }\n return CommandResultFactory({ data: payload });\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAIO,+CAQA,MAAML,CAOb,CAME,YAA6BM,EAAmC,CAAnC,UAAAA,CAAoC,CALhD,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAIvD,SAAgB,CACd,KAAM,CAAE,OAAAC,CAAO,EAAI,KAAK,KACxB,OACE,IAAI,cAAY,CAAE,IAAK,IAAM,IAAK,EAAM,GAAI,EAAM,GAAI,CAAK,CAAC,EAEzD,gBAAgBA,CAAM,EACtB,MAAM,CAEb,CAEA,cACEC,EAIA,CACA,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAI,aAAWD,CAAY,EACpCE,EAAYD,EAAO,2BAA2B,EAC9CE,EAAUF,EAAO,qBAAqBC,CAAS,EACrD,OAAKC,KAOE,wBAAqB,CAAE,KAAMA,CAAQ,CAAC,KANpC,wBAAqB,CAC1B,MAAO,IAAI,yBACT,sCACF,CACF,CAAC,CAGL,CAAC,CACH,CACF",
|
|
6
6
|
"names": ["ParseStreamBlockHeader_exports", "__export", "ParseBlockHeaderCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ledgerKeyringProtocolErrors", "args", "header", "apduResponse", "parser", "remaining", "payload"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/ParseStreamBlockHeader.test.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport {
|
|
5
|
-
"mappings": "aAEA,IAAAA,EAGO,2CACPC,EAAqC,
|
|
4
|
+
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport {\n ParseBlockHeaderCommand,\n type ParseBlockHeaderCommandArgs,\n} from \"@internal/app-binder/command/ParseStreamBlockHeader\";\n\nconst HEADER_BYTES = Uint8Array.from([0xab, 0xad, 0xbe, 0xef]);\nconst TLV_PAYLOAD = Uint8Array.from([0xf0, 0xca, 0xcc, 0x1a]);\n\ndescribe(\"ParseBlockHeaderCommand\", () => {\n describe(\"getApdu()\", () => {\n it(\"should build the correct APDU for a given header\", () => {\n // given\n const args: ParseBlockHeaderCommandArgs = { header: HEADER_BYTES };\n const cmd = new ParseBlockHeaderCommand(args);\n\n // when\n const apdu = cmd.getApdu();\n const expected = Uint8Array.from([\n 0xe0,\n 0x08,\n 0x00,\n 0x00,\n HEADER_BYTES.length,\n ...HEADER_BYTES,\n ]);\n\n // then\n expect(apdu.getRawApdu()).toEqual(expected);\n });\n });\n\n describe(\"parseResponse()\", () => {\n it(\"should return the raw TLV payload on success\", () => {\n // given\n const args: ParseBlockHeaderCommandArgs = { header: HEADER_BYTES };\n const cmd = new ParseBlockHeaderCommand(args);\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: TLV_PAYLOAD,\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(TLV_PAYLOAD);\n }\n });\n\n it(\"should map SW errors to CommandResult errors\", () => {\n // given\n const args: ParseBlockHeaderCommandArgs = { header: HEADER_BYTES };\n const cmd = new ParseBlockHeaderCommand(args);\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x86]),\n data: new Uint8Array(),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect((result.error as any).errorCode).toBe(\"6a86\");\n }\n });\n\n it(\"should handle empty-data payload correctly\", () => {\n // given\n const args: ParseBlockHeaderCommandArgs = { header: HEADER_BYTES };\n const cmd = new ParseBlockHeaderCommand(args);\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([]),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(new Uint8Array([]));\n }\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "aAEA,IAAAA,EAGO,2CACPC,EAAqC,kBAErCC,EAGO,+DAEP,MAAMC,EAAe,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,GAAI,CAAC,EACvDC,EAAc,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,KAE5D,YAAS,0BAA2B,IAAM,IACxC,YAAS,YAAa,IAAM,IAC1B,MAAG,mDAAoD,IAAM,CAE3D,MAAMC,EAAoC,CAAE,OAAQF,CAAa,EAI3DG,EAHM,IAAI,0BAAwBD,CAAI,EAG3B,QAAQ,EACnBE,EAAW,WAAW,KAAK,CAC/B,IACA,EACA,EACA,EACAJ,EAAa,OACb,GAAGA,CACL,CAAC,KAGD,UAAOG,EAAK,WAAW,CAAC,EAAE,QAAQC,CAAQ,CAC5C,CAAC,CACH,CAAC,KAED,YAAS,kBAAmB,IAAM,IAChC,MAAG,+CAAgD,IAAM,CAEvD,MAAMF,EAAoC,CAAE,OAAQF,CAAa,EAC3DK,EAAM,IAAI,0BAAwBH,CAAI,EACtCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAML,CACR,CAAC,EAGKM,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQN,CAAW,CAE3C,CAAC,KAED,MAAG,+CAAgD,IAAM,CAEvD,MAAMC,EAAoC,CAAE,OAAQF,CAAa,EAC3DK,EAAM,IAAI,0BAAwBH,CAAI,EACtCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,UACZ,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,MAChC,UAAQA,EAAO,MAAc,SAAS,EAAE,KAAK,MAAM,CAEvD,CAAC,KAED,MAAG,6CAA8C,IAAM,CAErD,MAAML,EAAoC,CAAE,OAAQF,CAAa,EAC3DK,EAAM,IAAI,0BAAwBH,CAAI,EACtCI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,CAElD,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
6
|
"names": ["import_device_management_kit", "import_vitest", "import_ParseStreamBlockHeader", "HEADER_BYTES", "TLV_PAYLOAD", "args", "apdu", "expected", "cmd", "response", "result"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var m=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var y=(o,e)=>{for(var t in e)m(o,t,{get:e[t],enumerable:!0})},C=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let d of l(e))!g.call(o,d)&&d!==t&&m(o,d,{get:()=>e[d],enumerable:!(n=i(e,d))||n.enumerable});return o};var T=o=>C(m({},"__esModule",{value:!0}),o);var c={};y(c,{SetTrustedMemberCommand:()=>b});module.exports=T(c);var r=require("@ledgerhq/device-management-kit"),s=require("@ledgerhq/signer-utils"),p=require("purify-ts"),u=require("../../models/Tags"),a=require("./utils/ledgerKeyringProtocolErrors");class b{constructor(e){this.args=e}errorHelper=new s.CommandErrorHelper(a.LEDGER_SYNC_ERRORS,a.LedgerKeyringProtocolErrorFactory);getApdu(){const{iv:e,memberTlv:t}=this.args;return new r.ApduBuilder({cla:224,ins:9,p1:0,p2:0}).add8BitUIntToData(u.TPTags.IV).add8BitUIntToData(e.length).addBufferToData(e).addBufferToData(t).build()}parseResponse(e){return p.Maybe.fromNullable(this.errorHelper.getError(e)).orDefaultLazy(()=>new r.ApduParser(e).getUnparsedRemainingLength()!==0?(0,r.CommandResultFactory)({error:new r.InvalidStatusWordError("Unexpected response data for SetTrustedMemberCommand")}):(0,r.CommandResultFactory)({data:void 0}))}}0&&(module.exports={SetTrustedMemberCommand});
|
|
2
2
|
//# sourceMappingURL=SetTrustedMemberCommand.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/SetTrustedMemberCommand.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,
|
|
4
|
+
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport { TPTags } from \"@internal/models/Tags\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport type SetTrustedMemberCommandResponse = void;\n\nexport type SetTrustedMemberCommandArgs = {\n readonly iv: Uint8Array;\n readonly memberTlv: Uint8Array;\n};\n\nexport class SetTrustedMemberCommand\n implements\n Command<\n SetTrustedMemberCommandResponse,\n SetTrustedMemberCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n SetTrustedMemberCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n constructor(private readonly args: SetTrustedMemberCommandArgs) {}\n\n getApdu(): Apdu {\n const { iv, memberTlv } = this.args;\n return (\n new ApduBuilder({ cla: 0xe0, ins: 0x09, p1: 0x00, p2: 0x00 })\n // tag for IV\n .add8BitUIntToData(TPTags.IV)\n // IV length\n .add8BitUIntToData(iv.length)\n // IV bytes\n .addBufferToData(iv)\n // TrustedMember bytes\n .addBufferToData(memberTlv)\n .build()\n );\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<\n SetTrustedMemberCommandResponse,\n LedgerKeyringProtocolErrorCodes\n > {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n if (parser.getUnparsedRemainingLength() !== 0) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"Unexpected response data for SetTrustedMemberCommand\",\n ),\n });\n }\n return CommandResultFactory({ data: undefined });\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAAuB,iCAEvBC,EAIO,+CASA,MAAMN,CAOb,CAME,YAA6BO,EAAmC,CAAnC,UAAAA,CAAoC,CALhD,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAIvD,SAAgB,CACd,KAAM,CAAE,GAAAC,EAAI,UAAAC,CAAU,EAAI,KAAK,KAC/B,OACE,IAAI,cAAY,CAAE,IAAK,IAAM,IAAK,EAAM,GAAI,EAAM,GAAI,CAAK,CAAC,EAEzD,kBAAkB,SAAO,EAAE,EAE3B,kBAAkBD,EAAG,MAAM,EAE3B,gBAAgBA,CAAE,EAElB,gBAAgBC,CAAS,EACzB,MAAM,CAEb,CAEA,cACEC,EAIA,CACA,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IACC,IAAI,aAAWA,CAAY,EAC/B,2BAA2B,IAAM,KACnC,wBAAqB,CAC1B,MAAO,IAAI,yBACT,sDACF,CACF,CAAC,KAEI,wBAAqB,CAAE,KAAM,MAAU,CAAC,CAChD,CACH,CACF",
|
|
6
6
|
"names": ["SetTrustedMemberCommand_exports", "__export", "SetTrustedMemberCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_Tags", "import_ledgerKeyringProtocolErrors", "args", "iv", "memberTlv", "apduResponse"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/SetTrustedMemberCommand.test.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n ApduResponse,\n InvalidStatusWordError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport
|
|
5
|
-
"mappings": "aAAA,IAAAA,EAIO,2CACPC,EAAqC,
|
|
4
|
+
"sourcesContent": ["import {\n ApduResponse,\n InvalidStatusWordError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { describe, expect, it } from \"vitest\";\n\nimport {\n SetTrustedMemberCommand,\n type SetTrustedMemberCommandArgs,\n} from \"./SetTrustedMemberCommand\";\n\nconst PLACEHOLDER_BYTES = Uint8Array.from([0xf0, 0xca, 0xcc, 0x1a]);\n\ndescribe(\"SetTrustedMemberCommand\", () => {\n const makeArgs = (): SetTrustedMemberCommandArgs => ({\n iv: PLACEHOLDER_BYTES,\n memberTlv: PLACEHOLDER_BYTES,\n });\n\n describe(\"getApdu()\", () => {\n it(\"builds correct APDU\", () => {\n // given\n const cmd = new SetTrustedMemberCommand(makeArgs());\n\n // when\n const apdu = cmd.getApdu();\n const expected = Uint8Array.from(\n [\n [0xe0, 0x09, 0x00, 0x00, 0x0a], // CLA, INS, P1, P2, Lc\n [0x00, 0x04, 0xf0, 0xca, 0xcc, 0x1a], // IV\n [0xf0, 0xca, 0xcc, 0x1a], // Member\n ].flat(),\n );\n\n // then\n expect(apdu.getRawApdu()).toEqual(expected);\n });\n });\n\n describe(\"parseResponse()\", () => {\n it(\"returns success when no data and SW=0x9000\", () => {\n // given\n const cmd = new SetTrustedMemberCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([]),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual(undefined);\n }\n });\n\n it(\"returns error on unexpected trailing data\", () => {\n // given\n const cmd = new SetTrustedMemberCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: Uint8Array.from([0x01, 0x02]),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toBeInstanceOf(InvalidStatusWordError);\n expect((result.error.originalError as Error)?.message).toMatch(\n \"Unexpected response data\",\n );\n }\n });\n\n it(\"maps SW errors to CommandResult error\", () => {\n // given\n const cmd = new SetTrustedMemberCommand(makeArgs());\n const response = new ApduResponse({\n statusCode: Uint8Array.from([0x6a, 0x86]),\n data: new Uint8Array([]),\n });\n\n // when\n const result = cmd.parseResponse(response);\n\n // then\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n if (\"errorCode\" in result.error) {\n expect(result.error.errorCode).toEqual(\"6a86\");\n } else {\n throw new Error(\n \"Unexpected error type: errorCode property is missing\",\n );\n }\n }\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "aAAA,IAAAA,EAIO,2CACPC,EAAqC,kBAErCC,EAGO,qCAEP,MAAMC,EAAoB,WAAW,KAAK,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,KAElE,YAAS,0BAA2B,IAAM,CACxC,MAAMC,EAAW,KAAoC,CACnD,GAAID,EACJ,UAAWA,CACb,MAEA,YAAS,YAAa,IAAM,IAC1B,MAAG,sBAAuB,IAAM,CAK9B,MAAME,EAHM,IAAI,0BAAwBD,EAAS,CAAC,EAGjC,QAAQ,EACnBE,EAAW,WAAW,KAC1B,CACE,CAAC,IAAM,EAAM,EAAM,EAAM,EAAI,EAC7B,CAAC,EAAM,EAAM,IAAM,IAAM,IAAM,EAAI,EACnC,CAAC,IAAM,IAAM,IAAM,EAAI,CACzB,EAAE,KAAK,CACT,KAGA,UAAOD,EAAK,WAAW,CAAC,EAAE,QAAQC,CAAQ,CAC5C,CAAC,CACH,CAAC,KAED,YAAS,kBAAmB,IAAM,IAChC,MAAG,6CAA8C,IAAM,CAErD,MAAMC,EAAM,IAAI,0BAAwBH,EAAS,CAAC,EAC5CI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,KAC5C,0BAAuBA,CAAM,MAC/B,UAAOA,EAAO,IAAI,EAAE,QAAQ,MAAS,CAEzC,CAAC,KAED,MAAG,4CAA6C,IAAM,CAEpD,MAAMF,EAAM,IAAI,0BAAwBH,EAAS,CAAC,EAC5CI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,WAAW,KAAK,CAAC,EAAM,CAAI,CAAC,CACpC,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,KAGzC,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,OAChC,UAAOA,EAAO,KAAK,EAAE,eAAe,wBAAsB,KAC1D,UAAQA,EAAO,MAAM,eAAyB,OAAO,EAAE,QACrD,0BACF,EAEJ,CAAC,KAED,MAAG,wCAAyC,IAAM,CAEhD,MAAMF,EAAM,IAAI,0BAAwBH,EAAS,CAAC,EAC5CI,EAAW,IAAI,eAAa,CAChC,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,CAAC,EAGKC,EAASF,EAAI,cAAcC,CAAQ,EAIzC,MADA,aAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,EAC7C,IAAC,0BAAuBA,CAAM,EAChC,GAAI,cAAeA,EAAO,SACxB,UAAOA,EAAO,MAAM,SAAS,EAAE,QAAQ,MAAM,MAE7C,OAAM,IAAI,MACR,sDACF,CAGN,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
6
|
"names": ["import_device_management_kit", "import_vitest", "import_SetTrustedMemberCommand", "PLACEHOLDER_BYTES", "makeArgs", "apdu", "expected", "cmd", "response", "result"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var s=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var
|
|
1
|
+
"use strict";var s=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var C=(n,r)=>{for(var e in r)s(n,e,{get:r[e],enumerable:!0})},f=(n,r,e,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of u(r))!y.call(n,a)&&a!==e&&s(n,a,{get:()=>r[a],enumerable:!(t=c(r,a))||t.enumerable});return n};var A=n=>f(s({},"__esModule",{value:!0}),n);var E={};C(E,{ISSUER_PLACEHOLDER_TLV:()=>g,SignBlockHeaderCommand:()=>R});module.exports=A(E);var o=require("@ledgerhq/device-management-kit"),p=require("@ledgerhq/signer-utils"),l=require("purify-ts"),d=require("../../models/Tags"),m=require("./utils/ledgerKeyringProtocolErrors");const i=[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],g=Uint8Array.from([d.GeneralTags.PublicKey,i.length,...i]);class R{constructor(r){this.args=r}errorHelper=new p.CommandErrorHelper(m.LEDGER_SYNC_ERRORS,m.LedgerKeyringProtocolErrorFactory);getApdu(){const{parent:r,commandCount:e}=this.args,t=Uint8Array.from([d.GeneralTags.Hash,r.length,...r]);return new o.ApduBuilder({cla:224,ins:7,p1:0,p2:0}).addBufferToData(Uint8Array.from([d.GeneralTags.Int,1,1])).addBufferToData(Uint8Array.from(t)).addBufferToData(g).addBufferToData(Uint8Array.from([d.GeneralTags.Int,1,e])).build()}parseResponse(r){return l.Maybe.fromNullable(this.errorHelper.getError(r)).orDefaultLazy(()=>{const e=new o.ApduParser(r),t=e.getUnparsedRemainingLength(),a=e.extractFieldByLength(t);return a?(0,o.CommandResultFactory)({data:a}):(0,o.CommandResultFactory)({error:new o.InvalidStatusWordError("No data returned by SignBlockHeaderCommand")})})}}0&&(module.exports={ISSUER_PLACEHOLDER_TLV,SignBlockHeaderCommand});
|
|
2
2
|
//# sourceMappingURL=SignBlockHeader.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/SignBlockHeader.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,EAAA,2BAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,
|
|
4
|
+
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport { GeneralTags } from \"@internal/models/Tags\";\n\nimport {\n LEDGER_SYNC_ERRORS,\n type LedgerKeyringProtocolErrorCodes,\n LedgerKeyringProtocolErrorFactory,\n} from \"./utils/ledgerKeyringProtocolErrors\";\n\nexport interface SignBlockHeaderCommandArgs {\n parent: Uint8Array;\n commandCount: number;\n}\n\nexport type SignBlockHeaderCommandResponse = Uint8Array;\n\nconst ISSUER_PLACEHOLDER = [\n 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0,\n];\nexport const ISSUER_PLACEHOLDER_TLV = Uint8Array.from([\n GeneralTags.PublicKey,\n ISSUER_PLACEHOLDER.length,\n ...ISSUER_PLACEHOLDER,\n]);\n\nexport class SignBlockHeaderCommand\n implements\n Command<\n SignBlockHeaderCommandResponse,\n SignBlockHeaderCommandArgs,\n LedgerKeyringProtocolErrorCodes\n >\n{\n private readonly errorHelper = new CommandErrorHelper<\n SignBlockHeaderCommandResponse,\n LedgerKeyringProtocolErrorCodes\n >(LEDGER_SYNC_ERRORS, LedgerKeyringProtocolErrorFactory);\n\n constructor(private readonly args: SignBlockHeaderCommandArgs) {}\n\n getApdu(): Apdu {\n const { parent, commandCount } = this.args;\n const parentTlv = Uint8Array.from([\n GeneralTags.Hash,\n parent.length,\n ...parent,\n ]);\n\n return new ApduBuilder({\n cla: 0xe0,\n ins: 0x07,\n p1: 0x00,\n p2: 0x00,\n })\n .addBufferToData(Uint8Array.from([GeneralTags.Int, 1, 1])) // Version 1\n .addBufferToData(Uint8Array.from(parentTlv)) // Parent block hash\n .addBufferToData(ISSUER_PLACEHOLDER_TLV) // Placeholder for issuer public key (will be replaced by the device)\n .addBufferToData(Uint8Array.from([GeneralTags.Int, 1, commandCount])) // Command count\n .build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<\n SignBlockHeaderCommandResponse,\n LedgerKeyringProtocolErrorCodes\n > {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n const remaining = parser.getUnparsedRemainingLength();\n const payload = parser.extractFieldByLength(remaining);\n if (!payload) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\n \"No data returned by SignBlockHeaderCommand\",\n ),\n });\n }\n return CommandResultFactory({ data: payload });\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,EAAA,2BAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAA4B,iCAE5BC,EAIO,+CASP,MAAMC,EAAqB,CACzB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC3E,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CACpB,EACaR,EAAyB,WAAW,KAAK,CACpD,cAAY,UACZQ,EAAmB,OACnB,GAAGA,CACL,CAAC,EAEM,MAAMP,CAOb,CAME,YAA6BQ,EAAkC,CAAlC,UAAAA,CAAmC,CAL/C,YAAc,IAAI,qBAGjC,qBAAoB,mCAAiC,EAIvD,SAAgB,CACd,KAAM,CAAE,OAAAC,EAAQ,aAAAC,CAAa,EAAI,KAAK,KAChCC,EAAY,WAAW,KAAK,CAChC,cAAY,KACZF,EAAO,OACP,GAAGA,CACL,CAAC,EAED,OAAO,IAAI,cAAY,CACrB,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,CAAC,EACE,gBAAgB,WAAW,KAAK,CAAC,cAAY,IAAK,EAAG,CAAC,CAAC,CAAC,EACxD,gBAAgB,WAAW,KAAKE,CAAS,CAAC,EAC1C,gBAAgBZ,CAAsB,EACtC,gBAAgB,WAAW,KAAK,CAAC,cAAY,IAAK,EAAGW,CAAY,CAAC,CAAC,EACnE,MAAM,CACX,CAEA,cACEE,EAIA,CACA,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAI,aAAWD,CAAY,EACpCE,EAAYD,EAAO,2BAA2B,EAC9CE,EAAUF,EAAO,qBAAqBC,CAAS,EACrD,OAAKC,KAOE,wBAAqB,CAAE,KAAMA,CAAQ,CAAC,KANpC,wBAAqB,CAC1B,MAAO,IAAI,yBACT,4CACF,CACF,CAAC,CAGL,CAAC,CACH,CACF",
|
|
6
6
|
"names": ["SignBlockHeader_exports", "__export", "ISSUER_PLACEHOLDER_TLV", "SignBlockHeaderCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_Tags", "import_ledgerKeyringProtocolErrors", "ISSUER_PLACEHOLDER", "args", "parent", "commandCount", "parentTlv", "apduResponse", "parser", "remaining", "payload"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var n=require("@ledgerhq/device-management-kit"),o=require("vitest"),m=require("../../models/Tags"),a=require("./SignBlockHeader");const c=3,d=Uint8Array.from([240,202,204,26]),p=Uint8Array.from([m.GeneralTags.Int,1,1,m.GeneralTags.Hash,4,...d,...a.ISSUER_PLACEHOLDER_TLV,m.GeneralTags.Int,1,c]),i=Uint8Array.from([240,202,204,26]),l=Uint8Array.from([0,i.length,...i]),g=Uint8Array.from([129,i.length,...i]),u=new Uint8Array([...l,...g]);(0,o.describe)("SignBlockHeaderCommand",()=>{(0,o.describe)("getApdu()",()=>{(0,o.it)("should build the correct APDU for a parent hash and a commands count",()=>{const r={parent:d,commandCount:c},t=new a.SignBlockHeaderCommand(r).getApdu(),e=Uint8Array.from([224,7,0,0,p.length,...p]);(0,o.expect)(t.getRawApdu()).toEqual(e)})}),(0,o.describe)("parseResponse()",()=>{(0,o.it)("should return raw payload on success",()=>{const r={parent:d,commandCount:c},s=new a.SignBlockHeaderCommand(r),t=new n.ApduResponse({statusCode:Uint8Array.from([144,0]),data:u}),e=s.parseResponse(t);if((0,o.expect)((0,n.isSuccessCommandResult)(e)).toBe(!0),(0,n.isSuccessCommandResult)(e)){const A=e.data;(0,o.expect)(A).toEqual(u)}}),(0,o.it)("should map SW errors to CommandResult errors",()=>{const r={parent:d,commandCount:c},s=new a.SignBlockHeaderCommand(r),t=new n.ApduResponse({statusCode:Uint8Array.from([106,134]),data:new Uint8Array}),e=s.parseResponse(t);(0,o.expect)((0,n.isSuccessCommandResult)(e)).toBe(!1),(0,n.isSuccessCommandResult)(e)||(0,o.expect)(e.error.errorCode).toBe("6a86")}),(0,o.it)("should error if no data is returned",()=>{const r={parent:d,commandCount:c},s=new a.SignBlockHeaderCommand(r),t=new n.ApduResponse({statusCode:Uint8Array.from([144,0]),data:new Uint8Array}),e=s.parseResponse(t);(0,o.expect)((0,n.isSuccessCommandResult)(e)).toBe(!0),(0,n.isSuccessCommandResult)(e)&&(0,o.expect)(e.data).toEqual(new Uint8Array([]))})})});
|
|
2
2
|
//# sourceMappingURL=SignBlockHeader.test.js.map
|