react-native-quick-crypto 1.0.10 → 1.0.11

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 (158) hide show
  1. package/android/CMakeLists.txt +9 -0
  2. package/cpp/argon2/HybridArgon2.cpp +103 -0
  3. package/cpp/argon2/HybridArgon2.hpp +32 -0
  4. package/cpp/certificate/HybridCertificate.cpp +42 -0
  5. package/cpp/certificate/HybridCertificate.hpp +16 -0
  6. package/cpp/cipher/HybridCipher.cpp +58 -0
  7. package/cpp/cipher/HybridCipher.hpp +4 -0
  8. package/cpp/dh/HybridDhKeyPair.cpp +179 -0
  9. package/cpp/dh/HybridDhKeyPair.hpp +37 -0
  10. package/cpp/dsa/HybridDsaKeyPair.cpp +128 -0
  11. package/cpp/dsa/HybridDsaKeyPair.hpp +32 -0
  12. package/cpp/ecdh/HybridECDH.cpp +35 -0
  13. package/cpp/ecdh/HybridECDH.hpp +1 -0
  14. package/cpp/keys/HybridKeyObjectHandle.cpp +19 -0
  15. package/cpp/prime/HybridPrime.cpp +81 -0
  16. package/cpp/prime/HybridPrime.hpp +20 -0
  17. package/lib/commonjs/argon2.js +39 -0
  18. package/lib/commonjs/argon2.js.map +1 -0
  19. package/lib/commonjs/certificate.js +35 -0
  20. package/lib/commonjs/certificate.js.map +1 -0
  21. package/lib/commonjs/cipher.js +8 -0
  22. package/lib/commonjs/cipher.js.map +1 -1
  23. package/lib/commonjs/dhKeyPair.js +109 -0
  24. package/lib/commonjs/dhKeyPair.js.map +1 -0
  25. package/lib/commonjs/dsa.js +92 -0
  26. package/lib/commonjs/dsa.js.map +1 -0
  27. package/lib/commonjs/ecdh.js +37 -0
  28. package/lib/commonjs/ecdh.js.map +1 -1
  29. package/lib/commonjs/index.js +35 -0
  30. package/lib/commonjs/index.js.map +1 -1
  31. package/lib/commonjs/keys/classes.js +9 -7
  32. package/lib/commonjs/keys/classes.js.map +1 -1
  33. package/lib/commonjs/keys/generateKeyPair.js +11 -0
  34. package/lib/commonjs/keys/generateKeyPair.js.map +1 -1
  35. package/lib/commonjs/prime.js +84 -0
  36. package/lib/commonjs/prime.js.map +1 -0
  37. package/lib/commonjs/specs/argon2.nitro.js +6 -0
  38. package/lib/commonjs/specs/argon2.nitro.js.map +1 -0
  39. package/lib/commonjs/specs/certificate.nitro.js +6 -0
  40. package/lib/commonjs/specs/certificate.nitro.js.map +1 -0
  41. package/lib/commonjs/specs/dhKeyPair.nitro.js +6 -0
  42. package/lib/commonjs/specs/dhKeyPair.nitro.js.map +1 -0
  43. package/lib/commonjs/specs/dsaKeyPair.nitro.js +6 -0
  44. package/lib/commonjs/specs/dsaKeyPair.nitro.js.map +1 -0
  45. package/lib/commonjs/specs/prime.nitro.js +6 -0
  46. package/lib/commonjs/specs/prime.nitro.js.map +1 -0
  47. package/lib/commonjs/subtle.js +101 -10
  48. package/lib/commonjs/subtle.js.map +1 -1
  49. package/lib/commonjs/utils/types.js.map +1 -1
  50. package/lib/module/argon2.js +34 -0
  51. package/lib/module/argon2.js.map +1 -0
  52. package/lib/module/certificate.js +30 -0
  53. package/lib/module/certificate.js.map +1 -0
  54. package/lib/module/cipher.js +7 -0
  55. package/lib/module/cipher.js.map +1 -1
  56. package/lib/module/dhKeyPair.js +102 -0
  57. package/lib/module/dhKeyPair.js.map +1 -0
  58. package/lib/module/dsa.js +85 -0
  59. package/lib/module/dsa.js.map +1 -0
  60. package/lib/module/ecdh.js +37 -0
  61. package/lib/module/ecdh.js.map +1 -1
  62. package/lib/module/index.js +9 -0
  63. package/lib/module/index.js.map +1 -1
  64. package/lib/module/keys/classes.js +9 -7
  65. package/lib/module/keys/classes.js.map +1 -1
  66. package/lib/module/keys/generateKeyPair.js +11 -0
  67. package/lib/module/keys/generateKeyPair.js.map +1 -1
  68. package/lib/module/prime.js +77 -0
  69. package/lib/module/prime.js.map +1 -0
  70. package/lib/module/specs/argon2.nitro.js +4 -0
  71. package/lib/module/specs/argon2.nitro.js.map +1 -0
  72. package/lib/module/specs/certificate.nitro.js +4 -0
  73. package/lib/module/specs/certificate.nitro.js.map +1 -0
  74. package/lib/module/specs/dhKeyPair.nitro.js +4 -0
  75. package/lib/module/specs/dhKeyPair.nitro.js.map +1 -0
  76. package/lib/module/specs/dsaKeyPair.nitro.js +4 -0
  77. package/lib/module/specs/dsaKeyPair.nitro.js.map +1 -0
  78. package/lib/module/specs/prime.nitro.js +4 -0
  79. package/lib/module/specs/prime.nitro.js.map +1 -0
  80. package/lib/module/subtle.js +102 -12
  81. package/lib/module/subtle.js.map +1 -1
  82. package/lib/module/utils/types.js.map +1 -1
  83. package/lib/tsconfig.tsbuildinfo +1 -1
  84. package/lib/typescript/argon2.d.ts +16 -0
  85. package/lib/typescript/argon2.d.ts.map +1 -0
  86. package/lib/typescript/certificate.d.ts +8 -0
  87. package/lib/typescript/certificate.d.ts.map +1 -0
  88. package/lib/typescript/cipher.d.ts +12 -0
  89. package/lib/typescript/cipher.d.ts.map +1 -1
  90. package/lib/typescript/dhKeyPair.d.ts +19 -0
  91. package/lib/typescript/dhKeyPair.d.ts.map +1 -0
  92. package/lib/typescript/dsa.d.ts +19 -0
  93. package/lib/typescript/dsa.d.ts.map +1 -0
  94. package/lib/typescript/ecdh.d.ts +3 -0
  95. package/lib/typescript/ecdh.d.ts.map +1 -1
  96. package/lib/typescript/index.d.ts +17 -0
  97. package/lib/typescript/index.d.ts.map +1 -1
  98. package/lib/typescript/keys/classes.d.ts +2 -0
  99. package/lib/typescript/keys/classes.d.ts.map +1 -1
  100. package/lib/typescript/keys/generateKeyPair.d.ts.map +1 -1
  101. package/lib/typescript/prime.d.ts +19 -0
  102. package/lib/typescript/prime.d.ts.map +1 -0
  103. package/lib/typescript/specs/argon2.nitro.d.ts +9 -0
  104. package/lib/typescript/specs/argon2.nitro.d.ts.map +1 -0
  105. package/lib/typescript/specs/certificate.nitro.d.ts +10 -0
  106. package/lib/typescript/specs/certificate.nitro.d.ts.map +1 -0
  107. package/lib/typescript/specs/cipher.nitro.d.ts +9 -0
  108. package/lib/typescript/specs/cipher.nitro.d.ts.map +1 -1
  109. package/lib/typescript/specs/dhKeyPair.nitro.d.ts +14 -0
  110. package/lib/typescript/specs/dhKeyPair.nitro.d.ts.map +1 -0
  111. package/lib/typescript/specs/dsaKeyPair.nitro.d.ts +13 -0
  112. package/lib/typescript/specs/dsaKeyPair.nitro.d.ts.map +1 -0
  113. package/lib/typescript/specs/ecdh.nitro.d.ts +1 -0
  114. package/lib/typescript/specs/ecdh.nitro.d.ts.map +1 -1
  115. package/lib/typescript/specs/prime.nitro.d.ts +11 -0
  116. package/lib/typescript/specs/prime.nitro.d.ts.map +1 -0
  117. package/lib/typescript/subtle.d.ts +2 -0
  118. package/lib/typescript/subtle.d.ts.map +1 -1
  119. package/lib/typescript/utils/types.d.ts +13 -3
  120. package/lib/typescript/utils/types.d.ts.map +1 -1
  121. package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +5 -0
  122. package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +50 -0
  123. package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +50 -0
  124. package/nitrogen/generated/shared/c++/CipherInfo.hpp +104 -0
  125. package/nitrogen/generated/shared/c++/HybridArgon2Spec.cpp +22 -0
  126. package/nitrogen/generated/shared/c++/HybridArgon2Spec.hpp +66 -0
  127. package/nitrogen/generated/shared/c++/HybridCertificateSpec.cpp +23 -0
  128. package/nitrogen/generated/shared/c++/HybridCertificateSpec.hpp +64 -0
  129. package/nitrogen/generated/shared/c++/HybridCipherSpec.cpp +1 -0
  130. package/nitrogen/generated/shared/c++/HybridCipherSpec.hpp +4 -0
  131. package/nitrogen/generated/shared/c++/HybridDhKeyPairSpec.cpp +27 -0
  132. package/nitrogen/generated/shared/c++/HybridDhKeyPairSpec.hpp +69 -0
  133. package/nitrogen/generated/shared/c++/HybridDsaKeyPairSpec.cpp +26 -0
  134. package/nitrogen/generated/shared/c++/HybridDsaKeyPairSpec.hpp +68 -0
  135. package/nitrogen/generated/shared/c++/HybridECDHSpec.cpp +1 -0
  136. package/nitrogen/generated/shared/c++/HybridECDHSpec.hpp +1 -0
  137. package/nitrogen/generated/shared/c++/HybridPrimeSpec.cpp +24 -0
  138. package/nitrogen/generated/shared/c++/HybridPrimeSpec.hpp +67 -0
  139. package/package.json +1 -1
  140. package/src/argon2.ts +83 -0
  141. package/src/certificate.ts +41 -0
  142. package/src/cipher.ts +24 -0
  143. package/src/dhKeyPair.ts +156 -0
  144. package/src/dsa.ts +129 -0
  145. package/src/ecdh.ts +59 -0
  146. package/src/index.ts +9 -0
  147. package/src/keys/classes.ts +16 -5
  148. package/src/keys/generateKeyPair.ts +14 -0
  149. package/src/prime.ts +134 -0
  150. package/src/specs/argon2.nitro.ts +29 -0
  151. package/src/specs/certificate.nitro.ts +8 -0
  152. package/src/specs/cipher.nitro.ts +14 -0
  153. package/src/specs/dhKeyPair.nitro.ts +14 -0
  154. package/src/specs/dsaKeyPair.nitro.ts +13 -0
  155. package/src/specs/ecdh.nitro.ts +1 -0
  156. package/src/specs/prime.nitro.ts +18 -0
  157. package/src/subtle.ts +271 -12
  158. package/src/utils/types.ts +22 -3
