react-native-quick-crypto 1.0.7 → 1.0.8

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.
Files changed (89) hide show
  1. package/QuickCrypto.podspec +3 -0
  2. package/android/CMakeLists.txt +4 -0
  3. package/cpp/dh/HybridDiffieHellman.cpp +438 -0
  4. package/cpp/dh/HybridDiffieHellman.hpp +41 -0
  5. package/cpp/ecdh/HybridECDH.cpp +306 -0
  6. package/cpp/ecdh/HybridECDH.hpp +42 -0
  7. package/cpp/utils/QuickCryptoUtils.hpp +14 -0
  8. package/lib/commonjs/dh-groups.js +29 -0
  9. package/lib/commonjs/dh-groups.js.map +1 -0
  10. package/lib/commonjs/diffie-hellman.js +147 -0
  11. package/lib/commonjs/diffie-hellman.js.map +1 -0
  12. package/lib/commonjs/ec.js +68 -180
  13. package/lib/commonjs/ec.js.map +1 -1
  14. package/lib/commonjs/ecdh.js +71 -0
  15. package/lib/commonjs/ecdh.js.map +1 -0
  16. package/lib/commonjs/index.js +26 -0
  17. package/lib/commonjs/index.js.map +1 -1
  18. package/lib/commonjs/keys/generateKeyPair.js.map +1 -1
  19. package/lib/commonjs/keys/index.js +12 -0
  20. package/lib/commonjs/keys/index.js.map +1 -1
  21. package/lib/commonjs/keys/signVerify.js +42 -0
  22. package/lib/commonjs/keys/signVerify.js.map +1 -1
  23. package/lib/commonjs/specs/diffie-hellman.nitro.js +6 -0
  24. package/lib/commonjs/specs/diffie-hellman.nitro.js.map +1 -0
  25. package/lib/commonjs/specs/ecdh.nitro.js +6 -0
  26. package/lib/commonjs/specs/ecdh.nitro.js.map +1 -0
  27. package/lib/commonjs/subtle.js +2 -0
  28. package/lib/commonjs/subtle.js.map +1 -1
  29. package/lib/module/dh-groups.js +25 -0
  30. package/lib/module/dh-groups.js.map +1 -0
  31. package/lib/module/diffie-hellman.js +140 -0
  32. package/lib/module/diffie-hellman.js.map +1 -0
  33. package/lib/module/ec.js +65 -178
  34. package/lib/module/ec.js.map +1 -1
  35. package/lib/module/ecdh.js +65 -0
  36. package/lib/module/ecdh.js.map +1 -0
  37. package/lib/module/index.js +6 -0
  38. package/lib/module/index.js.map +1 -1
  39. package/lib/module/keys/generateKeyPair.js.map +1 -1
  40. package/lib/module/keys/index.js +2 -2
  41. package/lib/module/keys/index.js.map +1 -1
  42. package/lib/module/keys/signVerify.js +40 -0
  43. package/lib/module/keys/signVerify.js.map +1 -1
  44. package/lib/module/specs/diffie-hellman.nitro.js +4 -0
  45. package/lib/module/specs/diffie-hellman.nitro.js.map +1 -0
  46. package/lib/module/specs/ecdh.nitro.js +4 -0
  47. package/lib/module/specs/ecdh.nitro.js.map +1 -0
  48. package/lib/module/subtle.js +3 -1
  49. package/lib/module/subtle.js.map +1 -1
  50. package/lib/tsconfig.tsbuildinfo +1 -1
  51. package/lib/typescript/dh-groups.d.ts +5 -0
  52. package/lib/typescript/dh-groups.d.ts.map +1 -0
  53. package/lib/typescript/diffie-hellman.d.ts +16 -0
  54. package/lib/typescript/diffie-hellman.d.ts.map +1 -0
  55. package/lib/typescript/ec.d.ts +2 -1
  56. package/lib/typescript/ec.d.ts.map +1 -1
  57. package/lib/typescript/ecdh.d.ts +16 -0
  58. package/lib/typescript/ecdh.d.ts.map +1 -0
  59. package/lib/typescript/index.d.ts +11 -0
  60. package/lib/typescript/index.d.ts.map +1 -1
  61. package/lib/typescript/keys/generateKeyPair.d.ts.map +1 -1
  62. package/lib/typescript/keys/index.d.ts +2 -2
  63. package/lib/typescript/keys/index.d.ts.map +1 -1
  64. package/lib/typescript/keys/signVerify.d.ts +6 -0
  65. package/lib/typescript/keys/signVerify.d.ts.map +1 -1
  66. package/lib/typescript/specs/diffie-hellman.nitro.d.ts +17 -0
  67. package/lib/typescript/specs/diffie-hellman.nitro.d.ts.map +1 -0
  68. package/lib/typescript/specs/ecdh.nitro.d.ts +14 -0
  69. package/lib/typescript/specs/ecdh.nitro.d.ts.map +1 -0
  70. package/lib/typescript/subtle.d.ts.map +1 -1
  71. package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +2 -0
  72. package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +20 -0
  73. package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +20 -0
  74. package/nitrogen/generated/shared/c++/HybridDiffieHellmanSpec.cpp +30 -0
  75. package/nitrogen/generated/shared/c++/HybridDiffieHellmanSpec.hpp +72 -0
  76. package/nitrogen/generated/shared/c++/HybridECDHSpec.cpp +27 -0
  77. package/nitrogen/generated/shared/c++/HybridECDHSpec.hpp +70 -0
  78. package/package.json +1 -1
  79. package/src/dh-groups.ts +27 -0
  80. package/src/diffie-hellman.ts +191 -0
  81. package/src/ec.ts +73 -177
  82. package/src/ecdh.ts +76 -0
  83. package/src/index.ts +6 -0
  84. package/src/keys/generateKeyPair.ts +11 -2
  85. package/src/keys/index.ts +10 -1
  86. package/src/keys/signVerify.ts +84 -0
  87. package/src/specs/diffie-hellman.nitro.ts +15 -0
  88. package/src/specs/ecdh.nitro.ts +11 -0
  89. package/src/subtle.ts +8 -1
