react-native-quick-crypto 1.0.15 → 1.0.16

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":"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;AAUjB,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;IAsCV,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,CAKf;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;AAkDD,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;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,5 +1,6 @@
1
1
  import { Stream } from 'readable-stream';
2
2
  import type { TransformOptions } from 'readable-stream';
3
+ import { Buffer } from '@craftzdog/react-native-buffer';
3
4
  import type { BinaryLike, Encoding, BufferLike, SubtleAlgorithm } from './utils';
4
5
  export declare function getHashes(): string[];
5
6
  interface HashOptions extends TransformOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,eAAe,EAChB,MAAM,SAAS,CAAC;AAiBjB,wBAAgB,SAAS,aAExB;AAED,UAAU,WAAY,SAAQ,gBAAgB;IAC5C;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAQD,cAAM,IAAK,SAAQ,MAAM,CAAC,SAAS;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,MAAM,CAAa;IAE3B,OAAO,CAAC,QAAQ;IAehB;;OAEG;IACH,OAAO;IAiBP;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAC9B,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,GAAG,MAAM;IAezD;;;;;;;;;OASG;IACH,MAAM,IAAI,MAAM;IAChB,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAWlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,IAAI,IAAI,IAAI;IACZ,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAYhC;;;OAGG;IACH,iBAAiB,IAAI,MAAM;IAK3B,UAAU,CACR,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,MAAM,IAAI;IAKtB,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI;CAI5B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAMzE;AAID;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GACtB,WAAW,eAAe,EAC1B,MAAM,UAAU,KACf,OAAO,CAAC,WAAW,CAqCrB,CAAC;AAoBF,wBAAgB,IAAI,CAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,UAAU,EAChB,cAAc,CAAC,EAAE,QAAQ,GACxB,MAAM,GAAG,MAAM,CAIjB;AAED,eAAO,MAAM,WAAW;;;;6BArEX,eAAe,QACpB,UAAU,KACf,OAAO,CAAC,WAAW,CAAC;CAwEtB,CAAC"}
