quantum-resistant-rustykey 0.12.9 → 0.12.12

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/README.md CHANGED
@@ -77,7 +77,7 @@ The three parameter sets (512/768/1024) use the same implementation family and d
77
77
 
78
78
  ### We predominantly use C, not Rust for our web-assembly (WASM) modules: Why?
79
79
 
80
- - ***we're not cryptanalysts, not the smartypants type. We choose not to 'roll our own' cryptography as it's worrying enough we compile the C into web-assembly...what if our work strips out constant-time protections? Think of us as enthusiastic interweb equivalents of stonemasons, ironworkers, mechanics and logistics crew. Our caps might still have the price tag on, but you'll find us exactly when you need us: well below decks in grubby overalls, keeping the engines humming. Far above us lounge the sharply-dressed engineers who long ago earned their Hugo spritzes. We publish frequently 'into the wild' to guarantee our code is battle-tested, bugs found quickly. It only works because we rely absolutely on vetted, peer-reviewed designs from you and the rest of the research community.***
80
+ - ***we're not cryptanalysts, not the smartypants type. We choose not to 'roll our own' cryptography as it's worrying enough we compile the C into web-assembly...what if our work strips out constant-time protections? Think of us as enthusiastic interweb equivalents of stonemasons, ironworkers, mechanics and logistics crew. If you're OK that we'll definitely break a few things along the way, you know where to find us: well below decks in grubby overalls, keeping the engines humming. Far above us, topside, lounge the elegantly-dressed OG engineers who long ago earned their Hugo spritzes. We publish frequently 'into the wild' to guarantee our code is battle-tested, bugs found quickly. It only works because we rely absolutely on vetted, peer-reviewed designs from you and the rest of the research community.***
81
81
 
82
82
  It seems all the cool cryptanalyst kids nowadays rely on Rust's proven memory and concurrency safety and high performance without a Garbage Collector. Hre it's old-school for the time being: shipped cryptographic WASM modules will continue to be built via Emscripten from vetted C/C++ upstream code. We do love Rust when used at the right time: Rust/TypeScript will be primarily used for package-level ergonomics and integration layers.
83
83
 
package/dist/index.d.ts CHANGED
@@ -15,6 +15,7 @@ interface IMlKem {
15
15
  decryptMessage(encryptedMessage: Uint8Array, secret: any): Promise<string>;
16
16
  delete(): void;
17
17
  }
