@hxa-rn/react-native-quick-crypto 1.1.1 → 1.1.2

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 (58) hide show
  1. package/LICENSE +8 -1
  2. package/README.md +2 -3
  3. package/dist/commonjs/blake3.js +1 -1
  4. package/dist/commonjs/blake3.js.map +1 -1
  5. package/dist/commonjs/cipher.js +1 -1
  6. package/dist/commonjs/cipher.js.map +1 -1
  7. package/dist/commonjs/dhKeyPair.js +1 -1
  8. package/dist/commonjs/dhKeyPair.js.map +1 -1
  9. package/dist/commonjs/diffie-hellman.js +1 -1
  10. package/dist/commonjs/diffie-hellman.js.map +1 -1
  11. package/dist/commonjs/dsa.js +1 -1
  12. package/dist/commonjs/dsa.js.map +1 -1
  13. package/dist/commonjs/ec.js +1 -1
  14. package/dist/commonjs/ec.js.map +1 -1
  15. package/dist/commonjs/ecdh.js +1 -1
  16. package/dist/commonjs/ecdh.js.map +1 -1
  17. package/dist/commonjs/ed.js +1 -1
  18. package/dist/commonjs/ed.js.map +1 -1
  19. package/dist/commonjs/hash.js +1 -1
  20. package/dist/commonjs/hash.js.map +1 -1
  21. package/dist/commonjs/hmac.js +1 -1
  22. package/dist/commonjs/hmac.js.map +1 -1
  23. package/dist/commonjs/index.js +2 -1
  24. package/dist/commonjs/index.js.map +1 -1
  25. package/dist/commonjs/keys/classes.js +1 -1
  26. package/dist/commonjs/keys/classes.js.map +1 -1
  27. package/dist/commonjs/keys/signVerify.js +1 -1
  28. package/dist/commonjs/keys/signVerify.js.map +1 -1
  29. package/dist/commonjs/mldsa.js +1 -1
  30. package/dist/commonjs/mldsa.js.map +1 -1
  31. package/dist/commonjs/mlkem.js +1 -1
  32. package/dist/commonjs/mlkem.js.map +1 -1
  33. package/dist/commonjs/rsa.js +1 -1
  34. package/dist/commonjs/rsa.js.map +1 -1
  35. package/dist/commonjs/x509certificate.js +1 -1
  36. package/dist/commonjs/x509certificate.js.map +1 -1
  37. package/dist/module/blake3.js +1 -1
  38. package/dist/module/cipher.js +1 -1
  39. package/dist/module/dhKeyPair.js +1 -1
  40. package/dist/module/diffie-hellman.js +1 -1
  41. package/dist/module/dsa.js +1 -1
  42. package/dist/module/ec.js +1 -1
  43. package/dist/module/ecdh.js +1 -1
  44. package/dist/module/ed.js +1 -1
  45. package/dist/module/hash.js +1 -1
  46. package/dist/module/hmac.js +1 -1
  47. package/dist/module/keys/classes.js +1 -1
  48. package/dist/module/keys/signVerify.js +1 -1
  49. package/dist/module/mldsa.js +1 -1
  50. package/dist/module/mlkem.js +1 -1
  51. package/dist/module/rsa.js +1 -1
  52. package/dist/module/x509certificate.js +1 -1
  53. package/harmony/quick_crypto/LICENSE +9 -2
  54. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/HybridCipher.cpp +415 -415
  55. package/harmony/quick_crypto/src/main/cpp/cpp/dh/HybridDiffieHellman.cpp +501 -501
  56. package/harmony/quick_crypto/src/main/cpp/cpp/keys/KeyObjectData.cpp +284 -284
  57. package/harmony/quick_crypto.har +0 -0
  58. package/package.json +3 -3
package/LICENSE CHANGED
@@ -1,6 +1,9 @@
1
+ **react-native-quick-crypto**
2
+
1
3
  MIT License
2
4
 
3
- Copyright (c) 2026 hxa-rn
5
+ Copyright (c) 2021 Margelo GmbH
6
+ Modifications Copyright (c) 2026 HarmonyOS X-platform Alliance
4
7
 
5
8
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
9
  of this software and associated documentation files (the "Software"), to deal
@@ -19,3 +22,7 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
22
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
23
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
24
  SOFTWARE.
25
+
26
+ **NodeJS Crypto**
27
+
28
+ See https://github.com/nodejs/node/blob/main/LICENSE
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## 项目介绍
6
6
 
7
- `@hxa-rn/react-native-quick-crypto` 是 `react-native-quick-crypto` 的鸿蒙(OpenHarmony / HarmonyOS)适配包,基于 Nitro Modules 与预编译 OpenSSL,在 RN 鸿蒙运行时提供接近 Node.js `crypto` 的能力。当前版本:`1.1.1`。
7
+ `@hxa-rn/react-native-quick-crypto` 是 `react-native-quick-crypto` 的鸿蒙(OpenHarmony / HarmonyOS)适配包,基于 Nitro Modules 与预编译 OpenSSL,在 RN 鸿蒙运行时提供接近 Node.js `crypto` 的能力。当前版本:`1.1.2`。
8
8
 
9
9
  ## 集成指南
10
10
 
@@ -105,7 +105,6 @@ const bytes = crypto.randomBytes(16);
105
105
  ```bash
106
106
  git clone https://gitcode.com/hxa-rn/react-native-quick-crypto.git
107
107
  cd react-native-quick-crypto
108
- git checkout br_rnoh0.72
109
108
  ```
110
109
 
111
110
  **2. 安装仓库开发依赖**
@@ -114,7 +113,7 @@ git checkout br_rnoh0.72
114
113
  npm install --legacy-peer-deps
