@ledgerhq/device-trusted-app-kit-ledger-keyring-protocol 0.0.0-develop-20250813001300 → 0.0.0-develop-20250815001317
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 +2 -2
- package/lib/cjs/api/app-binder/AddToTrustchainDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/AddToTrustchainDeviceActionTypes.js.map +3 -3
- package/lib/cjs/api/app-binder/AuthenticateDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/AuthenticateDeviceActionTypes.js.map +3 -3
- 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/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 +2 -0
- package/lib/cjs/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.js.map +7 -0
- package/lib/cjs/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.js +2 -0
- package/lib/cjs/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.js.map +7 -0
- package/lib/cjs/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.js +2 -0
- package/lib/cjs/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.js.map +7 -0
- package/lib/cjs/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.js +2 -0
- package/lib/cjs/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/AuthenticateTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/AuthenticateTask.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/ExtractEncryptionKeyTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/ExtractEncryptionKeyTask.js.map +7 -0
- 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 +3 -3
- package/lib/cjs/internal/lkrp-datasource/data/HttpLKRPDataSource.test.js +1 -1
- package/lib/cjs/internal/lkrp-datasource/data/HttpLKRPDataSource.test.js.map +3 -3
- package/lib/cjs/internal/lkrp-datasource/data/LKRPDataSource.js.map +1 -1
- package/lib/cjs/internal/models/Types.js +1 -1
- package/lib/cjs/internal/models/Types.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 +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/Trustchain.js +2 -0
- package/lib/cjs/internal/utils/Trustchain.js.map +7 -0
- package/lib/cjs/package.json +1 -0
- package/lib/esm/api/LedgerKeyringProtocolBuilder.js +1 -1
- package/lib/esm/api/LedgerKeyringProtocolBuilder.js.map +2 -2
- package/lib/esm/api/app-binder/AddToTrustchainDeviceActionTypes.js +1 -0
- package/lib/esm/api/app-binder/AddToTrustchainDeviceActionTypes.js.map +4 -4
- package/lib/esm/api/app-binder/AuthenticateDeviceActionTypes.js +1 -0
- package/lib/esm/api/app-binder/AuthenticateDeviceActionTypes.js.map +4 -4
- 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/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 +2 -0
- package/lib/esm/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.js.map +7 -0
- package/lib/esm/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.js +2 -0
- package/lib/esm/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.js.map +7 -0
- package/lib/esm/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.js +1 -0
- package/lib/esm/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.js.map +7 -0
- package/lib/esm/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.js +1 -0
- package/lib/esm/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.js.map +7 -0
- package/lib/esm/internal/app-binder/task/AuthenticateTask.js +2 -0
- package/lib/esm/internal/app-binder/task/AuthenticateTask.js.map +7 -0
- package/lib/esm/internal/app-binder/task/ExtractEncryptionKeyTask.js +2 -0
- package/lib/esm/internal/app-binder/task/ExtractEncryptionKeyTask.js.map +7 -0
- 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 +3 -3
- package/lib/esm/internal/lkrp-datasource/data/HttpLKRPDataSource.test.js +1 -1
- package/lib/esm/internal/lkrp-datasource/data/HttpLKRPDataSource.test.js.map +3 -3
- package/lib/esm/internal/use-cases/authentication/AuthenticateUseCase.js +1 -1
- package/lib/esm/internal/use-cases/authentication/AuthenticateUseCase.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/Trustchain.js +2 -0
- package/lib/esm/internal/utils/Trustchain.js.map +7 -0
- package/lib/esm/package.json +1 -0
- 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 +1 -3
- package/lib/types/api/LedgerKeyringProtocolBuilder.d.ts.map +1 -1
- package/lib/types/api/app-binder/AddToTrustchainDeviceActionTypes.d.ts +16 -6
- package/lib/types/api/app-binder/AddToTrustchainDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/app-binder/AuthenticateDeviceActionTypes.d.ts +25 -29
- package/lib/types/api/app-binder/AuthenticateDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/internal/DefaultLedgerKeyringProtocol.d.ts +5 -5
- package/lib/types/internal/DefaultLedgerKeyringProtocol.d.ts.map +1 -1
- package/lib/types/internal/app-binder/LedgerKeyringProtocolBinder.d.ts +8 -4
- package/lib/types/internal/app-binder/LedgerKeyringProtocolBinder.d.ts.map +1 -1
- 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 +29 -0
- package/lib/types/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.d.ts.map +1 -0
- package/lib/types/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.d.ts +30 -0
- package/lib/types/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.d.ts.map +1 -0
- package/lib/types/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.d.ts +19 -0
- package/lib/types/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.d.ts.map +1 -0
- package/lib/types/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.d.ts +16 -0
- package/lib/types/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/AuthenticateTask.d.ts +9 -0
- package/lib/types/internal/app-binder/task/AuthenticateTask.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/ExtractEncryptionKeyTask.d.ts +11 -0
- package/lib/types/internal/app-binder/task/ExtractEncryptionKeyTask.d.ts.map +1 -0
- package/lib/types/internal/di.d.ts +2 -3
- package/lib/types/internal/di.d.ts.map +1 -1
- package/lib/types/internal/externalTypes.d.ts +0 -1
- package/lib/types/internal/externalTypes.d.ts.map +1 -1
- package/lib/types/internal/lkrp-datasource/data/HttpLKRPDataSource.d.ts +2 -4
- package/lib/types/internal/lkrp-datasource/data/HttpLKRPDataSource.d.ts.map +1 -1
- package/lib/types/internal/lkrp-datasource/data/LKRPDataSource.d.ts +1 -1
- package/lib/types/internal/lkrp-datasource/data/LKRPDataSource.d.ts.map +1 -1
- package/lib/types/internal/models/Types.d.ts +0 -4
- package/lib/types/internal/models/Types.d.ts.map +1 -1
- package/lib/types/internal/use-cases/authentication/AuthenticateUseCase.d.ts +13 -1
- package/lib/types/internal/use-cases/authentication/AuthenticateUseCase.d.ts.map +1 -1
- package/lib/types/internal/utils/LKRPBlockStream.d.ts +1 -2
- package/lib/types/internal/utils/LKRPBlockStream.d.ts.map +1 -1
- package/lib/types/internal/utils/Trustchain.d.ts +14 -0
- package/lib/types/internal/utils/Trustchain.d.ts.map +1 -0
- package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +4 -3
- package/lib/cjs/internal/app-binder/device-action/AuthenticateDeviceAction.js +0 -2
- package/lib/cjs/internal/app-binder/device-action/AuthenticateDeviceAction.js.map +0 -7
- package/lib/esm/internal/app-binder/device-action/AuthenticateDeviceAction.js +0 -2
- package/lib/esm/internal/app-binder/device-action/AuthenticateDeviceAction.js.map +0 -7
- package/lib/types/internal/app-binder/device-action/AuthenticateDeviceAction.d.ts +0 -42
- package/lib/types/internal/app-binder/device-action/AuthenticateDeviceAction.d.ts.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/use-cases/authentication/AuthenticateUseCase.ts"],
|
|
4
|
-
"sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { AuthenticateDAReturnType } from \"@api/app-binder/AuthenticateDeviceActionTypes\";\nimport { Keypair, Permissions } from \"@api/app-binder/LKRPTypes\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { LedgerKeyringProtocolBinder } from \"@internal/app-binder/LedgerKeyringProtocolBinder\";\n\n@injectable()\nexport class AuthenticateUseCase {\n constructor(\n @inject(appBinderTypes.AppBinding)\n private appBinder: LedgerKeyringProtocolBinder,\n ) {}\n\n execute(\n
|
|
5
|
-
"mappings": "iOAAA,OAAS,
|
|
6
|
-
"names": ["inject", "injectable", "appBinderTypes", "AuthenticateUseCase", "appBinder", "
|
|
4
|
+
"sourcesContent": ["import {\n DeviceActionStatus,\n DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\nimport { of } from \"rxjs\";\n\nimport { AuthenticateDAReturnType } from \"@api/app-binder/AuthenticateDeviceActionTypes\";\nimport { LKRPMissingDataError } from \"@api/app-binder/Errors\";\nimport { Keypair, Permissions } from \"@api/app-binder/LKRPTypes\";\nimport { appBinderTypes } from \"@internal/app-binder/di/appBinderTypes\";\nimport { LedgerKeyringProtocolBinder } from \"@internal/app-binder/LedgerKeyringProtocolBinder\";\n\nexport type AuthenticateUsecaseInput = {\n keypair: Keypair;\n clientName: string;\n permissions: Permissions;\n} & (\n | { trustchainId: string; sessionId?: DeviceSessionId }\n | { trustchainId?: undefined; sessionId: DeviceSessionId }\n);\n\n@injectable()\nexport class AuthenticateUseCase {\n constructor(\n @inject(appBinderTypes.AppBinding)\n private appBinder: LedgerKeyringProtocolBinder,\n ) {}\n\n execute(input: AuthenticateUsecaseInput): AuthenticateDAReturnType {\n if (input.trustchainId) {\n return this.appBinder.authenticateWithKeypair(input);\n }\n\n const sessionId = input.sessionId;\n if (sessionId) {\n return this.appBinder.authenticateWithDevice({ ...input, sessionId });\n }\n\n // The AuthenticateUsecaseInput type should prevent this case\n return {\n observable: of({\n status: DeviceActionStatus.Error,\n error: new LKRPMissingDataError(\n \"Either a trustchainId or a device is required for authentication.\",\n ),\n }),\n cancel: () => undefined,\n };\n }\n}\n"],
|
|
5
|
+
"mappings": "iOAAA,OACE,sBAAAA,MAEK,kCACP,OAAS,UAAAC,EAAQ,cAAAC,MAAkB,YACnC,OAAS,MAAAC,MAAU,OAGnB,OAAS,wBAAAC,MAA4B,yBAErC,OAAS,kBAAAC,MAAsB,yCAaxB,IAAMC,EAAN,KAA0B,CAC/B,YAEUC,EACR,CADQ,eAAAA,CACP,CAEH,QAAQC,EAA2D,CACjE,GAAIA,EAAM,aACR,OAAO,KAAK,UAAU,wBAAwBA,CAAK,EAGrD,MAAMC,EAAYD,EAAM,UACxB,OAAIC,EACK,KAAK,UAAU,uBAAuB,CAAE,GAAGD,EAAO,UAAAC,CAAU,CAAC,EAI/D,CACL,WAAYC,EAAG,CACb,OAAQC,EAAmB,MAC3B,MAAO,IAAIC,EACT,mEACF,CACF,CAAC,EACD,OAAQ,IAAG,EACb,CACF,CACF,EA3BaN,EAANO,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAe,UAAU,IAFxBX",
|
|
6
|
+
"names": ["DeviceActionStatus", "inject", "injectable", "of", "LKRPMissingDataError", "appBinderTypes", "AuthenticateUseCase", "appBinder", "input", "sessionId", "of", "DeviceActionStatus", "LKRPMissingDataError", "__decorateClass", "injectable", "__decorateParam", "inject", "appBinderTypes"]
|
|
7
7
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Either as
|
|
1
|
+
import{Either as p,Just as c,Maybe as u,Nothing as i,Right as b}from"purify-ts";import{CommandTags as l}from"../models/Tags";import{CryptoUtils as f}from"../utils/crypto";import{bytesToHex as y,hexToBytes as P}from"./hex";import{LKRPBlock as m}from"./LKRPBlock";import{TLVParser as d}from"./TLVParser";class h{constructor(t,r){this.bytes=t;this.blocks=r?c(b(r)):i}validation=i;blocks=i;path=i;static fromHex(t){return new h(P(t))}static fromData(t,r){const e=[];let a=r??y(crypto.getRandomValues(new Uint8Array(32)));for(const s of t){const n=m.fromData({...s,parent:a});a=n.hash(),e.push(n)}const o=e.reduce((s,n)=>new Uint8Array([...s,...n.toU8A()]),new Uint8Array);return new h(o,e)}toU8A(){return this.bytes}toString(){return y(this.bytes)}parse(){return this.blocks.orDefaultLazy(()=>{const t=new d(this.bytes),r=[];for(;!t.state.isDone;){const a=t.state.offset,o=t.parseBlockData().map(s=>{const n=t.state.offset;return new m(this.bytes.slice(a,n),s)});if(r.push(o),o.isLeft())break}const e=p.sequence(r);return this.blocks=c(e),e})}toHuman(){return this.parse().map(t=>t.map(r=>r.toHuman())).chain(p.sequence).map(t=>t.join(`
|
|
2
2
|
|
|
3
|
-
`))}async validate(t){return this.validation.orDefaultLazy(async()=>this.parse().map(e=>e.map(a=>a.parse().map(({parent:o})=>({parent:o,hash:()=>a.hash()})))).chain(
|
|
3
|
+
`))}async validate(t){return this.validation.orDefaultLazy(async()=>this.parse().map(e=>e.map(a=>a.parse().map(({parent:o})=>({parent:o,hash:()=>a.hash()})))).chain(p.sequence).toMaybe().map(async e=>{if(t&&e[0]&&t!==e[0].parent)return!1;for await(const[a,o]of e.entries()){const s=e[a+1];if(s&&o.hash()!==s.parent)return!1}return!0}).orDefault(Promise.resolve(!1)))}getPath(){return this.path.ifNothing(()=>{this.path=this.parse().toMaybe().chainNullable(t=>t[0]).chain(t=>t.parse().toMaybe()).chainNullable(({commands:t})=>t[0]).chain(t=>t.parse().toMaybe()).chain(t=>{switch(t.type){case l.Derive:return c(t.path);case l.Seed:return c("m/0'");default:return i}})}),this.path}getMemberBlock(t){return this.parse().toMaybe().chain(r=>{for(const e of r){const a=e.parse();if(a.isRight()){const o=a.extract();for(const s of o.commands){const n=s.getPublicKey();if(n.isJust()&&n.extract()===t)return u.of(o)}}}return i})}hasMember(t){return this.getMemberBlock(t).isJust()}getPublishedKey(t){return this.getMemberBlock(t.pubKeyToHex()).chain(r=>{for(const e of r.commands){const a=e.getEncryptedPublishedKey();if(a.isJust())return a}return i}).map(r=>{const e=t.ecdh(r.ephemeralPublicKey).slice(1),a=f.decrypt(e,r.initializationVector,r.encryptedXpriv);return{privateKey:a.slice(0,32),chainCode:a.slice(32)}})}}export{h as LKRPBlockStream};
|
|
4
4
|
//# sourceMappingURL=LKRPBlockStream.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/internal/utils/LKRPBlockStream.ts"],
|
|
4
|
-
"sourcesContent": ["import { Either, Just, Maybe, Nothing, Right } from \"purify-ts\";\n\nimport { type LKRPParsingError } from \"@api/app-binder/Errors\";\nimport { type Keypair } from \"@api/app-binder/LKRPTypes\";\nimport { type LKRPBlockData } from \"@internal/models/LKRPBlockTypes\";\nimport { CommandTags } from \"@internal/models/Tags\";\nimport {\n type EncryptedPublishedKey,\n type PublishedKey,\n} from \"@internal/models/Types\";\nimport { CryptoUtils } from \"@internal/utils/crypto\";\n\nimport { bytesToHex, hexToBytes } from \"./hex\";\nimport { LKRPBlock } from \"./LKRPBlock\";\nimport { TLVParser } from \"./TLVParser\";\n\nexport class LKRPBlockStream {\n private validation: Maybe<Promise<boolean>> = Nothing;\n private blocks: Maybe<Either<LKRPParsingError, LKRPBlock[]>> = Nothing;\n private path: Maybe<string> = Nothing;\n\n constructor(\n private readonly bytes: Uint8Array,\n blocks?: LKRPBlock[],\n
|
|
5
|
-
"mappings": "AAAA,OAAS,UAAAA,EAAQ,QAAAC,EAAM,SAAAC,EAAO,WAAAC,EAAS,SAAAC,MAAa,YAKpD,OAAS,eAAAC,MAAmB,wBAK5B,OAAS,eAAAC,MAAmB,yBAE5B,OAAS,cAAAC,EAAY,cAAAC,MAAkB,QACvC,OAAS,aAAAC,MAAiB,cAC1B,OAAS,aAAAC,MAAiB,cAEnB,MAAMC,CAAgB,CAK3B,YACmBC,EACjBC,
|
|
6
|
-
"names": ["Either", "Just", "Maybe", "Nothing", "Right", "CommandTags", "CryptoUtils", "bytesToHex", "hexToBytes", "LKRPBlock", "TLVParser", "LKRPBlockStream", "bytes", "blocks", "
|
|
4
|
+
"sourcesContent": ["import { Either, Just, Maybe, Nothing, Right } from \"purify-ts\";\n\nimport { type LKRPParsingError } from \"@api/app-binder/Errors\";\nimport { type Keypair } from \"@api/app-binder/LKRPTypes\";\nimport { type LKRPBlockData } from \"@internal/models/LKRPBlockTypes\";\nimport { CommandTags } from \"@internal/models/Tags\";\nimport {\n type EncryptedPublishedKey,\n type PublishedKey,\n} from \"@internal/models/Types\";\nimport { CryptoUtils } from \"@internal/utils/crypto\";\n\nimport { bytesToHex, hexToBytes } from \"./hex\";\nimport { LKRPBlock } from \"./LKRPBlock\";\nimport { TLVParser } from \"./TLVParser\";\n\nexport class LKRPBlockStream {\n private validation: Maybe<Promise<boolean>> = Nothing;\n private blocks: Maybe<Either<LKRPParsingError, LKRPBlock[]>> = Nothing;\n private path: Maybe<string> = Nothing;\n\n constructor(\n private readonly bytes: Uint8Array,\n blocks?: LKRPBlock[],\n ) {\n this.blocks = blocks ? Just(Right(blocks)) : Nothing;\n }\n\n static fromHex(hex: string): LKRPBlockStream {\n return new LKRPBlockStream(hexToBytes(hex));\n }\n\n static fromData(\n blocksData: Omit<LKRPBlockData, \"parent\">[],\n parentHash?: string,\n ): LKRPBlockStream {\n const blocks: LKRPBlock[] = [];\n let hash =\n parentHash ?? bytesToHex(crypto.getRandomValues(new Uint8Array(32)));\n\n for (const blockData of blocksData) {\n const block = LKRPBlock.fromData({\n ...blockData,\n parent: hash,\n });\n hash = block.hash();\n blocks.push(block);\n }\n const bytes = blocks.reduce(\n (acc, block) => new Uint8Array([...acc, ...block.toU8A()]),\n new Uint8Array(),\n );\n return new LKRPBlockStream(bytes, blocks);\n }\n\n toU8A(): Uint8Array {\n return this.bytes;\n }\n\n toString(): string {\n return bytesToHex(this.bytes);\n }\n\n parse(): Either<LKRPParsingError, LKRPBlock[]> {\n return this.blocks.orDefaultLazy(() => {\n const parser = new TLVParser(this.bytes);\n const parsed: Either<LKRPParsingError, LKRPBlock>[] = [];\n while (!parser.state.isDone) {\n const start = parser.state.offset;\n const block = parser.parseBlockData().map((data) => {\n const end = parser.state.offset;\n return new LKRPBlock(this.bytes.slice(start, end), data);\n });\n parsed.push(block);\n if (block.isLeft()) break;\n }\n const blocks = Either.sequence(parsed);\n this.blocks = Just(blocks);\n return blocks;\n });\n }\n\n toHuman(): Either<LKRPParsingError, string> {\n return this.parse()\n .map((blocks) => blocks.map((block) => block.toHuman()))\n .chain(Either.sequence)\n .map((blocks) => blocks.join(\"\\n\\n\"));\n }\n\n async validate(streamParentHash?: string): Promise<boolean> {\n return this.validation.orDefaultLazy(async () => {\n const validation = this.parse()\n .map((blocks) =>\n blocks.map((block) =>\n block\n .parse()\n .map(({ parent }) => ({ parent, hash: () => block.hash() })),\n ),\n )\n .chain(Either.sequence)\n .toMaybe()\n .map(async (blocks) => {\n if (\n streamParentHash &&\n blocks[0] &&\n streamParentHash !== blocks[0].parent\n ) {\n return false;\n }\n\n for await (const [index, block] of blocks.entries()) {\n const nextBlock = blocks[index + 1];\n if (nextBlock && block.hash() !== nextBlock.parent) {\n return false;\n }\n }\n return true;\n })\n .orDefault(Promise.resolve(false));\n\n return validation;\n });\n }\n\n getPath(): Maybe<string> {\n this.path.ifNothing(() => {\n this.path = this.parse()\n .toMaybe()\n .chainNullable((blocks) => blocks[0])\n .chain((block) => block.parse().toMaybe())\n .chainNullable(({ commands }) => commands[0])\n .chain((command) => command.parse().toMaybe())\n .chain((data) => {\n switch (data.type) {\n case CommandTags.Derive:\n return Just(data.path);\n case CommandTags.Seed:\n return Just(\"m/0'\");\n default:\n return Nothing;\n }\n });\n });\n return this.path;\n }\n\n getMemberBlock(member: string): Maybe<LKRPBlockData> {\n return this.parse()\n .toMaybe()\n .chain((blocks) => {\n for (const block of blocks) {\n const parsedBlock = block.parse();\n if (parsedBlock.isRight()) {\n const blockData = parsedBlock.extract();\n for (const command of blockData.commands) {\n const pubkey = command.getPublicKey();\n if (pubkey.isJust() && pubkey.extract() === member) {\n return Maybe.of(blockData);\n }\n }\n }\n }\n return Nothing;\n });\n }\n\n hasMember(member: string): boolean {\n return this.getMemberBlock(member).isJust();\n }\n\n getPublishedKey(keypair: Keypair): Maybe<PublishedKey> {\n return this.getMemberBlock(keypair.pubKeyToHex())\n .chain((block): Maybe<EncryptedPublishedKey> => {\n for (const command of block.commands) {\n const key = command.getEncryptedPublishedKey();\n if (key.isJust()) {\n return key;\n }\n }\n return Nothing;\n })\n .map((published) => {\n const secret = keypair.ecdh(published.ephemeralPublicKey).slice(1);\n const xpriv = CryptoUtils.decrypt(\n secret,\n published.initializationVector,\n published.encryptedXpriv,\n );\n return { privateKey: xpriv.slice(0, 32), chainCode: xpriv.slice(32) };\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Either", "Just", "Maybe", "Nothing", "Right", "CommandTags", "CryptoUtils", "bytesToHex", "hexToBytes", "LKRPBlock", "TLVParser", "LKRPBlockStream", "bytes", "blocks", "hex", "blocksData", "parentHash", "hash", "blockData", "block", "acc", "parser", "parsed", "start", "data", "end", "streamParentHash", "parent", "index", "nextBlock", "commands", "command", "member", "parsedBlock", "pubkey", "keypair", "key", "published", "secret", "xpriv"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Maybe as t}from"purify-ts";import{LKRPBlockStream as e}from"./LKRPBlockStream";class s{constructor(r,i){this.id=r;this.serialized=i}getId(){return this.id}getRootStream(){return this.getStream("m/")}getAppStream(r){return this.getStream(`m/${r}'`)}getStream(r){return t.fromNullable(this.serialized[r]).map(e.fromHex)}}export{s as Trustchain};
|
|
2
|
+
//# sourceMappingURL=Trustchain.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/internal/utils/Trustchain.ts"],
|
|
4
|
+
"sourcesContent": ["import { Maybe } from \"purify-ts\";\n\nimport { LKRPBlockStream } from \"./LKRPBlockStream\";\n\nexport class Trustchain {\n constructor(\n private readonly id: string,\n private readonly serialized: {\n [path: string]: string;\n },\n ) {}\n\n getId(): string {\n return this.id;\n }\n\n getRootStream(): Maybe<LKRPBlockStream> {\n return this.getStream(\"m/\");\n }\n\n getAppStream(appId: number): Maybe<LKRPBlockStream> {\n return this.getStream(`m/${appId}'`);\n }\n\n getStream(path: string): Maybe<LKRPBlockStream> {\n return Maybe.fromNullable(this.serialized[path]).map(\n LKRPBlockStream.fromHex,\n );\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,SAAAA,MAAa,YAEtB,OAAS,mBAAAC,MAAuB,oBAEzB,MAAMC,CAAW,CACtB,YACmBC,EACAC,EAGjB,CAJiB,QAAAD,EACA,gBAAAC,CAGhB,CAEH,OAAgB,CACd,OAAO,KAAK,EACd,CAEA,eAAwC,CACtC,OAAO,KAAK,UAAU,IAAI,CAC5B,CAEA,aAAaC,EAAuC,CAClD,OAAO,KAAK,UAAU,KAAKA,CAAK,GAAG,CACrC,CAEA,UAAUC,EAAsC,CAC9C,OAAON,EAAM,aAAa,KAAK,WAAWM,CAAI,CAAC,EAAE,IAC/CL,EAAgB,OAClB,CACF,CACF",
|
|
6
|
+
"names": ["Maybe", "LKRPBlockStream", "Trustchain", "id", "serialized", "appId", "path"]
|
|
7
|
+
}
|
package/lib/esm/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { type AuthenticateUsecaseInput } from "../internal/use-cases/authentication/AuthenticateUseCase";
|
|
1
2
|
import { type AuthenticateDAReturnType } from "./app-binder/AuthenticateDeviceActionTypes";
|
|
2
|
-
import { type Keypair, type Permissions } from "./app-binder/LKRPTypes";
|
|
3
3
|
export interface LedgerKeyringProtocol {
|
|
4
|
-
authenticate: (
|
|
4
|
+
authenticate: (input: AuthenticateUsecaseInput) => AuthenticateDAReturnType;
|
|
5
5
|
encryptData: (xpriv: Uint8Array, data: Uint8Array) => Uint8Array;
|
|
6
6
|
decryptData: (xpriv: Uint8Array, data: Uint8Array) => Uint8Array;
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LedgerKeyringProtocol.d.ts","sourceRoot":"","sources":["../../../src/api/LedgerKeyringProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"LedgerKeyringProtocol.d.ts","sourceRoot":"","sources":["../../../src/api/LedgerKeyringProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,wDAAwD,CAAC;AAEvG,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAE3F,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,wBAAwB,CAAC;IAE5E,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,KAAK,UAAU,CAAC;IAEjE,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,KAAK,UAAU,CAAC;CAClE"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import { type DeviceManagementKit
|
|
1
|
+
import { type DeviceManagementKit } from "@ledgerhq/device-management-kit";
|
|
2
2
|
import { type LedgerKeyringProtocol } from "./LedgerKeyringProtocol";
|
|
3
3
|
import { type LKRPEnv } from "./app-binder/LKRPTypes";
|
|
4
4
|
export declare class LedgerKeyringProtocolBuilder {
|
|
5
5
|
private readonly dmk;
|
|
6
|
-
private readonly sessionId;
|
|
7
6
|
private readonly applicationId;
|
|
8
7
|
private readonly env?;
|
|
9
8
|
private readonly baseUrl?;
|
|
10
9
|
constructor(args: {
|
|
11
10
|
dmk: DeviceManagementKit;
|
|
12
|
-
sessionId: DeviceSessionId;
|
|
13
11
|
applicationId: number;
|
|
14
12
|
env?: LKRPEnv;
|
|
15
13
|
baseUrl?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LedgerKeyringProtocolBuilder.d.ts","sourceRoot":"","sources":["../../../src/api/LedgerKeyringProtocolBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"LedgerKeyringProtocolBuilder.d.ts","sourceRoot":"","sources":["../../../src/api/LedgerKeyringProtocolBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGxE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAsB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAS;gBAEtB,IAAI,EAAE;QAChB,GAAG,EAAE,mBAAmB,CAAC;QACzB,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB;IAOD,KAAK,IAAI,qBAAqB;CAQ/B"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { type OpenAppDAError } from "@ledgerhq/device-management-kit";
|
|
1
|
+
import { type OpenAppDAError, type UserInteractionRequired } from "@ledgerhq/device-management-kit";
|
|
2
2
|
import { type Either } from "purify-ts";
|
|
3
3
|
import { type LKRPDeviceCommandError } from "../../internal/app-binder/command/utils/ledgerKeyringProtocolErrors";
|
|
4
4
|
import { type LKRPDataSource } from "../../internal/lkrp-datasource/data/LKRPDataSource";
|
|
5
|
-
import { type Trustchain } from "../../internal/
|
|
6
|
-
import { type LKRPBlockStream } from "../../internal/utils/LKRPBlockStream";
|
|
5
|
+
import { type Trustchain } from "../../internal/utils/Trustchain";
|
|
7
6
|
import { type LKRPDataSourceError, type LKRPMissingDataError, type LKRPOutdatedTrustchainError, type LKRPParsingError, type LKRPTrustchainNotReady, type LKRPUnknownError } from "./Errors";
|
|
8
7
|
import { type JWT, type Keypair, type Permissions } from "./LKRPTypes";
|
|
9
8
|
export type AddToTrustchainDAOutput = undefined;
|
|
@@ -11,16 +10,27 @@ export type AddToTrustchainDAInput = Either<LKRPMissingDataError, {
|
|
|
11
10
|
readonly lkrpDataSource: LKRPDataSource;
|
|
12
11
|
readonly keypair: Keypair;
|
|
13
12
|
readonly jwt: JWT;
|
|
14
|
-
readonly
|
|
13
|
+
readonly appId: number;
|
|
15
14
|
readonly trustchain: Trustchain;
|
|
16
|
-
readonly applicationStream: LKRPBlockStream;
|
|
17
15
|
readonly clientName: string;
|
|
18
16
|
readonly permissions: Permissions;
|
|
19
17
|
}>;
|
|
20
18
|
export type AddToTrustchainDAError = LKRPDeviceCommandError | LKRPDataSourceError | LKRPParsingError | LKRPMissingDataError | LKRPOutdatedTrustchainError | LKRPTrustchainNotReady | OpenAppDAError | LKRPUnknownError;
|
|
21
19
|
export type AddToTrustchainDAIntermediateValue = {
|
|
22
|
-
|
|
20
|
+
requiredUserInteraction: UserInteractionRequired.None;
|
|
21
|
+
step?: AddToTrustchaineDAStep.Initialize | AddToTrustchaineDAStep.ParseStream;
|
|
22
|
+
} | {
|
|
23
|
+
requiredUserInteraction: AddToTrustchainDAState.AddMember;
|
|
24
|
+
step: AddToTrustchaineDAStep.AddMember;
|
|
23
25
|
};
|
|
26
|
+
export declare enum AddToTrustchainDAState {
|
|
27
|
+
AddMember = "lkrp-add-member"
|
|
28
|
+
}
|
|
29
|
+
export declare enum AddToTrustchaineDAStep {
|
|
30
|
+
Initialize = "lkrp-init-transaction",
|
|
31
|
+
ParseStream = "lkrp-parse-stream",
|
|
32
|
+
AddMember = "lkrp-add-member"
|
|
33
|
+
}
|
|
24
34
|
export type AddToTrustchainDAInternalState = Either<AddToTrustchainDAError, {
|
|
25
35
|
readonly sessionKeypair: Keypair | null;
|
|
26
36
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddToTrustchainDeviceActionTypes.d.ts","sourceRoot":"","sources":["../../../../src/api/app-binder/AddToTrustchainDeviceActionTypes.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AddToTrustchainDeviceActionTypes.d.ts","sourceRoot":"","sources":["../../../../src/api/app-binder/AddToTrustchainDeviceActionTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC7B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,gEAAgE,CAAC;AAC7G,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACtB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,MAAM,uBAAuB,GAAG,SAAS,CAAC;AAEhD,MAAM,MAAM,sBAAsB,GAAG,MAAM,CACzC,oBAAoB,EACpB;IACE,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC,CACF,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAC9B,sBAAsB,GACtB,mBAAmB,GACnB,gBAAgB,GAChB,oBAAoB,GACpB,2BAA2B,GAC3B,sBAAsB,GACtB,cAAc,GACd,gBAAgB,CAAC;AAErB,MAAM,MAAM,kCAAkC,GAC1C;IACE,uBAAuB,EAAE,uBAAuB,CAAC,IAAI,CAAC;IACtD,IAAI,CAAC,EACD,sBAAsB,CAAC,UAAU,GACjC,sBAAsB,CAAC,WAAW,CAAC;CACxC,GACD;IACE,uBAAuB,EAAE,sBAAsB,CAAC,SAAS,CAAC;IAC1D,IAAI,EAAE,sBAAsB,CAAC,SAAS,CAAC;CACxC,CAAC;AAEN,oBAAY,sBAAsB;IAChC,SAAS,oBAAoB;CAC9B;AAED,oBAAY,sBAAsB;IAChC,UAAU,0BAA0B;IACpC,WAAW,sBAAsB;IACjC,SAAS,oBAAoB;CAC9B;AAED,MAAM,MAAM,8BAA8B,GAAG,MAAM,CACjD,sBAAsB,EACtB;IACE,QAAQ,CAAC,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;CACzC,CACF,CAAC"}
|
|
@@ -1,37 +1,33 @@
|
|
|
1
|
-
import { type ExecuteDeviceActionReturnType, type OpenAppDAError } from "@ledgerhq/device-management-kit";
|
|
2
|
-
import { type Either } from "purify-ts";
|
|
1
|
+
import { type ExecuteDeviceActionReturnType, type OpenAppDAError, type OpenAppDARequiredInteraction, type UserInteractionRequired } from "@ledgerhq/device-management-kit";
|
|
3
2
|
import { type LKRPDeviceCommandError } from "../../internal/app-binder/command/utils/ledgerKeyringProtocolErrors";
|
|
4
|
-
import { type
|
|
5
|
-
import { type Trustchain } from "../../internal/models/Types";
|
|
6
|
-
import { type LKRPBlockStream } from "../../internal/utils/LKRPBlockStream";
|
|
7
|
-
import { type AddToTrustchainDAError } from "./AddToTrustchainDeviceActionTypes";
|
|
3
|
+
import { type AddToTrustchainDAError, type AddToTrustchainDAIntermediateValue } from "./AddToTrustchainDeviceActionTypes";
|
|
8
4
|
import { type LKRPDataSourceError, type LKRPMissingDataError, type LKRPParsingError, type LKRPTrustchainNotReady, type LKRPUnauthorizedError, type LKRPUnknownError } from "./Errors";
|
|
9
|
-
import { type JWT
|
|
5
|
+
import { type JWT } from "./LKRPTypes";
|
|
10
6
|
export type AuthenticateDAReturnType = ExecuteDeviceActionReturnType<AuthenticateDAOutput, AuthenticateDAError, AuthenticateDAIntermediateValue>;
|
|
11
|
-
export type AuthenticateDAInput = {
|
|
12
|
-
readonly lkrpDataSource: LKRPDataSource;
|
|
13
|
-
readonly applicationId: number;
|
|
14
|
-
readonly keypair: Keypair;
|
|
15
|
-
readonly clientName: string;
|
|
16
|
-
readonly permissions: Permissions;
|
|
17
|
-
readonly trustchainId: string | null;
|
|
18
|
-
};
|
|
19
7
|
export type AuthenticateDAOutput = {
|
|
20
|
-
readonly jwt: JWT
|
|
21
|
-
readonly trustchainId: string
|
|
22
|
-
readonly applicationPath: string
|
|
23
|
-
readonly encryptionKey: Uint8Array
|
|
8
|
+
readonly jwt: JWT;
|
|
9
|
+
readonly trustchainId: string;
|
|
10
|
+
readonly applicationPath: string;
|
|
11
|
+
readonly encryptionKey: Uint8Array;
|
|
24
12
|
};
|
|
25
13
|
export type AuthenticateDAError = LKRPUnauthorizedError | AddToTrustchainDAError | LKRPDeviceCommandError | LKRPDataSourceError | LKRPParsingError | LKRPMissingDataError | LKRPTrustchainNotReady | OpenAppDAError | LKRPUnknownError;
|
|
26
14
|
export type AuthenticateDAIntermediateValue = {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
15
|
+
requiredUserInteraction: OpenAppDARequiredInteraction;
|
|
16
|
+
step: AuthenticateDAStep.OpenApp;
|
|
17
|
+
} | {
|
|
18
|
+
requiredUserInteraction: AuthenticateDAState.Authenticate;
|
|
19
|
+
step: AuthenticateDAStep.Authenticate;
|
|
20
|
+
} | {
|
|
21
|
+
requiredUserInteraction: UserInteractionRequired.None;
|
|
22
|
+
step?: AuthenticateDAStep.Authenticate | AuthenticateDAStep.GetTrustchain | AuthenticateDAStep.ExtractEncryptionKey;
|
|
23
|
+
} | AddToTrustchainDAIntermediateValue;
|
|
24
|
+
export declare enum AuthenticateDAState {
|
|
25
|
+
Authenticate = "lkrp-authenticate"
|
|
26
|
+
}
|
|
27
|
+
export declare enum AuthenticateDAStep {
|
|
28
|
+
OpenApp = "lkrp.steps.openApp",
|
|
29
|
+
Authenticate = "lkrp.steps.authenticate",
|
|
30
|
+
GetTrustchain = "lkrp.steps.getTrustchain",
|
|
31
|
+
ExtractEncryptionKey = "lkrp.steps.extractEncryptionKey"
|
|
32
|
+
}
|
|
37
33
|
//# sourceMappingURL=AuthenticateDeviceActionTypes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthenticateDeviceActionTypes.d.ts","sourceRoot":"","sources":["../../../../src/api/app-binder/AuthenticateDeviceActionTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"AuthenticateDeviceActionTypes.d.ts","sourceRoot":"","sources":["../../../../src/api/app-binder/AuthenticateDeviceActionTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,cAAc,EACnB,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC7B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,gEAAgE,CAAC;AAE7G,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,kCAAkC,EACxC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,MAAM,wBAAwB,GAAG,6BAA6B,CAClE,oBAAoB,EACpB,mBAAmB,EACnB,+BAA+B,CAChC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAC3B,qBAAqB,GACrB,sBAAsB,GACtB,sBAAsB,GACtB,mBAAmB,GACnB,gBAAgB,GAChB,oBAAoB,GACpB,sBAAsB,GACtB,cAAc,GACd,gBAAgB,CAAC;AAErB,MAAM,MAAM,+BAA+B,GACvC;IACE,uBAAuB,EAAE,4BAA4B,CAAC;IACtD,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC;CAClC,GACD;IACE,uBAAuB,EAAE,mBAAmB,CAAC,YAAY,CAAC;IAC1D,IAAI,EAAE,kBAAkB,CAAC,YAAY,CAAC;CACvC,GACD;IACE,uBAAuB,EAAE,uBAAuB,CAAC,IAAI,CAAC;IACtD,IAAI,CAAC,EACD,kBAAkB,CAAC,YAAY,GAC/B,kBAAkB,CAAC,aAAa,GAChC,kBAAkB,CAAC,oBAAoB,CAAC;CAC7C,GACD,kCAAkC,CAAC;AAEvC,oBAAY,mBAAmB;IAC7B,YAAY,sBAAsB;CACnC;AACD,oBAAY,kBAAkB;IAC5B,OAAO,uBAAuB;IAC9B,YAAY,4BAA4B;IACxC,aAAa,6BAA6B;IAC1C,oBAAoB,oCAAoC;CACzD"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { type DeviceManagementKit
|
|
1
|
+
import { type DeviceManagementKit } from "@ledgerhq/device-management-kit";
|
|
2
2
|
import { type AuthenticateDAReturnType } from "../api/app-binder/AuthenticateDeviceActionTypes";
|
|
3
|
-
import { type
|
|
3
|
+
import { type LKRPEnv } from "../api/app-binder/LKRPTypes";
|
|
4
4
|
import { type LedgerKeyringProtocol } from "../api/LedgerKeyringProtocol";
|
|
5
|
+
import { type AuthenticateUsecaseInput } from "./use-cases/authentication/AuthenticateUseCase";
|
|
5
6
|
type DefaultLedgerKeyringProtocolConstructorArgs = {
|
|
6
7
|
dmk: DeviceManagementKit;
|
|
7
|
-
sessionId: DeviceSessionId;
|
|
8
8
|
applicationId: number;
|
|
9
9
|
env?: LKRPEnv;
|
|
10
10
|
baseUrl?: string;
|
|
@@ -12,8 +12,8 @@ type DefaultLedgerKeyringProtocolConstructorArgs = {
|
|
|
12
12
|
export declare class DefaultLedgerKeyringProtocol implements LedgerKeyringProtocol {
|
|
13
13
|
name: string;
|
|
14
14
|
private _container;
|
|
15
|
-
constructor({ dmk,
|
|
16
|
-
authenticate(
|
|
15
|
+
constructor({ dmk, applicationId, env, baseUrl, }: DefaultLedgerKeyringProtocolConstructorArgs);
|
|
16
|
+
authenticate(input: AuthenticateUsecaseInput): AuthenticateDAReturnType;
|
|
17
17
|
encryptData(encryptionKey: Uint8Array, data: Uint8Array): Uint8Array;
|
|
18
18
|
decryptData(encryptionKey: Uint8Array, data: Uint8Array): Uint8Array;
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultLedgerKeyringProtocol.d.ts","sourceRoot":"","sources":["../../../src/internal/DefaultLedgerKeyringProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"DefaultLedgerKeyringProtocol.d.ts","sourceRoot":"","sources":["../../../src/internal/DefaultLedgerKeyringProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAC9F,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGxE,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,gDAAgD,CAAC;AAKxD,KAAK,2CAA2C,GAAG;IACjD,GAAG,EAAE,mBAAmB,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qBAAa,4BAA6B,YAAW,qBAAqB;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,UAAU,CAAY;gBAElB,EACV,GAAG,EACH,aAAa,EACb,GAAG,EACH,OAAO,GACR,EAAE,2CAA2C;IAU9C,YAAY,CAAC,KAAK,EAAE,wBAAwB,GAAG,wBAAwB;IAMvE,WAAW,CAAC,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU;IAMpE,WAAW,CAAC,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU;CAKrE"}
|
|
@@ -5,18 +5,22 @@ import { Keypair, Permissions } from "../../api/app-binder/LKRPTypes";
|
|
|
5
5
|
import { type LKRPDataSource } from "../lkrp-datasource/data/LKRPDataSource";
|
|
6
6
|
export declare class LedgerKeyringProtocolBinder {
|
|
7
7
|
private readonly dmk;
|
|
8
|
-
private readonly sessionId;
|
|
9
8
|
private readonly applicationId;
|
|
10
9
|
private readonly lkrpDataSource;
|
|
11
|
-
constructor(dmk: DeviceManagementKit,
|
|
12
|
-
|
|
10
|
+
constructor(dmk: DeviceManagementKit, applicationId: number, lkrpDataSource: LKRPDataSource);
|
|
11
|
+
authenticateWithKeypair(args: {
|
|
12
|
+
keypair: Keypair;
|
|
13
|
+
trustchainId: string;
|
|
14
|
+
}): AuthenticateDAReturnType;
|
|
15
|
+
authenticateWithDevice(args: {
|
|
13
16
|
keypair: Keypair;
|
|
14
17
|
clientName: string;
|
|
15
18
|
permissions: Permissions;
|
|
16
|
-
|
|
19
|
+
sessionId: DeviceSessionId;
|
|
17
20
|
}): AuthenticateDAReturnType;
|
|
18
21
|
getVersion(args: {
|
|
19
22
|
skipOpenApp: boolean;
|
|
23
|
+
sessionId: DeviceSessionId;
|
|
20
24
|
}): GetVersionDAReturnType;
|
|
21
25
|
getAppName(): unknown;
|
|
22
26
|
getSeedId(): unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LedgerKeyringProtocolBinder.d.ts","sourceRoot":"","sources":["../../../../src/internal/app-binder/LedgerKeyringProtocolBinder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,KAAK,eAAe,EAGrB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"LedgerKeyringProtocolBinder.d.ts","sourceRoot":"","sources":["../../../../src/internal/app-binder/LedgerKeyringProtocolBinder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,KAAK,eAAe,EAGrB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAOpF,qBACa,2BAA2B;IAET,OAAO,CAAC,QAAQ,CAAC,GAAG;IAG/C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAG9B,OAAO,CAAC,QAAQ,CAAC,cAAc;gBANa,GAAG,EAAE,mBAAmB,EAGnD,aAAa,EAAE,MAAM,EAGrB,cAAc,EAAE,cAAc;IAGjD,uBAAuB,CAAC,IAAI,EAAE;QAC5B,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;KACtB,GAAG,wBAAwB;IAW5B,sBAAsB,CAAC,IAAI,EAAE;QAC3B,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,WAAW,CAAC;QACzB,SAAS,EAAE,eAAe,CAAC;KAC5B,GAAG,wBAAwB;IAe5B,UAAU,CAAC,IAAI,EAAE;QACf,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,eAAe,CAAC;KAC5B,GAAG,sBAAsB;IAc1B,UAAU,IAAI,OAAO;IAIrB,SAAS,IAAI,OAAO;IAIpB,IAAI,IAAI,OAAO;IAIf,WAAW,IAAI,OAAO;IAItB,SAAS,IAAI,OAAO;IAIpB,gBAAgB,IAAI,OAAO;CAG5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddToTrustchainDeviceAction.d.ts","sourceRoot":"","sources":["../../../../../src/internal/app-binder/device-action/AddToTrustchainDeviceAction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,wBAAwB,EAE7B,KAAK,WAAW,EAGhB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"AddToTrustchainDeviceAction.d.ts","sourceRoot":"","sources":["../../../../../src/internal/app-binder/device-action/AddToTrustchainDeviceAction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,wBAAwB,EAE7B,KAAK,WAAW,EAGhB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,MAAM,EAA4B,MAAM,WAAW,CAAC;AAGlE,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,kCAAkC,EACvC,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,EAG7B,MAAM,kDAAkD,CAAC;AAK1D,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,gEAAgE,CAAC;AAE7G,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,yCAAyC,CAAC;AAMjD,qBAAa,2BAA4B,SAAQ,kBAAkB,CACjE,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,kCAAkC,EAClC,8BAA8B,CAC/B;IACC,gBAAgB,CACd,WAAW,EAAE,WAAW,GACvB,wBAAwB,CACzB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,kCAAkC,EAClC,8BAA8B,CAC/B;IAsPD,mBAAmB,CAAC,WAAW,EAAE,WAAW;2BAEvB,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;4BAGvC;YACxB,KAAK,EAAE,MAAM,CAAC,sBAAsB,EAAE,4BAA4B,CAAC,CAAC;SACrE;0BAOiB;YAChB,KAAK,EAAE,MAAM,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;SAC3D,KAAG,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;;CAMtD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type DeviceActionStateMachine, type InternalApi, XStateDeviceAction } from "@ledgerhq/device-management-kit";
|
|
2
|
+
import { type Either } from "purify-ts";
|
|
3
|
+
import { type AuthenticateDAError, type AuthenticateDAIntermediateValue, type AuthenticateDAOutput } from "../../../api/app-binder/AuthenticateDeviceActionTypes";
|
|
4
|
+
import { type JWT, type Keypair } from "../../../api/index";
|
|
5
|
+
import { type LKRPDataSource } from "../../lkrp-datasource/data/LKRPDataSource";
|
|
6
|
+
import { type LKRPBlockStream } from "../../utils/LKRPBlockStream";
|
|
7
|
+
import { type AuthenticateWithDeviceDAInput, type AuthenticateWithDeviceDAInternalState } from "./models/AuthenticateWithDeviceDeviceActionTypes";
|
|
8
|
+
export declare class AuthenticateWithDeviceDeviceAction extends XStateDeviceAction<AuthenticateDAOutput, AuthenticateWithDeviceDAInput, AuthenticateDAError, AuthenticateDAIntermediateValue, AuthenticateWithDeviceDAInternalState> {
|
|
9
|
+
makeStateMachine(internalApi: InternalApi): DeviceActionStateMachine<AuthenticateDAOutput, AuthenticateWithDeviceDAInput, AuthenticateDAError, AuthenticateDAIntermediateValue, AuthenticateWithDeviceDAInternalState>;
|
|
10
|
+
extractDependencies(internalApi: InternalApi): {
|
|
11
|
+
deviceAuth: ({ input }: {
|
|
12
|
+
input: AuthenticateWithDeviceDAInput;
|
|
13
|
+
}) => Promise<Either<AuthenticateDAError, import("../../lkrp-datasource/data/LKRPDataSource").AuthenticationResponse>>;
|
|
14
|
+
getTrustchain: (args: {
|
|
15
|
+
input: Either<AuthenticateDAError, {
|
|
16
|
+
lkrpDataSource: LKRPDataSource;
|
|
17
|
+
trustchainId: string;
|
|
18
|
+
jwt: JWT;
|
|
19
|
+
}>;
|
|
20
|
+
}) => Promise<Either<AuthenticateDAError, import("../../utils/Trustchain").Trustchain>>;
|
|
21
|
+
extractEncryptionKey: ({ input, }: {
|
|
22
|
+
input: {
|
|
23
|
+
keypair: Keypair;
|
|
24
|
+
stream: Either<AuthenticateDAError, LKRPBlockStream>;
|
|
25
|
+
};
|
|
26
|
+
}) => Promise<Either<AuthenticateDAError, Uint8Array<ArrayBufferLike>>>;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=AuthenticateWithDeviceDeviceAction.d.ts.map
|
package/lib/types/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthenticateWithDeviceDeviceAction.d.ts","sourceRoot":"","sources":["../../../../../src/internal/app-binder/device-action/AuthenticateWithDeviceDeviceAction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAIhB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,MAAM,EAA4B,MAAM,WAAW,CAAC;AAGlE,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,EACpC,KAAK,oBAAoB,EAG1B,MAAM,+CAA+C,CAAC;AAMvD,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAIpD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGvE,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,qCAAqC,EAC3C,MAAM,kDAAkD,CAAC;AAM1D,qBAAa,kCAAmC,SAAQ,kBAAkB,CACxE,oBAAoB,EACpB,6BAA6B,EAC7B,mBAAmB,EACnB,+BAA+B,EAC/B,qCAAqC,CACtC;IACC,gBAAgB,CACd,WAAW,EAAE,WAAW,GACvB,wBAAwB,CACzB,oBAAoB,EACpB,6BAA6B,EAC7B,mBAAmB,EACnB,+BAA+B,EAC/B,qCAAqC,CACtC;IAuSD,mBAAmB,CAAC,WAAW,EAAE,WAAW;gCAKhB;YAAE,KAAK,EAAE,6BAA6B,CAAA;SAAE;8BAM1C;YACpB,KAAK,EAAE,MAAM,CACX,mBAAmB,EACnB;gBACE,cAAc,EAAE,cAAc,CAAC;gBAC/B,YAAY,EAAE,MAAM,CAAC;gBACrB,GAAG,EAAE,GAAG,CAAC;aACV,CACF,CAAC;SACH;2CASE;YACD,KAAK,EAAE;gBACL,OAAO,EAAE,OAAO,CAAC;gBACjB,MAAM,EAAE,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;aACtD,CAAC;SACH;;CAMN"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type DeviceActionStateMachine, type ExecuteDeviceActionReturnType, XStateDeviceAction } from "@ledgerhq/device-management-kit";
|
|
2
|
+
import { type Either } from "purify-ts";
|
|
3
|
+
import { type AuthenticateDAError, type AuthenticateDAIntermediateValue, type AuthenticateDAOutput } from "../../../api/app-binder/AuthenticateDeviceActionTypes";
|
|
4
|
+
import { type JWT, type Keypair } from "../../../api/index";
|
|
5
|
+
import { type LKRPDataSource } from "../../lkrp-datasource/data/LKRPDataSource";
|
|
6
|
+
import { type LKRPBlockStream } from "../../utils/LKRPBlockStream";
|
|
7
|
+
import { type AuthenticateWithKeypairDAInput, type AuthenticateWithKeypairDAInternalState } from "./models/AuthenticateWithKeypairDeviceActionTypes";
|
|
8
|
+
export declare class AuthenticateWithKeypairDeviceAction extends XStateDeviceAction<AuthenticateDAOutput, AuthenticateWithKeypairDAInput, AuthenticateDAError, AuthenticateDAIntermediateValue, AuthenticateWithKeypairDAInternalState> {
|
|
9
|
+
execute(): ExecuteDeviceActionReturnType<AuthenticateDAOutput, AuthenticateDAError, AuthenticateDAIntermediateValue>;
|
|
10
|
+
makeStateMachine(): DeviceActionStateMachine<AuthenticateDAOutput, AuthenticateWithKeypairDAInput, AuthenticateDAError, AuthenticateDAIntermediateValue, AuthenticateWithKeypairDAInternalState>;
|
|
11
|
+
extractDependencies(): {
|
|
12
|
+
keypairAuth: ({ input }: {
|
|
13
|
+
input: AuthenticateWithKeypairDAInput;
|
|
14
|
+
}) => Promise<Either<AuthenticateDAError, import("../../lkrp-datasource/data/LKRPDataSource").AuthenticationResponse>>;
|
|
15
|
+
getTrustchain: ({ input, }: {
|
|
16
|
+
input: {
|
|
17
|
+
lkrpDataSource: LKRPDataSource;
|
|
18
|
+
trustchainId: string;
|
|
19
|
+
jwt: Either<AuthenticateDAError, JWT>;
|
|
20
|
+
};
|
|
21
|
+
}) => Promise<Either<AuthenticateDAError, import("../../utils/Trustchain").Trustchain>>;
|
|
22
|
+
extractEncryptionKey: ({ input, }: {
|
|
23
|
+
input: {
|
|
24
|
+
keypair: Keypair;
|
|
25
|
+
stream: Either<AuthenticateDAError, LKRPBlockStream>;
|
|
26
|
+
};
|
|
27
|
+
}) => Promise<Either<AuthenticateDAError, Uint8Array<ArrayBufferLike>>>;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=AuthenticateWithKeypairDeviceAction.d.ts.map
|
package/lib/types/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthenticateWithKeypairDeviceAction.d.ts","sourceRoot":"","sources":["../../../../../src/internal/app-binder/device-action/AuthenticateWithKeypairDeviceAction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,6BAA6B,EAGlC,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,MAAM,EAA4B,MAAM,WAAW,CAAC;AAGlE,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,EACpC,KAAK,oBAAoB,EAE1B,MAAM,+CAA+C,CAAC;AAMvD,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAIpD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGvE,OAAO,EACL,KAAK,8BAA8B,EACnC,KAAK,sCAAsC,EAC5C,MAAM,mDAAmD,CAAC;AAG3D,qBAAa,mCAAoC,SAAQ,kBAAkB,CACzE,oBAAoB,EACpB,8BAA8B,EAC9B,mBAAmB,EACnB,+BAA+B,EAC/B,sCAAsC,CACvC;IACC,OAAO,IAAI,6BAA6B,CACtC,oBAAoB,EACpB,mBAAmB,EACnB,+BAA+B,CAChC;IAKD,gBAAgB,IAAI,wBAAwB,CAC1C,oBAAoB,EACpB,8BAA8B,EAC9B,mBAAmB,EACnB,+BAA+B,EAC/B,sCAAsC,CACvC;IA2KD,mBAAmB;iCAKU;YAAE,KAAK,EAAE,8BAA8B,CAAA;SAAE;oCAQ/D;YACD,KAAK,EAAE;gBACL,cAAc,EAAE,cAAc,CAAC;gBAC/B,YAAY,EAAE,MAAM,CAAC;gBACrB,GAAG,EAAE,MAAM,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;aACvC,CAAC;SACH;2CASE;YACD,KAAK,EAAE;gBACL,OAAO,EAAE,OAAO,CAAC;gBACjB,MAAM,EAAE,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;aACtD,CAAC;SACH;;CAMN"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type Either } from "purify-ts";
|
|
2
|
+
import { type AuthenticateDAError, type JWT, type Keypair, type Permissions } from "../../../../api/index";
|
|
3
|
+
import { type LKRPDataSource } from "../../../lkrp-datasource/data/LKRPDataSource";
|
|
4
|
+
import { type Trustchain } from "../../../utils/Trustchain";
|
|
5
|
+
export type AuthenticateWithDeviceDAInput = {
|
|
6
|
+
readonly lkrpDataSource: LKRPDataSource;
|
|
7
|
+
readonly appId: number;
|
|
8
|
+
readonly keypair: Keypair;
|
|
9
|
+
readonly clientName: string;
|
|
10
|
+
readonly permissions: Permissions;
|
|
11
|
+
};
|
|
12
|
+
export type AuthenticateWithDeviceDAInternalState = Either<AuthenticateDAError, {
|
|
13
|
+
readonly trustchainId: string | null;
|
|
14
|
+
readonly jwt: JWT | null;
|
|
15
|
+
readonly trustchain: Trustchain | null;
|
|
16
|
+
readonly encryptionKey: Uint8Array | null;
|
|
17
|
+
readonly wasAddedToTrustchain: boolean;
|
|
18
|
+
}>;
|
|
19
|
+
//# sourceMappingURL=AuthenticateWithDeviceDeviceActionTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthenticateWithDeviceDeviceActionTypes.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/app-binder/device-action/models/AuthenticateWithDeviceDeviceActionTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,GAAG,EACR,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,qCAAqC,GAAG,MAAM,CACxD,mBAAmB,EACnB;IACE,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;CACxC,CACF,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Either } from "purify-ts";
|
|
2
|
+
import { type AuthenticateDAError, type JWT, type Keypair } from "../../../../api/index";
|
|
3
|
+
import { type LKRPDataSource } from "../../../lkrp-datasource/data/LKRPDataSource";
|
|
4
|
+
import { type Trustchain } from "../../../utils/Trustchain";
|
|
5
|
+
export type AuthenticateWithKeypairDAInput = {
|
|
6
|
+
readonly lkrpDataSource: LKRPDataSource;
|
|
7
|
+
readonly appId: number;
|
|
8
|
+
readonly keypair: Keypair;
|
|
9
|
+
readonly trustchainId: string;
|
|
10
|
+
};
|
|
11
|
+
export type AuthenticateWithKeypairDAInternalState = Either<AuthenticateDAError, {
|
|
12
|
+
readonly jwt: JWT | null;
|
|
13
|
+
readonly trustchain: Trustchain | null;
|
|
14
|
+
readonly encryptionKey: Uint8Array | null;
|
|
15
|
+
}>;
|
|
16
|
+
//# sourceMappingURL=AuthenticateWithKeypairDeviceActionTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthenticateWithKeypairDeviceActionTypes.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/app-binder/device-action/models/AuthenticateWithKeypairDeviceActionTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,GAAG,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,sCAAsC,GAAG,MAAM,CACzD,mBAAmB,EACnB;IACE,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,UAAU,GAAG,IAAI,CAAC;CAC3C,CACF,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Either } from "purify-ts";
|
|
2
|
+
import { type AuthenticateDAError } from "../../../api/index";
|
|
3
|
+
import { type AuthenticationPayload, type AuthenticationResponse, type Challenge, type LKRPDataSource } from "../../lkrp-datasource/data/LKRPDataSource";
|
|
4
|
+
export declare class AuthenticateTask {
|
|
5
|
+
run(lkrpDataSource: LKRPDataSource, signerTask: {
|
|
6
|
+
run: (challenge: Challenge) => PromiseLike<Either<AuthenticateDAError, AuthenticationPayload>>;
|
|
7
|
+
}): Promise<Either<AuthenticateDAError, AuthenticationResponse>>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=AuthenticateTask.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthenticateTask.d.ts","sourceRoot":"","sources":["../../../../../src/internal/app-binder/task/AuthenticateTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,SAAS,EACd,KAAK,cAAc,EACpB,MAAM,+CAA+C,CAAC;AAEvD,qBAAa,gBAAgB;IAC3B,GAAG,CACD,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE;QACV,GAAG,EAAE,CACH,SAAS,EAAE,SAAS,KACjB,WAAW,CAAC,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC,CAAC;KACtE,GACA,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC;CAOhE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { LKRPUnknownError } from "../../../api/app-binder/Errors";
|
|
2
|
+
import { type Keypair } from "../../../api/index";
|
|
3
|
+
import { type LKRPBlockStream } from "../../utils/LKRPBlockStream";
|
|
4
|
+
export type ExtractEncryptionKeyTaskInput = {
|
|
5
|
+
applicationStream: LKRPBlockStream;
|
|
6
|
+
keypair: Keypair;
|
|
7
|
+
};
|
|
8
|
+
export declare class ExtractEncryptionKeyTask {
|
|
9
|
+
run(keypair: Keypair, stream: LKRPBlockStream): Promise<import("purify-ts").Either<LKRPUnknownError, Uint8Array<ArrayBufferLike>>>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=ExtractEncryptionKeyTask.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtractEncryptionKeyTask.d.ts","sourceRoot":"","sources":["../../../../../src/internal/app-binder/task/ExtractEncryptionKeyTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,MAAM,MAAM,6BAA6B,GAAG;IAC1C,iBAAiB,EAAE,eAAe,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,qBAAa,wBAAwB;IAC7B,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe;CAepD"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { type DeviceManagementKit
|
|
1
|
+
import { type DeviceManagementKit } from "@ledgerhq/device-management-kit";
|
|
2
2
|
import { Container } from "inversify";
|
|
3
3
|
import { LKRPEnv } from "../api/index";
|
|
4
4
|
export type MakeContainerProps = {
|
|
5
5
|
dmk: DeviceManagementKit;
|
|
6
|
-
sessionId: DeviceSessionId;
|
|
7
6
|
applicationId: number;
|
|
8
7
|
env?: LKRPEnv;
|
|
9
8
|
baseUrl?: string;
|
|
10
9
|
stub?: boolean;
|
|
11
10
|
};
|
|
12
|
-
export declare const makeContainer: ({ dmk,
|
|
11
|
+
export declare const makeContainer: ({ dmk, applicationId, env, baseUrl, stub, }: MakeContainerProps) => Container;
|
|
13
12
|
//# sourceMappingURL=di.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"di.d.ts","sourceRoot":"","sources":["../../../src/internal/di.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"di.d.ts","sourceRoot":"","sources":["../../../src/internal/di.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAOrC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,mBAAmB,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,6CAM3B,kBAAkB,cAgBpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"externalTypes.d.ts","sourceRoot":"","sources":["../../../src/internal/externalTypes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"externalTypes.d.ts","sourceRoot":"","sources":["../../../src/internal/externalTypes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;CAGzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,UAAU,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;IAClB,eAAe,EAAE,UAAU,CAAC;IAC5B,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC"}
|