18
+ type SqisignVariant = "lvl1" | "lvl3" | "lvl5";
18
19
  interface IFnDsa {
19
20
  keypair(): KeyPair;
20
21
  sign(message: Uint8Array | ArrayBuffer | string, private_key: unknown): Promise<Uint8Array>;
@@ -59,10 +60,45 @@ declare const SQISIGN_LVL5_KAT0_SM_HEX = "6B8EF5D7689A1EA1CFCE9C6F7495E309E9D1D1
59
60
  declare const SQISIGN_LVL5_KAT0_SIG_HEX: string;
60
61
  declare const SQISIGN_LVL5_KAT0_MSG_HEX: string;
61
62
  //#endregion
63
+ //#region src/sqisign-accel-env.d.ts
64
+ type SqisignWebGpuSupport = {
65
+ available: boolean;
66
+ crossOriginIsolated: boolean;
67
+ sharedArrayBuffer: boolean;
68
+ webGpu: boolean;
69
+ reason?: string;
70
+ };
71
+ declare const SQISIGN_WEBGPU_VARIANT_LABELS: {
72
+ readonly lvl1: "SQISign-L1-webGPU";
73
+ readonly lvl3: "SQISign-L3-webGPU";
74
+ readonly lvl5: "SQISign-L5-webGPU";
75
+ };
76
+ type SqisignWebGpuVariant = keyof typeof SQISIGN_WEBGPU_VARIANT_LABELS;
77
+ declare function getSqisignWebGpuSupport(): SqisignWebGpuSupport;
78
+ declare function isSqisignWebGpuAvailable(): boolean;
79
+ //#endregion
80
+ //#region src/sqisign-webgpu.d.ts
81
+ /** Host apps (e.g. Next.js) must serve dist/sqisign-accel-worker.js — see docs/SQISIGN-WEBGPU.md */
82
+ declare function setSqisignAccelWorkerUrl(url: string): void;
83
+ type SqisignBenchSteps = {
84
+ keygenMs: number;
85
+ signMs: number;
86
+ verifyMs: number;
87
+ };
88
+ declare function benchSqisignWebGpu(variant: SqisignVariant, message?: string): Promise<{
89
+ algorithm: string;
90
+ ok: boolean;
91
+ signatureBytes: number;
92
+ steps: SqisignBenchSteps;
93
+ }>;
94
+ declare function loadSqisignLvl1WebGpu(): Promise<IFnDsa>;
95
+ declare function loadSqisignLvl3WebGpu(): Promise<IFnDsa>;
96
+ declare function loadSqisignLvl5WebGpu(): Promise<IFnDsa>;
97
+ //#endregion
62
98
  //#region src/index.d.ts
63
99
  declare function loadMlKem768(): Promise<IMlKem>;
64
100
  declare function loadMlKem512(): Promise<IMlKem>;
65
101
  declare function loadMlKem1024(): Promise<IMlKem>;
66
102
  //#endregion
67
- export { SQISIGN_LVL1_KAT0_MSG_HEX, SQISIGN_LVL1_KAT0_PK_HEX, SQISIGN_LVL1_KAT0_SIG_HEX, SQISIGN_LVL1_KAT0_SM_HEX, SQISIGN_LVL3_KAT0_MSG_HEX, SQISIGN_LVL3_KAT0_PK_HEX, SQISIGN_LVL3_KAT0_SIG_HEX, SQISIGN_LVL3_KAT0_SM_HEX, SQISIGN_LVL5_KAT0_MSG_HEX, SQISIGN_LVL5_KAT0_PK_HEX, SQISIGN_LVL5_KAT0_SIG_HEX, SQISIGN_LVL5_KAT0_SM_HEX, loadFnDsa1024, loadFnDsa512, loadMlDsa3, loadMlDsa5, loadMlKem1024, loadMlKem512, loadMlKem768, loadSqisignLvl1, loadSqisignLvl3, loadSqisignLvl5 };
103
+ export { SQISIGN_LVL1_KAT0_MSG_HEX, SQISIGN_LVL1_KAT0_PK_HEX, SQISIGN_LVL1_KAT0_SIG_HEX, SQISIGN_LVL1_KAT0_SM_HEX, SQISIGN_LVL3_KAT0_MSG_HEX, SQISIGN_LVL3_KAT0_PK_HEX, SQISIGN_LVL3_KAT0_SIG_HEX, SQISIGN_LVL3_KAT0_SM_HEX, SQISIGN_LVL5_KAT0_MSG_HEX, SQISIGN_LVL5_KAT0_PK_HEX, SQISIGN_LVL5_KAT0_SIG_HEX, SQISIGN_LVL5_KAT0_SM_HEX, SQISIGN_WEBGPU_VARIANT_LABELS, type SqisignBenchSteps, type SqisignWebGpuSupport, type SqisignWebGpuVariant, benchSqisignWebGpu, getSqisignWebGpuSupport, isSqisignWebGpuAvailable, loadFnDsa1024, loadFnDsa512, loadMlDsa3, loadMlDsa5, loadMlKem1024, loadMlKem512, loadMlKem768, loadSqisignLvl1, loadSqisignLvl1WebGpu, loadSqisignLvl3, loadSqisignLvl3WebGpu, loadSqisignLvl5, loadSqisignLvl5WebGpu, setSqisignAccelWorkerUrl };
68
104
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/fndsa.ts","../src/mldsa.ts","../src/sqisign.ts","../src/sqisign-kat-lvl1.ts","../src/index.ts"],"mappings":";KAAY,YAAA,MAAkB,CAAA,GAAI,OAAA,CAAQ,CAAA;AAAA,UAEzB,OAAA;EAEhB,GAAA,CAAI,GAAA,iCAAoC,YAAA;AAAA;AAAA,UAGxB,aAAA;EAEhB,GAAA,CAAI,GAAA,4BAA+B,YAAA;AAAA;AAAA,UAGnB,MAAA;EAChB,OAAA,IAAW,OAAA;EACX,OAAA,CAAQ,UAAA,QAAkB,aAAA;EAC1B,OAAA,CAAQ,UAAA,OAAiB,WAAA,QAAmB,OAAA;EAC5C,gBAAA,CAAiB,MAAA,QAAc,YAAA;EAC/B,cAAA,CAAe,OAAA,UAAiB,MAAA,QAAc,OAAA,CAAQ,UAAA;EACtD,cAAA,CAAe,gBAAA,EAAkB,UAAA,EAAY,MAAA,QAAc,OAAA;EAC3D,MAAA;AAAA;AAAA,UASgB,MAAA;EAChB,OAAA,IAAW,OAAA;EACX,IAAA,CACC,OAAA,EAAS,UAAA,GAAa,WAAA,WACtB,WAAA,YACE,OAAA,CAAQ,UAAA;EACX,MAAA,CACC,SAAA,EAAW,UAAA,GAAa,WAAA,WACxB,OAAA,EAAS,UAAA,GAAa,WAAA,WACtB,UAAA,YACE,OAAA;EACH,gBAAA,CAAiB,KAAA,EAAO,UAAA,GAAa,WAAA;AAAA;;;iBCgLhB,YAAA,CAAA,GAAgB,OAAA,CAAQ,MAAA;AAAA,iBAKxB,aAAA,CAAA,GAAiB,OAAA,CAAQ,MAAA;;;iBCDzB,UAAA,CAAA,GAAc,OAAA,CAAQ,MAAA;AAAA,iBAKtB,UAAA,CAAA,GAAc,OAAA,CAAQ,MAAA;;;iBC0BtB,eAAA,CAAA,GAAmB,OAAA,CAAQ,MAAA;AAAA,iBAK3B,eAAA,CAAA,GAAmB,OAAA,CAAQ,MAAA;AAAA,iBAK3B,eAAA,CAAA,GAAmB,OAAA,CAAQ,MAAA;;;;AHpQjD;;;;cIKa,wBAAA;;cAIA,wBAAA;;cAIA,yBAAA;;cAGA,yBAAA;;cAGA,wBAAA;AAAA,cAEA,wBAAA;AAAA,cAEA,yBAAA;AAAA,cACA,yBAAA;;cAGA,wBAAA;AAAA,cAEA,wBAAA;AAAA,cAEA,yBAAA;AAAA,cACA,yBAAA;;;iBCgNS,YAAA,CAAA,GAAgB,OAAA,CAAQ,MAAA;AAAA,iBAIxB,YAAA,CAAA,GAAgB,OAAA,CAAQ,MAAA;AAAA,iBAIxB,aAAA,CAAA,GAAiB,OAAA,CAAQ,MAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/fndsa.ts","../src/mldsa.ts","../src/sqisign.ts","../src/sqisign-kat-lvl1.ts","../src/sqisign-accel-env.ts","../src/sqisign-webgpu.ts","../src/index.ts"],"mappings":";KAAY,YAAA,MAAkB,CAAA,GAAI,OAAA,CAAQ,CAAA;AAAA,UAEzB,OAAA;EAEhB,GAAA,CAAI,GAAA,iCAAoC,YAAY;AAAA;AAAA,UAGpC,aAAA;EAEhB,GAAA,CAAI,GAAA,4BAA+B,YAAY;AAAA;AAAA,UAG/B,MAAA;EAChB,OAAA,IAAW,OAAA;EACX,OAAA,CAAQ,UAAA,QAAkB,aAAA;EAC1B,OAAA,CAAQ,UAAA,OAAiB,WAAA,QAAmB,OAAA;EAC5C,gBAAA,CAAiB,MAAA,QAAc,YAAA;EAC/B,cAAA,CAAe,OAAA,UAAiB,MAAA,QAAc,OAAA,CAAQ,UAAA;EACtD,cAAA,CAAe,gBAAA,EAAkB,UAAA,EAAY,MAAA,QAAc,OAAA;EAC3D,MAAA;AAAA;AAAA,KAOW,cAAA;AAAA,UAEK,MAAA;EAChB,OAAA,IAAW,OAAA;EACX,IAAA,CACC,OAAA,EAAS,UAAA,GAAa,WAAA,WACtB,WAAA,YACE,OAAA,CAAQ,UAAA;EACX,MAAA,CACC,SAAA,EAAW,UAAA,GAAa,WAAA,WACxB,OAAA,EAAS,UAAA,GAAa,WAAA,WACtB,UAAA,YACE,OAAA;EACH,gBAAA,CAAiB,KAAA,EAAO,UAAA,GAAa,WAAA;AAAA;;;iBC8NhB,YAAA,IAAgB,OAAO,CAAC,MAAA;AAAA,iBAKxB,aAAA,IAAiB,OAAO,CAAC,MAAA;;;iBCHzB,UAAA,IAAc,OAAO,CAAC,MAAA;AAAA,iBAKtB,UAAA,IAAc,OAAO,CAAC,MAAA;;;iBCsEtB,eAAA,IAAmB,OAAO,CAAC,MAAA;AAAA,iBAK3B,eAAA,IAAmB,OAAO,CAAC,MAAA;AAAA,iBAK3B,eAAA,IAAmB,OAAO,CAAC,MAAA;;;;AH5VjD;;;;cIKa,wBAAA;;cAIA,wBAAA;;cAIA,yBAAA;;cAGA,yBAAA;;cAGA,wBAAA;AAAA,cAEA,wBAAA;AAAA,cAEA,yBAAA;AAAA,cACA,yBAAA;;cAGA,wBAAA;AAAA,cAEA,wBAAA;AAAA,cAEA,yBAAA;AAAA,cACA,yBAAA;;;KChCD,oBAAA;EACX,SAAA;EACA,mBAAA;EACA,iBAAA;EACA,MAAA;EACA,MAAA;AAAA;AAAA,cAGY,6BAAA;EAAA;;;;KAMD,oBAAA,gBAAoC,6BAA6B;AAAA,iBAU7D,uBAAA,IAA2B,oBAAoB;AAAA,iBAyD/C,wBAAA;;;;iBCTA,wBAAA,CAAyB,GAAW;AAAA,KAiRxC,iBAAA;EACX,QAAA;EACA,MAAA;EACA,QAAA;AAAA;AAAA,iBAGqB,kBAAA,CACrB,OAAA,EAAS,cAAA,EACT,OAAA,YACE,OAAA;EACF,SAAA;EACA,EAAA;EACA,cAAA;EACA,KAAA,EAAO,iBAAA;AAAA;AAAA,iBAkCc,qBAAA,IAAyB,OAAO,CAAC,MAAA;AAAA,iBAIjC,qBAAA,IAAyB,OAAO,CAAC,MAAA;AAAA,iBAIjC,qBAAA,IAAyB,OAAO,CAAC,MAAA;;;iBC/IjC,YAAA,IAAgB,OAAO,CAAC,MAAA;AAAA,iBAIxB,YAAA,IAAgB,OAAO,CAAC,MAAA;AAAA,iBAIxB,aAAA,IAAiB,OAAO,CAAC,MAAA"}