115
114
  ```
116
115
 
117
- Example 已改为从 npm 公仓安装 `@hxa-rn/react-native-quick-crypto@1.1.1`,不再使用本地 `file:../xxx.tgz`,运行 Example 不必再执行 `npm pack`。
116
+ Example 已改为从 npm 公仓安装 `@hxa-rn/react-native-quick-crypto@1.1.2`,不再使用本地 `file:../xxx.tgz`,运行 Example 不必再执行 `npm pack`。
118
117
 
119
118
  **3. 进入 example 目录,安装依赖**
120
119
 
@@ -13,7 +13,7 @@ var _utils = require("./utils");
13
13
  var _conversion = require("./utils/conversion");
14
14
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
15
15
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
16
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
16
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
17
17
  const BLAKE3_KEY_LEN = 32;
18
18
  const BLAKE3_OUT_LEN = 32;
19
19
  class Blake3 {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_utils","_conversion","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","BLAKE3_KEY_LEN","BLAKE3_OUT_LEN","Blake3","constructor","opts","native","NitroModules","createHybridObject","key","context","Error","length","mode","keyData","initKeyed","toArrayBuffer","undefined","contextData","initDeriveKey","initHash","update","data","inputEncoding","buffer","binaryLikeToArrayBuffer","digest","encodingOrLength","encoding","result","ab2str","Buffer","from","digestLength","reset","copy","copied","getVersion","exports","createBlake3","blake3","hasher","dkLen","Uint8Array","create","blake3Exports"],"sources":["blake3.ts"],"sourcesContent":["import { NitroModules } from 'react-native-nitro-modules';\r\nimport { Buffer } from '@craftzdog/react-native-buffer';\r\nimport type { Blake3 as NativeBlake3 } from './specs/v1/blake3.nitro';\r\nimport type { BinaryLike, Encoding } from './utils';\r\nimport { binaryLikeToArrayBuffer, ab2str } from './utils';\r\nimport { toArrayBuffer } from './utils/conversion';\r\n\r\nconst BLAKE3_KEY_LEN = 32;\r\nconst BLAKE3_OUT_LEN = 32;\r\n\r\nexport interface Blake3Options {\r\n dkLen?: number;\r\n key?: Uint8Array;\r\n context?: string;\r\n}\r\n\r\nexport class Blake3 {\r\n private native: NativeBlake3;\r\n private mode: 'hash' | 'keyed' | 'deriveKey';\r\n private keyData?: Uint8Array;\r\n private contextData?: string;\r\n\r\n constructor(opts?: Blake3Options) {\r\n this.native = NitroModules.createHybridObject<NativeBlake3>('Blake3');\r\n\r\n if (opts?.key && opts?.context) {\r\n throw new Error(\r\n 'BLAKE3: cannot use both key and context options together',\r\n );\r\n }\r\n\r\n if (opts?.key) {\r\n if (opts.key.length !== BLAKE3_KEY_LEN) {\r\n throw new Error(`BLAKE3: key must be exactly ${BLAKE3_KEY_LEN} bytes`);\r\n }\r\n this.mode = 'keyed';\r\n this.keyData = opts.key;\r\n this.native.initKeyed(toArrayBuffer(opts.key));\r\n } else if (opts?.context !== undefined) {\r\n if (typeof opts.context !== 'string' || opts.context.length === 0) {\r\n throw new Error('BLAKE3: context must be a non-empty string');\r\n }\r\n this.mode = 'deriveKey';\r\n this.contextData = opts.context;\r\n this.native.initDeriveKey(opts.context);\r\n } else {\r\n this.mode = 'hash';\r\n this.native.initHash();\r\n }\r\n }\r\n\r\n update(data: BinaryLike, inputEncoding?: Encoding): this {\r\n const buffer = binaryLikeToArrayBuffer(data, inputEncoding ?? 'utf8');\r\n this.native.update(buffer);\r\n return this;\r\n }\r\n\r\n digest(): Buffer;\r\n digest(encoding: Encoding): string;\r\n digest(length: number): Buffer;\r\n digest(encodingOrLength?: Encoding | number): Buffer | string {\r\n let length: number | undefined;\r\n let encoding: Encoding | undefined;\r\n\r\n if (typeof encodingOrLength === 'number') {\r\n length = encodingOrLength;\r\n } else if (encodingOrLength) {\r\n encoding = encodingOrLength;\r\n }\r\n\r\n const result = this.native.digest(length);\r\n\r\n if (encoding && encoding !== 'buffer') {\r\n return ab2str(result, encoding);\r\n }\r\n\r\n return Buffer.from(result);\r\n }\r\n\r\n digestLength(length: number): Buffer {\r\n return Buffer.from(this.native.digest(length));\r\n }\r\n\r\n reset(): this {\r\n this.native.reset();\r\n return this;\r\n }\r\n\r\n copy(): Blake3 {\r\n const copied = new Blake3();\r\n // Replace the native with a copy\r\n copied.native = this.native.copy() as NativeBlake3;\r\n copied.mode = this.mode;\r\n copied.keyData = this.keyData;\r\n copied.contextData = this.contextData;\r\n return copied;\r\n }\r\n\r\n static getVersion(): string {\r\n const native = NitroModules.createHybridObject<NativeBlake3>('Blake3');\r\n native.initHash();\r\n return native.getVersion();\r\n }\r\n}\r\n\r\nexport function createBlake3(opts?: Blake3Options): Blake3 {\r\n return new Blake3(opts);\r\n}\r\n\r\nexport function blake3(data: BinaryLike, opts?: Blake3Options): Uint8Array {\r\n const hasher = new Blake3(opts);\r\n hasher.update(data);\r\n const length = opts?.dkLen ?? BLAKE3_OUT_LEN;\r\n const result = hasher.digestLength(length);\r\n return new Uint8Array(result);\r\n}\r\n\r\nblake3.create = createBlake3;\r\n\r\nexport const blake3Exports = {\r\n Blake3,\r\n createBlake3,\r\n blake3,\r\n};\r\n"],"mappings":";;;;;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAGA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAAmD,SAAAI,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAEnD,MAAMgB,cAAc,GAAG,EAAE;AACzB,MAAMC,cAAc,GAAG,EAAE;AAQlB,MAAMC,MAAM,CAAC;EAMlBC,WAAWA,CAACC,IAAoB,EAAE;IAAAvB,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAChC,IAAI,CAACwB,MAAM,GAAGC,qCAAY,CAACC,kBAAkB,CAAe,QAAQ,CAAC;IAErE,IAAIH,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEI,GAAG,IAAIJ,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEK,OAAO,EAAE;MAC9B,MAAM,IAAIC,KAAK,CACb,0DACF,CAAC;IACH;IAEA,IAAIN,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEI,GAAG,EAAE;MACb,IAAIJ,IAAI,CAACI,GAAG,CAACG,MAAM,KAAKX,cAAc,EAAE;QACtC,MAAM,IAAIU,KAAK,CAAC,+BAA+BV,cAAc,QAAQ,CAAC;MACxE;MACA,IAAI,CAACY,IAAI,GAAG,OAAO;MACnB,IAAI,CAACC,OAAO,GAAGT,IAAI,CAACI,GAAG;MACvB,IAAI,CAACH,MAAM,CAACS,SAAS,CAAC,IAAAC,yBAAa,EAACX,IAAI,CAACI,GAAG,CAAC,CAAC;IAChD,CAAC,MAAM,IAAI,CAAAJ,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEK,OAAO,MAAKO,SAAS,EAAE;MACtC,IAAI,OAAOZ,IAAI,CAACK,OAAO,KAAK,QAAQ,IAAIL,IAAI,CAACK,OAAO,CAACE,MAAM,KAAK,CAAC,EAAE;QACjE,MAAM,IAAID,KAAK,CAAC,4CAA4C,CAAC;MAC/D;MACA,IAAI,CAACE,IAAI,GAAG,WAAW;MACvB,IAAI,CAACK,WAAW,GAAGb,IAAI,CAACK,OAAO;MAC/B,IAAI,CAACJ,MAAM,CAACa,aAAa,CAACd,IAAI,CAACK,OAAO,CAAC;IACzC,CAAC,MAAM;MACL,IAAI,CAACG,IAAI,GAAG,MAAM;MAClB,IAAI,CAACP,MAAM,CAACc,QAAQ,CAAC,CAAC;IACxB;EACF;EAEAC,MAAMA,CAACC,IAAgB,EAAEC,aAAwB,EAAQ;IACvD,MAAMC,MAAM,GAAG,IAAAC,8BAAuB,EAACH,IAAI,EAAEC,aAAa,IAAI,MAAM,CAAC;IACrE,IAAI,CAACjB,MAAM,CAACe,MAAM,CAACG,MAAM,CAAC;IAC1B,OAAO,IAAI;EACb;EAKAE,MAAMA,CAACC,gBAAoC,EAAmB;IAC5D,IAAIf,MAA0B;IAC9B,IAAIgB,QAA8B;IAElC,IAAI,OAAOD,gBAAgB,KAAK,QAAQ,EAAE;MACxCf,MAAM,GAAGe,gBAAgB;IAC3B,CAAC,MAAM,IAAIA,gBAAgB,EAAE;MAC3BC,QAAQ,GAAGD,gBAAgB;IAC7B;IAEA,MAAME,MAAM,GAAG,IAAI,CAACvB,MAAM,CAACoB,MAAM,CAACd,MAAM,CAAC;IAEzC,IAAIgB,QAAQ,IAAIA,QAAQ,KAAK,QAAQ,EAAE;MACrC,OAAO,IAAAE,aAAM,EAACD,MAAM,EAAED,QAAQ,CAAC;IACjC;IAEA,OAAOG,yBAAM,CAACC,IAAI,CAACH,MAAM,CAAC;EAC5B;EAEAI,YAAYA,CAACrB,MAAc,EAAU;IACnC,OAAOmB,yBAAM,CAACC,IAAI,CAAC,IAAI,CAAC1B,MAAM,CAACoB,MAAM,CAACd,MAAM,CAAC,CAAC;EAChD;EAEAsB,KAAKA,CAAA,EAAS;IACZ,IAAI,CAAC5B,MAAM,CAAC4B,KAAK,CAAC,CAAC;IACnB,OAAO,IAAI;EACb;EAEAC,IAAIA,CAAA,EAAW;IACb,MAAMC,MAAM,GAAG,IAAIjC,MAAM,CAAC,CAAC;IAC3B;IACAiC,MAAM,CAAC9B,MAAM,GAAG,IAAI,CAACA,MAAM,CAAC6B,IAAI,CAAC,CAAiB;IAClDC,MAAM,CAACvB,IAAI,GAAG,IAAI,CAACA,IAAI;IACvBuB,MAAM,CAACtB,OAAO,GAAG,IAAI,CAACA,OAAO;IAC7BsB,MAAM,CAAClB,WAAW,GAAG,IAAI,CAACA,WAAW;IACrC,OAAOkB,MAAM;EACf;EAEA,OAAOC,UAAUA,CAAA,EAAW;IAC1B,MAAM/B,MAAM,GAAGC,qCAAY,CAACC,kBAAkB,CAAe,QAAQ,CAAC;IACtEF,MAAM,CAACc,QAAQ,CAAC,CAAC;IACjB,OAAOd,MAAM,CAAC+B,UAAU,CAAC,CAAC;EAC5B;AACF;AAACC,OAAA,CAAAnC,MAAA,GAAAA,MAAA;AAEM,SAASoC,YAAYA,CAAClC,IAAoB,EAAU;EACzD,OAAO,IAAIF,MAAM,CAACE,IAAI,CAAC;AACzB;AAEO,SAASmC,MAAMA,CAAClB,IAAgB,EAAEjB,IAAoB,EAAc;EACzE,MAAMoC,MAAM,GAAG,IAAItC,MAAM,CAACE,IAAI,CAAC;EAC/BoC,MAAM,CAACpB,MAAM,CAACC,IAAI,CAAC;EACnB,MAAMV,MAAM,GAAG,CAAAP,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEqC,KAAK,KAAIxC,cAAc;EAC5C,MAAM2B,MAAM,GAAGY,MAAM,CAACR,YAAY,CAACrB,MAAM,CAAC;EAC1C,OAAO,IAAI+B,UAAU,CAACd,MAAM,CAAC;AAC/B;AAEAW,MAAM,CAACI,MAAM,GAAGL,YAAY;AAErB,MAAMM,aAAa,GAAAP,OAAA,CAAAO,aAAA,GAAG;EAC3B1C,MAAM;EACNoC,YAAY;EACZC;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_utils","_conversion","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","BLAKE3_KEY_LEN","BLAKE3_OUT_LEN","Blake3","constructor","opts","native","NitroModules","createHybridObject","key","context","Error","length","mode","keyData","initKeyed","toArrayBuffer","undefined","contextData","initDeriveKey","initHash","update","data","inputEncoding","buffer","binaryLikeToArrayBuffer","digest","encodingOrLength","encoding","result","ab2str","Buffer","from","digestLength","reset","copy","copied","getVersion","exports","createBlake3","blake3","hasher","dkLen","Uint8Array","create","blake3Exports"],"sources":["blake3.ts"],"sourcesContent":["import { NitroModules } from 'react-native-nitro-modules';\r\nimport { Buffer } from '@craftzdog/react-native-buffer';\r\nimport type { Blake3 as NativeBlake3 } from './specs/v1/blake3.nitro';\r\nimport type { BinaryLike, Encoding } from './utils';\r\nimport { binaryLikeToArrayBuffer, ab2str } from './utils';\r\nimport { toArrayBuffer } from './utils/conversion';\r\n\r\nconst BLAKE3_KEY_LEN = 32;\r\nconst BLAKE3_OUT_LEN = 32;\r\n\r\nexport interface Blake3Options {\r\n dkLen?: number;\r\n key?: Uint8Array;\r\n context?: string;\r\n}\r\n\r\nexport class Blake3 {\r\n private native: NativeBlake3;\r\n private mode: 'hash' | 'keyed' | 'deriveKey';\r\n private keyData?: Uint8Array;\r\n private contextData?: string;\r\n\r\n constructor(opts?: Blake3Options) {\r\n this.native = NitroModules.createHybridObject<NativeBlake3>('Blake3');\r\n\r\n if (opts?.key && opts?.context) {\r\n throw new Error(\r\n 'BLAKE3: cannot use both key and context options together',\r\n );\r\n }\r\n\r\n if (opts?.key) {\r\n if (opts.key.length !== BLAKE3_KEY_LEN) {\r\n throw new Error(`BLAKE3: key must be exactly ${BLAKE3_KEY_LEN} bytes`);\r\n }\r\n this.mode = 'keyed';\r\n this.keyData = opts.key;\r\n this.native.initKeyed(toArrayBuffer(opts.key));\r\n } else if (opts?.context !== undefined) {\r\n if (typeof opts.context !== 'string' || opts.context.length === 0) {\r\n throw new Error('BLAKE3: context must be a non-empty string');\r\n }\r\n this.mode = 'deriveKey';\r\n this.contextData = opts.context;\r\n this.native.initDeriveKey(opts.context);\r\n } else {\r\n this.mode = 'hash';\r\n this.native.initHash();\r\n }\r\n }\r\n\r\n update(data: BinaryLike, inputEncoding?: Encoding): this {\r\n const buffer = binaryLikeToArrayBuffer(data, inputEncoding ?? 'utf8');\r\n this.native.update(buffer);\r\n return this;\r\n }\r\n\r\n digest(): Buffer;\r\n digest(encoding: Encoding): string;\r\n digest(length: number): Buffer;\r\n digest(encodingOrLength?: Encoding | number): Buffer | string {\r\n let length: number | undefined;\r\n let encoding: Encoding | undefined;\r\n\r\n if (typeof encodingOrLength === 'number') {\r\n length = encodingOrLength;\r\n } else if (encodingOrLength) {\r\n encoding = encodingOrLength;\r\n }\r\n\r\n const result = this.native.digest(length);\r\n\r\n if (encoding && encoding !== 'buffer') {\r\n return ab2str(result, encoding);\r\n }\r\n\r\n return Buffer.from(result);\r\n }\r\n\r\n digestLength(length: number): Buffer {\r\n return Buffer.from(this.native.digest(length));\r\n }\r\n\r\n reset(): this {\r\n this.native.reset();\r\n return this;\r\n }\r\n\r\n copy(): Blake3 {\r\n const copied = new Blake3();\r\n // Replace the native with a copy\r\n copied.native = this.native.copy() as NativeBlake3;\r\n copied.mode = this.mode;\r\n copied.keyData = this.keyData;\r\n copied.contextData = this.contextData;\r\n return copied;\r\n }\r\n\r\n static getVersion(): string {\r\n const native = NitroModules.createHybridObject<NativeBlake3>('Blake3');\r\n native.initHash();\r\n return native.getVersion();\r\n }\r\n}\r\n\r\nexport function createBlake3(opts?: Blake3Options): Blake3 {\r\n return new Blake3(opts);\r\n}\r\n\r\nexport function blake3(data: BinaryLike, opts?: Blake3Options): Uint8Array {\r\n const hasher = new Blake3(opts);\r\n hasher.update(data);\r\n const length = opts?.dkLen ?? BLAKE3_OUT_LEN;\r\n const result = hasher.digestLength(length);\r\n return new Uint8Array(result);\r\n}\r\n\r\nblake3.create = createBlake3;\r\n\r\nexport const blake3Exports = {\r\n Blake3,\r\n createBlake3,\r\n blake3,\r\n};\r\n"],"mappings":"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","ignoreList":[]}
@@ -17,7 +17,7 @@ var _cipher = require("./utils/cipher");
17
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
18
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
19
19
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
20
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // @types/node
20
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); } // @types/node
21
21
  class CipherUtils {
22
22
  static getSupportedCiphers() {
23
23
  return this.native.getSupportedCiphers();
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeNitroModules","require","_readableStream","_interopRequireDefault","_string_decoder","_reactNativeBuffer","_utils","_cipher","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CipherUtils","getSupportedCiphers","native","getCipherInfo","name","keyLength","ivLength","NitroModules","createHybridObject","getCiphers","options","length","undefined","CipherCommon","Stream","Transform","constructor","isCipher","cipherType","cipherKey","iv","streamOptions","transformKeys","key","authTagLen","getUIntOption","factory","createCipher","binaryLikeToArrayBuffer","getDecoder","encoding","normalized","normalizeEncoding","_decoder","StringDecoder","_decoderEncoding","Error","update","data","inputEncoding","outputEncoding","defaultEncoding","getDefaultEncoding","validateEncoding","ArrayBuffer","isView","ret","write","Buffer","from","final","end","_transform","chunk","callback","push","_flush","setAutoPadding","autoPadding","res","setAAD","buffer","plaintextLength","getAuthTag","setAuthTag","tag","Cipheriv","Decipheriv","createDecipheriv","algorithm","createCipheriv","xsalsa20","nonce","output","counter","result","Uint8Array"],"sources":["cipher.ts"],"sourcesContent":["import { NitroModules } from 'react-native-nitro-modules';\r\nimport Stream, { type TransformOptions } from 'readable-stream';\r\nimport { StringDecoder } from 'string_decoder';\r\nimport { Buffer } from '@craftzdog/react-native-buffer';\r\nimport type { BinaryLike, BinaryLikeNode, Encoding } from './utils';\r\nimport type {\r\n CipherCCMOptions,\r\n CipherCCMTypes,\r\n CipherGCMTypes,\r\n CipherGCMOptions,\r\n CipherOCBOptions,\r\n CipherOCBTypes,\r\n} from 'crypto'; // @types/node\r\nimport type {\r\n Cipher as NativeCipher,\r\n CipherFactory,\r\n} from './specs/v1/cipher.nitro';\r\nimport { binaryLikeToArrayBuffer } from './utils';\r\nimport {\r\n getDefaultEncoding,\r\n getUIntOption,\r\n normalizeEncoding,\r\n validateEncoding,\r\n} from './utils/cipher';\r\n\r\nexport type CipherOptions =\r\n | CipherCCMOptions\r\n | CipherOCBOptions\r\n | CipherGCMOptions\r\n | TransformOptions;\r\n\r\nexport interface CipherInfoResult {\r\n name: string;\r\n nid: number;\r\n mode: string;\r\n keyLength: number;\r\n blockSize?: number;\r\n ivLength?: number;\r\n}\r\n\r\nclass CipherUtils {\r\n private static native =\r\n NitroModules.createHybridObject<NativeCipher>('Cipher');\r\n public static getSupportedCiphers(): string[] {\r\n return this.native.getSupportedCiphers();\r\n }\r\n public static getCipherInfo(\r\n name: string,\r\n keyLength?: number,\r\n ivLength?: number,\r\n ): CipherInfoResult | undefined {\r\n return this.native.getCipherInfo(name, keyLength, ivLength);\r\n }\r\n}\r\n\r\nexport function getCiphers(): string[] {\r\n return CipherUtils.getSupportedCiphers();\r\n}\r\n\r\nexport function getCipherInfo(\r\n name: string,\r\n options?: { keyLength?: number; ivLength?: number },\r\n): CipherInfoResult | undefined {\r\n if (typeof name !== 'string' || name.length === 0) return undefined;\r\n return CipherUtils.getCipherInfo(name, options?.keyLength, options?.ivLength);\r\n}\r\n\r\ninterface CipherArgs {\r\n isCipher: boolean;\r\n cipherType: string;\r\n cipherKey: BinaryLikeNode;\r\n iv: BinaryLike;\r\n options?: CipherOptions;\r\n}\r\n\r\nclass CipherCommon extends Stream.Transform {\r\n private native: NativeCipher;\r\n private _decoder: StringDecoder | null = null;\r\n private _decoderEncoding: string | undefined = undefined;\r\n\r\n constructor({ isCipher, cipherType, cipherKey, iv, options }: CipherArgs) {\r\n // Explicitly create TransformOptions for super()\r\n const streamOptions: TransformOptions = {};\r\n if (options) {\r\n // List known TransformOptions keys (adjust if needed)\r\n const transformKeys: Array<keyof TransformOptions> = [\r\n 'readableHighWaterMark',\r\n 'writableHighWaterMark',\r\n 'decodeStrings',\r\n 'defaultEncoding',\r\n 'objectMode',\r\n 'destroy',\r\n 'read',\r\n 'write',\r\n 'writev',\r\n 'final',\r\n 'transform',\r\n 'flush',\r\n // Add any other relevant keys from readable-stream's TransformOptions\r\n ];\r\n for (const key of transformKeys) {\r\n if (key in options) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (streamOptions as any)[key] = (options as any)[key];\r\n }\r\n }\r\n }\r\n super(streamOptions); // Pass filtered options\r\n\r\n const authTagLen: number =\r\n getUIntOption(options ?? {}, 'authTagLength') !== -1\r\n ? getUIntOption(options ?? {}, 'authTagLength')\r\n : 16; // defaults to 16 bytes\r\n\r\n const factory =\r\n NitroModules.createHybridObject<CipherFactory>('CipherFactory');\r\n this.native = factory.createCipher({\r\n isCipher,\r\n cipherType,\r\n cipherKey: binaryLikeToArrayBuffer(cipherKey),\r\n iv: binaryLikeToArrayBuffer(iv),\r\n authTagLen,\r\n });\r\n }\r\n\r\n private getDecoder(encoding: string): StringDecoder {\r\n const normalized = normalizeEncoding(encoding);\r\n if (!this._decoder) {\r\n this._decoder = new StringDecoder(encoding as BufferEncoding);\r\n this._decoderEncoding = normalized;\r\n } else if (this._decoderEncoding !== normalized) {\r\n throw new Error('Cannot change encoding');\r\n }\r\n return this._decoder;\r\n }\r\n\r\n update(data: Buffer): Buffer;\r\n update(data: BinaryLike, inputEncoding?: Encoding): Buffer;\r\n update(\r\n data: BinaryLike,\r\n inputEncoding: Encoding,\r\n outputEncoding: Encoding,\r\n ): string;\r\n update(\r\n data: BinaryLike,\r\n inputEncoding?: Encoding,\r\n outputEncoding?: Encoding,\r\n ): Buffer | string {\r\n const defaultEncoding = getDefaultEncoding();\r\n inputEncoding = inputEncoding ?? defaultEncoding;\r\n outputEncoding = outputEncoding ?? defaultEncoding;\r\n\r\n if (typeof data === 'string') {\r\n validateEncoding(data, inputEncoding);\r\n } else if (!ArrayBuffer.isView(data)) {\r\n throw new Error('Invalid data argument');\r\n }\r\n\r\n const ret = this.native.update(\r\n binaryLikeToArrayBuffer(data, inputEncoding),\r\n );\r\n\r\n if (outputEncoding && outputEncoding !== 'buffer') {\r\n return this.getDecoder(outputEncoding).write(Buffer.from(ret));\r\n }\r\n\r\n return Buffer.from(ret);\r\n }\r\n\r\n final(): Buffer;\r\n final(outputEncoding: BufferEncoding | 'buffer'): string;\r\n final(outputEncoding?: BufferEncoding | 'buffer'): Buffer | string {\r\n const ret = this.native.final();\r\n\r\n if (outputEncoding && outputEncoding !== 'buffer') {\r\n return this.getDecoder(outputEncoding).end(Buffer.from(ret));\r\n }\r\n\r\n return Buffer.from(ret);\r\n }\r\n\r\n _transform(\r\n chunk: BinaryLike,\r\n encoding: BufferEncoding,\r\n callback: () => void,\r\n ) {\r\n this.push(this.update(chunk, normalizeEncoding(encoding)));\r\n callback();\r\n }\r\n\r\n _flush(callback: () => void) {\r\n this.push(this.final());\r\n callback();\r\n }\r\n\r\n public setAutoPadding(autoPadding?: boolean): this {\r\n const res = this.native.setAutoPadding(!!autoPadding);\r\n if (!res) {\r\n throw new Error('setAutoPadding failed');\r\n }\r\n return this;\r\n }\r\n\r\n public setAAD(\r\n buffer: Buffer,\r\n options?: {\r\n plaintextLength: number;\r\n },\r\n ): this {\r\n // Check if native parts are initialized\r\n if (!this.native || typeof this.native.setAAD !== 'function') {\r\n throw new Error('Cipher native object or setAAD method not initialized.');\r\n }\r\n const res = this.native.setAAD(buffer.buffer, options?.plaintextLength);\r\n if (!res) {\r\n throw new Error('setAAD failed (native call returned false)');\r\n }\r\n return this;\r\n }\r\n\r\n public getAuthTag(): Buffer {\r\n return Buffer.from(this.native.getAuthTag());\r\n }\r\n\r\n public setAuthTag(tag: Buffer): this {\r\n const res = this.native.setAuthTag(binaryLikeToArrayBuffer(tag));\r\n if (!res) {\r\n throw new Error('setAuthTag failed');\r\n }\r\n return this;\r\n }\r\n\r\n public getSupportedCiphers(): string[] {\r\n return this.native.getSupportedCiphers();\r\n }\r\n}\r\n\r\nclass Cipheriv extends CipherCommon {\r\n constructor(\r\n cipherType: string,\r\n cipherKey: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options?: CipherOptions,\r\n ) {\r\n super({\r\n isCipher: true,\r\n cipherType,\r\n cipherKey: binaryLikeToArrayBuffer(cipherKey),\r\n iv: binaryLikeToArrayBuffer(iv),\r\n options,\r\n });\r\n }\r\n}\r\n\r\nexport type Cipher = Cipheriv;\r\n\r\nclass Decipheriv extends CipherCommon {\r\n constructor(\r\n cipherType: string,\r\n cipherKey: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options?: CipherOptions,\r\n ) {\r\n super({\r\n isCipher: false,\r\n cipherType,\r\n cipherKey: binaryLikeToArrayBuffer(cipherKey),\r\n iv: binaryLikeToArrayBuffer(iv),\r\n options,\r\n });\r\n }\r\n}\r\n\r\nexport type Decipher = Decipheriv;\r\n\r\nexport function createDecipheriv(\r\n algorithm: CipherCCMTypes,\r\n key: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options: CipherCCMOptions,\r\n): Decipher;\r\nexport function createDecipheriv(\r\n algorithm: CipherOCBTypes,\r\n key: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options: CipherOCBOptions,\r\n): Decipher;\r\nexport function createDecipheriv(\r\n algorithm: CipherGCMTypes,\r\n key: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options?: CipherGCMOptions,\r\n): Decipher;\r\nexport function createDecipheriv(\r\n algorithm: string,\r\n key: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options?: TransformOptions,\r\n): Decipher;\r\nexport function createDecipheriv(\r\n algorithm: string,\r\n key: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options?: CipherOptions,\r\n): Decipher {\r\n return new Decipheriv(algorithm, key, iv, options);\r\n}\r\n\r\nexport function createCipheriv(\r\n algorithm: CipherCCMTypes,\r\n key: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options: CipherCCMOptions,\r\n): Cipher;\r\nexport function createCipheriv(\r\n algorithm: CipherOCBTypes,\r\n key: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options: CipherOCBOptions,\r\n): Cipher;\r\nexport function createCipheriv(\r\n algorithm: CipherGCMTypes,\r\n key: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options?: CipherGCMOptions,\r\n): Cipher;\r\nexport function createCipheriv(\r\n algorithm: string,\r\n key: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options?: TransformOptions,\r\n): Cipher;\r\nexport function createCipheriv(\r\n algorithm: string,\r\n key: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options?: CipherOptions,\r\n): Cipher {\r\n return new Cipheriv(algorithm, key, iv, options);\r\n}\r\n\r\n/**\r\n * xsalsa20 stream encryption with @noble/ciphers compatible API\r\n *\r\n * @param key - 32 bytes\r\n * @param nonce - 24 bytes\r\n * @param data - data to encrypt\r\n * @param output - unused\r\n * @param counter - unused\r\n * @returns encrypted data\r\n */\r\nexport function xsalsa20(\r\n key: Uint8Array,\r\n nonce: Uint8Array,\r\n data: Uint8Array,\r\n // @ts-ignore haven't implemented this part of @noble/ciphers API\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n output?: Uint8Array | undefined,\r\n // @ts-ignore haven't implemented this part of @noble/ciphers API\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n counter?: number,\r\n): Uint8Array {\r\n const factory =\r\n NitroModules.createHybridObject<CipherFactory>('CipherFactory');\r\n const native = factory.createCipher({\r\n isCipher: true,\r\n cipherType: 'xsalsa20',\r\n cipherKey: binaryLikeToArrayBuffer(key),\r\n iv: binaryLikeToArrayBuffer(nonce),\r\n });\r\n const result = native.update(binaryLikeToArrayBuffer(data));\r\n return new Uint8Array(result);\r\n}\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeNitroModules","require","_readableStream","_interopRequireDefault","_string_decoder","_reactNativeBuffer","_utils","_cipher","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CipherUtils","getSupportedCiphers","native","getCipherInfo","name","keyLength","ivLength","NitroModules","createHybridObject","getCiphers","options","length","undefined","CipherCommon","Stream","Transform","constructor","isCipher","cipherType","cipherKey","iv","streamOptions","transformKeys","key","authTagLen","getUIntOption","factory","createCipher","binaryLikeToArrayBuffer","getDecoder","encoding","normalized","normalizeEncoding","_decoder","StringDecoder","_decoderEncoding","Error","update","data","inputEncoding","outputEncoding","defaultEncoding","getDefaultEncoding","validateEncoding","ArrayBuffer","isView","ret","write","Buffer","from","final","end","_transform","chunk","callback","push","_flush","setAutoPadding","autoPadding","res","setAAD","buffer","plaintextLength","getAuthTag","setAuthTag","tag","Cipheriv","Decipheriv","createDecipheriv","algorithm","createCipheriv","xsalsa20","nonce","output","counter","result","Uint8Array"],"sources":["cipher.ts"],"sourcesContent":["import { NitroModules } from 'react-native-nitro-modules';\r\nimport Stream, { type TransformOptions } from 'readable-stream';\r\nimport { StringDecoder } from 'string_decoder';\r\nimport { Buffer } from '@craftzdog/react-native-buffer';\r\nimport type { BinaryLike, BinaryLikeNode, Encoding } from './utils';\r\nimport type {\r\n CipherCCMOptions,\r\n CipherCCMTypes,\r\n CipherGCMTypes,\r\n CipherGCMOptions,\r\n CipherOCBOptions,\r\n CipherOCBTypes,\r\n} from 'crypto'; // @types/node\r\nimport type {\r\n Cipher as NativeCipher,\r\n CipherFactory,\r\n} from './specs/v1/cipher.nitro';\r\nimport { binaryLikeToArrayBuffer } from './utils';\r\nimport {\r\n getDefaultEncoding,\r\n getUIntOption,\r\n normalizeEncoding,\r\n validateEncoding,\r\n} from './utils/cipher';\r\n\r\nexport type CipherOptions =\r\n | CipherCCMOptions\r\n | CipherOCBOptions\r\n | CipherGCMOptions\r\n | TransformOptions;\r\n\r\nexport interface CipherInfoResult {\r\n name: string;\r\n nid: number;\r\n mode: string;\r\n keyLength: number;\r\n blockSize?: number;\r\n ivLength?: number;\r\n}\r\n\r\nclass CipherUtils {\r\n private static native =\r\n NitroModules.createHybridObject<NativeCipher>('Cipher');\r\n public static getSupportedCiphers(): string[] {\r\n return this.native.getSupportedCiphers();\r\n }\r\n public static getCipherInfo(\r\n name: string,\r\n keyLength?: number,\r\n ivLength?: number,\r\n ): CipherInfoResult | undefined {\r\n return this.native.getCipherInfo(name, keyLength, ivLength);\r\n }\r\n}\r\n\r\nexport function getCiphers(): string[] {\r\n return CipherUtils.getSupportedCiphers();\r\n}\r\n\r\nexport function getCipherInfo(\r\n name: string,\r\n options?: { keyLength?: number; ivLength?: number },\r\n): CipherInfoResult | undefined {\r\n if (typeof name !== 'string' || name.length === 0) return undefined;\r\n return CipherUtils.getCipherInfo(name, options?.keyLength, options?.ivLength);\r\n}\r\n\r\ninterface CipherArgs {\r\n isCipher: boolean;\r\n cipherType: string;\r\n cipherKey: BinaryLikeNode;\r\n iv: BinaryLike;\r\n options?: CipherOptions;\r\n}\r\n\r\nclass CipherCommon extends Stream.Transform {\r\n private native: NativeCipher;\r\n private _decoder: StringDecoder | null = null;\r\n private _decoderEncoding: string | undefined = undefined;\r\n\r\n constructor({ isCipher, cipherType, cipherKey, iv, options }: CipherArgs) {\r\n // Explicitly create TransformOptions for super()\r\n const streamOptions: TransformOptions = {};\r\n if (options) {\r\n // List known TransformOptions keys (adjust if needed)\r\n const transformKeys: Array<keyof TransformOptions> = [\r\n 'readableHighWaterMark',\r\n 'writableHighWaterMark',\r\n 'decodeStrings',\r\n 'defaultEncoding',\r\n 'objectMode',\r\n 'destroy',\r\n 'read',\r\n 'write',\r\n 'writev',\r\n 'final',\r\n 'transform',\r\n 'flush',\r\n // Add any other relevant keys from readable-stream's TransformOptions\r\n ];\r\n for (const key of transformKeys) {\r\n if (key in options) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (streamOptions as any)[key] = (options as any)[key];\r\n }\r\n }\r\n }\r\n super(streamOptions); // Pass filtered options\r\n\r\n const authTagLen: number =\r\n getUIntOption(options ?? {}, 'authTagLength') !== -1\r\n ? getUIntOption(options ?? {}, 'authTagLength')\r\n : 16; // defaults to 16 bytes\r\n\r\n const factory =\r\n NitroModules.createHybridObject<CipherFactory>('CipherFactory');\r\n this.native = factory.createCipher({\r\n isCipher,\r\n cipherType,\r\n cipherKey: binaryLikeToArrayBuffer(cipherKey),\r\n iv: binaryLikeToArrayBuffer(iv),\r\n authTagLen,\r\n });\r\n }\r\n\r\n private getDecoder(encoding: string): StringDecoder {\r\n const normalized = normalizeEncoding(encoding);\r\n if (!this._decoder) {\r\n this._decoder = new StringDecoder(encoding as BufferEncoding);\r\n this._decoderEncoding = normalized;\r\n } else if (this._decoderEncoding !== normalized) {\r\n throw new Error('Cannot change encoding');\r\n }\r\n return this._decoder;\r\n }\r\n\r\n update(data: Buffer): Buffer;\r\n update(data: BinaryLike, inputEncoding?: Encoding): Buffer;\r\n update(\r\n data: BinaryLike,\r\n inputEncoding: Encoding,\r\n outputEncoding: Encoding,\r\n ): string;\r\n update(\r\n data: BinaryLike,\r\n inputEncoding?: Encoding,\r\n outputEncoding?: Encoding,\r\n ): Buffer | string {\r\n const defaultEncoding = getDefaultEncoding();\r\n inputEncoding = inputEncoding ?? defaultEncoding;\r\n outputEncoding = outputEncoding ?? defaultEncoding;\r\n\r\n if (typeof data === 'string') {\r\n validateEncoding(data, inputEncoding);\r\n } else if (!ArrayBuffer.isView(data)) {\r\n throw new Error('Invalid data argument');\r\n }\r\n\r\n const ret = this.native.update(\r\n binaryLikeToArrayBuffer(data, inputEncoding),\r\n );\r\n\r\n if (outputEncoding && outputEncoding !== 'buffer') {\r\n return this.getDecoder(outputEncoding).write(Buffer.from(ret));\r\n }\r\n\r\n return Buffer.from(ret);\r\n }\r\n\r\n final(): Buffer;\r\n final(outputEncoding: BufferEncoding | 'buffer'): string;\r\n final(outputEncoding?: BufferEncoding | 'buffer'): Buffer | string {\r\n const ret = this.native.final();\r\n\r\n if (outputEncoding && outputEncoding !== 'buffer') {\r\n return this.getDecoder(outputEncoding).end(Buffer.from(ret));\r\n }\r\n\r\n return Buffer.from(ret);\r\n }\r\n\r\n _transform(\r\n chunk: BinaryLike,\r\n encoding: BufferEncoding,\r\n callback: () => void,\r\n ) {\r\n this.push(this.update(chunk, normalizeEncoding(encoding)));\r\n callback();\r\n }\r\n\r\n _flush(callback: () => void) {\r\n this.push(this.final());\r\n callback();\r\n }\r\n\r\n public setAutoPadding(autoPadding?: boolean): this {\r\n const res = this.native.setAutoPadding(!!autoPadding);\r\n if (!res) {\r\n throw new Error('setAutoPadding failed');\r\n }\r\n return this;\r\n }\r\n\r\n public setAAD(\r\n buffer: Buffer,\r\n options?: {\r\n plaintextLength: number;\r\n },\r\n ): this {\r\n // Check if native parts are initialized\r\n if (!this.native || typeof this.native.setAAD !== 'function') {\r\n throw new Error('Cipher native object or setAAD method not initialized.');\r\n }\r\n const res = this.native.setAAD(buffer.buffer, options?.plaintextLength);\r\n if (!res) {\r\n throw new Error('setAAD failed (native call returned false)');\r\n }\r\n return this;\r\n }\r\n\r\n public getAuthTag(): Buffer {\r\n return Buffer.from(this.native.getAuthTag());\r\n }\r\n\r\n public setAuthTag(tag: Buffer): this {\r\n const res = this.native.setAuthTag(binaryLikeToArrayBuffer(tag));\r\n if (!res) {\r\n throw new Error('setAuthTag failed');\r\n }\r\n return this;\r\n }\r\n\r\n public getSupportedCiphers(): string[] {\r\n return this.native.getSupportedCiphers();\r\n }\r\n}\r\n\r\nclass Cipheriv extends CipherCommon {\r\n constructor(\r\n cipherType: string,\r\n cipherKey: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options?: CipherOptions,\r\n ) {\r\n super({\r\n isCipher: true,\r\n cipherType,\r\n cipherKey: binaryLikeToArrayBuffer(cipherKey),\r\n iv: binaryLikeToArrayBuffer(iv),\r\n options,\r\n });\r\n }\r\n}\r\n\r\nexport type Cipher = Cipheriv;\r\n\r\nclass Decipheriv extends CipherCommon {\r\n constructor(\r\n cipherType: string,\r\n cipherKey: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options?: CipherOptions,\r\n ) {\r\n super({\r\n isCipher: false,\r\n cipherType,\r\n cipherKey: binaryLikeToArrayBuffer(cipherKey),\r\n iv: binaryLikeToArrayBuffer(iv),\r\n options,\r\n });\r\n }\r\n}\r\n\r\nexport type Decipher = Decipheriv;\r\n\r\nexport function createDecipheriv(\r\n algorithm: CipherCCMTypes,\r\n key: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options: CipherCCMOptions,\r\n): Decipher;\r\nexport function createDecipheriv(\r\n algorithm: CipherOCBTypes,\r\n key: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options: CipherOCBOptions,\r\n): Decipher;\r\nexport function createDecipheriv(\r\n algorithm: CipherGCMTypes,\r\n key: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options?: CipherGCMOptions,\r\n): Decipher;\r\nexport function createDecipheriv(\r\n algorithm: string,\r\n key: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options?: TransformOptions,\r\n): Decipher;\r\nexport function createDecipheriv(\r\n algorithm: string,\r\n key: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options?: CipherOptions,\r\n): Decipher {\r\n return new Decipheriv(algorithm, key, iv, options);\r\n}\r\n\r\nexport function createCipheriv(\r\n algorithm: CipherCCMTypes,\r\n key: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options: CipherCCMOptions,\r\n): Cipher;\r\nexport function createCipheriv(\r\n algorithm: CipherOCBTypes,\r\n key: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options: CipherOCBOptions,\r\n): Cipher;\r\nexport function createCipheriv(\r\n algorithm: CipherGCMTypes,\r\n key: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options?: CipherGCMOptions,\r\n): Cipher;\r\nexport function createCipheriv(\r\n algorithm: string,\r\n key: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options?: TransformOptions,\r\n): Cipher;\r\nexport function createCipheriv(\r\n algorithm: string,\r\n key: BinaryLikeNode,\r\n iv: BinaryLike,\r\n options?: CipherOptions,\r\n): Cipher {\r\n return new Cipheriv(algorithm, key, iv, options);\r\n}\r\n\r\n/**\r\n * xsalsa20 stream encryption with @noble/ciphers compatible API\r\n *\r\n * @param key - 32 bytes\r\n * @param nonce - 24 bytes\r\n * @param data - data to encrypt\r\n * @param output - unused\r\n * @param counter - unused\r\n * @returns encrypted data\r\n */\r\nexport function xsalsa20(\r\n key: Uint8Array,\r\n nonce: Uint8Array,\r\n data: Uint8Array,\r\n // @ts-ignore haven't implemented this part of @noble/ciphers API\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n output?: Uint8Array | undefined,\r\n // @ts-ignore haven't implemented this part of @noble/ciphers API\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n counter?: number,\r\n): Uint8Array {\r\n const factory =\r\n NitroModules.createHybridObject<CipherFactory>('CipherFactory');\r\n const native = factory.createCipher({\r\n isCipher: true,\r\n cipherType: 'xsalsa20',\r\n cipherKey: binaryLikeToArrayBuffer(key),\r\n iv: binaryLikeToArrayBuffer(nonce),\r\n });\r\n const result = native.update(binaryLikeToArrayBuffer(data));\r\n return new Uint8Array(result);\r\n}\r\n"],"mappings":"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","ignoreList":[]}
@@ -13,7 +13,7 @@ var _utils = require("./utils");
13
13
  var _dhGroups = require("./dh-groups");
14
14
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
15
15
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
16
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
16
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
17
17
  class DhKeyPairGen {
18
18
  constructor(options) {
19
19
  _defineProperty(this, "native", void 0);
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_classes","_utils","_dhGroups","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DhKeyPairGen","constructor","options","native","NitroModules","createHybridObject","groupName","prime","primeLength","generator","group","DH_GROUPS","Error","primeBuf","Buffer","from","setPrime","buffer","slice","byteOffset","byteLength","gen","parseInt","setGenerator","setPrimeLength","generateKeyPair","generateKeyPairSync","exports","dh_prepareKeyGenParams","dh_formatKeyPairOutput","dh","encoding","publicFormat","privateFormat","cipher","passphrase","publicKeyData","getPublicKey","privateKeyData","getPrivateKey","pub","KeyObject","createKeyObject","KFormatType","DER","KeyEncoding","SPKI","priv","PKCS8","publicKey","privateKey","format","PEM","exported","handle","exportKey","Uint8Array","toString","dh_generateKeyPairNode","dh_generateKeyPairNodeSync"],"sources":["dhKeyPair.ts"],"sourcesContent":["import { NitroModules } from 'react-native-nitro-modules';\r\nimport { Buffer } from '@craftzdog/react-native-buffer';\r\nimport { KeyObject, PublicKeyObject, PrivateKeyObject } from './keys/classes';\r\nimport type { DhKeyPair } from './specs/v1/dhKeyPair.nitro';\r\nimport type { GenerateKeyPairOptions, KeyPairGenConfig } from './utils/types';\r\nimport { KFormatType, KeyEncoding } from './utils';\r\nimport { DH_GROUPS } from './dh-groups';\r\n\r\nexport class DhKeyPairGen {\r\n native: DhKeyPair;\r\n\r\n constructor(options: GenerateKeyPairOptions) {\r\n this.native = NitroModules.createHybridObject<DhKeyPair>('DhKeyPair');\r\n\r\n const { groupName, prime, primeLength, generator } = options;\r\n\r\n if (groupName) {\r\n // Resolve named group to prime + generator\r\n const group = DH_GROUPS[groupName];\r\n if (!group) {\r\n throw new Error(`Unknown DH group: ${groupName}`);\r\n }\r\n const primeBuf = Buffer.from(group.prime, 'hex');\r\n this.native.setPrime(\r\n primeBuf.buffer.slice(\r\n primeBuf.byteOffset,\r\n primeBuf.byteOffset + primeBuf.byteLength,\r\n ) as ArrayBuffer,\r\n );\r\n const gen = parseInt(group.generator, 16);\r\n this.native.setGenerator(gen);\r\n } else if (prime) {\r\n // Custom prime as Buffer\r\n const primeBuf = Buffer.from(prime);\r\n this.native.setPrime(\r\n primeBuf.buffer.slice(\r\n primeBuf.byteOffset,\r\n primeBuf.byteOffset + primeBuf.byteLength,\r\n ) as ArrayBuffer,\r\n );\r\n this.native.setGenerator(generator ?? 2);\r\n } else if (primeLength) {\r\n this.native.setPrimeLength(primeLength);\r\n this.native.setGenerator(generator ?? 2);\r\n } else {\r\n throw new Error(\r\n 'DH key generation requires one of: groupName, prime, or primeLength',\r\n );\r\n }\r\n }\r\n\r\n async generateKeyPair(): Promise<void> {\r\n await this.native.generateKeyPair();\r\n }\r\n\r\n generateKeyPairSync(): void {\r\n this.native.generateKeyPairSync();\r\n }\r\n}\r\n\r\nfunction dh_prepareKeyGenParams(\r\n options: GenerateKeyPairOptions | undefined,\r\n): DhKeyPairGen {\r\n if (!options) {\r\n throw new Error('Options are required for DH key generation');\r\n }\r\n\r\n return new DhKeyPairGen(options);\r\n}\r\n\r\nfunction dh_formatKeyPairOutput(\r\n dh: DhKeyPairGen,\r\n encoding: KeyPairGenConfig,\r\n): {\r\n publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n} {\r\n const { publicFormat, privateFormat, cipher, passphrase } = encoding;\r\n\r\n const publicKeyData = dh.native.getPublicKey();\r\n const privateKeyData = dh.native.getPrivateKey();\r\n\r\n const pub = KeyObject.createKeyObject(\r\n 'public',\r\n publicKeyData,\r\n KFormatType.DER,\r\n KeyEncoding.SPKI,\r\n ) as PublicKeyObject;\r\n\r\n const priv = KeyObject.createKeyObject(\r\n 'private',\r\n privateKeyData,\r\n KFormatType.DER,\r\n KeyEncoding.PKCS8,\r\n ) as PrivateKeyObject;\r\n\r\n let publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n let privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n\r\n if (publicFormat === -1) {\r\n publicKey = pub;\r\n } else {\r\n const format =\r\n publicFormat === KFormatType.PEM ? KFormatType.PEM : KFormatType.DER;\r\n const exported = pub.handle.exportKey(format, KeyEncoding.SPKI);\r\n if (format === KFormatType.PEM) {\r\n publicKey = Buffer.from(new Uint8Array(exported)).toString('utf-8');\r\n } else {\r\n publicKey = exported;\r\n }\r\n }\r\n\r\n if (privateFormat === -1) {\r\n privateKey = priv;\r\n } else {\r\n const format =\r\n privateFormat === KFormatType.PEM ? KFormatType.PEM : KFormatType.DER;\r\n const exported = priv.handle.exportKey(\r\n format,\r\n KeyEncoding.PKCS8,\r\n cipher,\r\n passphrase,\r\n );\r\n if (format === KFormatType.PEM) {\r\n privateKey = Buffer.from(new Uint8Array(exported)).toString('utf-8');\r\n } else {\r\n privateKey = exported;\r\n }\r\n }\r\n\r\n return { publicKey, privateKey };\r\n}\r\n\r\nexport async function dh_generateKeyPairNode(\r\n options: GenerateKeyPairOptions | undefined,\r\n encoding: KeyPairGenConfig,\r\n): Promise<{\r\n publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n}> {\r\n const dh = dh_prepareKeyGenParams(options);\r\n await dh.generateKeyPair();\r\n return dh_formatKeyPairOutput(dh, encoding);\r\n}\r\n\r\nexport function dh_generateKeyPairNodeSync(\r\n options: GenerateKeyPairOptions | undefined,\r\n encoding: KeyPairGenConfig,\r\n): {\r\n publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n} {\r\n const dh = dh_prepareKeyGenParams(options);\r\n dh.generateKeyPairSync();\r\n return dh_formatKeyPairOutput(dh, encoding);\r\n}\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_classes","_utils","_dhGroups","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DhKeyPairGen","constructor","options","native","NitroModules","createHybridObject","groupName","prime","primeLength","generator","group","DH_GROUPS","Error","primeBuf","Buffer","from","setPrime","buffer","slice","byteOffset","byteLength","gen","parseInt","setGenerator","setPrimeLength","generateKeyPair","generateKeyPairSync","exports","dh_prepareKeyGenParams","dh_formatKeyPairOutput","dh","encoding","publicFormat","privateFormat","cipher","passphrase","publicKeyData","getPublicKey","privateKeyData","getPrivateKey","pub","KeyObject","createKeyObject","KFormatType","DER","KeyEncoding","SPKI","priv","PKCS8","publicKey","privateKey","format","PEM","exported","handle","exportKey","Uint8Array","toString","dh_generateKeyPairNode","dh_generateKeyPairNodeSync"],"sources":["dhKeyPair.ts"],"sourcesContent":["import { NitroModules } from 'react-native-nitro-modules';\r\nimport { Buffer } from '@craftzdog/react-native-buffer';\r\nimport { KeyObject, PublicKeyObject, PrivateKeyObject } from './keys/classes';\r\nimport type { DhKeyPair } from './specs/v1/dhKeyPair.nitro';\r\nimport type { GenerateKeyPairOptions, KeyPairGenConfig } from './utils/types';\r\nimport { KFormatType, KeyEncoding } from './utils';\r\nimport { DH_GROUPS } from './dh-groups';\r\n\r\nexport class DhKeyPairGen {\r\n native: DhKeyPair;\r\n\r\n constructor(options: GenerateKeyPairOptions) {\r\n this.native = NitroModules.createHybridObject<DhKeyPair>('DhKeyPair');\r\n\r\n const { groupName, prime, primeLength, generator } = options;\r\n\r\n if (groupName) {\r\n // Resolve named group to prime + generator\r\n const group = DH_GROUPS[groupName];\r\n if (!group) {\r\n throw new Error(`Unknown DH group: ${groupName}`);\r\n }\r\n const primeBuf = Buffer.from(group.prime, 'hex');\r\n this.native.setPrime(\r\n primeBuf.buffer.slice(\r\n primeBuf.byteOffset,\r\n primeBuf.byteOffset + primeBuf.byteLength,\r\n ) as ArrayBuffer,\r\n );\r\n const gen = parseInt(group.generator, 16);\r\n this.native.setGenerator(gen);\r\n } else if (prime) {\r\n // Custom prime as Buffer\r\n const primeBuf = Buffer.from(prime);\r\n this.native.setPrime(\r\n primeBuf.buffer.slice(\r\n primeBuf.byteOffset,\r\n primeBuf.byteOffset + primeBuf.byteLength,\r\n ) as ArrayBuffer,\r\n );\r\n this.native.setGenerator(generator ?? 2);\r\n } else if (primeLength) {\r\n this.native.setPrimeLength(primeLength);\r\n this.native.setGenerator(generator ?? 2);\r\n } else {\r\n throw new Error(\r\n 'DH key generation requires one of: groupName, prime, or primeLength',\r\n );\r\n }\r\n }\r\n\r\n async generateKeyPair(): Promise<void> {\r\n await this.native.generateKeyPair();\r\n }\r\n\r\n generateKeyPairSync(): void {\r\n this.native.generateKeyPairSync();\r\n }\r\n}\r\n\r\nfunction dh_prepareKeyGenParams(\r\n options: GenerateKeyPairOptions | undefined,\r\n): DhKeyPairGen {\r\n if (!options) {\r\n throw new Error('Options are required for DH key generation');\r\n }\r\n\r\n return new DhKeyPairGen(options);\r\n}\r\n\r\nfunction dh_formatKeyPairOutput(\r\n dh: DhKeyPairGen,\r\n encoding: KeyPairGenConfig,\r\n): {\r\n publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n} {\r\n const { publicFormat, privateFormat, cipher, passphrase } = encoding;\r\n\r\n const publicKeyData = dh.native.getPublicKey();\r\n const privateKeyData = dh.native.getPrivateKey();\r\n\r\n const pub = KeyObject.createKeyObject(\r\n 'public',\r\n publicKeyData,\r\n KFormatType.DER,\r\n KeyEncoding.SPKI,\r\n ) as PublicKeyObject;\r\n\r\n const priv = KeyObject.createKeyObject(\r\n 'private',\r\n privateKeyData,\r\n KFormatType.DER,\r\n KeyEncoding.PKCS8,\r\n ) as PrivateKeyObject;\r\n\r\n let publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n let privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n\r\n if (publicFormat === -1) {\r\n publicKey = pub;\r\n } else {\r\n const format =\r\n publicFormat === KFormatType.PEM ? KFormatType.PEM : KFormatType.DER;\r\n const exported = pub.handle.exportKey(format, KeyEncoding.SPKI);\r\n if (format === KFormatType.PEM) {\r\n publicKey = Buffer.from(new Uint8Array(exported)).toString('utf-8');\r\n } else {\r\n publicKey = exported;\r\n }\r\n }\r\n\r\n if (privateFormat === -1) {\r\n privateKey = priv;\r\n } else {\r\n const format =\r\n privateFormat === KFormatType.PEM ? KFormatType.PEM : KFormatType.DER;\r\n const exported = priv.handle.exportKey(\r\n format,\r\n KeyEncoding.PKCS8,\r\n cipher,\r\n passphrase,\r\n );\r\n if (format === KFormatType.PEM) {\r\n privateKey = Buffer.from(new Uint8Array(exported)).toString('utf-8');\r\n } else {\r\n privateKey = exported;\r\n }\r\n }\r\n\r\n return { publicKey, privateKey };\r\n}\r\n\r\nexport async function dh_generateKeyPairNode(\r\n options: GenerateKeyPairOptions | undefined,\r\n encoding: KeyPairGenConfig,\r\n): Promise<{\r\n publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n}> {\r\n const dh = dh_prepareKeyGenParams(options);\r\n await dh.generateKeyPair();\r\n return dh_formatKeyPairOutput(dh, encoding);\r\n}\r\n\r\nexport function dh_generateKeyPairNodeSync(\r\n options: GenerateKeyPairOptions | undefined,\r\n encoding: KeyPairGenConfig,\r\n): {\r\n publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n} {\r\n const dh = dh_prepareKeyGenParams(options);\r\n dh.generateKeyPairSync();\r\n return dh_formatKeyPairOutput(dh, encoding);\r\n}\r\n"],"mappings":"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","ignoreList":[]}
@@ -12,7 +12,7 @@ var _dhGroups = require("./dh-groups");
12
12
  var _conversion = require("./utils/conversion");
13
13
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
14
14
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
15
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
15
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
16
16
  class DiffieHellman {
17
17
  constructor(sizeOrPrime, generator, encoding) {
18
18
  _defineProperty(this, "_hybrid", void 0);
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_dhGroups","_conversion","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DiffieHellman","constructor","sizeOrPrime","generator","encoding","_hybrid","NitroModules","createHybridObject","gen","initWithSize","primeBuf","Buffer","isBuffer","from","genBuf","undefined","init","toArrayBuffer","generateKeys","keys","toString","computeSecret","otherPublicKey","inputEncoding","outputEncoding","keyBuf","secret","getPrime","p","getGenerator","g","getPublicKey","getPrivateKey","setPublicKey","publicKey","setPrivateKey","privateKey","verifyError","getVerifyError","exports","createDiffieHellman","primeOrSize","primeEncodingOrGenerator","_generatorEncoding","prime","generatorVal","getDiffieHellman","groupName","group","DH_GROUPS","Error"],"sources":["diffie-hellman.ts"],"sourcesContent":["import { NitroModules } from 'react-native-nitro-modules';\r\nimport type { DiffieHellman as DiffieHellmanInterface } from './specs/v1/diffie-hellman.nitro';\r\nimport { Buffer } from '@craftzdog/react-native-buffer';\r\nimport { DH_GROUPS } from './dh-groups';\r\nimport { toArrayBuffer } from './utils/conversion';\r\n\r\nexport class DiffieHellman {\r\n private _hybrid: DiffieHellmanInterface;\r\n\r\n constructor(\r\n sizeOrPrime: number | Buffer | string,\r\n generator?: number | Buffer | string,\r\n encoding?: BufferEncoding,\r\n ) {\r\n this._hybrid =\r\n NitroModules.createHybridObject<DiffieHellmanInterface>('DiffieHellman');\r\n\r\n if (typeof sizeOrPrime === 'number') {\r\n const gen = typeof generator === 'number' ? generator : 2;\r\n this._hybrid.initWithSize(sizeOrPrime, gen);\r\n } else {\r\n let primeBuf: Buffer;\r\n if (Buffer.isBuffer(sizeOrPrime)) {\r\n primeBuf = sizeOrPrime;\r\n } else {\r\n primeBuf = Buffer.from(sizeOrPrime, encoding as BufferEncoding);\r\n }\r\n\r\n let genBuf: Buffer;\r\n if (generator === undefined) {\r\n genBuf = Buffer.from([2]);\r\n } else if (typeof generator === 'number') {\r\n genBuf = Buffer.from([generator]);\r\n } else if (Buffer.isBuffer(generator)) {\r\n genBuf = generator;\r\n } else {\r\n genBuf = Buffer.from(generator, encoding as BufferEncoding);\r\n }\r\n\r\n this._hybrid.init(toArrayBuffer(primeBuf), toArrayBuffer(genBuf));\r\n }\r\n }\r\n\r\n generateKeys(encoding?: BufferEncoding): Buffer | string {\r\n const keys = Buffer.from(this._hybrid.generateKeys());\r\n if (encoding) return keys.toString(encoding);\r\n return keys;\r\n }\r\n\r\n computeSecret(\r\n otherPublicKey: Buffer | string,\r\n inputEncoding?: BufferEncoding,\r\n outputEncoding?: BufferEncoding,\r\n ): Buffer | string {\r\n let keyBuf: Buffer;\r\n if (Buffer.isBuffer(otherPublicKey)) {\r\n keyBuf = otherPublicKey;\r\n } else {\r\n keyBuf = Buffer.from(otherPublicKey, inputEncoding);\r\n }\r\n\r\n const secret = Buffer.from(\r\n this._hybrid.computeSecret(toArrayBuffer(keyBuf)),\r\n );\r\n if (outputEncoding) return secret.toString(outputEncoding);\r\n return secret;\r\n }\r\n\r\n getPrime(encoding?: BufferEncoding): Buffer | string {\r\n const p = Buffer.from(this._hybrid.getPrime());\r\n if (encoding) return p.toString(encoding);\r\n return p;\r\n }\r\n\r\n getGenerator(encoding?: BufferEncoding): Buffer | string {\r\n const g = Buffer.from(this._hybrid.getGenerator());\r\n if (encoding) return g.toString(encoding);\r\n return g;\r\n }\r\n\r\n getPublicKey(encoding?: BufferEncoding): Buffer | string {\r\n const p = Buffer.from(this._hybrid.getPublicKey());\r\n if (encoding) return p.toString(encoding);\r\n return p;\r\n }\r\n\r\n getPrivateKey(encoding?: BufferEncoding): Buffer | string {\r\n const p = Buffer.from(this._hybrid.getPrivateKey());\r\n if (encoding) return p.toString(encoding);\r\n return p;\r\n }\r\n\r\n setPublicKey(publicKey: Buffer | string, encoding?: BufferEncoding): void {\r\n let keyBuf: Buffer;\r\n if (Buffer.isBuffer(publicKey)) {\r\n keyBuf = publicKey;\r\n } else {\r\n keyBuf = Buffer.from(publicKey, encoding);\r\n }\r\n this._hybrid.setPublicKey(toArrayBuffer(keyBuf));\r\n }\r\n\r\n setPrivateKey(privateKey: Buffer | string, encoding?: BufferEncoding): void {\r\n let keyBuf: Buffer;\r\n if (Buffer.isBuffer(privateKey)) {\r\n keyBuf = privateKey;\r\n } else {\r\n keyBuf = Buffer.from(privateKey, encoding);\r\n }\r\n this._hybrid.setPrivateKey(toArrayBuffer(keyBuf));\r\n }\r\n\r\n get verifyError(): number {\r\n return this._hybrid.getVerifyError();\r\n }\r\n}\r\n\r\nexport function createDiffieHellman(\r\n primeOrSize: number | string | Buffer,\r\n primeEncodingOrGenerator?: string | number | Buffer,\r\n generator?: number | string | Buffer,\r\n _generatorEncoding?: string,\r\n): DiffieHellman {\r\n if (typeof primeOrSize === 'number') {\r\n const gen =\r\n typeof primeEncodingOrGenerator === 'number'\r\n ? primeEncodingOrGenerator\r\n : 2;\r\n return new DiffieHellman(primeOrSize, gen);\r\n }\r\n\r\n // Standardize arguments for String/Buffer prime\r\n // createDiffieHellman(prime, [encoding], [generator], [encoding])\r\n\r\n let prime: Buffer;\r\n let generatorVal: Buffer | number | undefined;\r\n\r\n if (Buffer.isBuffer(primeOrSize)) {\r\n prime = primeOrSize;\r\n // 2nd arg is generator if not string (encoding)\r\n if (\r\n primeEncodingOrGenerator !== undefined &&\r\n typeof primeEncodingOrGenerator !== 'string'\r\n ) {\r\n generatorVal = primeEncodingOrGenerator as Buffer | number;\r\n } else if (generator !== undefined) {\r\n generatorVal = generator as Buffer | number;\r\n } else {\r\n generatorVal = 2;\r\n }\r\n } else {\r\n // String prime\r\n const encoding =\r\n typeof primeEncodingOrGenerator === 'string'\r\n ? primeEncodingOrGenerator\r\n : 'utf8'; // Defaulting to utf8 or hex? Node default is 'binary' usually but utf8 safer for TS. Node docs say: \"If no encoding is specified, 'binary' is used.\"\r\n // We'll trust user passed encoding if it's a string, otherwise handle it.\r\n prime = Buffer.from(primeOrSize, encoding as BufferEncoding);\r\n\r\n // Generator handling in this case\r\n if (generator !== undefined) {\r\n generatorVal = generator as Buffer | number;\r\n if (typeof generator === 'string' && _generatorEncoding) {\r\n generatorVal = Buffer.from(\r\n generator,\r\n _generatorEncoding as BufferEncoding,\r\n );\r\n } else if (typeof generator === 'string') {\r\n // string with no encoding, assume same as prime? or utf8?\r\n generatorVal = Buffer.from(generator, encoding as BufferEncoding);\r\n }\r\n } else if (\r\n typeof primeEncodingOrGenerator !== 'string' &&\r\n primeEncodingOrGenerator !== undefined\r\n ) {\r\n // 2nd arg was generator\r\n generatorVal = primeEncodingOrGenerator as number;\r\n } else {\r\n generatorVal = 2;\r\n }\r\n }\r\n\r\n return new DiffieHellman(prime, generatorVal);\r\n}\r\n\r\nexport function getDiffieHellman(groupName: string): DiffieHellman {\r\n const group = DH_GROUPS[groupName];\r\n if (!group) {\r\n throw new Error(`Unknown group: ${groupName}`);\r\n }\r\n // group.prime and group.generator are hex strings\r\n return new DiffieHellman(group.prime, group.generator, 'hex');\r\n}\r\n\r\nexport { getDiffieHellman as createDiffieHellmanGroup };\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_dhGroups","_conversion","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DiffieHellman","constructor","sizeOrPrime","generator","encoding","_hybrid","NitroModules","createHybridObject","gen","initWithSize","primeBuf","Buffer","isBuffer","from","genBuf","undefined","init","toArrayBuffer","generateKeys","keys","toString","computeSecret","otherPublicKey","inputEncoding","outputEncoding","keyBuf","secret","getPrime","p","getGenerator","g","getPublicKey","getPrivateKey","setPublicKey","publicKey","setPrivateKey","privateKey","verifyError","getVerifyError","exports","createDiffieHellman","primeOrSize","primeEncodingOrGenerator","_generatorEncoding","prime","generatorVal","getDiffieHellman","groupName","group","DH_GROUPS","Error"],"sources":["diffie-hellman.ts"],"sourcesContent":["import { NitroModules } from 'react-native-nitro-modules';\r\nimport type { DiffieHellman as DiffieHellmanInterface } from './specs/v1/diffie-hellman.nitro';\r\nimport { Buffer } from '@craftzdog/react-native-buffer';\r\nimport { DH_GROUPS } from './dh-groups';\r\nimport { toArrayBuffer } from './utils/conversion';\r\n\r\nexport class DiffieHellman {\r\n private _hybrid: DiffieHellmanInterface;\r\n\r\n constructor(\r\n sizeOrPrime: number | Buffer | string,\r\n generator?: number | Buffer | string,\r\n encoding?: BufferEncoding,\r\n ) {\r\n this._hybrid =\r\n NitroModules.createHybridObject<DiffieHellmanInterface>('DiffieHellman');\r\n\r\n if (typeof sizeOrPrime === 'number') {\r\n const gen = typeof generator === 'number' ? generator : 2;\r\n this._hybrid.initWithSize(sizeOrPrime, gen);\r\n } else {\r\n let primeBuf: Buffer;\r\n if (Buffer.isBuffer(sizeOrPrime)) {\r\n primeBuf = sizeOrPrime;\r\n } else {\r\n primeBuf = Buffer.from(sizeOrPrime, encoding as BufferEncoding);\r\n }\r\n\r\n let genBuf: Buffer;\r\n if (generator === undefined) {\r\n genBuf = Buffer.from([2]);\r\n } else if (typeof generator === 'number') {\r\n genBuf = Buffer.from([generator]);\r\n } else if (Buffer.isBuffer(generator)) {\r\n genBuf = generator;\r\n } else {\r\n genBuf = Buffer.from(generator, encoding as BufferEncoding);\r\n }\r\n\r\n this._hybrid.init(toArrayBuffer(primeBuf), toArrayBuffer(genBuf));\r\n }\r\n }\r\n\r\n generateKeys(encoding?: BufferEncoding): Buffer | string {\r\n const keys = Buffer.from(this._hybrid.generateKeys());\r\n if (encoding) return keys.toString(encoding);\r\n return keys;\r\n }\r\n\r\n computeSecret(\r\n otherPublicKey: Buffer | string,\r\n inputEncoding?: BufferEncoding,\r\n outputEncoding?: BufferEncoding,\r\n ): Buffer | string {\r\n let keyBuf: Buffer;\r\n if (Buffer.isBuffer(otherPublicKey)) {\r\n keyBuf = otherPublicKey;\r\n } else {\r\n keyBuf = Buffer.from(otherPublicKey, inputEncoding);\r\n }\r\n\r\n const secret = Buffer.from(\r\n this._hybrid.computeSecret(toArrayBuffer(keyBuf)),\r\n );\r\n if (outputEncoding) return secret.toString(outputEncoding);\r\n return secret;\r\n }\r\n\r\n getPrime(encoding?: BufferEncoding): Buffer | string {\r\n const p = Buffer.from(this._hybrid.getPrime());\r\n if (encoding) return p.toString(encoding);\r\n return p;\r\n }\r\n\r\n getGenerator(encoding?: BufferEncoding): Buffer | string {\r\n const g = Buffer.from(this._hybrid.getGenerator());\r\n if (encoding) return g.toString(encoding);\r\n return g;\r\n }\r\n\r\n getPublicKey(encoding?: BufferEncoding): Buffer | string {\r\n const p = Buffer.from(this._hybrid.getPublicKey());\r\n if (encoding) return p.toString(encoding);\r\n return p;\r\n }\r\n\r\n getPrivateKey(encoding?: BufferEncoding): Buffer | string {\r\n const p = Buffer.from(this._hybrid.getPrivateKey());\r\n if (encoding) return p.toString(encoding);\r\n return p;\r\n }\r\n\r\n setPublicKey(publicKey: Buffer | string, encoding?: BufferEncoding): void {\r\n let keyBuf: Buffer;\r\n if (Buffer.isBuffer(publicKey)) {\r\n keyBuf = publicKey;\r\n } else {\r\n keyBuf = Buffer.from(publicKey, encoding);\r\n }\r\n this._hybrid.setPublicKey(toArrayBuffer(keyBuf));\r\n }\r\n\r\n setPrivateKey(privateKey: Buffer | string, encoding?: BufferEncoding): void {\r\n let keyBuf: Buffer;\r\n if (Buffer.isBuffer(privateKey)) {\r\n keyBuf = privateKey;\r\n } else {\r\n keyBuf = Buffer.from(privateKey, encoding);\r\n }\r\n this._hybrid.setPrivateKey(toArrayBuffer(keyBuf));\r\n }\r\n\r\n get verifyError(): number {\r\n return this._hybrid.getVerifyError();\r\n }\r\n}\r\n\r\nexport function createDiffieHellman(\r\n primeOrSize: number | string | Buffer,\r\n primeEncodingOrGenerator?: string | number | Buffer,\r\n generator?: number | string | Buffer,\r\n _generatorEncoding?: string,\r\n): DiffieHellman {\r\n if (typeof primeOrSize === 'number') {\r\n const gen =\r\n typeof primeEncodingOrGenerator === 'number'\r\n ? primeEncodingOrGenerator\r\n : 2;\r\n return new DiffieHellman(primeOrSize, gen);\r\n }\r\n\r\n // Standardize arguments for String/Buffer prime\r\n // createDiffieHellman(prime, [encoding], [generator], [encoding])\r\n\r\n let prime: Buffer;\r\n let generatorVal: Buffer | number | undefined;\r\n\r\n if (Buffer.isBuffer(primeOrSize)) {\r\n prime = primeOrSize;\r\n // 2nd arg is generator if not string (encoding)\r\n if (\r\n primeEncodingOrGenerator !== undefined &&\r\n typeof primeEncodingOrGenerator !== 'string'\r\n ) {\r\n generatorVal = primeEncodingOrGenerator as Buffer | number;\r\n } else if (generator !== undefined) {\r\n generatorVal = generator as Buffer | number;\r\n } else {\r\n generatorVal = 2;\r\n }\r\n } else {\r\n // String prime\r\n const encoding =\r\n typeof primeEncodingOrGenerator === 'string'\r\n ? primeEncodingOrGenerator\r\n : 'utf8'; // Defaulting to utf8 or hex? Node default is 'binary' usually but utf8 safer for TS. Node docs say: \"If no encoding is specified, 'binary' is used.\"\r\n // We'll trust user passed encoding if it's a string, otherwise handle it.\r\n prime = Buffer.from(primeOrSize, encoding as BufferEncoding);\r\n\r\n // Generator handling in this case\r\n if (generator !== undefined) {\r\n generatorVal = generator as Buffer | number;\r\n if (typeof generator === 'string' && _generatorEncoding) {\r\n generatorVal = Buffer.from(\r\n generator,\r\n _generatorEncoding as BufferEncoding,\r\n );\r\n } else if (typeof generator === 'string') {\r\n // string with no encoding, assume same as prime? or utf8?\r\n generatorVal = Buffer.from(generator, encoding as BufferEncoding);\r\n }\r\n } else if (\r\n typeof primeEncodingOrGenerator !== 'string' &&\r\n primeEncodingOrGenerator !== undefined\r\n ) {\r\n // 2nd arg was generator\r\n generatorVal = primeEncodingOrGenerator as number;\r\n } else {\r\n generatorVal = 2;\r\n }\r\n }\r\n\r\n return new DiffieHellman(prime, generatorVal);\r\n}\r\n\r\nexport function getDiffieHellman(groupName: string): DiffieHellman {\r\n const group = DH_GROUPS[groupName];\r\n if (!group) {\r\n throw new Error(`Unknown group: ${groupName}`);\r\n }\r\n // group.prime and group.generator are hex strings\r\n return new DiffieHellman(group.prime, group.generator, 'hex');\r\n}\r\n\r\nexport { getDiffieHellman as createDiffieHellmanGroup };\r\n"],"mappings":"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","ignoreList":[]}
@@ -12,7 +12,7 @@ var _classes = require("./keys/classes");
12
12
  var _utils = require("./utils");
13
13
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
14
14
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
15
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
15
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
16
16
  class Dsa {
17
17
  constructor(modulusLength, divisorLength) {
18
18
  _defineProperty(this, "native", void 0);
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_classes","_utils","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","Dsa","constructor","modulusLength","divisorLength","native","NitroModules","createHybridObject","setModulusLength","undefined","setDivisorLength","generateKeyPair","generateKeyPairSync","exports","dsa_prepareKeyGenParams","options","Error","dsa_formatKeyPairOutput","dsa","encoding","publicFormat","privateFormat","cipher","passphrase","publicKeyData","getPublicKey","privateKeyData","getPrivateKey","pub","KeyObject","createKeyObject","KFormatType","DER","KeyEncoding","SPKI","priv","PKCS8","publicKey","privateKey","format","PEM","exported","handle","exportKey","Buffer","from","Uint8Array","toString","dsa_generateKeyPairNode","dsa_generateKeyPairNodeSync"],"sources":["dsa.ts"],"sourcesContent":["import { NitroModules } from 'react-native-nitro-modules';\r\nimport { Buffer } from '@craftzdog/react-native-buffer';\r\nimport { KeyObject, PublicKeyObject, PrivateKeyObject } from './keys/classes';\r\nimport type { DsaKeyPair } from './specs/v1/dsaKeyPair.nitro';\r\nimport type { GenerateKeyPairOptions, KeyPairGenConfig } from './utils/types';\r\nimport { KFormatType, KeyEncoding } from './utils';\r\n\r\nexport class Dsa {\r\n native: DsaKeyPair;\r\n\r\n constructor(modulusLength: number, divisorLength?: number) {\r\n this.native = NitroModules.createHybridObject<DsaKeyPair>('DsaKeyPair');\r\n this.native.setModulusLength(modulusLength);\r\n if (divisorLength !== undefined && divisorLength >= 0) {\r\n this.native.setDivisorLength(divisorLength);\r\n }\r\n }\r\n\r\n async generateKeyPair(): Promise<void> {\r\n await this.native.generateKeyPair();\r\n }\r\n\r\n generateKeyPairSync(): void {\r\n this.native.generateKeyPairSync();\r\n }\r\n}\r\n\r\nfunction dsa_prepareKeyGenParams(\r\n options: GenerateKeyPairOptions | undefined,\r\n): Dsa {\r\n if (!options) {\r\n throw new Error('Options are required for DSA key generation');\r\n }\r\n\r\n const { modulusLength, divisorLength } = options;\r\n\r\n if (!modulusLength || modulusLength <= 0) {\r\n throw new Error('Invalid or missing modulusLength for DSA key generation');\r\n }\r\n\r\n return new Dsa(modulusLength, divisorLength);\r\n}\r\n\r\nfunction dsa_formatKeyPairOutput(\r\n dsa: Dsa,\r\n encoding: KeyPairGenConfig,\r\n): {\r\n publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n} {\r\n const { publicFormat, privateFormat, cipher, passphrase } = encoding;\r\n\r\n const publicKeyData = dsa.native.getPublicKey();\r\n const privateKeyData = dsa.native.getPrivateKey();\r\n\r\n const pub = KeyObject.createKeyObject(\r\n 'public',\r\n publicKeyData,\r\n KFormatType.DER,\r\n KeyEncoding.SPKI,\r\n ) as PublicKeyObject;\r\n\r\n const priv = KeyObject.createKeyObject(\r\n 'private',\r\n privateKeyData,\r\n KFormatType.DER,\r\n KeyEncoding.PKCS8,\r\n ) as PrivateKeyObject;\r\n\r\n let publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n let privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n\r\n if (publicFormat === -1) {\r\n publicKey = pub;\r\n } else {\r\n const format =\r\n publicFormat === KFormatType.PEM ? KFormatType.PEM : KFormatType.DER;\r\n const exported = pub.handle.exportKey(format, KeyEncoding.SPKI);\r\n if (format === KFormatType.PEM) {\r\n publicKey = Buffer.from(new Uint8Array(exported)).toString('utf-8');\r\n } else {\r\n publicKey = exported;\r\n }\r\n }\r\n\r\n if (privateFormat === -1) {\r\n privateKey = priv;\r\n } else {\r\n const format =\r\n privateFormat === KFormatType.PEM ? KFormatType.PEM : KFormatType.DER;\r\n const exported = priv.handle.exportKey(\r\n format,\r\n KeyEncoding.PKCS8,\r\n cipher,\r\n passphrase,\r\n );\r\n if (format === KFormatType.PEM) {\r\n privateKey = Buffer.from(new Uint8Array(exported)).toString('utf-8');\r\n } else {\r\n privateKey = exported;\r\n }\r\n }\r\n\r\n return { publicKey, privateKey };\r\n}\r\n\r\nexport async function dsa_generateKeyPairNode(\r\n options: GenerateKeyPairOptions | undefined,\r\n encoding: KeyPairGenConfig,\r\n): Promise<{\r\n publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n}> {\r\n const dsa = dsa_prepareKeyGenParams(options);\r\n await dsa.generateKeyPair();\r\n return dsa_formatKeyPairOutput(dsa, encoding);\r\n}\r\n\r\nexport function dsa_generateKeyPairNodeSync(\r\n options: GenerateKeyPairOptions | undefined,\r\n encoding: KeyPairGenConfig,\r\n): {\r\n publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n} {\r\n const dsa = dsa_prepareKeyGenParams(options);\r\n dsa.generateKeyPairSync();\r\n return dsa_formatKeyPairOutput(dsa, encoding);\r\n}\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_classes","_utils","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","Dsa","constructor","modulusLength","divisorLength","native","NitroModules","createHybridObject","setModulusLength","undefined","setDivisorLength","generateKeyPair","generateKeyPairSync","exports","dsa_prepareKeyGenParams","options","Error","dsa_formatKeyPairOutput","dsa","encoding","publicFormat","privateFormat","cipher","passphrase","publicKeyData","getPublicKey","privateKeyData","getPrivateKey","pub","KeyObject","createKeyObject","KFormatType","DER","KeyEncoding","SPKI","priv","PKCS8","publicKey","privateKey","format","PEM","exported","handle","exportKey","Buffer","from","Uint8Array","toString","dsa_generateKeyPairNode","dsa_generateKeyPairNodeSync"],"sources":["dsa.ts"],"sourcesContent":["import { NitroModules } from 'react-native-nitro-modules';\r\nimport { Buffer } from '@craftzdog/react-native-buffer';\r\nimport { KeyObject, PublicKeyObject, PrivateKeyObject } from './keys/classes';\r\nimport type { DsaKeyPair } from './specs/v1/dsaKeyPair.nitro';\r\nimport type { GenerateKeyPairOptions, KeyPairGenConfig } from './utils/types';\r\nimport { KFormatType, KeyEncoding } from './utils';\r\n\r\nexport class Dsa {\r\n native: DsaKeyPair;\r\n\r\n constructor(modulusLength: number, divisorLength?: number) {\r\n this.native = NitroModules.createHybridObject<DsaKeyPair>('DsaKeyPair');\r\n this.native.setModulusLength(modulusLength);\r\n if (divisorLength !== undefined && divisorLength >= 0) {\r\n this.native.setDivisorLength(divisorLength);\r\n }\r\n }\r\n\r\n async generateKeyPair(): Promise<void> {\r\n await this.native.generateKeyPair();\r\n }\r\n\r\n generateKeyPairSync(): void {\r\n this.native.generateKeyPairSync();\r\n }\r\n}\r\n\r\nfunction dsa_prepareKeyGenParams(\r\n options: GenerateKeyPairOptions | undefined,\r\n): Dsa {\r\n if (!options) {\r\n throw new Error('Options are required for DSA key generation');\r\n }\r\n\r\n const { modulusLength, divisorLength } = options;\r\n\r\n if (!modulusLength || modulusLength <= 0) {\r\n throw new Error('Invalid or missing modulusLength for DSA key generation');\r\n }\r\n\r\n return new Dsa(modulusLength, divisorLength);\r\n}\r\n\r\nfunction dsa_formatKeyPairOutput(\r\n dsa: Dsa,\r\n encoding: KeyPairGenConfig,\r\n): {\r\n publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n} {\r\n const { publicFormat, privateFormat, cipher, passphrase } = encoding;\r\n\r\n const publicKeyData = dsa.native.getPublicKey();\r\n const privateKeyData = dsa.native.getPrivateKey();\r\n\r\n const pub = KeyObject.createKeyObject(\r\n 'public',\r\n publicKeyData,\r\n KFormatType.DER,\r\n KeyEncoding.SPKI,\r\n ) as PublicKeyObject;\r\n\r\n const priv = KeyObject.createKeyObject(\r\n 'private',\r\n privateKeyData,\r\n KFormatType.DER,\r\n KeyEncoding.PKCS8,\r\n ) as PrivateKeyObject;\r\n\r\n let publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n let privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n\r\n if (publicFormat === -1) {\r\n publicKey = pub;\r\n } else {\r\n const format =\r\n publicFormat === KFormatType.PEM ? KFormatType.PEM : KFormatType.DER;\r\n const exported = pub.handle.exportKey(format, KeyEncoding.SPKI);\r\n if (format === KFormatType.PEM) {\r\n publicKey = Buffer.from(new Uint8Array(exported)).toString('utf-8');\r\n } else {\r\n publicKey = exported;\r\n }\r\n }\r\n\r\n if (privateFormat === -1) {\r\n privateKey = priv;\r\n } else {\r\n const format =\r\n privateFormat === KFormatType.PEM ? KFormatType.PEM : KFormatType.DER;\r\n const exported = priv.handle.exportKey(\r\n format,\r\n KeyEncoding.PKCS8,\r\n cipher,\r\n passphrase,\r\n );\r\n if (format === KFormatType.PEM) {\r\n privateKey = Buffer.from(new Uint8Array(exported)).toString('utf-8');\r\n } else {\r\n privateKey = exported;\r\n }\r\n }\r\n\r\n return { publicKey, privateKey };\r\n}\r\n\r\nexport async function dsa_generateKeyPairNode(\r\n options: GenerateKeyPairOptions | undefined,\r\n encoding: KeyPairGenConfig,\r\n): Promise<{\r\n publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n}> {\r\n const dsa = dsa_prepareKeyGenParams(options);\r\n await dsa.generateKeyPair();\r\n return dsa_formatKeyPairOutput(dsa, encoding);\r\n}\r\n\r\nexport function dsa_generateKeyPairNodeSync(\r\n options: GenerateKeyPairOptions | undefined,\r\n encoding: KeyPairGenConfig,\r\n): {\r\n publicKey: PublicKeyObject | Buffer | string | ArrayBuffer;\r\n privateKey: PrivateKeyObject | Buffer | string | ArrayBuffer;\r\n} {\r\n const dsa = dsa_prepareKeyGenParams(options);\r\n dsa.generateKeyPairSync();\r\n return dsa_formatKeyPairOutput(dsa, encoding);\r\n}\r\n"],"mappings":"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","ignoreList":[]}
@@ -18,7 +18,7 @@ var _reactNativeBuffer = require("@craftzdog/react-native-buffer");
18
18
  var _ecdh = require("./ecdh");
19
19
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
20
20
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
21
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
21
+ function _toPrimitive(t, e) { if ("object" != typeof t || !t) return t; var r; if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === e ? String : Number)(t); }
22
22
  class EcUtils {
23
23
  static get native() {
24
24
  if (!this._native) {