react-native-quick-crypto 1.0.17 → 1.0.19

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.
@@ -1 +1 @@
1
- {"version":3,"file":"blake3.d.ts","sourceRoot":"","sources":["../../src/blake3.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAMpD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,IAAI,CAAiC;IAC7C,OAAO,CAAC,OAAO,CAAC,CAAa;IAC7B,OAAO,CAAC,WAAW,CAAC,CAAS;gBAEjB,IAAI,CAAC,EAAE,aAAa;IA6BhC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,QAAQ,GAAG,IAAI;IAMxD,MAAM,IAAI,MAAM;IAChB,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAClC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAoB9B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAIpC,KAAK,IAAI,IAAI;IAKb,IAAI,IAAI,MAAM;IAUd,MAAM,CAAC,UAAU,IAAI,MAAM;CAK5B;AAED,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAEzD;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,UAAU,CAMzE;yBANe,MAAM;;;AAUtB,eAAO,MAAM,aAAa;;;;CAIzB,CAAC"}
1
+ {"version":3,"file":"blake3.d.ts","sourceRoot":"","sources":["../../src/blake3.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAOpD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,IAAI,CAAiC;IAC7C,OAAO,CAAC,OAAO,CAAC,CAAa;IAC7B,OAAO,CAAC,WAAW,CAAC,CAAS;gBAEjB,IAAI,CAAC,EAAE,aAAa;IA6BhC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,QAAQ,GAAG,IAAI;IAMxD,MAAM,IAAI,MAAM;IAChB,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAClC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAoB9B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAIpC,KAAK,IAAI,IAAI;IAKb,IAAI,IAAI,MAAM;IAUd,MAAM,CAAC,UAAU,IAAI,MAAM;CAK5B;AAED,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAEzD;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,UAAU,CAMzE;yBANe,MAAM;;;AAUtB,eAAO,MAAM,aAAa;;;;CAIzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"diffie-hellman.d.ts","sourceRoot":"","sources":["../../src/diffie-hellman.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAGxD,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAyB;gBAGtC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EACrC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EACpC,QAAQ,CAAC,EAAE,cAAc;IAkC3B,YAAY,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM;IAMxD,aAAa,CACX,cAAc,EAAE,MAAM,GAAG,MAAM,EAC/B,aAAa,CAAC,EAAE,cAAc,EAC9B,cAAc,CAAC,EAAE,cAAc,GAC9B,MAAM,GAAG,MAAM;IAelB,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM;IAMpD,YAAY,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM;IAMxD,YAAY,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM;IAMxD,aAAa,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM;IAMzD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI;IAUzE,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI;IAU3E,IAAI,WAAW,IAAI,MAAM,CAExB;CACF;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EACrC,wBAAwB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EACnD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EACpC,kBAAkB,CAAC,EAAE,MAAM,GAC1B,aAAa,CA6Df;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAOjE;AAED,OAAO,EAAE,gBAAgB,IAAI,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"diffie-hellman.d.ts","sourceRoot":"","sources":["../../src/diffie-hellman.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAIxD,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAyB;gBAGtC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EACrC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EACpC,QAAQ,CAAC,EAAE,cAAc;IA+B3B,YAAY,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM;IAMxD,aAAa,CACX,cAAc,EAAE,MAAM,GAAG,MAAM,EAC/B,aAAa,CAAC,EAAE,cAAc,EAC9B,cAAc,CAAC,EAAE,cAAc,GAC9B,MAAM,GAAG,MAAM;IAelB,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM;IAMpD,YAAY,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM;IAMxD,YAAY,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM;IAMxD,aAAa,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM;IAMzD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI;IAUzE,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI;IAU3E,IAAI,WAAW,IAAI,MAAM,CAExB;CACF;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EACrC,wBAAwB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EACnD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EACpC,kBAAkB,CAAC,EAAE,MAAM,GAC1B,aAAa,CA6Df;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAOjE;AAED,OAAO,EAAE,gBAAgB,IAAI,wBAAwB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ecdh.d.ts","sourceRoot":"","sources":["../../src/ecdh.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAMxD,qBAAa,IAAI;IACf,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA4B;IAC5D,OAAO,CAAC,MAAM,KAAK,gBAAgB,GAMlC;IAED,OAAO,CAAC,OAAO,CAAgB;gBAEnB,SAAS,EAAE,MAAM;IAK7B,YAAY,IAAI,MAAM;IAKtB,aAAa,CACX,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EACtE,aAAa,CAAC,EAAE,cAAc,GAC7B,MAAM;IAgBT,aAAa,IAAI,MAAM;IAIvB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI;IAU3E,YAAY,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM;IAYxD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI;IAUzE,MAAM,CAAC,UAAU,CACf,GAAG,EAAE,MAAM,GAAG,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,cAAc,EAC9B,cAAc,CAAC,EAAE,cAAc,EAC/B,MAAM,CAAC,EAAE,cAAc,GAAG,YAAY,GAAG,QAAQ,GAChD,MAAM,GAAG,MAAM;CAuCnB;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAElD"}
1
+ {"version":3,"file":"ecdh.d.ts","sourceRoot":"","sources":["../../src/ecdh.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAOxD,qBAAa,IAAI;IACf,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA4B;IAC5D,OAAO,CAAC,MAAM,KAAK,gBAAgB,GAMlC;IAED,OAAO,CAAC,OAAO,CAAgB;gBAEnB,SAAS,EAAE,MAAM;IAK7B,YAAY,IAAI,MAAM;IAKtB,aAAa,CACX,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EACtE,aAAa,CAAC,EAAE,cAAc,GAC7B,MAAM;IAgBT,aAAa,IAAI,MAAM;IAIvB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI;IAU3E,YAAY,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM;IAYxD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI;IAUzE,MAAM,CAAC,UAAU,CACf,GAAG,EAAE,MAAM,GAAG,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,cAAc,EAC9B,cAAc,CAAC,EAAE,cAAc,EAC/B,MAAM,CAAC,EAAE,cAAc,GAAG,YAAY,GAAG,QAAQ,GAChD,MAAM,GAAG,MAAM;CAmCnB;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAElD"}
@@ -1 +1 @@
1
- {"version":3,"file":"ed.d.ts","sourceRoot":"","sources":["../../src/ed.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,OAAO,EACL,SAAS,EAIV,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,GAAG,EACH,gBAAgB,EAChB,QAAQ,EACR,eAAe,EAChB,MAAM,SAAS,CAAC;AAWjB,qBAAa,EAAE;IACb,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,SAAS,CAAC;gBAEN,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB;IAO3D;;;;;;;;;;OAUG;IACH,aAAa,CACX,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,MAAM,GAAG,IAAI;IAyBV,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtC,mBAAmB,IAAI,IAAI;IAW3B,YAAY,IAAI,WAAW;IAI3B,aAAa,IAAI,WAAW;IAI5B;;;;;;;;;OASG;IACH,eAAe,CAAC,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,WAAW;IAIvD,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAMvE,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,WAAW;IAMtD,MAAM,CACV,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,UAAU,EACnB,GAAG,CAAC,EAAE,UAAU,GACf,OAAO,CAAC,OAAO,CAAC;IAMnB,UAAU,CACR,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,UAAU,EACnB,GAAG,CAAC,EAAE,UAAU,GACf,OAAO;CAKX;AAGD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,MAAM,GAAG,IAAI,CAaf;AAGD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,uBAAuB,GAAG,SAAS,GAC5C,qBAAqB,GAAG,IAAI,CAgE9B;AAmGD,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,SAAS,GAAG,OAAO,EACzB,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,aAAa,CAAC,CAsDxB;AAED,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,QAAQ,GAAG,MAAM,EACvB,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,aAAa,CAAC,CAsDxB;AAED,wBAAgB,WAAW,CACzB,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,WAAW,CAmCb"}
1
+ {"version":3,"file":"ed.d.ts","sourceRoot":"","sources":["../../src/ed.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,OAAO,EACL,SAAS,EAIV,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,GAAG,EACH,gBAAgB,EAChB,QAAQ,EACR,eAAe,EAChB,MAAM,SAAS,CAAC;AAWjB,qBAAa,EAAE;IACb,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,SAAS,CAAC;gBAEN,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB;IAO3D;;;;;;;;;;OAUG;IACH,aAAa,CACX,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,MAAM,GAAG,IAAI;IA2BV,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtC,mBAAmB,IAAI,IAAI;IAW3B,YAAY,IAAI,WAAW;IAI3B,aAAa,IAAI,WAAW;IAI5B;;;;;;;;;OASG;IACH,eAAe,CAAC,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,WAAW;IAIvD,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAMvE,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,WAAW;IAMtD,MAAM,CACV,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,UAAU,EACnB,GAAG,CAAC,EAAE,UAAU,GACf,OAAO,CAAC,OAAO,CAAC;IAMnB,UAAU,CACR,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,UAAU,EACnB,GAAG,CAAC,EAAE,UAAU,GACf,OAAO;CAKX;AAGD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,MAAM,GAAG,IAAI,CAaf;AAuED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,uBAAuB,GAAG,SAAS,GAC5C,qBAAqB,GAAG,IAAI,CAyC9B;AAmGD,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,SAAS,GAAG,OAAO,EACzB,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,aAAa,CAAC,CAuCxB;AAED,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,QAAQ,GAAG,MAAM,EACvB,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,aAAa,CAAC,CAuCxB;AAED,wBAAgB,WAAW,CACzB,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,WAAW,CAmCb"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-quick-crypto",
3
- "version": "1.0.17",
3
+ "version": "1.0.19",
4
4
  "description": "A fast implementation of Node's `crypto` module written in C/C++ JSI",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
package/src/blake3.ts CHANGED
@@ -3,6 +3,7 @@ import { Buffer } from '@craftzdog/react-native-buffer';
3
3
  import type { Blake3 as NativeBlake3 } from './specs/blake3.nitro';
4
4
  import type { BinaryLike, Encoding } from './utils';
5
5
  import { binaryLikeToArrayBuffer, ab2str } from './utils';
6
+ import { toArrayBuffer } from './utils/conversion';
6
7
 
7
8
  const BLAKE3_KEY_LEN = 32;
8
9
  const BLAKE3_OUT_LEN = 32;
@@ -34,7 +35,7 @@ export class Blake3 {
34
35
  }
35
36
  this.mode = 'keyed';
36
37
  this.keyData = opts.key;
37
- this.native.initKeyed(opts.key.buffer as ArrayBuffer);
38
+ this.native.initKeyed(toArrayBuffer(opts.key));
38
39
  } else if (opts?.context !== undefined) {
39
40
  if (typeof opts.context !== 'string' || opts.context.length === 0) {
40
41
  throw new Error('BLAKE3: context must be a non-empty string');
@@ -2,6 +2,7 @@ import { NitroModules } from 'react-native-nitro-modules';
2
2
  import type { DiffieHellman as DiffieHellmanInterface } from './specs/diffie-hellman.nitro';
3
3
  import { Buffer } from '@craftzdog/react-native-buffer';
4
4
  import { DH_GROUPS } from './dh-groups';
5
+ import { toArrayBuffer } from './utils/conversion';
5
6
 
6
7
  export class DiffieHellman {
7
8
  private _hybrid: DiffieHellmanInterface;
@@ -36,10 +37,7 @@ export class DiffieHellman {
36
37
  genBuf = Buffer.from(generator, encoding as BufferEncoding);
37
38
  }
38
39
 
39
- this._hybrid.init(
40
- primeBuf.buffer as ArrayBuffer,
41
- genBuf.buffer as ArrayBuffer,
42
- );
40
+ this._hybrid.init(toArrayBuffer(primeBuf), toArrayBuffer(genBuf));
43
41
  }
44
42
  }
45
43
 
@@ -62,7 +60,7 @@ export class DiffieHellman {
62
60
  }
63
61
 
64
62
  const secret = Buffer.from(
65
- this._hybrid.computeSecret(keyBuf.buffer as ArrayBuffer),
63
+ this._hybrid.computeSecret(toArrayBuffer(keyBuf)),
66
64
  );
67
65
  if (outputEncoding) return secret.toString(outputEncoding);
68
66
  return secret;
@@ -99,7 +97,7 @@ export class DiffieHellman {
99
97
  } else {
100
98
  keyBuf = Buffer.from(publicKey, encoding);
101
99
  }
102
- this._hybrid.setPublicKey(keyBuf.buffer as ArrayBuffer);
100
+ this._hybrid.setPublicKey(toArrayBuffer(keyBuf));
103
101
  }
104
102
 
105
103
  setPrivateKey(privateKey: Buffer | string, encoding?: BufferEncoding): void {
@@ -109,7 +107,7 @@ export class DiffieHellman {
109
107
  } else {
110
108
  keyBuf = Buffer.from(privateKey, encoding);
111
109
  }
112
- this._hybrid.setPrivateKey(keyBuf.buffer as ArrayBuffer);
110
+ this._hybrid.setPrivateKey(toArrayBuffer(keyBuf));
113
111
  }
114
112
 
115
113
  get verifyError(): number {
package/src/ecdh.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { NitroModules } from 'react-native-nitro-modules';
2
2
  import type { ECDH as ECDHInterface } from './specs/ecdh.nitro';
3
3
  import { Buffer } from '@craftzdog/react-native-buffer';
4
+ import { toArrayBuffer } from './utils/conversion';
4
5
 
5
6
  const POINT_CONVERSION_COMPRESSED = 2;
6
7
  const POINT_CONVERSION_UNCOMPRESSED = 4;
@@ -43,7 +44,7 @@ export class ECDH {
43
44
  }
44
45
 
45
46
  // ECDH.computeSecret in Node.js returns Buffer
46
- const secret = this._hybrid.computeSecret(keyBuf.buffer as ArrayBuffer);
47
+ const secret = this._hybrid.computeSecret(toArrayBuffer(keyBuf));
47
48
  return Buffer.from(secret);
48
49
  }
49
50
 
@@ -58,7 +59,7 @@ export class ECDH {
58
59
  } else {
59
60
  keyBuf = Buffer.from(privateKey, encoding);
60
61
  }
61
- this._hybrid.setPrivateKey(keyBuf.buffer as ArrayBuffer);
62
+ this._hybrid.setPrivateKey(toArrayBuffer(keyBuf));
62
63
  }
63
64
 
64
65
  getPublicKey(encoding?: BufferEncoding): Buffer | string {
@@ -80,7 +81,7 @@ export class ECDH {
80
81
  } else {
81
82
  keyBuf = Buffer.from(publicKey, encoding);
82
83
  }
83
- this._hybrid.setPublicKey(keyBuf.buffer as ArrayBuffer);
84
+ this._hybrid.setPublicKey(toArrayBuffer(keyBuf));
84
85
  }
85
86
 
86
87
  static convertKey(
@@ -116,11 +117,7 @@ export class ECDH {
116
117
  }
117
118
 
118
119
  const result = Buffer.from(
119
- ECDH.convertKeyHybrid.convertKey(
120
- keyBuf.buffer as ArrayBuffer,
121
- curve,
122
- formatNum,
123
- ),
120
+ ECDH.convertKeyHybrid.convertKey(toArrayBuffer(keyBuf), curve, formatNum),
124
121
  );
125
122
 
126
123
  if (outputEncoding) {
package/src/ed.ts CHANGED
@@ -58,9 +58,11 @@ export class Ed {
58
58
  options: DiffieHellmanOptions,
59
59
  callback?: DiffieHellmanCallback,
60
60
  ): Buffer | void {
61
- // extract the private and public keys as ArrayBuffers
62
- const privateKey = toAB(options.privateKey);
63
- const publicKey = toAB(options.publicKey);
61
+ // extract raw key bytes from KeyObject instances
62
+ const privKeyObj = options.privateKey as AsymmetricKeyObject;
63
+ const pubKeyObj = options.publicKey as AsymmetricKeyObject;
64
+ const privateKey = privKeyObj.handle.exportKey();
65
+ const publicKey = pubKeyObj.handle.exportKey();
64
66
 
65
67
  try {
66
68
  const ret = this.native.diffieHellman(privateKey, publicKey);
@@ -178,51 +180,97 @@ export function diffieHellman(
178
180
  return ed.diffieHellman(options, callback);
179
181
  }
180
182
 
183
+ function ed_createKeyObjects(ed: Ed): {
184
+ pub: PublicKeyObject;
185
+ priv: PrivateKeyObjectClass;
186
+ } {
187
+ const publicKeyData = ed.getPublicKey();
188
+ const privateKeyData = ed.getPrivateKey();
189
+ const pub = KeyObject.createKeyObject(
190
+ 'public',
191
+ publicKeyData,
192
+ KFormatType.DER,
193
+ KeyEncoding.SPKI,
194
+ ) as PublicKeyObject;
195
+ const priv = KeyObject.createKeyObject(
196
+ 'private',
197
+ privateKeyData,
198
+ KFormatType.DER,
199
+ KeyEncoding.PKCS8,
200
+ ) as PrivateKeyObjectClass;
201
+ return { pub, priv };
202
+ }
203
+
181
204
  // Node API
205
+ function ed_formatKeyPairOutput(
206
+ ed: Ed,
207
+ encoding: KeyPairGenConfig,
208
+ ): {
209
+ publicKey: PublicKeyObject | string | ArrayBuffer;
210
+ privateKey: PrivateKeyObjectClass | string | ArrayBuffer;
211
+ } {
212
+ const { publicFormat, privateFormat, cipher, passphrase } = encoding;
213
+ const { pub, priv } = ed_createKeyObjects(ed);
214
+
215
+ let publicKey: PublicKeyObject | string | ArrayBuffer;
216
+ let privateKey: PrivateKeyObjectClass | string | ArrayBuffer;
217
+
218
+ if (publicFormat == null || publicFormat === -1) {
219
+ publicKey = pub;
220
+ } else {
221
+ const format =
222
+ publicFormat === KFormatType.PEM ? KFormatType.PEM : KFormatType.DER;
223
+ const exported = pub.handle.exportKey(format, KeyEncoding.SPKI);
224
+ if (format === KFormatType.PEM) {
225
+ publicKey = Buffer.from(new Uint8Array(exported)).toString('utf-8');
226
+ } else {
227
+ publicKey = exported;
228
+ }
229
+ }
230
+
231
+ if (privateFormat == null || privateFormat === -1) {
232
+ privateKey = priv;
233
+ } else {
234
+ const format =
235
+ privateFormat === KFormatType.PEM ? KFormatType.PEM : KFormatType.DER;
236
+ const exported = priv.handle.exportKey(
237
+ format,
238
+ KeyEncoding.PKCS8,
239
+ cipher,
240
+ passphrase,
241
+ );
242
+ if (format === KFormatType.PEM) {
243
+ privateKey = Buffer.from(new Uint8Array(exported)).toString('utf-8');
244
+ } else {
245
+ privateKey = exported;
246
+ }
247
+ }
248
+
249
+ return { publicKey, privateKey };
250
+ }
251
+
182
252
  export function ed_generateKeyPair(
183
253
  isAsync: boolean,
184
254
  type: CFRGKeyPairType,
185
255
  encoding: KeyPairGenConfig,
186
256
  callback: GenerateKeyPairCallback | undefined,
187
257
  ): GenerateKeyPairReturn | void {
188
- const ed = new Ed(type, encoding);
189
-
190
- // Helper to convert keys to proper output format
191
- const formatKeys = (): {
192
- publicKey: string | ArrayBuffer;
193
- privateKey: string | ArrayBuffer;
194
- } => {
195
- const publicKeyRaw = ed.getPublicKey();
196
- const privateKeyRaw = ed.getPrivateKey();
197
-
198
- // Check if PEM format was requested (KFormatType.PEM = 1)
199
- const isPemPublic = encoding.publicFormat === KFormatType.PEM;
200
- const isPemPrivate = encoding.privateFormat === KFormatType.PEM;
201
-
202
- // Convert ArrayBuffer to string for PEM format
203
- const arrayBufferToString = (ab: ArrayBuffer): string => {
204
- return Buffer.from(new Uint8Array(ab)).toString('utf-8');
205
- };
206
-
207
- const publicKey = isPemPublic
208
- ? arrayBufferToString(publicKeyRaw)
209
- : publicKeyRaw;
210
- const privateKey = isPemPrivate
211
- ? arrayBufferToString(privateKeyRaw)
212
- : privateKeyRaw;
213
-
214
- return { publicKey, privateKey };
258
+ const derConfig: KeyPairGenConfig = {
259
+ ...encoding,
260
+ publicFormat: KFormatType.DER,
261
+ publicType: KeyEncoding.SPKI,
262
+ privateFormat: KFormatType.DER,
263
+ privateType: KeyEncoding.PKCS8,
215
264
  };
265
+ const ed = new Ed(type, derConfig);
216
266
 
217
- // Async path
218
267
  if (isAsync) {
219
268
  if (!callback) {
220
- // This should not happen if called from public API
221
269
  throw new Error('A callback is required for async key generation.');
222
270
  }
223
271
  ed.generateKeyPair()
224
272
  .then(() => {
225
- const { publicKey, privateKey } = formatKeys();
273
+ const { publicKey, privateKey } = ed_formatKeyPairOutput(ed, encoding);
226
274
  callback(undefined, publicKey, privateKey);
227
275
  })
228
276
  .catch(err => {
@@ -231,7 +279,6 @@ export function ed_generateKeyPair(
231
279
  return;
232
280
  }
233
281
 
234
- // Sync path
235
282
  let err: Error | undefined;
236
283
  try {
237
284
  ed.generateKeyPairSync();
@@ -241,7 +288,7 @@ export function ed_generateKeyPair(
241
288
 
242
289
  const { publicKey, privateKey } = err
243
290
  ? { publicKey: undefined, privateKey: undefined }
244
- : formatKeys();
291
+ : ed_formatKeyPairOutput(ed, encoding);
245
292
 
246
293
  if (callback) {
247
294
  callback(err, publicKey, privateKey);
@@ -374,29 +421,14 @@ export async function ed_generateKeyPairWebCrypto(
374
421
  await ed.generateKeyPair();
375
422
 
376
423
  const algorithmName = type === 'ed25519' ? 'Ed25519' : 'Ed448';
424
+ const { pub, priv } = ed_createKeyObjects(ed);
377
425
 
378
- const publicKeyData = ed.getPublicKey();
379
- const privateKeyData = ed.getPrivateKey();
380
-
381
- const pub = KeyObject.createKeyObject(
382
- 'public',
383
- publicKeyData,
384
- KFormatType.DER,
385
- KeyEncoding.SPKI,
386
- ) as PublicKeyObject;
387
426
  const publicKey = new CryptoKey(
388
427
  pub,
389
428
  { name: algorithmName } as SubtleAlgorithm,
390
429
  publicUsages,
391
430
  true,
392
431
  );
393
-
394
- const priv = KeyObject.createKeyObject(
395
- 'private',
396
- privateKeyData,
397
- KFormatType.DER,
398
- KeyEncoding.PKCS8,
399
- ) as PrivateKeyObjectClass;
400
432
  const privateKey = new CryptoKey(
401
433
  priv,
402
434
  { name: algorithmName } as SubtleAlgorithm,
@@ -434,29 +466,14 @@ export async function x_generateKeyPairWebCrypto(
434
466
  await ed.generateKeyPair();
435
467
 
436
468
  const algorithmName = type === 'x25519' ? 'X25519' : 'X448';
469
+ const { pub, priv } = ed_createKeyObjects(ed);
437
470
 
438
- const publicKeyData = ed.getPublicKey();
439
- const privateKeyData = ed.getPrivateKey();
440
-
441
- const pub = KeyObject.createKeyObject(
442
- 'public',
443
- publicKeyData,
444
- KFormatType.DER,
445
- KeyEncoding.SPKI,
446
- ) as PublicKeyObject;
447
471
  const publicKey = new CryptoKey(
448
472
  pub,
449
473
  { name: algorithmName } as SubtleAlgorithm,
450
474
  publicUsages,
451
475
  true,
452
476
  );
453
-
454
- const priv = KeyObject.createKeyObject(
455
- 'private',
456
- privateKeyData,
457
- KFormatType.DER,
458
- KeyEncoding.PKCS8,
459
- ) as PrivateKeyObjectClass;
460
477
  const privateKey = new CryptoKey(
461
478
  priv,
462
479
  { name: algorithmName } as SubtleAlgorithm,