@@ -2,7 +2,16 @@
2
2
 
3
3
  import { NitroModules } from 'react-native-nitro-modules';
4
4
  import { Buffer } from '@craftzdog/react-native-buffer';
5
+ const POINT_CONVERSION_COMPRESSED = 2;
6
+ const POINT_CONVERSION_UNCOMPRESSED = 4;
7
+ const POINT_CONVERSION_HYBRID = 6;
5
8
  export class ECDH {
9
+ static get convertKeyHybrid() {
10
+ if (!this._convertKeyHybrid) {
11
+ this._convertKeyHybrid = NitroModules.createHybridObject('ECDH');
12
+ }
13
+ return this._convertKeyHybrid;
14
+ }
6
15
  constructor(curveName) {
7
16
  this._hybrid = NitroModules.createHybridObject('ECDH');
8
17
  this._hybrid.init(curveName);
@@ -58,6 +67,34 @@ export class ECDH {
58
67
  }
59
68
  this._hybrid.setPublicKey(keyBuf.buffer);
60
69
  }
70
+ static convertKey(key, curve, inputEncoding, outputEncoding, format) {
71
+ let keyBuf;
72
+ if (Buffer.isBuffer(key)) {
73
+ keyBuf = key;
74
+ } else {
75
+ keyBuf = Buffer.from(key, inputEncoding);
76
+ }
77
+ let formatNum;
78
+ switch (format) {
79
+ case 'compressed':
80
+ formatNum = POINT_CONVERSION_COMPRESSED;
81
+ break;
82
+ case 'hybrid':
83
+ formatNum = POINT_CONVERSION_HYBRID;
84
+ break;
85
+ case 'uncompressed':
86
+ case undefined:
87
+ formatNum = POINT_CONVERSION_UNCOMPRESSED;
88
+ break;
89
+ default:
90
+ throw new TypeError(`Invalid point conversion format: ${format}`);
91
+ }
92
+ const result = Buffer.from(ECDH.convertKeyHybrid.convertKey(keyBuf.buffer, curve, formatNum));
93
+ if (outputEncoding) {
94
+ return result.toString(outputEncoding);
95
+ }
96
+ return result;
97
+ }
61
98
  }