1
+ {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,eAAe,EAChB,MAAM,SAAS,CAAC;AAiBjB,wBAAgB,SAAS,aAExB;AAED,UAAU,WAAY,SAAQ,gBAAgB;IAC5C;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAQD,cAAM,IAAK,SAAQ,MAAM,CAAC,SAAS;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,MAAM,CAAa;IAE3B,OAAO,CAAC,QAAQ;IAehB;;OAEG;IACH,OAAO;IAiBP;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAC9B,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,GAAG,MAAM;IAezD;;;;;;;;;OASG;IACH,MAAM,IAAI,MAAM;IAChB,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAWlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,IAAI,IAAI,IAAI;IACZ,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAYhC;;;OAGG;IACH,iBAAiB,IAAI,MAAM;IAK3B,UAAU,CACR,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,MAAM,IAAI;IAKtB,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI;CAI5B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAMzE;AAID;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GACtB,WAAW,eAAe,EAC1B,MAAM,UAAU,KACf,OAAO,CAAC,WAAW,CAqCrB,CAAC;AAoBF,wBAAgB,IAAI,CAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,UAAU,EAChB,cAAc,CAAC,EAAE,QAAQ,GACxB,MAAM,GAAG,MAAM,CAIjB;AAED,eAAO,MAAM,WAAW;;;;6BArEX,eAAe,QACpB,UAAU,KACf,OAAO,CAAC,WAAW,CAAC;CAwEtB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { Buffer } from '@craftzdog/react-native-buffer';
1
2
  import type { BinaryLike } from '../utils';
2
3
  import { KeyObject, CryptoKey } from './classes';
3
4
  interface PublicCipherOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"publicCipher.d.ts","sourceRoot":"","sources":["../../../src/keys/publicCipher.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAQ3C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGjD,UAAU,mBAAmB;IAC3B,GAAG,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,UAAU,CAAC;CACxB;AAED,KAAK,iBAAiB,GAClB,UAAU,GACV,SAAS,GACT,SAAS,GACT,mBAAmB,CAAC;AAExB,UAAU,oBAAoB;IAC5B,GAAG,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,UAAU,CAAC;CACxB;AAED,KAAK,kBAAkB,GACnB,UAAU,GACV,SAAS,GACT,SAAS,GACT,oBAAoB,CAAC;AA+DzB,wBAAgB,aAAa,CAC3B,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,UAAU,GACjB,MAAM,CAuBR;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,UAAU,GACjB,MAAM,CAiBR;AAoDD,wBAAgB,cAAc,CAC5B,GAAG,EAAE,kBAAkB,EACvB,MAAM,EAAE,UAAU,GACjB,MAAM,CAiBR;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,kBAAkB,EACvB,MAAM,EAAE,UAAU,GACjB,MAAM,CAuBR"}
1
+ {"version":3,"file":"publicCipher.d.ts","sourceRoot":"","sources":["../../../src/keys/publicCipher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAQ3C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGjD,UAAU,mBAAmB;IAC3B,GAAG,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,UAAU,CAAC;CACxB;AAED,KAAK,iBAAiB,GAClB,UAAU,GACV,SAAS,GACT,SAAS,GACT,mBAAmB,CAAC;AAExB,UAAU,oBAAoB;IAC5B,GAAG,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,UAAU,CAAC;CACxB;AAED,KAAK,kBAAkB,GACnB,UAAU,GACV,SAAS,GACT,SAAS,GACT,oBAAoB,CAAC;AA+DzB,wBAAgB,aAAa,CAC3B,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,UAAU,GACjB,MAAM,CAuBR;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,UAAU,GACjB,MAAM,CAiBR;AAoDD,wBAAgB,cAAc,CAC5B,GAAG,EAAE,kBAAkB,EACvB,MAAM,EAAE,UAAU,GACjB,MAAM,CAiBR;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,kBAAkB,EACvB,MAAM,EAAE,UAAU,GACjB,MAAM,CAuBR"}
@@ -1,3 +1,4 @@
1
+ import { Buffer } from '@craftzdog/react-native-buffer';
1
2
  import { PrivateKeyObject, PublicKeyObject } from './keys/classes';
2
3
  import type { CryptoKeyPair, KeyUsage, SubtleAlgorithm, GenerateKeyPairOptions, KeyPairGenConfig } from './utils';
3
4
  import type { RsaKeyPair } from './specs/rsaKeyPair.nitro';
@@ -1 +1 @@
1
- {"version":3,"file":"rsa.d.ts","sourceRoot":"","sources":["../../src/rsa.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,gBAAgB,EAChB,eAAe,EAChB,MAAM,gBAAgB,CAAC;AASxB,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EAER,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,qBAAa,GAAG;IACd,MAAM,EAAE,UAAU,CAAC;gBAGjB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,UAAU,EAC1B,aAAa,EAAE,MAAM;IAajB,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC;IAQ/C,mBAAmB,IAAI,aAAa;CAOrC;AAGD,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,aAAa,CAAC,CAiHxB;AA0GD,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,KAAK,GAAG,SAAS,EACvB,OAAO,EAAE,sBAAsB,GAAG,SAAS,EAC3C,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC;IACT,SAAS,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;IAC3D,UAAU,EAAE,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;CAC9D,CAAC,CAID;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,KAAK,GAAG,SAAS,EACvB,OAAO,EAAE,sBAAsB,GAAG,SAAS,EAC3C,QAAQ,EAAE,gBAAgB,GACzB;IACD,SAAS,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;IAC3D,UAAU,EAAE,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;CAC9D,CAIA"}
1
+ {"version":3,"file":"rsa.d.ts","sourceRoot":"","sources":["../../src/rsa.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAGL,gBAAgB,EAChB,eAAe,EAChB,MAAM,gBAAgB,CAAC;AASxB,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EAER,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,qBAAa,GAAG;IACd,MAAM,EAAE,UAAU,CAAC;gBAGjB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,UAAU,EAC1B,aAAa,EAAE,MAAM;IAajB,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC;IAQ/C,mBAAmB,IAAI,aAAa;CAOrC;AAGD,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,aAAa,CAAC,CAiHxB;AA0GD,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,KAAK,GAAG,SAAS,EACvB,OAAO,EAAE,sBAAsB,GAAG,SAAS,EAC3C,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC;IACT,SAAS,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;IAC3D,UAAU,EAAE,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;CAC9D,CAAC,CAID;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,KAAK,GAAG,SAAS,EACvB,OAAO,EAAE,sBAAsB,GAAG,SAAS,EAC3C,QAAQ,EAAE,gBAAgB,GACzB;IACD,SAAS,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;IAC3D,UAAU,EAAE,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;CAC9D,CAIA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-quick-crypto",
3
- "version": "1.0.15",
3
+ "version": "1.0.16",
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/ec.ts CHANGED
@@ -527,13 +527,13 @@ export function ecDeriveBits(
527
527
 
528
528
  const jwkPrivate = baseKey.keyObject.handle.exportJwk({}, false);
529
529
  if (!jwkPrivate.d) throw new Error('Invalid private key');
530
- const privateBytes = Buffer.from(jwkPrivate.d, 'base64');
530
+ const privateBytes = Buffer.from(jwkPrivate.d, 'base64url');
531
531
  ecdh.setPrivateKey(privateBytes);
532
532
 
533
533
  const jwkPublic = publicKey.keyObject.handle.exportJwk({}, false);
534
534
  if (!jwkPublic.x || !jwkPublic.y) throw new Error('Invalid public key');
535
- const x = Buffer.from(jwkPublic.x, 'base64');
536
- const y = Buffer.from(jwkPublic.y, 'base64');
535
+ const x = Buffer.from(jwkPublic.x, 'base64url');
536
+ const y = Buffer.from(jwkPublic.y, 'base64url');
537
537
  const publicBytes = Buffer.concat([Buffer.from([0x04]), x, y]);
538
538
 
539
539
  const secret = ecdh.computeSecret(publicBytes);
package/src/ed.ts CHANGED
@@ -29,6 +29,7 @@ import {
29
29
  KFormatType,
30
30
  KeyEncoding,
31
31
  } from './utils';
32
+ import { ECDH } from './ecdh';
32
33
 
33
34
  export class Ed {
34
35
  type: CFRGKeyPairType;
@@ -57,19 +58,6 @@ export class Ed {
57
58
  options: DiffieHellmanOptions,
58
59
  callback?: DiffieHellmanCallback,
59
60
  ): Buffer | void {
60
- checkDiffieHellmanOptions(options);
61
-
62
- // key types must be of certain type
63
- const keyType = (options.privateKey as AsymmetricKeyObject)
64
- .asymmetricKeyType;
65
- switch (keyType) {
66
- case 'x25519':
67
- case 'x448':
68
- break;
69
- default:
70
- throw new Error(`Unsupported or unimplemented curve type: ${keyType}`);
71
- }
72
-
73
61
  // extract the private and public keys as ArrayBuffers
74
62
  const privateKey = toAB(options.privateKey);
75
63
  const publicKey = toAB(options.publicKey);
@@ -176,8 +164,16 @@ export function diffieHellman(
176
164
  options: DiffieHellmanOptions,
177
165
  callback?: DiffieHellmanCallback,
178
166
  ): Buffer | void {
167
+ checkDiffieHellmanOptions(options);
168
+
179
169
  const privateKey = options.privateKey as PrivateKeyObject;
180
- const type = privateKey.asymmetricKeyType as CFRGKeyPairType;
170
+ const keyType = privateKey.asymmetricKeyType;
171
+
172
+ if (keyType === 'ec') {
173
+ return ecDiffieHellman(options, callback);
174
+ }
175
+
176
+ const type = keyType as CFRGKeyPairType;
181
177
  const ed = new Ed(type, {});
182
178
  return ed.diffieHellman(options, callback);
183
179
  }
@@ -254,6 +250,47 @@ export function ed_generateKeyPair(
254
250
  return [err, publicKey, privateKey];
255
251
  }
256
252
 
253
+ function ecDiffieHellman(
254
+ options: DiffieHellmanOptions,
255
+ callback?: DiffieHellmanCallback,
256
+ ): Buffer | void {
257
+ const privateKey = options.privateKey as PrivateKeyObject;
258
+ const publicKey = options.publicKey as AsymmetricKeyObject;
259
+
260
+ const curveName = privateKey.namedCurve;
261
+ if (!curveName) {
262
+ throw new Error('Unable to determine EC curve name from private key');
263
+ }
264
+
265
+ const ecdh = new ECDH(curveName);
266
+
267
+ const jwkPrivate = privateKey.handle.exportJwk({}, false);
268
+ if (!jwkPrivate.d) throw new Error('Invalid private key');
269
+ ecdh.setPrivateKey(Buffer.from(jwkPrivate.d, 'base64url'));
270
+
271
+ const jwkPublic = publicKey.handle.exportJwk({}, false);
272
+ if (!jwkPublic.x || !jwkPublic.y) throw new Error('Invalid public key');
273
+ const x = Buffer.from(jwkPublic.x, 'base64url');
274
+ const y = Buffer.from(jwkPublic.y, 'base64url');
275
+ const publicBytes = Buffer.concat([Buffer.from([0x04]), x, y]);
276
+
277
+ try {
278
+ const secret = ecdh.computeSecret(publicBytes);
279
+ if (callback) {
280
+ callback(null, secret);
281
+ } else {
282
+ return secret;
283
+ }
284
+ } catch (e: unknown) {
285
+ const err = e as Error;
286
+ if (callback) {
287
+ callback(err, undefined);
288
+ } else {
289
+ throw err;
290
+ }
291
+ }
292
+ }
293
+
257
294
  function checkDiffieHellmanOptions(options: DiffieHellmanOptions): void {
258
295
  const { privateKey, publicKey } = options;
259
296
 
@@ -292,6 +329,14 @@ function checkDiffieHellmanOptions(options: DiffieHellmanOptions): void {
292
329
 
293
330
  switch (privateKeyAsym.asymmetricKeyType) {
294
331
  // case 'dh': // TODO: uncomment when implemented
332
+ case 'ec': {
333
+ const privateCurve = privateKeyAsym.namedCurve;
334
+ const publicCurve = publicKeyAsym.namedCurve;
335
+ if (privateCurve && publicCurve && privateCurve !== publicCurve) {
336
+ throw new Error('Private and public key curves do not match');
337
+ }
338
+ break;
339
+ }
295
340
  case 'x25519':
296
341
  case 'x448':
297
342
  break;
package/src/hash.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { Stream } from 'readable-stream';
2
2
  import { NitroModules } from 'react-native-nitro-modules';
3
3
  import type { TransformOptions } from 'readable-stream';
4
+ import { Buffer } from '@craftzdog/react-native-buffer';
4
5
  import type { Hash as NativeHash } from './specs/hash.nitro';
5
6
  import type {
6
7
  BinaryLike,
@@ -1,4 +1,5 @@
1
1
  import { NitroModules } from 'react-native-nitro-modules';
2
+ import { Buffer } from '@craftzdog/react-native-buffer';
2
3
  import type { RsaCipher } from '../specs/rsaCipher.nitro';
3
4
  import type { BinaryLike } from '../utils';
4
5
  import {
package/src/rsa.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { NitroModules } from 'react-native-nitro-modules';
2
+ import { Buffer } from '@craftzdog/react-native-buffer';
2
3
  import {
3
4
  CryptoKey,
4
5
  KeyObject,