@@ -0,0 +1,5 @@
1
+ export declare const DH_GROUPS: Record<string, {
2
+ prime: string;
3
+ generator: string;
4
+ }>;
5
+ //# sourceMappingURL=dh-groups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dh-groups.d.ts","sourceRoot":"","sources":["../../src/dh-groups.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CA0B1E,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { Buffer } from '@craftzdog/react-native-buffer';
2
+ export declare class DiffieHellman {
3
+ private _hybrid;
4
+ constructor(sizeOrPrime: number | Buffer | string, generator?: number | Buffer | string, encoding?: BufferEncoding);
5
+ generateKeys(encoding?: BufferEncoding): Buffer | string;
6
+ computeSecret(otherPublicKey: Buffer | string, inputEncoding?: BufferEncoding, outputEncoding?: BufferEncoding): Buffer | string;
7
+ getPrime(encoding?: BufferEncoding): Buffer | string;
8
+ getGenerator(encoding?: BufferEncoding): Buffer | string;
9
+ getPublicKey(encoding?: BufferEncoding): Buffer | string;
10
+ getPrivateKey(encoding?: BufferEncoding): Buffer | string;
11
+ setPublicKey(publicKey: Buffer | string, encoding?: BufferEncoding): void;
12
+ setPrivateKey(privateKey: Buffer | string, encoding?: BufferEncoding): void;
13
+ }
14
+ export declare function createDiffieHellman(primeOrSize: number | string | Buffer, primeEncodingOrGenerator?: string | number | Buffer, generator?: number | string | Buffer, _generatorEncoding?: string): DiffieHellman;
15
+ export declare function getDiffieHellman(groupName: string): DiffieHellman;
16
+ //# sourceMappingURL=diffie-hellman.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diffie-hellman.d.ts","sourceRoot":"","sources":["../../src/diffie-hellman.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAGxD,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAyB;gBAGtC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EACrC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EACpC,QAAQ,CAAC,EAAE,cAAc;IAkC3B,YAAY,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM;IAMxD,aAAa,CACX,cAAc,EAAE,MAAM,GAAG,MAAM,EAC/B,aAAa,CAAC,EAAE,cAAc,EAC9B,cAAc,CAAC,EAAE,cAAc,GAC9B,MAAM,GAAG,MAAM;IAelB,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM;IAMpD,YAAY,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM;IAMxD,YAAY,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM;IAMxD,aAAa,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM;IAMzD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI;IAUzE,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI;CAS5E;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EACrC,wBAAwB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EACnD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EACpC,kBAAkB,CAAC,EAAE,MAAM,GAC1B,aAAa,CA6Df;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAOjE"}
@@ -1,7 +1,7 @@
1
1
  import type { EcKeyPair } from './specs/ecKeyPair.nitro';
2
2
  import { CryptoKey, PublicKeyObject, PrivateKeyObject } from './keys';
3
3
  import type { CryptoKeyPair, KeyPairOptions, KeyUsage, SubtleAlgorithm, BufferLike, BinaryLike, JWK, ImportFormat, GenerateKeyPairOptions, KeyPairGenConfig } from './utils/types';