62
99
  export function createECDH(curveName) {
63
100
  return new ECDH(curveName);
@@ -1 +1 @@
1
- {"version":3,"names":["NitroModules","Buffer","ECDH","constructor","curveName","_hybrid","createHybridObject","init","generateKeys","key","from","computeSecret","otherPublicKey","inputEncoding","keyBuf","isBuffer","TypeError","secret","buffer","getPrivateKey","setPrivateKey","privateKey","encoding","getPublicKey","pub","toString","setPublicKey","publicKey","createECDH"],"sourceRoot":"../../src","sources":["ecdh.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAEzD,SAASC,MAAM,QAAQ,gCAAgC;AAEvD,OAAO,MAAMC,IAAI,CAAC;EAGhBC,WAAWA,CAACC,SAAiB,EAAE;IAC7B,IAAI,CAACC,OAAO,GAAGL,YAAY,CAACM,kBAAkB,CAAgB,MAAM,CAAC;IACrE,IAAI,CAACD,OAAO,CAACE,IAAI,CAACH,SAAS,CAAC;EAC9B;EAEAI,YAAYA,CAAA,EAAW;IACrB,MAAMC,GAAG,GAAG,IAAI,CAACJ,OAAO,CAACG,YAAY,CAAC,CAAC;IACvC,OAAOP,MAAM,CAACS,IAAI,CAACD,GAAG,CAAC;EACzB;EAEAE,aAAaA,CACXC,cAAsE,EACtEC,aAA8B,EACtB;IACR,IAAIC,MAAc;IAClB,IAAIb,MAAM,CAACc,QAAQ,CAACH,cAAc,CAAC,EAAE;MACnCE,MAAM,GAAGF,cAAc;IACzB,CAAC,MAAM,IAAI,OAAOA,cAAc,KAAK,QAAQ,EAAE;MAC7CE,MAAM,GAAGb,MAAM,CAACS,IAAI,CAACE,cAAc,EAAEC,aAAa,CAAC;IACrD,CAAC,MAAM;MACL;MACA,MAAM,IAAIG,SAAS,CAAC,6BAA6B,CAAC;IACpD;;IAEA;IACA,MAAMC,MAAM,GAAG,IAAI,CAACZ,OAAO,CAACM,aAAa,CAACG,MAAM,CAACI,MAAqB,CAAC;IACvE,OAAOjB,MAAM,CAACS,IAAI,CAACO,MAAM,CAAC;EAC5B;EAEAE,aAAaA,CAAA,EAAW;IACtB,OAAOlB,MAAM,CAACS,IAAI,CAAC,IAAI,CAACL,OAAO,CAACc,aAAa,CAAC,CAAC,CAAC;EAClD;EAEAC,aAAaA,CAACC,UAA2B,EAAEC,QAAyB,EAAQ;IAC1E,IAAIR,MAAc;IAClB,IAAIb,MAAM,CAACc,QAAQ,CAACM,UAAU,CAAC,EAAE;MAC/BP,MAAM,GAAGO,UAAU;IACrB,CAAC,MAAM;MACLP,MAAM,GAAGb,MAAM,CAACS,IAAI,CAACW,UAAU,EAAEC,QAAQ,CAAC;IAC5C;IACA,IAAI,CAACjB,OAAO,CAACe,aAAa,CAACN,MAAM,CAACI,MAAqB,CAAC;EAC1D;EAEAK,YAAYA,CAACD,QAAyB,EAAmB;IACvD;IACA;IACA;IACA;IACA,MAAME,GAAG,GAAGvB,MAAM,CAACS,IAAI,CAAC,IAAI,CAACL,OAAO,CAACkB,YAAY,CAAC,CAAC,CAAC;IACpD,IAAID,QAAQ,EAAE;MACZ,OAAOE,GAAG,CAACC,QAAQ,CAACH,QAAQ,CAAC;IAC/B;IACA,OAAOE,GAAG;EACZ;EAEAE,YAAYA,CAACC,SAA0B,EAAEL,QAAyB,EAAQ;IACxE,IAAIR,MAAc;IAClB,IAAIb,MAAM,CAACc,QAAQ,CAACY,SAAS,CAAC,EAAE;MAC9Bb,MAAM,GAAGa,SAAS;IACpB,CAAC,MAAM;MACLb,MAAM,GAAGb,MAAM,CAACS,IAAI,CAACiB,SAAS,EAAEL,QAAQ,CAAC;IAC3C;IACA,IAAI,CAACjB,OAAO,CAACqB,YAAY,CAACZ,MAAM,CAACI,MAAqB,CAAC;EACzD;AACF;AAEA,OAAO,SAASU,UAAUA,CAACxB,SAAiB,EAAQ;EAClD,OAAO,IAAIF,IAAI,CAACE,SAAS,CAAC;AAC5B","ignoreList":[]}
1
+ {"version":3,"names":["NitroModules","Buffer","POINT_CONVERSION_COMPRESSED","POINT_CONVERSION_UNCOMPRESSED","POINT_CONVERSION_HYBRID","ECDH","convertKeyHybrid","_convertKeyHybrid","createHybridObject","constructor","curveName","_hybrid","init","generateKeys","key","from","computeSecret","otherPublicKey","inputEncoding","keyBuf","isBuffer","TypeError","secret","buffer","getPrivateKey","setPrivateKey","privateKey","encoding","getPublicKey","pub","toString","setPublicKey","publicKey","convertKey","curve","outputEncoding","format","formatNum","undefined","result","createECDH"],"sourceRoot":"../../src","sources":["ecdh.ts"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,7 @@
4
4
  import { Buffer } from '@craftzdog/react-native-buffer';
5
5
 
6
6
  // API imports
7
+ import * as argon2Module from './argon2';
7
8
  import * as keys from './keys';
8
9
  import * as blake3 from './blake3';
9
10
  import * as cipher from './cipher';
@@ -12,10 +13,12 @@ import { hashExports as hash } from './hash';
12
13
  import { hmacExports as hmac } from './hmac';
13
14
  import * as hkdf from './hkdf';
14
15
  import * as pbkdf2 from './pbkdf2';
16
+ import * as prime from './prime';
15
17
  import * as scrypt from './scrypt';
16
18
  import * as random from './random';
17
19
  import * as ecdh from './ecdh';
18
20
  import * as dh from './diffie-hellman';
21
+ import { Certificate } from './certificate';
19
22
  import { getCurves } from './ec';
20
23
  import { constants } from './constants';
21
24
 
@@ -28,6 +31,7 @@ import * as subtle from './subtle';
28
31
  * See `docs/implementation-coverage.md` for status.
29
32
  */
30
33
  const QuickCrypto = {
34
+ ...argon2Module,
31
35
  ...keys,
32
36
  ...blake3,
33
37
  ...cipher,
@@ -36,12 +40,14 @@ const QuickCrypto = {
36
40
  ...hmac,
37
41
  ...hkdf,
38
42
  ...pbkdf2,
43
+ ...prime,
39
44
  ...scrypt,
40
45
  ...random,
41
46
  ...ecdh,
42
47
  ...dh,
43
48
  ...utils,
44
49
  ...subtle,
50
+ Certificate,
45
51
  getCurves,
46
52
  constants,
47
53
  Buffer
@@ -74,7 +80,9 @@ if (global.process.nextTick == null) {
74
80
 
75
81
  // exports
76
82
  export default QuickCrypto;
83
+ export * from './argon2';
77
84
  export * from './blake3';
85
+ export { Certificate } from './certificate';
78
86
  export * from './cipher';
79
87
  export * from './ed';
80
88
  export * from './keys';
@@ -82,6 +90,7 @@ export * from './hash';
82
90
  export * from './hmac';
83
91
  export * from './hkdf';
84
92
  export * from './pbkdf2';
93
+ export * from './prime';
85
94
  export * from './scrypt';
86
95
  export * from './random';
87
96
  export * from './ecdh';
@@ -1 +1 @@
1
- {"version":3,"names":["Buffer","keys","blake3","cipher","ed","hashExports","hash","hmacExports","hmac","hkdf","pbkdf2","scrypt","random","ecdh","dh","getCurves","constants","utils","subtle","QuickCrypto","install","global","crypto","require","process","nextTick","setImmediate","isCryptoKeyPair","module","exports","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,SAASA,MAAM,QAAQ,gCAAgC;;AAEvD;AACA,OAAO,KAAKC,IAAI,MAAM,QAAQ;AAC9B,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,EAAE,MAAM,MAAM;AAC1B,SAASC,WAAW,IAAIC,IAAI,QAAQ,QAAQ;AAC5C,SAASC,WAAW,IAAIC,IAAI,QAAQ,QAAQ;AAC5C,OAAO,KAAKC,IAAI,MAAM,QAAQ;AAC9B,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,IAAI,MAAM,QAAQ;AAC9B,OAAO,KAAKC,EAAE,MAAM,kBAAkB;AACtC,SAASC,SAAS,QAAQ,MAAM;AAChC,SAASC,SAAS,QAAQ,aAAa;;AAEvC;AACA,OAAO,KAAKC,KAAK,MAAM,SAAS;AAChC,OAAO,KAAKC,MAAM,MAAM,UAAU;;AAElC;AACA;AACA;AACA;AACA,MAAMC,WAAW,GAAG;EAClB,GAAGlB,IAAI;EACP,GAAGC,MAAM;EACT,GAAGC,MAAM;EACT,GAAGC,EAAE;EACL,GAAGE,IAAI;EACP,GAAGE,IAAI;EACP,GAAGC,IAAI;EACP,GAAGC,MAAM;EACT,GAAGC,MAAM;EACT,GAAGC,MAAM;EACT,GAAGC,IAAI;EACP,GAAGC,EAAE;EACL,GAAGG,KAAK;EACR,GAAGC,MAAM;EACTH,SAAS;EACTC,SAAS;EACThB;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMoB,OAAO,GAAGA,CAAA,KAAM;EAC3B;EACAC,MAAM,CAACrB,MAAM,GAAGA,MAAM;;EAEtB;EACAqB,MAAM,CAACC,MAAM,GAAGH,WAAW;;EAE3B;EACA;EACAI,OAAO,CAAC,2BAA2B,CAAC;AACtC,CAAC;;AAED;AACA,IAAIF,MAAM,CAACG,OAAO,IAAI,IAAI,EAAE;EAC1B;EACAH,MAAM,CAACG,OAAO,GAAG,CAAC,CAAC;AACrB;AACA,IAAIH,MAAM,CAACG,OAAO,CAACC,QAAQ,IAAI,IAAI,EAAE;EACnCJ,MAAM,CAACG,OAAO,CAACC,QAAQ,GAAGC,YAAY;AACxC;;AAEA;AACA,eAAeP,WAAW;AAC1B,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,MAAM;AACpB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,SAASJ,SAAS,QAAQ,MAAM;AAChC,cAAc,kBAAkB;AAChC,cAAc,SAAS;AACvB,cAAc,UAAU;AACxB,SAASG,MAAM,EAAES,eAAe,QAAQ,UAAU;AAClD,SAASX,SAAS,QAAQ,aAAa;AACvC,SAAShB,MAAM,QAAQ,gCAAgC;;AAEvD;AACA4B,MAAM,CAACC,OAAO,GAAGV,WAAW;AAC5BS,MAAM,CAACC,OAAO,CAACC,OAAO,GAAGX,WAAW;AACpCS,MAAM,CAACC,OAAO,CAACT,OAAO,GAAGA,OAAO","ignoreList":[]}
1
+ {"version":3,"names":["Buffer","argon2Module","keys","blake3","cipher","ed","hashExports","hash","hmacExports","hmac","hkdf","pbkdf2","prime","scrypt","random","ecdh","dh","Certificate","getCurves","constants","utils","subtle","QuickCrypto","install","global","crypto","require","process","nextTick","setImmediate","isCryptoKeyPair","module","exports","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,SAASA,MAAM,QAAQ,gCAAgC;;AAEvD;AACA,OAAO,KAAKC,YAAY,MAAM,UAAU;AACxC,OAAO,KAAKC,IAAI,MAAM,QAAQ;AAC9B,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,EAAE,MAAM,MAAM;AAC1B,SAASC,WAAW,IAAIC,IAAI,QAAQ,QAAQ;AAC5C,SAASC,WAAW,IAAIC,IAAI,QAAQ,QAAQ;AAC5C,OAAO,KAAKC,IAAI,MAAM,QAAQ;AAC9B,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,KAAK,MAAM,SAAS;AAChC,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,IAAI,MAAM,QAAQ;AAC9B,OAAO,KAAKC,EAAE,MAAM,kBAAkB;AACtC,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,SAAS,QAAQ,MAAM;AAChC,SAASC,SAAS,QAAQ,aAAa;;AAEvC;AACA,OAAO,KAAKC,KAAK,MAAM,SAAS;AAChC,OAAO,KAAKC,MAAM,MAAM,UAAU;;AAElC;AACA;AACA;AACA;AACA,MAAMC,WAAW,GAAG;EAClB,GAAGrB,YAAY;EACf,GAAGC,IAAI;EACP,GAAGC,MAAM;EACT,GAAGC,MAAM;EACT,GAAGC,EAAE;EACL,GAAGE,IAAI;EACP,GAAGE,IAAI;EACP,GAAGC,IAAI;EACP,GAAGC,MAAM;EACT,GAAGC,KAAK;EACR,GAAGC,MAAM;EACT,GAAGC,MAAM;EACT,GAAGC,IAAI;EACP,GAAGC,EAAE;EACL,GAAGI,KAAK;EACR,GAAGC,MAAM;EACTJ,WAAW;EACXC,SAAS;EACTC,SAAS;EACTnB;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMuB,OAAO,GAAGA,CAAA,KAAM;EAC3B;EACAC,MAAM,CAACxB,MAAM,GAAGA,MAAM;;EAEtB;EACAwB,MAAM,CAACC,MAAM,GAAGH,WAAW;;EAE3B;EACA;EACAI,OAAO,CAAC,2BAA2B,CAAC;AACtC,CAAC;;AAED;AACA,IAAIF,MAAM,CAACG,OAAO,IAAI,IAAI,EAAE;EAC1B;EACAH,MAAM,CAACG,OAAO,GAAG,CAAC,CAAC;AACrB;AACA,IAAIH,MAAM,CAACG,OAAO,CAACC,QAAQ,IAAI,IAAI,EAAE;EACnCJ,MAAM,CAACG,OAAO,CAACC,QAAQ,GAAGC,YAAY;AACxC;;AAEA;AACA,eAAeP,WAAW;AAC1B,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,SAASL,WAAW,QAAQ,eAAe;AAC3C,cAAc,UAAU;AACxB,cAAc,MAAM;AACpB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,SAASC,SAAS,QAAQ,MAAM;AAChC,cAAc,kBAAkB;AAChC,cAAc,SAAS;AACvB,cAAc,UAAU;AACxB,SAASG,MAAM,EAAES,eAAe,QAAQ,UAAU;AAClD,SAASX,SAAS,QAAQ,aAAa;AACvC,SAASnB,MAAM,QAAQ,gCAAgC;;AAEvD;AACA+B,MAAM,CAACC,OAAO,GAAGV,WAAW;AAC5BS,MAAM,CAACC,OAAO,CAACC,OAAO,GAAGX,WAAW;AACpCS,MAAM,CAACC,OAAO,CAACT,OAAO,GAAGA,OAAO","ignoreList":[]}
@@ -88,13 +88,15 @@ export class KeyObject {
88
88
  }
89
89
  this.type = type;
90
90
  }
91
-
92
- // static from(key) {
93
- // if (!isCryptoKey(key))
94
- // throw new ERR_INVALID_ARG_TYPE('key', 'CryptoKey', key);
95
- // return key[kKeyObject];
96
- // }
97
-
91
+ static from(key) {
92
+ if (!(key instanceof CryptoKey)) {
93
+ throw new TypeError(`The "key" argument must be an instance of CryptoKey. Received ${typeof key}`);
94
+ }
95
+ return key.keyObject;
96
+ }
97
+ toCryptoKey(algorithm, extractable, keyUsages) {
98
+ return new CryptoKey(this, algorithm, keyUsages, extractable);
99
+ }
98
100
  static createKeyObject(type, key, format, encoding) {
99
101
  if (type !== 'secret' && type !== 'public' && type !== 'private') throw new Error(`invalid KeyObject type: ${type}`);
100
102
  const handle = NitroModules.createHybridObject('KeyObjectHandle');
@@ -1 +1 @@
1
- {"version":3,"names":["Buffer","NitroModules","KeyType","parsePrivateKeyEncoding","parsePublicKeyEncoding","CryptoKey","Symbol","toStringTag","constructor","keyObject","keyAlgorithm","keyUsages","keyExtractable","inspect","_depth","_options","Error","type","extractable","algorithm","usages","KeyObject","export","equals","otherKeyObject","TypeError","handle","keyEquals","handleOrKey","ArrayBuffer","createHybridObject","keyType","PUBLIC","PRIVATE","SECRET","init","createKeyObject","key","format","encoding","undefined","getAsymmetricKeyType","PublicKeyObject","PrivateKeyObject","SecretKeyObject","getAsymmetricKeyDetails","symmetricKeySize","getSymmetricKeySize","options","exportKey","from","AsymmetricKeyObject","asymmetricKeyType","_asymmetricKeyType","asymmetricKeyDetails","_asymmetricKeyDetails","keyDetail","namedCurve","buffer","toString","passphrase","cipher"],"sourceRoot":"../../../src","sources":["keys/classes.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Buffer","NitroModules","KeyType","parsePrivateKeyEncoding","parsePublicKeyEncoding","CryptoKey","Symbol","toStringTag","constructor","keyObject","keyAlgorithm","keyUsages","keyExtractable","inspect","_depth","_options","Error","type","extractable","algorithm","usages","KeyObject","export","equals","otherKeyObject","TypeError","handle","keyEquals","handleOrKey","ArrayBuffer","createHybridObject","keyType","PUBLIC","PRIVATE","SECRET","init","from","key","toCryptoKey","createKeyObject","format","encoding","undefined","getAsymmetricKeyType","PublicKeyObject","PrivateKeyObject","SecretKeyObject","getAsymmetricKeyDetails","symmetricKeySize","getSymmetricKeySize","options","exportKey","AsymmetricKeyObject","asymmetricKeyType","_asymmetricKeyType","asymmetricKeyDetails","_asymmetricKeyDetails","keyDetail","namedCurve","buffer","toString","passphrase","cipher"],"sourceRoot":"../../../src","sources":["keys/classes.ts"],"mappings":"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","ignoreList":[]}
@@ -3,6 +3,8 @@
3
3
  import { ed_generateKeyPair } from '../ed';
4
4
  import { rsa_generateKeyPairNode, rsa_generateKeyPairNodeSync } from '../rsa';
5
5
  import { ec_generateKeyPairNode, ec_generateKeyPairNodeSync } from '../ec';
6
+ import { dsa_generateKeyPairNode, dsa_generateKeyPairNodeSync } from '../dsa';
7
+ import { dh_generateKeyPairNode, dh_generateKeyPairNodeSync } from '../dhKeyPair';
6
8
  import { kEmptyObject, validateFunction } from '../utils';
7
9
  import { parsePrivateKeyEncoding, parsePublicKeyEncoding } from './utils';
8
10
  export const generateKeyPair = (type, options, callback) => {
@@ -89,6 +91,7 @@ function internalGenerateKeyPair(isAsync, type, options, callback) {
89
91
  case 'rsa-pss':
90
92
  case 'dsa':
91
93
  case 'ec':
94
+ case 'dh':
92
95
  break;
93
96
  default:
94
97
  {
@@ -108,6 +111,10 @@ function internalGenerateKeyPair(isAsync, type, options, callback) {
108
111
  result = await rsa_generateKeyPairNode(type, options, encoding);
109
112
  } else if (type === 'ec') {
110
113
  result = await ec_generateKeyPairNode(options, encoding);
114
+ } else if (type === 'dsa') {
115
+ result = await dsa_generateKeyPairNode(options, encoding);
116
+ } else if (type === 'dh') {
117
+ result = await dh_generateKeyPairNode(options, encoding);
111
118
  } else {
112
119
  throw new Error(`Unsupported key type: ${type}`);
113
120
  }
@@ -128,6 +135,10 @@ function internalGenerateKeyPair(isAsync, type, options, callback) {
128
135
  result = rsa_generateKeyPairNodeSync(type, options, encoding);
129
136
  } else if (type === 'ec') {
130
137
  result = ec_generateKeyPairNodeSync(options, encoding);
138
+ } else if (type === 'dsa') {
139
+ result = dsa_generateKeyPairNodeSync(options, encoding);
140
+ } else if (type === 'dh') {
141
+ result = dh_generateKeyPairNodeSync(options, encoding);
131
142
  } else {
132
143
  throw new Error(`Unsupported key type: ${type}`);
133
144
  }
@@ -1 +1 @@
1
- {"version":3,"names":["ed_generateKeyPair","rsa_generateKeyPairNode","rsa_generateKeyPairNodeSync","ec_generateKeyPairNode","ec_generateKeyPairNodeSync","kEmptyObject","validateFunction","parsePrivateKeyEncoding","parsePublicKeyEncoding","generateKeyPair","type","options","callback","internalGenerateKeyPair","generateKeyPairPromise","Promise","resolve","reject","err","publicKey","privateKey","undefined","generateKeyPairSync","parseKeyPairEncoding","keyType","publicKeyEncoding","privateKeyEncoding","publicFormat","publicType","format","Error","privateFormat","privateType","cipher","passphrase","isAsync","encoding","impl","result","error","then"],"sourceRoot":"../../../src","sources":["keys/generateKeyPair.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ed_generateKeyPair","rsa_generateKeyPairNode","rsa_generateKeyPairNodeSync","ec_generateKeyPairNode","ec_generateKeyPairNodeSync","dsa_generateKeyPairNode","dsa_generateKeyPairNodeSync","dh_generateKeyPairNode","dh_generateKeyPairNodeSync","kEmptyObject","validateFunction","parsePrivateKeyEncoding","parsePublicKeyEncoding","generateKeyPair","type","options","callback","internalGenerateKeyPair","generateKeyPairPromise","Promise","resolve","reject","err","publicKey","privateKey","undefined","generateKeyPairSync","parseKeyPairEncoding","keyType","publicKeyEncoding","privateKeyEncoding","publicFormat","publicType","format","Error","privateFormat","privateType","cipher","passphrase","isAsync","encoding","impl","result","error","then"],"sourceRoot":"../../../src","sources":["keys/generateKeyPair.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,OAAO;AAC1C,SAASC,uBAAuB,EAAEC,2BAA2B,QAAQ,QAAQ;AAC7E,SAASC,sBAAsB,EAAEC,0BAA0B,QAAQ,OAAO;AAC1E,SAASC,uBAAuB,EAAEC,2BAA2B,QAAQ,QAAQ;AAC7E,SACEC,sBAAsB,EACtBC,0BAA0B,QACrB,cAAc;AACrB,SACEC,YAAY,EACZC,gBAAgB,QASX,UAAU;AACjB,SAASC,uBAAuB,EAAEC,sBAAsB,QAAQ,SAAS;AAEzE,OAAO,MAAMC,eAAe,GAAGA,CAC7BC,IAAiB,EACjBC,OAA+B,EAC/BC,QAAiC,KACxB;EACTN,gBAAgB,CAACM,QAAQ,CAAC;EAC1BC,uBAAuB,CAAC,IAAI,EAAEH,IAAI,EAAEC,OAAO,EAAEC,QAAQ,CAAC;AACxD,CAAC;;AAED;AACA;AACA,OAAO,MAAME,sBAAsB,GAAGA,CACpCJ,IAAiB,EACjBC,OAA+B,KACW;EAC1C,OAAO,IAAII,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtCR,eAAe,CAACC,IAAI,EAAEC,OAAO,EAAE,CAACO,GAAG,EAAEC,SAAS,EAAEC,UAAU,KAAK;MAC7D,IAAIF,GAAG,EAAE;QACPD,MAAM,CAAC,CAACC,GAAG,EAAEG,SAAS,CAAC,CAAC;MAC1B,CAAC,MAAM;QACLL,OAAO,CAAC,CAACK,SAAS,EAAE;UAAEF,SAAS;UAAEC;QAAW,CAAC,CAAC,CAAC;MACjD;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC;;AAED;;AAMA,OAAO,SAASE,mBAAmBA,CACjCZ,IAAiB,EACjBC,OAAgC,EACjB;EACf,MAAM,CAACO,GAAG,EAAEC,SAAS,EAAEC,UAAU,CAAC,GAAGP,uBAAuB,CAC1D,KAAK,EACLH,IAAI,EACJC,OAAO,EACPU,SACF,CAAE;EAEF,IAAIH,GAAG,EAAE;IACP,MAAMA,GAAG;EACX;EAEA,OAAO;IACLC,SAAS;IACTC;EACF,CAAC;AACH;AAEA,SAASG,oBAAoBA,CAC3BC,OAAe,EACfb,OAA+B,GAAGN,YAAY,EAC5B;EAClB,MAAM;IAAEoB,iBAAiB;IAAEC;EAAmB,CAAC,GAAGf,OAAO;EAEzD,IAAIgB,YAAY,EAAEC,UAAU;EAC5B,IAAIH,iBAAiB,IAAI,IAAI,EAAE;IAC7BE,YAAY,GAAGC,UAAU,GAAG,CAAC,CAAC;EAChC,CAAC,MAAM,IAAI,OAAOH,iBAAiB,KAAK,QAAQ,EAAE;IAChD,CAAC;MAAEI,MAAM,EAAEF,YAAY;MAAEjB,IAAI,EAAEkB;IAAW,CAAC,GAAGpB,sBAAsB,CAClEiB,iBAAiB,EACjBD,OAAO,EACP,mBACF,CAAC;EACH,CAAC,MAAM;IACL,MAAM,IAAIM,KAAK,CACb,4CAA4C,EAC5CL,iBACF,CAAC;EACH;EAEA,IAAIM,aAAa,EAAEC,WAAW,EAAEC,MAAM,EAAEC,UAAU;EAClD,IAAIR,kBAAkB,IAAI,IAAI,EAAE;IAC9BK,aAAa,GAAGC,WAAW,GAAG,CAAC,CAAC;EAClC,CAAC,MAAM,IAAI,OAAON,kBAAkB,KAAK,QAAQ,EAAE;IACjD,CAAC;MACCG,MAAM,EAAEE,aAAa;MACrBrB,IAAI,EAAEsB,WAAW;MACjBC,MAAM;MACNC;IACF,CAAC,GAAG3B,uBAAuB,CACzBmB,kBAAkB,EAClBF,OAAO,EACP,oBACF,CAAC;EACH,CAAC,MAAM;IACL,MAAM,IAAIM,KAAK,CACb,6CAA6C,EAC7CL,iBACF,CAAC;EACH;EAEA,OAAO;IACLE,YAAY;IACZC,UAAU;IACVG,aAAa;IACbC,WAAW;IACXC,MAAM;IACNC;EACF,CAAC;AACH;AAEA,SAASrB,uBAAuBA,CAC9BsB,OAAgB,EAChBzB,IAAiB,EACjBC,OAA2C,EAC3CC,QAA6C,EACf;EAC9B,MAAMwB,QAAQ,GAAGb,oBAAoB,CAACb,IAAI,EAAEC,OAAO,CAAC;EAEpD,QAAQD,IAAI;IACV,KAAK,SAAS;IACd,KAAK,OAAO;IACZ,KAAK,QAAQ;IACb,KAAK,MAAM;MACT,OAAOd,kBAAkB,CAACuC,OAAO,EAAEzB,IAAI,EAAE0B,QAAQ,EAAExB,QAAQ,CAAC;IAC9D,KAAK,KAAK;IACV,KAAK,SAAS;IACd,KAAK,KAAK;IACV,KAAK,IAAI;IACT,KAAK,IAAI;MACP;IACF;MAAS;QACP,MAAMM,GAAG,GAAG,IAAIY,KAAK,CAAC;AAC5B,qCAAqCpB,IAAI;AACzC;AACA;AACA,OAAO,CAAC;QACF,OAAO,CAACQ,GAAG,EAAEG,SAAS,EAAEA,SAAS,CAAC;MACpC;EACF;EAEA,IAAIc,OAAO,EAAE;IACX,MAAME,IAAI,GAAG,MAAAA,CAAA,KAA4C;MACvD,IAAI;QACF,IAAIC,MAAM;QACV,IAAI5B,IAAI,KAAK,KAAK,IAAIA,IAAI,KAAK,SAAS,EAAE;UACxC4B,MAAM,GAAG,MAAMzC,uBAAuB,CAACa,IAAI,EAAEC,OAAO,EAAEyB,QAAQ,CAAC;QACjE,CAAC,MAAM,IAAI1B,IAAI,KAAK,IAAI,EAAE;UACxB4B,MAAM,GAAG,MAAMvC,sBAAsB,CAACY,OAAO,EAAEyB,QAAQ,CAAC;QAC1D,CAAC,MAAM,IAAI1B,IAAI,KAAK,KAAK,EAAE;UACzB4B,MAAM,GAAG,MAAMrC,uBAAuB,CAACU,OAAO,EAAEyB,QAAQ,CAAC;QAC3D,CAAC,MAAM,IAAI1B,IAAI,KAAK,IAAI,EAAE;UACxB4B,MAAM,GAAG,MAAMnC,sBAAsB,CAACQ,OAAO,EAAEyB,QAAQ,CAAC;QAC1D,CAAC,MAAM;UACL,MAAM,IAAIN,KAAK,CAAC,yBAAyBpB,IAAI,EAAE,CAAC;QAClD;QACA,OAAO,CACLW,SAAS,EACTiB,MAAM,CAACnB,SAAS,EAChBmB,MAAM,CAAClB,UAAU,CAClB;MACH,CAAC,CAAC,OAAOmB,KAAK,EAAE;QACd,OAAO,CAACA,KAAK,EAAWlB,SAAS,EAAEA,SAAS,CAAC;MAC/C;IACF,CAAC;IAEDgB,IAAI,CAAC,CAAC,CAACG,IAAI,CAACF,MAAM,IAAI;MACpB,MAAM,CAACpB,GAAG,EAAEC,SAAS,EAAEC,UAAU,CAAC,GAAGkB,MAAM;MAC3C1B,QAAQ,CAAEM,GAAG,EAAEC,SAAS,EAAEC,UAAU,CAAC;IACvC,CAAC,CAAC;IACF;EACF;EAEA,IAAI;IACF,IAAIkB,MAAM;IACV,IAAI5B,IAAI,KAAK,KAAK,IAAIA,IAAI,KAAK,SAAS,EAAE;MACxC4B,MAAM,GAAGxC,2BAA2B,CAACY,IAAI,EAAEC,OAAO,EAAEyB,QAAQ,CAAC;IAC/D,CAAC,MAAM,IAAI1B,IAAI,KAAK,IAAI,EAAE;MACxB4B,MAAM,GAAGtC,0BAA0B,CAACW,OAAO,EAAEyB,QAAQ,CAAC;IACxD,CAAC,MAAM,IAAI1B,IAAI,KAAK,KAAK,EAAE;MACzB4B,MAAM,GAAGpC,2BAA2B,CAACS,OAAO,EAAEyB,QAAQ,CAAC;IACzD,CAAC,MAAM,IAAI1B,IAAI,KAAK,IAAI,EAAE;MACxB4B,MAAM,GAAGlC,0BAA0B,CAACO,OAAO,EAAEyB,QAAQ,CAAC;IACxD,CAAC,MAAM;MACL,MAAM,IAAIN,KAAK,CAAC,yBAAyBpB,IAAI,EAAE,CAAC;IAClD;IACA,OAAO,CACLW,SAAS,EACTiB,MAAM,CAACnB,SAAS,EAChBmB,MAAM,CAAClB,UAAU,CAClB;EACH,CAAC,CAAC,OAAOmB,KAAK,EAAE;IACd,OAAO,CAACA,KAAK,EAAWlB,SAAS,EAAEA,SAAS,CAAC;EAC/C;AACF","ignoreList":[]}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ import { NitroModules } from 'react-native-nitro-modules';
4
+ import { Buffer } from '@craftzdog/react-native-buffer';
5
+ import { binaryLikeToArrayBuffer } from './utils';
6
+ let native;
7
+ function getNative() {
8
+ if (native == null) {
9
+ native = NitroModules.createHybridObject('Prime');
10
+ }
11
+ return native;
12
+ }
13
+ function toOptionalArrayBuffer(value) {
14
+ if (value == null) return undefined;
15
+ if (value instanceof ArrayBuffer) return value;
16
+ return binaryLikeToArrayBuffer(value);
17
+ }
18
+ function bufferToBigInt(buf) {
19
+ let result = 0n;
20
+ for (let i = 0; i < buf.length; i++) {
21
+ result = result << 8n | BigInt(buf[i]);
22
+ }
23
+ return result;
24
+ }
25
+ function bigIntToBuffer(value) {
26
+ if (value === 0n) return new Uint8Array([0]).buffer;
27
+ const hex = value.toString(16);
28
+ const paddedHex = hex.length % 2 ? '0' + hex : hex;
29
+ const bytes = new Uint8Array(paddedHex.length / 2);
30
+ for (let i = 0; i < bytes.length; i++) {
31
+ bytes[i] = parseInt(paddedHex.substring(i * 2, i * 2 + 2), 16);
32
+ }
33
+ return bytes.buffer;
34
+ }
35
+ export function generatePrimeSync(size, options) {
36
+ const safe = options?.safe ?? false;
37
+ const add = toOptionalArrayBuffer(options?.add);
38
+ const rem = toOptionalArrayBuffer(options?.rem);
39
+ const result = Buffer.from(getNative().generatePrimeSync(size, safe, add, rem));
40
+ if (options?.bigint) {
41
+ return bufferToBigInt(result);
42
+ }
43
+ return result;
44
+ }
45
+ export function generatePrime(size, options, callback) {
46
+ if (typeof options === 'function') {
47
+ callback = options;
48
+ options = {};
49
+ }
50
+ const safe = options?.safe ?? false;
51
+ const add = toOptionalArrayBuffer(options?.add);
52
+ const rem = toOptionalArrayBuffer(options?.rem);
53
+ const wantBigint = options?.bigint ?? false;
54
+ getNative().generatePrime(size, safe, add, rem).then(ab => {
55
+ const result = Buffer.from(ab);
56
+ if (wantBigint) {
57
+ callback?.(null, bufferToBigInt(result));
58
+ } else {
59
+ callback?.(null, result);
60
+ }
61
+ }).catch(err => callback?.(err, Buffer.alloc(0)));
62
+ }
63
+ export function checkPrimeSync(candidate, options) {
64
+ const checks = options?.checks ?? 0;
65
+ const buf = typeof candidate === 'bigint' ? bigIntToBuffer(candidate) : binaryLikeToArrayBuffer(candidate);
66
+ return getNative().checkPrimeSync(buf, checks);
67
+ }
68
+ export function checkPrime(candidate, options, callback) {
69
+ if (typeof options === 'function') {
70
+ callback = options;
71
+ options = {};
72
+ }
73
+ const checks = options.checks ?? 0;
74
+ const buf = typeof candidate === 'bigint' ? bigIntToBuffer(candidate) : binaryLikeToArrayBuffer(candidate);
75
+ getNative().checkPrime(buf, checks).then(result => callback?.(null, result)).catch(err => callback?.(err, false));
76
+ }
77
+ //# sourceMappingURL=prime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NitroModules","Buffer","binaryLikeToArrayBuffer","native","getNative","createHybridObject","toOptionalArrayBuffer","value","undefined","ArrayBuffer","bufferToBigInt","buf","result","i","length","BigInt","bigIntToBuffer","Uint8Array","buffer","hex","toString","paddedHex","bytes","parseInt","substring","generatePrimeSync","size","options","safe","add","rem","from","bigint","generatePrime","callback","wantBigint","then","ab","catch","err","alloc","checkPrimeSync","candidate","checks","checkPrime"],"sourceRoot":"../../src","sources":["prime.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=argon2.nitro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/argon2.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=certificate.nitro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/certificate.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=dhKeyPair.nitro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/dhKeyPair.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=dsaKeyPair.nitro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/dsaKeyPair.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=prime.nitro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/prime.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -5,11 +5,12 @@ import { Buffer as SBuffer } from 'safe-buffer';
5
5
  import { KFormatType, KeyEncoding, KeyType } from './utils';
6
6
  import { CryptoKey, KeyObject, PublicKeyObject, PrivateKeyObject, SecretKeyObject } from './keys';
7
7
  import { bufferLikeToArrayBuffer } from './utils/conversion';
8
+ import { argon2Sync } from './argon2';
8
9
  import { lazyDOMException } from './utils/errors';
9
10
  import { normalizeHashName, HashContext } from './utils/hashnames';
10
11
  import { validateMaxBufferLength } from './utils/validation';
11
12
  import { asyncDigest } from './hash';
12
- import { createSecretKey } from './keys';
13
+ import { createSecretKey, createPublicKey } from './keys';
13
14
  import { NitroModules } from 'react-native-nitro-modules';
14
15
  import { pbkdf2DeriveBits } from './pbkdf2';
15
16
  import { ecImportKey, ecdsaSignVerify, ec_generateKeyPair, ecDeriveBits } from './ec';
@@ -20,12 +21,6 @@ import { createSign, createVerify } from './keys/signVerify';
20
21
  import { ed_generateKeyPairWebCrypto, x_generateKeyPairWebCrypto, xDeriveBits, Ed } from './ed';
21
22
  import { mldsa_generateKeyPairWebCrypto } from './mldsa';
22
23
  import { hkdfDeriveBits } from './hkdf';
23
- // import { pbkdf2DeriveBits } from './pbkdf2';
24
- // import { aesCipher, aesGenerateKey, aesImportKey, getAlgorithmName } from './aes';
25
- // import { rsaCipher, rsaExportKey, rsaImportKey, rsaKeyGenerate } from './rsa';
26
- // import { normalizeAlgorithm, type Operation } from './algorithms';
27
- // import { hmacImportKey } from './mac';
28
-
29
24
  // Temporary enums that need to be defined
30
25
  var KWebCryptoKeyFormat = /*#__PURE__*/function (KWebCryptoKeyFormat) {
31
26
  KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatRaw"] = 0] = "kWebCryptoKeyFormatRaw";
@@ -71,15 +66,15 @@ function getAlgorithmName(name, length) {
71
66
  // Placeholder implementations for missing functions
72
67
  function ecExportKey(key, format) {
73
68
  const keyObject = key.keyObject;
74
- if (format === KWebCryptoKeyFormat.kWebCryptoKeyFormatSPKI) {
75
- // Export public key in SPKI format
69
+ if (format === KWebCryptoKeyFormat.kWebCryptoKeyFormatRaw) {
70
+ return bufferLikeToArrayBuffer(keyObject.handle.exportKey());
71
+ } else if (format === KWebCryptoKeyFormat.kWebCryptoKeyFormatSPKI) {
76
72
  const exported = keyObject.export({
77
73
  format: 'der',
78
74
  type: 'spki'
79
75
  });
80
76
  return bufferLikeToArrayBuffer(exported);
81
77
  } else if (format === KWebCryptoKeyFormat.kWebCryptoKeyFormatPKCS8) {
82
- // Export private key in PKCS8 format
83
78
  const exported = keyObject.export({
84
79
  format: 'der',
85
80
  type: 'pkcs8'
@@ -984,6 +979,37 @@ const checkCryptoKeyPairUsages = pair => {
984
979
  }
985
980
  throw lazyDOMException('Usages cannot be empty when creating a key.', 'SyntaxError');
986
981
  };
982
+ function argon2DeriveBits(algorithm, baseKey, length) {
983
+ if (length === 0 || length % 8 !== 0) {
984
+ throw lazyDOMException('Invalid Argon2 derived key length', 'OperationError');
985
+ }
986
+ if (length < 32) {
987
+ throw lazyDOMException('Argon2 derived key length must be at least 32 bits', 'OperationError');
988
+ }
989
+ const {
990
+ nonce,
991
+ parallelism,
992
+ memory,
993
+ passes,
994
+ secretValue,
995
+ associatedData
996
+ } = algorithm;
997
+ const tagLength = length / 8;
998
+ const message = baseKey.keyObject.export();
999
+ const algName = algorithm.name.toLowerCase();
1000
+ const result = argon2Sync(algName, {
1001
+ message,
1002
+ nonce: nonce ?? new Uint8Array(0),
1003
+ parallelism: parallelism ?? 1,
1004
+ tagLength,
1005
+ memory: memory ?? 65536,
1006
+ passes: passes ?? 3,
1007
+ secret: secretValue,
1008
+ associatedData,
1009
+ version: algorithm.version
1010
+ });
1011
+ return bufferLikeToArrayBuffer(result);
1012
+ }
987
1013
 
988
1014
  // Type guard to check if result is CryptoKeyPair
989
1015
  export function isCryptoKeyPair(result) {
@@ -1145,7 +1171,49 @@ const cipherOrWrap = async (mode, algorithm, key, data, op) => {
1145
1171
  return chaCha20Poly1305Cipher(mode, key, data, algorithm);
1146
1172
  }
1147
1173
  };
1174
+ const SUPPORTED_ALGORITHMS = {
1175
+ encrypt: new Set(['RSA-OAEP', 'AES-CTR', 'AES-CBC', 'AES-GCM', 'AES-OCB', 'ChaCha20-Poly1305']),
1176
+ decrypt: new Set(['RSA-OAEP', 'AES-CTR', 'AES-CBC', 'AES-GCM', 'AES-OCB', 'ChaCha20-Poly1305']),
1177
+ sign: new Set(['RSASSA-PKCS1-v1_5', 'RSA-PSS', 'ECDSA', 'HMAC', 'Ed25519', 'Ed448', 'ML-DSA-44', 'ML-DSA-65', 'ML-DSA-87']),
1178
+ verify: new Set(['RSASSA-PKCS1-v1_5', 'RSA-PSS', 'ECDSA', 'HMAC', 'Ed25519', 'Ed448', 'ML-DSA-44', 'ML-DSA-65', 'ML-DSA-87']),
1179
+ digest: new Set(['SHA-1', 'SHA-256', 'SHA-384', 'SHA-512']),
1180
+ generateKey: new Set(['RSASSA-PKCS1-v1_5', 'RSA-PSS', 'RSA-OAEP', 'ECDSA', 'ECDH', 'Ed25519', 'Ed448', 'X25519', 'X448', 'AES-CTR', 'AES-CBC', 'AES-GCM', 'AES-KW', 'AES-OCB', 'ChaCha20-Poly1305', 'HMAC', 'ML-DSA-44', 'ML-DSA-65', 'ML-DSA-87']),
1181
+ importKey: new Set(['RSASSA-PKCS1-v1_5', 'RSA-PSS', 'RSA-OAEP', 'ECDSA', 'ECDH', 'Ed25519', 'Ed448', 'X25519', 'X448', 'AES-CTR', 'AES-CBC', 'AES-GCM', 'AES-KW', 'AES-OCB', 'ChaCha20-Poly1305', 'HMAC', 'HKDF', 'PBKDF2', 'Argon2d', 'Argon2i', 'Argon2id', 'ML-DSA-44', 'ML-DSA-65', 'ML-DSA-87']),
1182
+ exportKey: new Set(['RSASSA-PKCS1-v1_5', 'RSA-PSS', 'RSA-OAEP', 'ECDSA', 'ECDH', 'Ed25519', 'Ed448', 'X25519', 'X448', 'AES-CTR', 'AES-CBC', 'AES-GCM', 'AES-KW', 'AES-OCB', 'ChaCha20-Poly1305', 'HMAC', 'ML-DSA-44', 'ML-DSA-65', 'ML-DSA-87']),
1183
+ deriveBits: new Set(['PBKDF2', 'HKDF', 'ECDH', 'X25519', 'X448', 'Argon2d', 'Argon2i', 'Argon2id']),
1184
+ wrapKey: new Set(['AES-CTR', 'AES-CBC', 'AES-GCM', 'AES-KW', 'AES-OCB', 'ChaCha20-Poly1305', 'RSA-OAEP']),
1185
+ unwrapKey: new Set(['AES-CTR', 'AES-CBC', 'AES-GCM', 'AES-KW', 'AES-OCB', 'ChaCha20-Poly1305', 'RSA-OAEP'])
1186
+ };
1187
+ const ASYMMETRIC_ALGORITHMS = new Set(['RSASSA-PKCS1-v1_5', 'RSA-PSS', 'RSA-OAEP', 'ECDSA', 'ECDH', 'Ed25519', 'Ed448', 'X25519', 'X448', 'ML-DSA-44', 'ML-DSA-65', 'ML-DSA-87']);
1148
1188
  export class Subtle {
1189
+ static supports(operation, algorithm, _lengthOrAdditionalAlgorithm) {
1190
+ let normalizedAlgorithm;
1191
+ try {
1192
+ normalizedAlgorithm = normalizeAlgorithm(algorithm, operation === 'getPublicKey' ? 'exportKey' : operation);
1193
+ } catch {
1194
+ return false;
1195
+ }
1196
+ const name = normalizedAlgorithm.name;
1197
+ if (operation === 'getPublicKey') {
1198
+ return ASYMMETRIC_ALGORITHMS.has(name);
1199
+ }
1200
+ if (operation === 'deriveKey') {
1201
+ // deriveKey decomposes to deriveBits + importKey of additional algorithm
1202
+ if (!SUPPORTED_ALGORITHMS.deriveBits?.has(name)) return false;
1203
+ if (_lengthOrAdditionalAlgorithm != null) {
1204
+ try {
1205
+ const additionalAlg = normalizeAlgorithm(_lengthOrAdditionalAlgorithm, 'importKey');
1206
+ return SUPPORTED_ALGORITHMS.importKey?.has(additionalAlg.name) ?? false;
1207
+ } catch {
1208
+ return false;
1209
+ }
1210
+ }
1211
+ return true;
1212
+ }
1213
+ const supported = SUPPORTED_ALGORITHMS[operation];
1214
+ if (!supported) return false;
1215
+ return supported.has(name);
1216
+ }
1149
1217
  async decrypt(algorithm, key, data) {
1150
1218
  const normalizedAlgorithm = normalizeAlgorithm(algorithm, 'decrypt');
1151
1219
  return cipherOrWrap(CipherOrWrapMode.kWebCryptoCipherDecrypt, normalizedAlgorithm, key, bufferLikeToArrayBuffer(data), 'decrypt');
@@ -1171,6 +1239,10 @@ export class Subtle {
1171
1239
  return ecDeriveBits(algorithm, baseKey, length);
1172
1240
  case 'HKDF':
1173
1241
  return hkdfDeriveBits(algorithm, baseKey, length);
1242
+ case 'Argon2d':
1243
+ case 'Argon2i':
1244
+ case 'Argon2id':
1245
+ return argon2DeriveBits(algorithm, baseKey, length);
1174
1246
  }
1175
1247
  throw new Error(`'subtle.deriveBits()' for ${algorithm.name} is not implemented.`);
1176
1248
  }
@@ -1201,6 +1273,11 @@ export class Subtle {
1201
1273
  case 'HKDF':
1202
1274
  derivedBits = hkdfDeriveBits(algorithm, baseKey, length);
1203
1275
  break;
1276
+ case 'Argon2d':
1277
+ case 'Argon2i':
1278
+ case 'Argon2id':
1279
+ derivedBits = argon2DeriveBits(algorithm, baseKey, length);
1280
+ break;
1204
1281
  default:
1205
1282
  throw new Error(`'subtle.deriveKey()' for ${algorithm.name} is not implemented.`);
1206
1283
  }
@@ -1214,7 +1291,7 @@ export class Subtle {
1214
1291
  }
1215
1292
  async exportKey(format, key) {
1216
1293
  if (!key.extractable) throw new Error('key is not extractable');
1217
- if (format === 'raw-secret') format = 'raw';
1294
+ if (format === 'raw-secret' || format === 'raw-public') format = 'raw';
1218
1295
  switch (format) {
1219
1296
  case 'spki':
1220
1297
  return await exportKeySpki(key);
@@ -1365,8 +1442,18 @@ export class Subtle {
1365
1442
  }
1366
1443
  return result;
1367
1444
  }
1445
+ async getPublicKey(key, keyUsages) {
1446
+ if (key.type === 'secret') {
1447
+ throw lazyDOMException('key must be a private key', 'NotSupportedError');
1448
+ }
1449
+ if (key.type !== 'private') {
1450
+ throw lazyDOMException('key must be a private key', 'InvalidAccessError');
1451
+ }
1452
+ const publicKeyObject = createPublicKey(key.keyObject);
1453
+ return publicKeyObject.toCryptoKey(key.algorithm, true, keyUsages);
1454
+ }
1368
1455
  async importKey(format, data, algorithm, extractable, keyUsages) {
1369
- if (format === 'raw-secret') format = 'raw';
1456
+ if (format === 'raw-secret' || format === 'raw-public') format = 'raw';
1370
1457
  const normalizedAlgorithm = normalizeAlgorithm(algorithm, 'importKey');
1371
1458
  let result;
1372
1459
  switch (normalizedAlgorithm.name) {
@@ -1399,6 +1486,9 @@ export class Subtle {
1399
1486
  result = await aesImportKey(normalizedAlgorithm, format, data, extractable, keyUsages);
1400
1487
  break;
1401
1488
  case 'PBKDF2':
1489
+ case 'Argon2d':
1490
+ case 'Argon2i':
1491
+ case 'Argon2id':
1402
1492
  result = await importGenericSecretKey(normalizedAlgorithm, format, data, extractable, keyUsages);
1403
1493
  break;
1404
1494
  case 'HKDF':