4
- import { Buffer } from 'buffer';
4
+ import { Buffer } from '@craftzdog/react-native-buffer';
5
5
  export declare class Ec {
6
6
  native: EcKeyPair;
7
7
  constructor(curve: string);
@@ -19,4 +19,5 @@ export declare function ec_generateKeyPairNodeSync(options: GenerateKeyPairOptio
19
19
  publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;
20
20
  privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;
21
21
  };
22
+ export declare function ecDeriveBits(algorithm: SubtleAlgorithm, baseKey: CryptoKey, length: number | null): ArrayBuffer;
22
23
  //# sourceMappingURL=ec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ec.d.ts","sourceRoot":"","sources":["../../src/ec.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EACL,SAAS,EAET,eAAe,EACf,gBAAgB,EACjB,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,QAAQ,EACR,eAAe,EACf,UAAU,EACV,UAAU,EACV,GAAG,EACH,YAAY,EAEZ,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAYvB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,qBAAa,EAAE;IACb,MAAM,EAAE,SAAS,CAAC;gBAEN,KAAK,EAAE,MAAM;IAKnB,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC;IAQ/C,mBAAmB,IAAI,aAAa;CAOrC;AAsDD,wBAAgB,WAAW,CACzB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,UAAU,GAAG,UAAU,GAAG,GAAG,EACtC,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,SAAS,CAyKX;AAqGD,eAAO,MAAM,eAAe,GAC1B,KAAK,SAAS,EACd,MAAM,UAAU,EAChB,UAAU,eAAe,EACzB,YAAY,UAAU,KACrB,WAAW,GAAG,OAmDhB,CAAC;AAIF,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,EAErB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,aAAa,CAAC,CAgFxB;AAmGD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,GAAG,SAAS,EAC3C,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC;IACT,SAAS,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;IAC3D,UAAU,EAAE,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;CAC9D,CAAC,CAID;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,sBAAsB,GAAG,SAAS,EAC3C,QAAQ,EAAE,gBAAgB,GACzB;IACD,SAAS,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;IAC3D,UAAU,EAAE,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;CAC9D,CAIA"}
1
+ {"version":3,"file":"ec.d.ts","sourceRoot":"","sources":["../../src/ec.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EACL,SAAS,EAET,eAAe,EACf,gBAAgB,EACjB,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,QAAQ,EACR,eAAe,EACf,UAAU,EACV,UAAU,EACV,GAAG,EACH,YAAY,EAEZ,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAYvB,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAGxD,qBAAa,EAAE;IACb,MAAM,EAAE,SAAS,CAAC;gBAEN,KAAK,EAAE,MAAM;IAKnB,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC;IAQ/C,mBAAmB,IAAI,aAAa;CAOrC;AAGD,wBAAgB,WAAW,CACzB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,UAAU,GAAG,UAAU,GAAG,GAAG,EACtC,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,SAAS,CAiJX;AAGD,eAAO,MAAM,eAAe,GAC1B,KAAK,SAAS,EACd,MAAM,UAAU,EAChB,UAAU,eAAe,EACzB,YAAY,UAAU,KACrB,WAAW,GAAG,OAmDhB,CAAC;AAIF,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,EAErB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,aAAa,CAAC,CA+ExB;AAmGD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,GAAG,SAAS,EAC3C,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC;IACT,SAAS,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;IAC3D,UAAU,EAAE,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;CAC9D,CAAC,CAID;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,sBAAsB,GAAG,SAAS,EAC3C,QAAQ,EAAE,gBAAgB,GACzB;IACD,SAAS,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;IAC3D,UAAU,EAAE,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;CAC9D,CAIA;AAED,wBAAgB,YAAY,CAC1B,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,WAAW,CA+Db"}
@@ -0,0 +1,16 @@
1
+ import { Buffer } from '@craftzdog/react-native-buffer';
2
+ export declare class ECDH {
3
+ private _hybrid;
4
+ constructor(curveName: string);
5
+ generateKeys(): Buffer;
6
+ computeSecret(otherPublicKey: Buffer | string | {
7
+ code: number;
8
+ byteLength: number;
9
+ }, inputEncoding?: BufferEncoding): Buffer;
10
+ getPrivateKey(): Buffer;
11
+ setPrivateKey(privateKey: Buffer | string, encoding?: BufferEncoding): void;
12
+ getPublicKey(encoding?: BufferEncoding): Buffer | string;
13
+ setPublicKey(publicKey: Buffer | string, encoding?: BufferEncoding): void;
14
+ }
15
+ export declare function createECDH(curveName: string): ECDH;
16
+ //# sourceMappingURL=ecdh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ecdh.d.ts","sourceRoot":"","sources":["../../src/ecdh.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,qBAAa,IAAI;IACf,OAAO,CAAC,OAAO,CAAgB;gBAEnB,SAAS,EAAE,MAAM;IAK7B,YAAY,IAAI,MAAM;IAKtB,aAAa,CACX,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EACtE,aAAa,CAAC,EAAE,cAAc,GAC7B,MAAM;IAgBT,aAAa,IAAI,MAAM;IAIvB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI;IAU3E,YAAY,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM;IAYxD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI;CAS1E;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAElD"}
@@ -6,6 +6,8 @@ import * as ed from './ed';
6
6
  import * as hkdf from './hkdf';
7
7
  import * as scrypt from './scrypt';
8
8
  import * as random from './random';
9
+ import * as ecdh from './ecdh';
10
+ import * as dh from './diffie-hellman';
9
11
  import * as utils from './utils';
10
12
  import * as subtle from './subtle';
11
13
  /**
@@ -78,6 +80,11 @@ declare const QuickCrypto: {
78
80
  normalizeEncoding(enc: string): "ascii" | "utf8" | "utf16le" | "base64" | "latin1" | "hex" | undefined;
79
81
  validateEncoding(data: string, encoding: string): void;
80
82
  getUIntOption(options: Record<string, any>, key: string): any;
83
+ createDiffieHellman(primeOrSize: number | string | Buffer, primeEncodingOrGenerator?: string | number | Buffer, generator?: number | string | Buffer, _generatorEncoding?: string): dh.DiffieHellman;
84
+ getDiffieHellman(groupName: string): dh.DiffieHellman;
85
+ DiffieHellman: typeof dh.DiffieHellman;
86
+ createECDH(curveName: string): ecdh.ECDH;
87
+ ECDH: typeof ecdh.ECDH;
81
88
  randomFill<T extends utils.ABV>(buffer: T, callback: utils.RandomCallback<T>): void;
82
89
  randomFill<T extends utils.ABV>(buffer: T, offset: number, callback: utils.RandomCallback<T>): void;
83
90
  randomFill<T extends utils.ABV>(buffer: T, offset: number, size: number, callback: utils.RandomCallback<T>): void;
@@ -141,6 +148,8 @@ declare const QuickCrypto: {
141
148
  KeyObject: typeof keys.KeyObject;
142
149
  createSign: typeof keys.createSign;
143
150
  createVerify: typeof keys.createVerify;
151
+ sign: typeof keys.sign;
152
+ verify: typeof keys.verify;
144
153
  Sign: typeof keys.Sign;
145
154
  Verify: typeof keys.Verify;
146
155
  publicEncrypt: typeof keys.publicEncrypt;
@@ -171,6 +180,8 @@ export * from './hkdf';
171
180
  export * from './pbkdf2';
172
181
  export * from './scrypt';
173
182
  export * from './random';
183
+ export * from './ecdh';
184
+ export * from './diffie-hellman';
174
185
  export * from './utils';
175
186
  export * from './subtle';
176
187
  export { subtle, isCryptoKeyPair } from './subtle';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAGxD,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,MAAM,CAAC;AAG3B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAInC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC;;;GAGG;AACH,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;uBANR,cAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAkCe,yCACL,EAAC,YACf;qBAeX,0BAAoB,EACtB,2BAAqB;qBAY+K,oCAAiC,EAAC,2BAAwB;;;;;;;;;;;+DAAtN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA5CxC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,YAMnB,CAAC;AAYF,eAAe,WAAW,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,MAAM,CAAC;AACrB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAGxD,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,MAAM,CAAC;AAG3B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAIvC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC;;;GAGG;AACH,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;uBAVY,cAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAoCgB,yCAC9C,EAAC,YAAe;qBAgBnB,0BACF,EAAC,2BACF;qBAiB6C,oCAAiC,EAAC,2BAAwB;;;;;;;;;;;;;;;;+DAJ/D,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA1CzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,YAMnB,CAAC;AAYF,eAAe,WAAW,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,MAAM,CAAC;AACrB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generateKeyPair.d.ts","sourceRoot":"","sources":["../../../src/keys/generateKeyPair.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EAGjC,KAAK,WAAW,EACjB,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,eAAe,GAC1B,MAAM,WAAW,EACjB,SAAS,sBAAsB,EAC/B,UAAU,uBAAuB,KAChC,IAGF,CAAC;AAIF,eAAO,MAAM,sBAAsB,GACjC,MAAM,WAAW,EACjB,SAAS,sBAAsB,KAC9B,OAAO,CAAC,4BAA4B,CAUtC,CAAC;AAGF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,aAAa,CAAC;AACtE,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,sBAAsB,GAC9B,aAAa,CAAC"}
1
+ {"version":3,"file":"generateKeyPair.d.ts","sourceRoot":"","sources":["../../../src/keys/generateKeyPair.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EAIjC,KAAK,WAAW,EACjB,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,eAAe,GAC1B,MAAM,WAAW,EACjB,SAAS,sBAAsB,EAC/B,UAAU,uBAAuB,KAChC,IAGF,CAAC;AAIF,eAAO,MAAM,sBAAsB,GACjC,MAAM,WAAW,EACjB,SAAS,sBAAsB,KAC9B,OAAO,CAAC,4BAA4B,CAUtC,CAAC;AAGF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,aAAa,CAAC;AACtE,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,sBAAsB,GAC9B,aAAa,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { AsymmetricKeyObject, CryptoKey, KeyObject, SecretKeyObject, PublicKeyObject, PrivateKeyObject } from './classes';
2
2
  import { generateKeyPair, generateKeyPairSync } from './generateKeyPair';
3
- import { createSign, createVerify, Sign, Verify } from './signVerify';
3
+ import { createSign, createVerify, sign, verify, Sign, Verify } from './signVerify';
4
4
  import { publicEncrypt, publicDecrypt, privateEncrypt, privateDecrypt } from './publicCipher';
5
5
  import { isCryptoKey, parseKeyEncoding, parsePrivateKeyEncoding, parsePublicKeyEncoding } from './utils';
6
6
  import type { BinaryLike } from '../utils';
@@ -20,5 +20,5 @@ export interface GenerateKeyOptions {
20
20
  }
21
21
  declare function generateKeySync(type: 'aes' | 'hmac', options: GenerateKeyOptions): SecretKeyObject;
22
22
  declare function generateKey(type: 'aes' | 'hmac', options: GenerateKeyOptions, callback: (err: Error | null, key?: SecretKeyObject) => void): void;
23
- export { createSecretKey, createPublicKey, createPrivateKey, CryptoKey, generateKey, generateKeySync, generateKeyPair, generateKeyPairSync, AsymmetricKeyObject, KeyObject, createSign, createVerify, Sign, Verify, publicEncrypt, publicDecrypt, privateEncrypt, privateDecrypt, parsePublicKeyEncoding, parsePrivateKeyEncoding, parseKeyEncoding, SecretKeyObject, PublicKeyObject, PrivateKeyObject, isCryptoKey, };
23
+ export { createSecretKey, createPublicKey, createPrivateKey, CryptoKey, generateKey, generateKeySync, generateKeyPair, generateKeyPairSync, AsymmetricKeyObject, KeyObject, createSign, createVerify, sign, verify, Sign, Verify, publicEncrypt, publicDecrypt, privateEncrypt, privateDecrypt, parsePublicKeyEncoding, parsePrivateKeyEncoding, parseKeyEncoding, SecretKeyObject, PublicKeyObject, PrivateKeyObject, isCryptoKey, };
24
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/keys/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,SAAS,EACT,eAAe,EACf,eAAe,EACf,gBAAgB,EACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EACL,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAS3C,UAAU,cAAc;IACtB,GAAG,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACxC,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAC3C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,KAAK,QAAQ,GAAG,UAAU,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpE,iBAAS,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,eAAe,CAGzD;AAyED,iBAAS,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,eAAe,CAmBvD;AAED,iBAAS,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,gBAAgB,CAoBzD;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,iBAAS,eAAe,CACtB,IAAI,EAAE,KAAK,GAAG,MAAM,EACpB,OAAO,EAAE,kBAAkB,GAC1B,eAAe,CAsCjB;AAED,iBAAS,WAAW,CAClB,IAAI,EAAE,KAAK,GAAG,MAAM,EACpB,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,eAAe,KAAK,IAAI,GAC3D,IAAI,CAWN;AAED,OAAO,EAEL,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,MAAM,EACN,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EAGd,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,WAAW,GACZ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/keys/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,SAAS,EACT,eAAe,EACf,eAAe,EACf,gBAAgB,EACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACL,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,MAAM,EACP,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAS3C,UAAU,cAAc;IACtB,GAAG,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACxC,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAC3C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,KAAK,QAAQ,GAAG,UAAU,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpE,iBAAS,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,eAAe,CAGzD;AAyED,iBAAS,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,eAAe,CAmBvD;AAED,iBAAS,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,gBAAgB,CAoBzD;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,iBAAS,eAAe,CACtB,IAAI,EAAE,KAAK,GAAG,MAAM,EACpB,OAAO,EAAE,kBAAkB,GAC1B,eAAe,CAsCjB;AAED,iBAAS,WAAW,CAClB,IAAI,EAAE,KAAK,GAAG,MAAM,EACpB,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,eAAe,KAAK,IAAI,GAC3D,IAAI,CAWN;AAED,OAAO,EAEL,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,MAAM,EACN,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EAGd,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,WAAW,GACZ,CAAC"}
@@ -25,5 +25,11 @@ export declare class Verify {
25
25
  }
26
26
  export declare function createSign(algorithm: string): Sign;
27
27
  export declare function createVerify(algorithm: string): Verify;
28
+ type SignCallback = (err: Error | null, signature?: Buffer) => void;
29
+ type VerifyCallback = (err: Error | null, result?: boolean) => void;
30
+ export declare function sign(algorithm: string | null | undefined, data: BinaryLike, key: KeyInput): Buffer;
31
+ export declare function sign(algorithm: string | null | undefined, data: BinaryLike, key: KeyInput, callback: SignCallback): void;
32
+ export declare function verify(algorithm: string | null | undefined, data: BinaryLike, key: KeyInput, signature: BinaryLike): boolean;
33
+ export declare function verify(algorithm: string | null | undefined, data: BinaryLike, key: KeyInput, signature: BinaryLike, callback: VerifyCallback): void;
28
34
  export {};
29
35
  //# sourceMappingURL=signVerify.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signVerify.d.ts","sourceRoot":"","sources":["../../../src/keys/signVerify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAMxD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAQ3C,KAAK,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,cAAc,CAAC;AAEpE,UAAU,cAAc;IACtB,GAAG,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACxC,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAC3C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC;CACpC;AA6HD,qBAAa,IAAI;IACf,OAAO,CAAC,MAAM,CAAiB;gBAEnB,SAAS,EAAE,MAAM;IAK7B,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAM9B,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,MAAM;CAqBpE;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAmB;gBAErB,SAAS,EAAE,MAAM;IAM7B,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAM9B,MAAM,CACJ,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,UAAU,EACrB,iBAAiB,CAAC,EAAE,cAAc,GACjC,OAAO;CAuBX;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtD"}
1
+ {"version":3,"file":"signVerify.d.ts","sourceRoot":"","sources":["../../../src/keys/signVerify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAMxD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAQ3C,KAAK,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,cAAc,CAAC;AAEpE,UAAU,cAAc;IACtB,GAAG,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACxC,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAC3C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC;CACpC;AA6HD,qBAAa,IAAI;IACf,OAAO,CAAC,MAAM,CAAiB;gBAEnB,SAAS,EAAE,MAAM;IAK7B,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAM9B,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,MAAM;CAqBpE;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAmB;gBAErB,SAAS,EAAE,MAAM;IAM7B,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAM9B,MAAM,CACJ,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,UAAU,EACrB,iBAAiB,CAAC,EAAE,cAAc,GACjC,OAAO;CAuBX;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,KAAK,YAAY,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AACpE,KAAK,cAAc,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAEpE,wBAAgB,IAAI,CAClB,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,QAAQ,GACZ,MAAM,CAAC;AACV,wBAAgB,IAAI,CAClB,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,YAAY,GACrB,IAAI,CAAC;AA6BR,wBAAgB,MAAM,CACpB,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC;AACX,wBAAgB,MAAM,CACpB,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,UAAU,EACrB,QAAQ,EAAE,cAAc,GACvB,IAAI,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { HybridObject } from 'react-native-nitro-modules';
2
+ export interface DiffieHellman extends HybridObject<{
3
+ ios: 'c++';
4
+ android: 'c++';
5
+ }> {
6
+ init(prime: ArrayBuffer, generator: ArrayBuffer): void;
7
+ initWithSize(primeLength: number, generator: number): void;
8
+ generateKeys(): ArrayBuffer;
9
+ computeSecret(otherPublicKey: ArrayBuffer): ArrayBuffer;
10
+ getPrime(): ArrayBuffer;
11
+ getGenerator(): ArrayBuffer;
12
+ getPublicKey(): ArrayBuffer;
13
+ getPrivateKey(): ArrayBuffer;
14
+ setPublicKey(publicKey: ArrayBuffer): void;
15
+ setPrivateKey(privateKey: ArrayBuffer): void;
16
+ }
17
+ //# sourceMappingURL=diffie-hellman.nitro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diffie-hellman.nitro.d.ts","sourceRoot":"","sources":["../../../src/specs/diffie-hellman.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,aACf,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;IACpD,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;IACvD,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3D,YAAY,IAAI,WAAW,CAAC;IAC5B,aAAa,CAAC,cAAc,EAAE,WAAW,GAAG,WAAW,CAAC;IACxD,QAAQ,IAAI,WAAW,CAAC;IACxB,YAAY,IAAI,WAAW,CAAC;IAC5B,YAAY,IAAI,WAAW,CAAC;IAC5B,aAAa,IAAI,WAAW,CAAC;IAC7B,YAAY,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3C,aAAa,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI,CAAC;CAC9C"}
@@ -0,0 +1,14 @@
1
+ import type { HybridObject } from 'react-native-nitro-modules';
2
+ export interface ECDH extends HybridObject<{
3
+ ios: 'c++';
4
+ android: 'c++';
5
+ }> {
6
+ init(curveName: string): void;
7
+ generateKeys(): ArrayBuffer;
8
+ computeSecret(otherPublicKey: ArrayBuffer): ArrayBuffer;
9
+ getPrivateKey(): ArrayBuffer;
10
+ setPrivateKey(privateKey: ArrayBuffer): void;
11
+ getPublicKey(): ArrayBuffer;
12
+ setPublicKey(publicKey: ArrayBuffer): void;
13
+ }
14
+ //# sourceMappingURL=ecdh.nitro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ecdh.nitro.d.ts","sourceRoot":"","sources":["../../../src/specs/ecdh.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,IAAK,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;IACxE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,IAAI,WAAW,CAAC;IAC5B,aAAa,CAAC,cAAc,EAAE,WAAW,GAAG,WAAW,CAAC;IACxD,aAAa,IAAI,WAAW,CAAC;IAC7B,aAAa,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7C,YAAY,IAAI,WAAW,CAAC;IAC5B,YAAY,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;CAC5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"subtle.d.ts","sourceRoot":"","sources":["../../src/subtle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EACR,UAAU,EACV,UAAU,EACV,GAAG,EACH,YAAY,EACZ,YAAY,EAEZ,oBAAoB,EAOrB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,SAAS,EAKV,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAiuCnD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,GAAG,aAAa,GAChC,MAAM,IAAI,aAAa,CAEzB;AAyOD,qBAAa,MAAM;IACX,OAAO,CACX,SAAS,EAAE,oBAAoB,EAC/B,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,WAAW,CAAC;IAWjB,MAAM,CACV,SAAS,EAAE,eAAe,GAAG,YAAY,EACzC,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,WAAW,CAAC;IAQjB,UAAU,CACd,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC;IA6BjB,SAAS,CACb,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,SAAS,EAClB,mBAAmB,EAAE,eAAe,EACpC,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,SAAS,CAAC;IAoDf,OAAO,CACX,SAAS,EAAE,oBAAoB,EAC/B,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,WAAW,CAAC;IAWjB,SAAS,CACb,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,SAAS,GACb,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;IAevB,OAAO,CACX,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,oBAAoB,GAClC,OAAO,CAAC,WAAW,CAAC;IA6CjB,SAAS,CACb,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,SAAS,EACxB,eAAe,EAAE,oBAAoB,EACrC,qBAAqB,EAAE,eAAe,GAAG,YAAY,EACrD,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,SAAS,CAAC;IAmDf,WAAW,CACf,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,SAAS,GAAG,aAAa,CAAC;IAoG/B,SAAS,CACb,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,GAAG,EACnC,SAAS,EAAE,eAAe,GAAG,YAAY,EACzC,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,SAAS,CAAC;IAsHf,IAAI,CACR,SAAS,EAAE,eAAe,EAC1B,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,WAAW,CAAC;IAwCjB,MAAM,CACV,SAAS,EAAE,eAAe,EAC1B,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,UAAU,EACrB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,OAAO,CAAC;CAsDpB;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"}
1
+ {"version":3,"file":"subtle.d.ts","sourceRoot":"","sources":["../../src/subtle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EACR,UAAU,EACV,UAAU,EACV,GAAG,EACH,YAAY,EACZ,YAAY,EAEZ,oBAAoB,EAOrB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,SAAS,EAKV,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAsuCnD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,GAAG,aAAa,GAChC,MAAM,IAAI,aAAa,CAEzB;AAyOD,qBAAa,MAAM;IACX,OAAO,CACX,SAAS,EAAE,oBAAoB,EAC/B,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,WAAW,CAAC;IAWjB,MAAM,CACV,SAAS,EAAE,eAAe,GAAG,YAAY,EACzC,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,WAAW,CAAC;IAQjB,UAAU,CACd,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC;IA+BjB,SAAS,CACb,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,SAAS,EAClB,mBAAmB,EAAE,eAAe,EACpC,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,SAAS,CAAC;IAoDf,OAAO,CACX,SAAS,EAAE,oBAAoB,EAC/B,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,WAAW,CAAC;IAWjB,SAAS,CACb,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,SAAS,GACb,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;IAevB,OAAO,CACX,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,oBAAoB,GAClC,OAAO,CAAC,WAAW,CAAC;IA6CjB,SAAS,CACb,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,SAAS,EACxB,eAAe,EAAE,oBAAoB,EACrC,qBAAqB,EAAE,eAAe,GAAG,YAAY,EACrD,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,SAAS,CAAC;IAmDf,WAAW,CACf,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,SAAS,GAAG,aAAa,CAAC;IAoG/B,SAAS,CACb,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,GAAG,EACnC,SAAS,EAAE,eAAe,GAAG,YAAY,EACzC,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,SAAS,CAAC;IAsHf,IAAI,CACR,SAAS,EAAE,eAAe,EAC1B,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,WAAW,CAAC;IAwCjB,MAAM,CACV,SAAS,EAAE,eAAe,EAC1B,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,UAAU,EACrB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,OAAO,CAAC;CAsDpB;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"}
@@ -30,6 +30,8 @@ target_sources(
30
30
  ../nitrogen/generated/shared/c++/HybridBlake3Spec.cpp
31
31
  ../nitrogen/generated/shared/c++/HybridCipherSpec.cpp
32
32
  ../nitrogen/generated/shared/c++/HybridCipherFactorySpec.cpp
33
+ ../nitrogen/generated/shared/c++/HybridDiffieHellmanSpec.cpp
34
+ ../nitrogen/generated/shared/c++/HybridECDHSpec.cpp
33
35
  ../nitrogen/generated/shared/c++/HybridEcKeyPairSpec.cpp
34
36
  ../nitrogen/generated/shared/c++/HybridEdKeyPairSpec.cpp
35
37
  ../nitrogen/generated/shared/c++/HybridHashSpec.cpp
@@ -33,6 +33,8 @@
33
33
  #include "HybridMlDsaKeyPair.hpp"
34
34
  #include "HybridScrypt.hpp"
35
35
  #include "HybridUtils.hpp"
36
+ #include "HybridECDH.hpp"
37
+ #include "HybridDiffieHellman.hpp"
36
38
 
37
39
  namespace margelo::nitro::crypto {
38
40
 
@@ -208,6 +210,24 @@ int initialize(JavaVM* vm) {
208
210
  return std::make_shared<HybridUtils>();
209
211
  }
210
212
  );
213
+ HybridObjectRegistry::registerHybridObjectConstructor(
214
+ "ECDH",
215
+ []() -> std::shared_ptr<HybridObject> {
216
+ static_assert(std::is_default_constructible_v<HybridECDH>,
217
+ "The HybridObject \"HybridECDH\" is not default-constructible! "
218
+ "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
219
+ return std::make_shared<HybridECDH>();
220
+ }
221
+ );
222
+ HybridObjectRegistry::registerHybridObjectConstructor(
223
+ "DiffieHellman",
224
+ []() -> std::shared_ptr<HybridObject> {
225
+ static_assert(std::is_default_constructible_v<HybridDiffieHellman>,
226
+ "The HybridObject \"HybridDiffieHellman\" is not default-constructible! "
227
+ "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
228
+ return std::make_shared<HybridDiffieHellman>();
229
+ }
230
+ );
211
231
  });
212
232
  }
213
233
 
@@ -28,6 +28,8 @@
28
28
  #include "HybridMlDsaKeyPair.hpp"
29
29
  #include "HybridScrypt.hpp"
30
30
  #include "HybridUtils.hpp"
31
+ #include "HybridECDH.hpp"
32
+ #include "HybridDiffieHellman.hpp"
31
33
 
32
34
  @interface QuickCryptoAutolinking : NSObject
33
35
  @end
@@ -200,6 +202,24 @@
200
202
  return std::make_shared<HybridUtils>();
201
203
  }
202
204
  );
205
+ HybridObjectRegistry::registerHybridObjectConstructor(
206
+ "ECDH",
207
+ []() -> std::shared_ptr<HybridObject> {
208
+ static_assert(std::is_default_constructible_v<HybridECDH>,
209
+ "The HybridObject \"HybridECDH\" is not default-constructible! "
210
+ "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
211
+ return std::make_shared<HybridECDH>();
212
+ }
213
+ );
214
+ HybridObjectRegistry::registerHybridObjectConstructor(
215
+ "DiffieHellman",
216
+ []() -> std::shared_ptr<HybridObject> {
217
+ static_assert(std::is_default_constructible_v<HybridDiffieHellman>,
218
+ "The HybridObject \"HybridDiffieHellman\" is not default-constructible! "
219
+ "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
220
+ return std::make_shared<HybridDiffieHellman>();
221
+ }
222
+ );
203
223
  }
204
224
 
205
225
  @end
@@ -0,0 +1,30 @@
1
+ ///
2
+ /// HybridDiffieHellmanSpec.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "HybridDiffieHellmanSpec.hpp"
9
+
10
+ namespace margelo::nitro::crypto {
11
+
12
+ void HybridDiffieHellmanSpec::loadHybridMethods() {
13
+ // load base methods/properties
14
+ HybridObject::loadHybridMethods();
15
+ // load custom methods/properties
16
+ registerHybrids(this, [](Prototype& prototype) {
17
+ prototype.registerHybridMethod("init", &HybridDiffieHellmanSpec::init);
18
+ prototype.registerHybridMethod("initWithSize", &HybridDiffieHellmanSpec::initWithSize);
19
+ prototype.registerHybridMethod("generateKeys", &HybridDiffieHellmanSpec::generateKeys);
20
+ prototype.registerHybridMethod("computeSecret", &HybridDiffieHellmanSpec::computeSecret);
21
+ prototype.registerHybridMethod("getPrime", &HybridDiffieHellmanSpec::getPrime);
22
+ prototype.registerHybridMethod("getGenerator", &HybridDiffieHellmanSpec::getGenerator);
23
+ prototype.registerHybridMethod("getPublicKey", &HybridDiffieHellmanSpec::getPublicKey);
24
+ prototype.registerHybridMethod("getPrivateKey", &HybridDiffieHellmanSpec::getPrivateKey);
25
+ prototype.registerHybridMethod("setPublicKey", &HybridDiffieHellmanSpec::setPublicKey);
26
+ prototype.registerHybridMethod("setPrivateKey", &HybridDiffieHellmanSpec::setPrivateKey);
27
+ });
28
+ }
29
+
30
+ } // namespace margelo::nitro::crypto
@@ -0,0 +1,72 @@
1
+ ///
2
+ /// HybridDiffieHellmanSpec.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/HybridObject.hpp>)
11
+ #include <NitroModules/HybridObject.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+
16
+ // Forward declaration of `ArrayBuffer` to properly resolve imports.
17
+ namespace NitroModules { class ArrayBuffer; }
18
+
19
+ #include <NitroModules/ArrayBuffer.hpp>
20
+
21
+ namespace margelo::nitro::crypto {
22
+
23
+ using namespace margelo::nitro;
24
+
25
+ /**
26
+ * An abstract base class for `DiffieHellman`
27
+ * Inherit this class to create instances of `HybridDiffieHellmanSpec` in C++.
28
+ * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual.
29
+ * @example
30
+ * ```cpp
31
+ * class HybridDiffieHellman: public HybridDiffieHellmanSpec {
32
+ * public:
33
+ * HybridDiffieHellman(...): HybridObject(TAG) { ... }
34
+ * // ...
35
+ * };
36
+ * ```
37
+ */
38
+ class HybridDiffieHellmanSpec: public virtual HybridObject {
39
+ public:
40
+ // Constructor
41
+ explicit HybridDiffieHellmanSpec(): HybridObject(TAG) { }
42
+
43
+ // Destructor
44
+ ~HybridDiffieHellmanSpec() override = default;
45
+
46
+ public:
47
+ // Properties
48
+
49
+
50
+ public:
51
+ // Methods
52
+ virtual void init(const std::shared_ptr<ArrayBuffer>& prime, const std::shared_ptr<ArrayBuffer>& generator) = 0;
53
+ virtual void initWithSize(double primeLength, double generator) = 0;
54
+ virtual std::shared_ptr<ArrayBuffer> generateKeys() = 0;
55
+ virtual std::shared_ptr<ArrayBuffer> computeSecret(const std::shared_ptr<ArrayBuffer>& otherPublicKey) = 0;
56
+ virtual std::shared_ptr<ArrayBuffer> getPrime() = 0;
57
+ virtual std::shared_ptr<ArrayBuffer> getGenerator() = 0;
58
+ virtual std::shared_ptr<ArrayBuffer> getPublicKey() = 0;
59
+ virtual std::shared_ptr<ArrayBuffer> getPrivateKey() = 0;
60
+ virtual void setPublicKey(const std::shared_ptr<ArrayBuffer>& publicKey) = 0;
61
+ virtual void setPrivateKey(const std::shared_ptr<ArrayBuffer>& privateKey) = 0;
62
+
63
+ protected:
64
+ // Hybrid Setup
65
+ void loadHybridMethods() override;
66
+
67
+ protected:
68
+ // Tag for logging
69
+ static constexpr auto TAG = "DiffieHellman";
70
+ };
71
+
72
+ } // namespace margelo::nitro::crypto
@@ -0,0 +1,27 @@
1
+ ///
2
+ /// HybridECDHSpec.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "HybridECDHSpec.hpp"
9
+
10
+ namespace margelo::nitro::crypto {
11
+
12
+ void HybridECDHSpec::loadHybridMethods() {
13
+ // load base methods/properties
14
+ HybridObject::loadHybridMethods();
15
+ // load custom methods/properties
16
+ registerHybrids(this, [](Prototype& prototype) {
17
+ prototype.registerHybridMethod("init", &HybridECDHSpec::init);
18
+ prototype.registerHybridMethod("generateKeys", &HybridECDHSpec::generateKeys);
19
+ prototype.registerHybridMethod("computeSecret", &HybridECDHSpec::computeSecret);
20
+ prototype.registerHybridMethod("getPrivateKey", &HybridECDHSpec::getPrivateKey);
21
+ prototype.registerHybridMethod("setPrivateKey", &HybridECDHSpec::setPrivateKey);
22
+ prototype.registerHybridMethod("getPublicKey", &HybridECDHSpec::getPublicKey);
23
+ prototype.registerHybridMethod("setPublicKey", &HybridECDHSpec::setPublicKey);
24
+ });
25
+ }
26
+
27
+ } // namespace margelo::nitro::crypto
@@ -0,0 +1,70 @@
1
+ ///
2
+ /// HybridECDHSpec.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/HybridObject.hpp>)
11
+ #include <NitroModules/HybridObject.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+
16
+ // Forward declaration of `ArrayBuffer` to properly resolve imports.
17
+ namespace NitroModules { class ArrayBuffer; }
18
+
19
+ #include <string>
20
+ #include <NitroModules/ArrayBuffer.hpp>
21
+
22
+ namespace margelo::nitro::crypto {
23
+
24
+ using namespace margelo::nitro;
25
+
26
+ /**
27
+ * An abstract base class for `ECDH`
28
+ * Inherit this class to create instances of `HybridECDHSpec` in C++.
29
+ * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual.
30
+ * @example
31
+ * ```cpp
32
+ * class HybridECDH: public HybridECDHSpec {
33
+ * public:
34
+ * HybridECDH(...): HybridObject(TAG) { ... }
35
+ * // ...
36
+ * };
37
+ * ```
38
+ */
39
+ class HybridECDHSpec: public virtual HybridObject {
40
+ public:
41
+ // Constructor
42
+ explicit HybridECDHSpec(): HybridObject(TAG) { }
43
+
44
+ // Destructor
45
+ ~HybridECDHSpec() override = default;
46
+
47
+ public:
48
+ // Properties
49
+
50
+
51
+ public:
52
+ // Methods
53
+ virtual void init(const std::string& curveName) = 0;
54
+ virtual std::shared_ptr<ArrayBuffer> generateKeys() = 0;
55
+ virtual std::shared_ptr<ArrayBuffer> computeSecret(const std::shared_ptr<ArrayBuffer>& otherPublicKey) = 0;
56
+ virtual std::shared_ptr<ArrayBuffer> getPrivateKey() = 0;
57
+ virtual void setPrivateKey(const std::shared_ptr<ArrayBuffer>& privateKey) = 0;
58
+ virtual std::shared_ptr<ArrayBuffer> getPublicKey() = 0;
59
+ virtual void setPublicKey(const std::shared_ptr<ArrayBuffer>& publicKey) = 0;
60
+
61
+ protected:
62
+ // Hybrid Setup
63
+ void loadHybridMethods() override;
64
+
65
+ protected:
66
+ // Tag for logging
67
+ static constexpr auto TAG = "ECDH";
68
+ };
69
+
70
+ } // namespace margelo::nitro::crypto
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-quick-crypto",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "description": "A fast implementation of Node's `crypto` module written in C/C++ JSI",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -0,0 +1,27 @@
1
+ export const DH_GROUPS: Record<string, { prime: string; generator: string }> = {
2
+ modp14: {
3
+ prime:
4
+ 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff',
5
+ generator: '02',
6
+ },
7
+ modp15: {
8
+ prime:
9
+ 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff',
10
+ generator: '02',
11
+ },
12
+ modp16: {
13
+ prime:
14
+ 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff',
15
+ generator: '02',
16
+ },
17
+ modp17: {
18
+ prime:
19
+ 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff',
20
+ generator: '02',
21
+ },
22
+ modp18: {
23
+ prime:
24
+ 'ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff',
25
+ generator: '02',
26
+ },
27
+ };