react-native-quick-crypto 1.0.0-beta.1 → 1.0.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/QuickCrypto.podspec +18 -4
  2. package/README.md +172 -0
  3. package/android/CMakeLists.txt +28 -17
  4. package/android/build.gradle +36 -3
  5. package/android/src/main/cpp/cpp-adapter.cpp +3 -10
  6. package/android/src/main/java/com/margelo/nitro/quickcrypto/QuickCryptoPackage.java +15 -10
  7. package/cpp/ed25519/HybridEdKeyPair.cpp +268 -0
  8. package/cpp/ed25519/HybridEdKeyPair.hpp +85 -0
  9. package/cpp/pbkdf2/HybridPbkdf2.cpp +72 -0
  10. package/cpp/pbkdf2/HybridPbkdf2.hpp +35 -0
  11. package/cpp/random/HybridRandom.cpp +59 -0
  12. package/cpp/random/HybridRandom.hpp +33 -0
  13. package/cpp/utils/Utils.hpp +20 -0
  14. package/deps/fastpbkdf2/fastpbkdf2.c +352 -0
  15. package/deps/fastpbkdf2/fastpbkdf2.h +68 -0
  16. package/lib/commonjs/ed.js +42 -0
  17. package/lib/commonjs/ed.js.map +1 -0
  18. package/lib/commonjs/index.js +61 -10
  19. package/lib/commonjs/index.js.map +1 -1
  20. package/lib/commonjs/keys/classes.js +191 -0
  21. package/lib/commonjs/keys/classes.js.map +1 -0
  22. package/lib/commonjs/keys/generateKeyPair.js +148 -0
  23. package/lib/commonjs/keys/generateKeyPair.js.map +1 -0
  24. package/lib/commonjs/keys/index.js +62 -0
  25. package/lib/commonjs/keys/index.js.map +1 -0
  26. package/lib/commonjs/keys/signVerify.js +41 -0
  27. package/lib/commonjs/keys/signVerify.js.map +1 -0
  28. package/lib/commonjs/keys/utils.js +118 -0
  29. package/lib/commonjs/keys/utils.js.map +1 -0
  30. package/lib/commonjs/pbkdf2.js +89 -0
  31. package/lib/commonjs/pbkdf2.js.map +1 -0
  32. package/lib/commonjs/random.js +3 -3
  33. package/lib/commonjs/random.js.map +1 -1
  34. package/lib/commonjs/specs/edKeyPair.nitro.js +6 -0
  35. package/lib/commonjs/specs/edKeyPair.nitro.js.map +1 -0
  36. package/lib/commonjs/specs/keyObjectHandle.nitro.js +6 -0
  37. package/lib/commonjs/specs/keyObjectHandle.nitro.js.map +1 -0
  38. package/lib/commonjs/specs/pbkdf2.nitro.js +6 -0
  39. package/lib/commonjs/specs/pbkdf2.nitro.js.map +1 -0
  40. package/lib/commonjs/utils/conversion.js +101 -6
  41. package/lib/commonjs/utils/conversion.js.map +1 -1
  42. package/lib/commonjs/utils/errors.js +14 -0
  43. package/lib/commonjs/utils/errors.js.map +1 -0
  44. package/lib/commonjs/utils/hashnames.js +90 -0
  45. package/lib/commonjs/utils/hashnames.js.map +1 -0
  46. package/lib/commonjs/utils/index.js +54 -5
  47. package/lib/commonjs/utils/index.js.map +1 -1
  48. package/lib/commonjs/utils/types.js +38 -0
  49. package/lib/commonjs/utils/types.js.map +1 -1
  50. package/lib/commonjs/utils/validation.js +25 -0
  51. package/lib/commonjs/utils/validation.js.map +1 -0
  52. package/lib/module/ed.js +37 -0
  53. package/lib/module/ed.js.map +1 -0
  54. package/lib/module/index.js +16 -9
  55. package/lib/module/index.js.map +1 -1
  56. package/lib/module/keys/classes.js +182 -0
  57. package/lib/module/keys/classes.js.map +1 -0
  58. package/lib/module/keys/generateKeyPair.js +148 -0
  59. package/lib/module/keys/generateKeyPair.js.map +1 -0
  60. package/lib/module/keys/index.js +29 -0
  61. package/lib/module/keys/index.js.map +1 -0
  62. package/lib/module/keys/signVerify.js +41 -0
  63. package/lib/module/keys/signVerify.js.map +1 -0
  64. package/lib/module/keys/utils.js +110 -0
  65. package/lib/module/keys/utils.js.map +1 -0
  66. package/lib/module/pbkdf2.js +83 -0
  67. package/lib/module/pbkdf2.js.map +1 -0
  68. package/lib/module/random.js +1 -1
  69. package/lib/module/random.js.map +1 -1
  70. package/lib/module/specs/edKeyPair.nitro.js +4 -0
  71. package/lib/module/specs/edKeyPair.nitro.js.map +1 -0
  72. package/lib/module/specs/keyObjectHandle.nitro.js +4 -0
  73. package/lib/module/specs/keyObjectHandle.nitro.js.map +1 -0
  74. package/lib/module/specs/pbkdf2.nitro.js +4 -0
  75. package/lib/module/specs/pbkdf2.nitro.js.map +1 -0
  76. package/lib/module/utils/conversion.js +99 -8
  77. package/lib/module/utils/conversion.js.map +1 -1
  78. package/lib/module/utils/errors.js +10 -0
  79. package/lib/module/utils/errors.js.map +1 -0
  80. package/lib/module/utils/hashnames.js +88 -0
  81. package/lib/module/utils/hashnames.js.map +1 -0
  82. package/lib/module/utils/index.js +5 -5
  83. package/lib/module/utils/index.js.map +1 -1
  84. package/lib/module/utils/types.js +40 -0
  85. package/lib/module/utils/types.js.map +1 -1
  86. package/lib/module/utils/validation.js +19 -0
  87. package/lib/module/utils/validation.js.map +1 -0
  88. package/lib/tsconfig.tsbuildinfo +1 -1
  89. package/lib/typescript/ed.d.ts +17 -0
  90. package/lib/typescript/ed.d.ts.map +1 -0
  91. package/lib/typescript/index.d.ts +50 -9
  92. package/lib/typescript/index.d.ts.map +1 -1
  93. package/lib/typescript/keys/classes.d.ts +38 -0
  94. package/lib/typescript/keys/classes.d.ts.map +1 -0
  95. package/lib/typescript/keys/generateKeyPair.d.ts +1 -0
  96. package/lib/typescript/keys/generateKeyPair.d.ts.map +1 -0
  97. package/lib/typescript/keys/index.d.ts +4 -0
  98. package/lib/typescript/keys/index.d.ts.map +1 -0
  99. package/lib/typescript/keys/signVerify.d.ts +1 -0
  100. package/lib/typescript/keys/signVerify.d.ts.map +1 -0
  101. package/lib/typescript/keys/utils.d.ts +32 -0
  102. package/lib/typescript/keys/utils.d.ts.map +1 -0
  103. package/lib/typescript/pbkdf2.d.ts +12 -0
  104. package/lib/typescript/pbkdf2.d.ts.map +1 -0
  105. package/lib/typescript/random.d.ts +5 -5
  106. package/lib/typescript/random.d.ts.map +1 -1
  107. package/lib/typescript/specs/edKeyPair.nitro.d.ts +16 -0
  108. package/lib/typescript/specs/edKeyPair.nitro.d.ts.map +1 -0
  109. package/lib/typescript/specs/keyObjectHandle.nitro.d.ts +15 -0
  110. package/lib/typescript/specs/keyObjectHandle.nitro.d.ts.map +1 -0
  111. package/lib/typescript/specs/pbkdf2.nitro.d.ts +9 -0
  112. package/lib/typescript/specs/pbkdf2.nitro.d.ts.map +1 -0
  113. package/lib/typescript/utils/conversion.d.ts +23 -2
  114. package/lib/typescript/utils/conversion.d.ts.map +1 -1
  115. package/lib/typescript/utils/errors.d.ts +7 -0
  116. package/lib/typescript/utils/errors.d.ts.map +1 -0
  117. package/lib/typescript/utils/hashnames.d.ts +11 -0
  118. package/lib/typescript/utils/hashnames.d.ts.map +1 -0
  119. package/lib/typescript/utils/index.d.ts +5 -5
  120. package/lib/typescript/utils/index.d.ts.map +1 -1
  121. package/lib/typescript/utils/types.d.ts +158 -1
  122. package/lib/typescript/utils/types.d.ts.map +1 -1
  123. package/lib/typescript/utils/validation.d.ts +8 -0
  124. package/lib/typescript/utils/validation.d.ts.map +1 -0
  125. package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +65 -0
  126. package/nitrogen/generated/android/QuickCrypto+autolinking.gradle +27 -0
  127. package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +64 -0
  128. package/nitrogen/generated/android/QuickCryptoOnLoad.hpp +25 -0
  129. package/nitrogen/generated/ios/QuickCrypto+autolinking.rb +58 -0
  130. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.cpp +17 -0
  131. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.hpp +27 -0
  132. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Umbrella.hpp +38 -0
  133. package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +55 -0
  134. package/nitrogen/generated/ios/QuickCryptoAutolinking.swift +12 -0
  135. package/nitrogen/generated/shared/c++/CFRGKeyPairType.hpp +86 -0
  136. package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.cpp +29 -0
  137. package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.hpp +74 -0
  138. package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.cpp +27 -0
  139. package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.hpp +93 -0
  140. package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.cpp +22 -0
  141. package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.hpp +66 -0
  142. package/nitrogen/generated/shared/c++/HybridRandomSpec.cpp +22 -0
  143. package/nitrogen/generated/shared/c++/HybridRandomSpec.hpp +65 -0
  144. package/nitrogen/generated/shared/c++/JWK.hpp +162 -0
  145. package/nitrogen/generated/shared/c++/JWKkty.hpp +86 -0
  146. package/nitrogen/generated/shared/c++/JWKuse.hpp +78 -0
  147. package/nitrogen/generated/shared/c++/KFormatType.hpp +65 -0
  148. package/nitrogen/generated/shared/c++/KeyDetail.hpp +93 -0
  149. package/nitrogen/generated/shared/c++/KeyEncoding.hpp +66 -0
  150. package/nitrogen/generated/shared/c++/KeyType.hpp +65 -0
  151. package/nitrogen/generated/shared/c++/KeyUsage.hpp +102 -0
  152. package/nitrogen/generated/shared/c++/NamedCurve.hpp +82 -0
  153. package/package.json +55 -34
  154. package/src/ed.ts +79 -0
  155. package/src/index.ts +15 -9
  156. package/src/keys/classes.ts +211 -0
  157. package/src/keys/generateKeyPair.ts +146 -0
  158. package/src/keys/index.ts +42 -0
  159. package/src/keys/signVerify.ts +39 -0
  160. package/src/keys/utils.ts +184 -0
  161. package/src/pbkdf2.ts +154 -0
  162. package/src/random.ts +19 -23
  163. package/src/specs/edKeyPair.nitro.ts +41 -0
  164. package/src/specs/keyObjectHandle.nitro.ts +32 -0
  165. package/src/specs/pbkdf2.nitro.ts +18 -0
  166. package/src/specs/random.nitro.ts +2 -2
  167. package/src/utils/conversion.ts +116 -9
  168. package/src/utils/errors.ts +15 -0
  169. package/src/utils/hashnames.ts +96 -0
  170. package/src/utils/index.ts +5 -6
  171. package/src/utils/types.ts +263 -3
  172. package/src/utils/validation.ts +35 -0
  173. package/ios/QuickCryptoOnLoad.mm +0 -19
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signVerify.d.ts","sourceRoot":"","sources":["../../../src/keys/signVerify.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ import { KeyEncoding, KFormatType } from '../utils';
2
+ import type { EncodingOptions } from '../utils';
3
+ export declare const isCryptoKey: (obj: any) => boolean;
4
+ /**
5
+ * Parses the public key encoding based on an object. keyType must be undefined
6
+ * when this is used to parse an input encoding and must be a valid key type if
7
+ * used to parse an output encoding.
8
+ */
9
+ export declare function parsePublicKeyEncoding(enc: EncodingOptions, keyType: string | undefined, objName?: string): {
10
+ format: KFormatType;
11
+ type: KeyEncoding | undefined;
12
+ cipher: string | undefined;
13
+ passphrase: ArrayBuffer | undefined;
14
+ };
15
+ /**
16
+ * Parses the private key encoding based on an object. keyType must be undefined
17
+ * when this is used to parse an input encoding and must be a valid key type if
18
+ * used to parse an output encoding.
19
+ */
20
+ export declare function parsePrivateKeyEncoding(enc: EncodingOptions, keyType: string | undefined, objName?: string): {
21
+ format: KFormatType;
22
+ type: KeyEncoding | undefined;
23
+ cipher: string | undefined;
24
+ passphrase: ArrayBuffer | undefined;
25
+ };
26
+ export declare function parseKeyEncoding(enc: EncodingOptions, keyType?: string, isPublic?: boolean, objName?: string): {
27
+ format: KFormatType;
28
+ type: KeyEncoding | undefined;
29
+ cipher: string | undefined;
30
+ passphrase: ArrayBuffer | undefined;
31
+ };
32
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/keys/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EACX,WAAW,EACZ,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,eAAO,MAAM,WAAW,QAAS,GAAG,KAAG,OAEtC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,CAAC,EAAE,MAAM;;;;;EAGjB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,CAAC,EAAE,MAAM;;;;;EAGjB;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,eAAe,EACpB,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,MAAM;;;;;EAqDjB"}
@@ -0,0 +1,12 @@
1
+ import { Buffer } from '@craftzdog/react-native-buffer';
2
+ import type { BinaryLike } from './utils';
3
+ import type { HashAlgorithm, SubtleAlgorithm } from './utils';
4
+ import type { CryptoKey } from './keys';
5
+ type Password = BinaryLike;
6
+ type Salt = BinaryLike;
7
+ type Pbkdf2Callback = (err: Error | null, derivedKey?: Buffer) => void;
8
+ export declare function pbkdf2(password: Password, salt: Salt, iterations: number, keylen: number, digest: string, callback: Pbkdf2Callback): void;
9
+ export declare function pbkdf2Sync(password: Password, salt: Salt, iterations: number, keylen: number, digest?: HashAlgorithm): ArrayBuffer;
10
+ export declare function pbkdf2DeriveBits(algorithm: SubtleAlgorithm, baseKey: CryptoKey, length: number): Promise<ArrayBuffer>;
11
+ export {};
12
+ //# sourceMappingURL=pbkdf2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pbkdf2.d.ts","sourceRoot":"","sources":["../../src/pbkdf2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAQ1C,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAMxC,KAAK,QAAQ,GAAG,UAAU,CAAC;AAC3B,KAAK,IAAI,GAAG,UAAU,CAAC;AACvB,KAAK,cAAc,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAqBvE,wBAAgB,MAAM,CACpB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,cAAc,GACvB,IAAI,CAyBN;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,aAAa,GACrB,WAAW,CAeb;AAcD,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CAsCtB"}
@@ -1,9 +1,9 @@
1
1
  import { Buffer } from '@craftzdog/react-native-buffer';
2
- import type { ArrayBufferView, RandomCallback } from './utils/types';
3
- export declare function randomFill<T extends ArrayBufferView>(buffer: T, callback: RandomCallback<T>): void;
4
- export declare function randomFill<T extends ArrayBufferView>(buffer: T, offset: number, callback: RandomCallback<T>): void;
5
- export declare function randomFill<T extends ArrayBufferView>(buffer: T, offset: number, size: number, callback: RandomCallback<T>): void;
6
- export declare function randomFillSync<T extends ArrayBufferView>(buffer: T, offset?: number, size?: number): T;
2
+ import type { ABV, RandomCallback } from './utils';
3
+ export declare function randomFill<T extends ABV>(buffer: T, callback: RandomCallback<T>): void;
4
+ export declare function randomFill<T extends ABV>(buffer: T, offset: number, callback: RandomCallback<T>): void;
5
+ export declare function randomFill<T extends ABV>(buffer: T, offset: number, size: number, callback: RandomCallback<T>): void;
6
+ export declare function randomFillSync<T extends ABV>(buffer: T, offset?: number, size?: number): T;
7
7
  export declare function randomBytes(size: number): Buffer;
8
8
  export declare function randomBytes(size: number, callback: (err: Error | null, buf?: Buffer) => void): void;
9
9
  export declare const rng: typeof randomBytes;
@@ -1 +1 @@
1
- {"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../../src/random.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAerE,wBAAgB,UAAU,CAAC,CAAC,SAAS,eAAe,EAClD,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAC1B,IAAI,CAAC;AAER,wBAAgB,UAAU,CAAC,CAAC,SAAS,eAAe,EAClD,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAC1B,IAAI,CAAC;AAER,wBAAgB,UAAU,CAAC,CAAC,SAAS,eAAe,EAClD,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAC1B,IAAI,CAAC;AAmCR,wBAAgB,cAAc,CAAC,CAAC,SAAS,eAAe,EACtD,MAAM,EAAE,CAAC,EACT,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,GACZ,CAAC,CAAC;AAcL,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;AAElD,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,GAClD,IAAI,CAAC;AAqBR,eAAO,MAAM,GAAG,oBAAc,CAAC;AAC/B,eAAO,MAAM,iBAAiB,oBAAc,CAAC;AAC7C,eAAO,MAAM,IAAI,oBAAc,CAAC;AAEhC,KAAK,iBAAiB,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAuBpE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;AAC1E,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;AAC/C,wBAAgB,SAAS,CACvB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,iBAAiB,GAC1B,IAAI,CAAC;AACR,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;AA2H5D,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,WAAW,CAAC;AAChB,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,qBAMtD;AASD,wBAAgB,UAAU,WA+BzB"}
1
+ {"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../../src/random.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAenD,wBAAgB,UAAU,CAAC,CAAC,SAAS,GAAG,EACtC,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAC1B,IAAI,CAAC;AAER,wBAAgB,UAAU,CAAC,CAAC,SAAS,GAAG,EACtC,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAC1B,IAAI,CAAC;AAER,wBAAgB,UAAU,CAAC,CAAC,SAAS,GAAG,EACtC,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAC1B,IAAI,CAAC;AAmCR,wBAAgB,cAAc,CAAC,CAAC,SAAS,GAAG,EAC1C,MAAM,EAAE,CAAC,EACT,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,GACZ,CAAC,CAAC;AAUL,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;AAElD,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,GAClD,IAAI,CAAC;AAqBR,eAAO,MAAM,GAAG,oBAAc,CAAC;AAC/B,eAAO,MAAM,iBAAiB,oBAAc,CAAC;AAC7C,eAAO,MAAM,IAAI,oBAAc,CAAC;AAEhC,KAAK,iBAAiB,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAuBpE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;AAC1E,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;AAC/C,wBAAgB,SAAS,CACvB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,iBAAiB,GAC1B,IAAI,CAAC;AACR,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;AA2H5D,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,WAAW,CAAC;AAChB,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,qBAMtD;AASD,wBAAgB,UAAU,WA+BzB"}
@@ -0,0 +1,16 @@
1
+ import type { HybridObject } from 'react-native-nitro-modules';
2
+ export interface EdKeyPair extends HybridObject<{
3
+ ios: 'c++';
4
+ android: 'c++';
5
+ }> {
6
+ generateKeyPair(publicFormat: number, publicType: number, privateFormat: number, privateType: number, cipher?: string, passphrase?: ArrayBuffer): Promise<void>;
7
+ generateKeyPairSync(publicFormat: number, publicType: number, privateFormat: number, privateType: number, cipher?: string, passphrase?: ArrayBuffer): void;
8
+ getPublicKey(): ArrayBuffer;
9
+ getPrivateKey(): ArrayBuffer;
10
+ sign(message: ArrayBuffer, key?: ArrayBuffer): Promise<ArrayBuffer>;
11
+ signSync(message: ArrayBuffer, key?: ArrayBuffer): ArrayBuffer;
12
+ verify(signature: ArrayBuffer, message: ArrayBuffer, key?: ArrayBuffer): Promise<boolean>;
13
+ verifySync(signature: ArrayBuffer, message: ArrayBuffer, key?: ArrayBuffer): boolean;
14
+ setCurve(curve: string): void;
15
+ }
16
+ //# sourceMappingURL=edKeyPair.nitro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edKeyPair.nitro.d.ts","sourceRoot":"","sources":["../../../src/specs/edKeyPair.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,SACf,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;IACpD,eAAe,CACb,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,mBAAmB,CACjB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,WAAW,GACvB,IAAI,CAAC;IAER,YAAY,IAAI,WAAW,CAAC;IAC5B,aAAa,IAAI,WAAW,CAAC;IAE7B,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACpE,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;IAE/D,MAAM,CACJ,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,WAAW,EACpB,GAAG,CAAC,EAAE,WAAW,GAChB,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,UAAU,CACR,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,WAAW,EACpB,GAAG,CAAC,EAAE,WAAW,GAChB,OAAO,CAAC;IAEX,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B"}
@@ -0,0 +1,15 @@
1
+ import { type HybridObject } from 'react-native-nitro-modules';
2
+ import type { AsymmetricKeyType, JWK, KeyDetail, KeyEncoding, KeyType, KFormatType, NamedCurve } from '../utils';
3
+ export interface KeyObjectHandle extends HybridObject<{
4
+ ios: 'c++';
5
+ android: 'c++';
6
+ }> {
7
+ exportKey(format?: KFormatType, type?: KeyEncoding, cipher?: string, passphrase?: ArrayBuffer): ArrayBuffer;
8
+ exportJwk(key: JWK, handleRsaPss: boolean): JWK;
9
+ getAsymmetricKeyType(): AsymmetricKeyType;
10
+ init(keyType: KeyType, key: string | ArrayBuffer, format?: KFormatType, type?: KeyEncoding, passphrase?: ArrayBuffer): boolean;
11
+ initECRaw(curveName: string, keyData: ArrayBuffer): boolean;
12
+ initJwk(keyData: JWK, namedCurve?: NamedCurve): KeyType | undefined;
13
+ keyDetail(): KeyDetail;
14
+ }
15
+ //# sourceMappingURL=keyObjectHandle.nitro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyObjectHandle.nitro.d.ts","sourceRoot":"","sources":["../../../src/specs/keyObjectHandle.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EACV,iBAAiB,EACjB,GAAG,EACH,SAAS,EACT,WAAW,EACX,OAAO,EACP,WAAW,EACX,UAAU,EACX,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,eACf,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;IACpD,SAAS,CACP,MAAM,CAAC,EAAE,WAAW,EACpB,IAAI,CAAC,EAAE,WAAW,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,WAAW,GACvB,WAAW,CAAC;IACf,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,GAAG,GAAG,CAAC;IAChD,oBAAoB,IAAI,iBAAiB,CAAC;IAC1C,IAAI,CACF,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,GAAG,WAAW,EACzB,MAAM,CAAC,EAAE,WAAW,EACpB,IAAI,CAAC,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,WAAW,GACvB,OAAO,CAAC;IACX,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC;IAC5D,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;IACpE,SAAS,IAAI,SAAS,CAAC;CACxB"}
@@ -0,0 +1,9 @@
1
+ import { type HybridObject } from 'react-native-nitro-modules';
2
+ export interface Pbkdf2 extends HybridObject<{
3
+ ios: 'c++';
4
+ android: 'c++';
5
+ }> {
6
+ pbkdf2(password: ArrayBuffer, salt: ArrayBuffer, iterations: number, keylen: number, digest: string): Promise<ArrayBuffer>;
7
+ pbkdf2Sync(password: ArrayBuffer, salt: ArrayBuffer, iterations: number, keylen: number, digest: string): ArrayBuffer;
8
+ }
9
+ //# sourceMappingURL=pbkdf2.nitro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pbkdf2.nitro.d.ts","sourceRoot":"","sources":["../../../src/specs/pbkdf2.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,MAAO,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;IAC1E,MAAM,CACJ,QAAQ,EAAE,WAAW,EACrB,IAAI,EAAE,WAAW,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,UAAU,CACR,QAAQ,EAAE,WAAW,EACrB,IAAI,EAAE,WAAW,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,WAAW,CAAC;CAChB"}
@@ -1,4 +1,25 @@
1
- import type { ArrayBufferView } from './types';
2
- export declare const abvToArrayBuffer: (buffer: ArrayBufferView) => ArrayBufferLike;
1
+ import { Buffer as CraftzdogBuffer } from '@craftzdog/react-native-buffer';
2
+ import { Buffer as SafeBuffer } from 'safe-buffer';
3
+ import type { ABV, BinaryLikeNode, BufferLike } from './types';
4
+ /**
5
+ * Converts supplied argument to an ArrayBuffer. Note this does not copy the
6
+ * data so it is faster than toArrayBuffer. Not copying is important for
7
+ * functions like randomFill which need to be able to write to the underlying
8
+ * buffer.
9
+ * @param buf
10
+ * @returns ArrayBuffer
11
+ */
12
+ export declare const abvToArrayBuffer: (buf: ABV) => ArrayBuffer;
13
+ /**
14
+ * Converts supplied argument to an ArrayBuffer. Note this copies data if the
15
+ * supplied buffer has the .slice() method, so can be a bit slow.
16
+ * @param buf
17
+ * @returns ArrayBuffer
18
+ */
19
+ export declare function toArrayBuffer(buf: CraftzdogBuffer | SafeBuffer | ArrayBufferView): ArrayBuffer;
20
+ export declare function bufferLikeToArrayBuffer(buf: BufferLike): ArrayBuffer;
21
+ export declare function binaryLikeToArrayBuffer(input: BinaryLikeNode, // CipherKey adds compat with node types
22
+ encoding?: string): ArrayBuffer;
3
23
  export declare function ab2str(buf: ArrayBuffer, encoding?: string): string;
24
+ export declare const kEmptyObject: any;
4
25
  //# sourceMappingURL=conversion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversion.d.ts","sourceRoot":"","sources":["../../../src/utils/conversion.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,gBAAgB,WAAY,eAAe,oBAQvD,CAAC;AAEF,wBAAgB,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,GAAE,MAAc,UAEhE"}
1
+ {"version":3,"file":"conversion.d.ts","sourceRoot":"","sources":["../../../src/utils/conversion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE/D;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,QAAS,GAAG,gBAQxC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,eAAe,GAAG,UAAU,GAAG,eAAe,GAClD,WAAW,CAiBb;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW,CAWpE;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,cAAc,EAAE,wCAAwC;AAC/D,QAAQ,GAAE,MAAgB,GACzB,WAAW,CAmDb;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,GAAE,MAAc,UAEhE;AAED,eAAO,MAAM,YAAY,KAAqC,CAAC"}
@@ -0,0 +1,7 @@
1
+ type DOMName = string | {
2
+ name: string;
3
+ cause: unknown;
4
+ };
5
+ export declare function lazyDOMException(message: string, domName: DOMName): Error;
6
+ export {};
7
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,KAAK,OAAO,GACR,MAAM,GACN;IACE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEN,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAOzE"}
@@ -0,0 +1,11 @@
1
+ import type { HashAlgorithm } from '.';
2
+ export declare enum HashContext {
3
+ Node = 0,
4
+ WebCrypto = 1,
5
+ JwkRsa = 2,
6
+ JwkRsaPss = 3,
7
+ JwkRsaOaep = 4,
8
+ JwkHmac = 5
9
+ }
10
+ export declare function normalizeHashName(algo: string | HashAlgorithm | undefined, context?: HashContext): HashAlgorithm;
11
+ //# sourceMappingURL=hashnames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashnames.d.ts","sourceRoot":"","sources":["../../../src/utils/hashnames.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,GAAG,CAAC;AAEvC,oBAAY,WAAW;IACrB,IAAI,IAAA;IACJ,SAAS,IAAA;IACT,MAAM,IAAA;IACN,SAAS,IAAA;IACT,UAAU,IAAA;IACV,OAAO,IAAA;CACR;AAuED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,EACxC,OAAO,GAAE,WAA8B,GACtC,aAAa,CAYf"}
@@ -1,6 +1,6 @@
1
- import { ab2str } from "./conversion";
2
- export declare const utils: {
3
- ab2str: typeof ab2str;
4
- abvToArrayBuffer: (buffer: import("./types").ArrayBufferView) => ArrayBufferLike;
5
- };
1
+ export * from './conversion';
2
+ export * from './errors';
3
+ export * from './hashnames';
4
+ export * from './types';
5
+ export * from './validation';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAoB,MAAM,cAAc,CAAC;AAExD,eAAO,MAAM,KAAK;;;CAGjB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
@@ -1,5 +1,162 @@
1
1
  /// <reference types="node" />
2
- export type ArrayBufferView = TypedArray | DataView | ArrayBufferLike | Buffer;
2
+ import type { Buffer as CraftzdogBuffer } from '@craftzdog/react-native-buffer';
3
+ import type { Buffer as SafeBuffer } from 'safe-buffer';
4
+ import type { CipherKey } from 'crypto';
5
+ import type { KeyObjectHandle } from '../specs/keyObjectHandle.nitro';
6
+ export type ABV = TypedArray | DataView | ArrayBufferLike | CraftzdogBuffer;
3
7
  export type TypedArray = Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | Int8Array | Int16Array | Int32Array | Float32Array | Float64Array;
4
8
  export type RandomCallback<T> = (err: Error | null, value: T) => void;
9
+ export type BufferLike = ArrayBuffer | CraftzdogBuffer | SafeBuffer | ArrayBufferView;
10
+ export type BinaryLike = string | ArrayBuffer | CraftzdogBuffer | SafeBuffer | TypedArray | DataView;
11
+ export type BinaryLikeNode = CipherKey | BinaryLike;
12
+ export type DigestAlgorithm = 'SHA-1' | 'SHA-256' | 'SHA-384' | 'SHA-512';
13
+ export type HashAlgorithm = DigestAlgorithm | 'SHA-224' | 'RIPEMD-160';
14
+ export type RSAKeyPairAlgorithm = 'RSASSA-PKCS1-v1_5' | 'RSA-PSS' | 'RSA-OAEP';
15
+ export type ECKeyPairAlgorithm = 'ECDSA' | 'ECDH';
16
+ export type CFRGKeyPairAlgorithm = 'Ed25519' | 'Ed448' | 'X25519' | 'X448';
17
+ export type CFRGKeyPairType = 'ed25519' | 'ed448' | 'x25519' | 'x448';
18
+ export type KeyPairAlgorithm = RSAKeyPairAlgorithm | ECKeyPairAlgorithm | CFRGKeyPairAlgorithm;
19
+ export type AESAlgorithm = 'AES-CTR' | 'AES-CBC' | 'AES-GCM' | 'AES-KW';
20
+ export type SecretKeyAlgorithm = 'HMAC' | AESAlgorithm;
21
+ export type SignVerifyAlgorithm = 'RSASSA-PKCS1-v1_5' | 'RSA-PSS' | 'ECDSA' | 'HMAC' | 'Ed25519' | 'Ed448';
22
+ export type DeriveBitsAlgorithm = 'PBKDF2' | 'HKDF' | 'ECDH' | 'X25519' | 'X448';
23
+ export type EncryptDecryptAlgorithm = 'RSA-OAEP' | 'AES-CTR' | 'AES-CBC' | 'AES-GCM';
24
+ export type AnyAlgorithm = DigestAlgorithm | HashAlgorithm | KeyPairAlgorithm | SecretKeyAlgorithm | SignVerifyAlgorithm | DeriveBitsAlgorithm | EncryptDecryptAlgorithm | AESAlgorithm | 'PBKDF2' | 'HKDF' | 'unknown';
25
+ export type NamedCurve = 'P-256' | 'P-384' | 'P-521';
26
+ export type SubtleAlgorithm = {
27
+ name: AnyAlgorithm;
28
+ salt?: string;
29
+ iterations?: number;
30
+ hash?: HashAlgorithm;
31
+ namedCurve?: NamedCurve;
32
+ length?: number;
33
+ modulusLength?: number;
34
+ publicExponent?: number | Uint8Array;
35
+ };
36
+ export type KeyPairType = CFRGKeyPairType;
37
+ export type KeyUsage = 'encrypt' | 'decrypt' | 'sign' | 'verify' | 'deriveKey' | 'deriveBits' | 'wrapKey' | 'unwrapKey';
38
+ export declare enum KFormatType {
39
+ kKeyFormatDER = 0,
40
+ kKeyFormatPEM = 1,
41
+ kKeyFormatJWK = 2
42
+ }
43
+ export declare enum KeyType {
44
+ Secret = 0,
45
+ Public = 1,
46
+ Private = 2
47
+ }
48
+ export declare enum KeyEncoding {
49
+ kKeyEncodingPKCS1 = 0,
50
+ kKeyEncodingPKCS8 = 1,
51
+ kKeyEncodingSPKI = 2,
52
+ kKeyEncodingSEC1 = 3
53
+ }
54
+ export type KeyPairGenConfig = {
55
+ publicFormat?: KFormatType;
56
+ publicType?: KeyEncoding;
57
+ privateFormat?: KFormatType;
58
+ privateType?: KeyEncoding;
59
+ cipher?: string;
60
+ passphrase?: ArrayBuffer;
61
+ };
62
+ export type AsymmetricKeyType = CFRGKeyPairType;
63
+ type JWKkty = 'AES' | 'RSA' | 'EC' | 'oct';
64
+ type JWKuse = 'sig' | 'enc';
65
+ export interface JWK {
66
+ kty?: JWKkty;
67
+ use?: JWKuse;
68
+ key_ops?: KeyUsage[];
69
+ alg?: string;
70
+ crv?: string;
71
+ kid?: string;
72
+ x5u?: string;
73
+ x5c?: string[];
74
+ x5t?: string;
75
+ 'x5t#256'?: string;
76
+ n?: string;
77
+ e?: string;
78
+ d?: string;
79
+ p?: string;
80
+ q?: string;
81
+ x?: string;
82
+ y?: string;
83
+ k?: string;
84
+ dp?: string;
85
+ dq?: string;
86
+ qi?: string;
87
+ ext?: boolean;
88
+ }
89
+ export type KTypePrivate = 'pkcs1' | 'pkcs8' | 'sec1';
90
+ export type KTypePublic = 'pkcs1' | 'spki';
91
+ export type KType = KTypePrivate | KTypePublic;
92
+ export type KFormat = 'der' | 'pem' | 'jwk';
93
+ export type DSAEncoding = 'der' | 'ieee-p1363';
94
+ export type EncodingOptions = {
95
+ key?: any;
96
+ type?: KType;
97
+ encoding?: string;
98
+ dsaEncoding?: DSAEncoding;
99
+ format?: KFormat;
100
+ padding?: number;
101
+ cipher?: string;
102
+ passphrase?: BinaryLike;
103
+ saltLength?: number;
104
+ oaepHash?: string;
105
+ oaepLabel?: BinaryLike;
106
+ };
107
+ export interface KeyDetail {
108
+ length?: number;
109
+ publicExponent?: number;
110
+ modulusLength?: number;
111
+ hashAlgorithm?: string;
112
+ mgf1HashAlgorithm?: string;
113
+ saltLength?: number;
114
+ namedCurve?: string;
115
+ }
116
+ export type GenerateKeyPairOptions = {
117
+ modulusLength?: number;
118
+ publicExponent?: number;
119
+ hashAlgorithm?: string;
120
+ mgf1HashAlgorithm?: string;
121
+ saltLength?: number;
122
+ divisorLength?: number;
123
+ namedCurve?: string;
124
+ prime?: CraftzdogBuffer;
125
+ primeLength?: number;
126
+ generator?: number;
127
+ groupName?: string;
128
+ publicKeyEncoding?: EncodingOptions;
129
+ privateKeyEncoding?: EncodingOptions;
130
+ paramEncoding?: string;
131
+ hash?: string;
132
+ mgf1Hash?: string;
133
+ };
134
+ export type KeyPairKey = ArrayBuffer | KeyObjectHandle | undefined;
135
+ export type GenerateKeyPairReturn = [
136
+ error?: Error,
137
+ privateKey?: KeyPairKey,
138
+ publicKey?: KeyPairKey
139
+ ];
140
+ export type GenerateKeyPairCallback = (error?: Error, publicKey?: KeyPairKey, privateKey?: KeyPairKey) => GenerateKeyPairReturn | void;
141
+ export type KeyPair = {
142
+ publicKey?: KeyPairKey;
143
+ privateKey?: KeyPairKey;
144
+ };
145
+ export type GenerateKeyPairPromiseReturn = [error?: Error, keypair?: KeyPair];
146
+ export type CryptoKeyPair = {
147
+ publicKey: KeyPairKey;
148
+ privateKey: KeyPairKey;
149
+ };
150
+ export declare enum KeyVariant {
151
+ RSA_SSA_PKCS1_v1_5 = 0,
152
+ RSA_PSS = 1,
153
+ RSA_OAEP = 2,
154
+ DSA = 3,
155
+ EC = 4,
156
+ NID = 5,
157
+ DH = 6
158
+ }
159
+ export type SignCallback = (err: Error | null, signature?: ArrayBuffer) => void;
160
+ export type VerifyCallback = (err: Error | null, valid?: boolean) => void;
161
+ export {};
5
162
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/types.ts"],"names":[],"mappings":";AAAA,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,GAAG,eAAe,GAAG,MAAM,CAAC;AAE/E,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,iBAAiB,GACjB,WAAW,GACX,WAAW,GACX,SAAS,GACT,UAAU,GACV,UAAU,GACV,YAAY,GACZ,YAAY,CAAC;AAEf,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare function validateFunction(f: unknown): boolean;
2
+ export declare function isStringOrBuffer(val: unknown): val is string | ArrayBuffer;
3
+ export declare function validateObject<T>(value: unknown, name: string, options?: {
4
+ allowArray: boolean;
5
+ allowFunction: boolean;
6
+ nullable: boolean;
7
+ } | null): value is T;
8
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAEpD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,GAAG,WAAW,CAM1E;AAED,wBAAgB,cAAc,CAAC,CAAC,EAC9B,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACR,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,IAAI,GACP,KAAK,IAAI,CAAC,CAcZ"}
@@ -0,0 +1,65 @@
1
+ #
2
+ # QuickCrypto+autolinking.cmake
3
+ # This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ # https://github.com/mrousavy/nitro
5
+ # Copyright © 2025 Marc Rousavy @ Margelo
6
+ #
7
+
8
+ # This is a CMake file that adds all files generated by Nitrogen
9
+ # to the current CMake project.
10
+ #
11
+ # To use it, add this to your CMakeLists.txt:
12
+ # ```cmake
13
+ # include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/QuickCrypto+autolinking.cmake)
14
+ # ```
15
+
16
+ # Add all headers that were generated by Nitrogen
17
+ include_directories(
18
+ "../nitrogen/generated/shared/c++"
19
+ "../nitrogen/generated/android/c++"
20
+ "../nitrogen/generated/android/"
21
+ )
22
+
23
+ # Add all .cpp sources that were generated by Nitrogen
24
+ target_sources(
25
+ # CMake project name (Android C++ library name)
26
+ QuickCrypto PRIVATE
27
+ # Autolinking Setup
28
+ ../nitrogen/generated/android/QuickCryptoOnLoad.cpp
29
+ # Shared Nitrogen C++ sources
30
+ ../nitrogen/generated/shared/c++/HybridEdKeyPairSpec.cpp
31
+ ../nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.cpp
32
+ ../nitrogen/generated/shared/c++/HybridPbkdf2Spec.cpp
33
+ ../nitrogen/generated/shared/c++/HybridRandomSpec.cpp
34
+ # Android-specific Nitrogen C++ sources
35
+
36
+ )
37
+
38
+ # Define a flag to check if we are building properly
39
+ add_definitions(-DBUILDING_QUICKCRYPTO_WITH_GENERATED_CMAKE_PROJECT)
40
+
41
+ # Add all libraries required by the generated specs
42
+ find_package(fbjni REQUIRED) # <-- Used for communication between Java <-> C++
43
+ find_package(ReactAndroid REQUIRED) # <-- Used to set up React Native bindings (e.g. CallInvoker/TurboModule)
44
+ find_package(react-native-nitro-modules REQUIRED) # <-- Used to create all HybridObjects and use the Nitro core library
45
+
46
+ # Link all libraries together
47
+ target_link_libraries(
48
+ QuickCrypto
49
+ fbjni::fbjni # <-- Facebook C++ JNI helpers
50
+ ReactAndroid::jsi # <-- RN: JSI
51
+ react-native-nitro-modules::NitroModules # <-- NitroModules Core :)
52
+ )
53
+
54
+ # Link react-native (different prefab between RN 0.75 and RN 0.76)
55
+ if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 76)
56
+ target_link_libraries(
57
+ QuickCrypto
58
+ ReactAndroid::reactnative # <-- RN: Native Modules umbrella prefab
59
+ )
60
+ else()
61
+ target_link_libraries(
62
+ QuickCrypto
63
+ ReactAndroid::react_nativemodule_core # <-- RN: TurboModules Core
64
+ )
65
+ endif()
@@ -0,0 +1,27 @@
1
+ ///
2
+ /// QuickCrypto+autolinking.gradle
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ /// This is a Gradle file that adds all files generated by Nitrogen
9
+ /// to the current Gradle project.
10
+ ///
11
+ /// To use it, add this to your build.gradle:
12
+ /// ```gradle
13
+ /// apply from: '../nitrogen/generated/android/QuickCrypto+autolinking.gradle'
14
+ /// ```
15
+
16
+ logger.warn("[NitroModules] 🔥 QuickCrypto is boosted by nitro!")
17
+
18
+ android {
19
+ sourceSets {
20
+ main {
21
+ java.srcDirs += [
22
+ // Nitrogen files
23
+ "${project.projectDir}/../nitrogen/generated/android/kotlin"
24
+ ]
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,64 @@
1
+ ///
2
+ /// QuickCryptoOnLoad.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #ifndef BUILDING_QUICKCRYPTO_WITH_GENERATED_CMAKE_PROJECT
9
+ #error QuickCryptoOnLoad.cpp is not being built with the autogenerated CMakeLists.txt project. Is a different CMakeLists.txt building this?
10
+ #endif
11
+
12
+ #include "QuickCryptoOnLoad.hpp"
13
+
14
+ #include <jni.h>
15
+ #include <fbjni/fbjni.h>
16
+ #include <NitroModules/HybridObjectRegistry.hpp>
17
+
18
+ #include "HybridEdKeyPair.hpp"
19
+ #include "HybridPbkdf2.hpp"
20
+ #include "HybridRandom.hpp"
21
+
22
+ namespace margelo::nitro::crypto {
23
+
24
+ int initialize(JavaVM* vm) {
25
+ using namespace margelo::nitro;
26
+ using namespace margelo::nitro::crypto;
27
+ using namespace facebook;
28
+
29
+ return facebook::jni::initialize(vm, [] {
30
+ // Register native JNI methods
31
+
32
+
33
+ // Register Nitro Hybrid Objects
34
+ HybridObjectRegistry::registerHybridObjectConstructor(
35
+ "EdKeyPair",
36
+ []() -> std::shared_ptr<HybridObject> {
37
+ static_assert(std::is_default_constructible_v<HybridEdKeyPair>,
38
+ "The HybridObject \"HybridEdKeyPair\" is not default-constructible! "
39
+ "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
40
+ return std::make_shared<HybridEdKeyPair>();
41
+ }
42
+ );
43
+ HybridObjectRegistry::registerHybridObjectConstructor(
44
+ "Pbkdf2",
45
+ []() -> std::shared_ptr<HybridObject> {
46
+ static_assert(std::is_default_constructible_v<HybridPbkdf2>,
47
+ "The HybridObject \"HybridPbkdf2\" is not default-constructible! "
48
+ "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
49
+ return std::make_shared<HybridPbkdf2>();
50
+ }
51
+ );
52
+ HybridObjectRegistry::registerHybridObjectConstructor(
53
+ "Random",
54
+ []() -> std::shared_ptr<HybridObject> {
55
+ static_assert(std::is_default_constructible_v<HybridRandom>,
56
+ "The HybridObject \"HybridRandom\" is not default-constructible! "
57
+ "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
58
+ return std::make_shared<HybridRandom>();
59
+ }
60
+ );
61
+ });
62
+ }
63
+
64
+ } // namespace margelo::nitro::crypto
@@ -0,0 +1,25 @@
1
+ ///
2
+ /// QuickCryptoOnLoad.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include <jni.h>
9
+ #include <NitroModules/NitroDefines.hpp>
10
+
11
+ namespace margelo::nitro::crypto {
12
+
13
+ /**
14
+ * Initializes the native (C++) part of QuickCrypto, and autolinks all Hybrid Objects.
15
+ * Call this in your `JNI_OnLoad` function (probably inside `cpp-adapter.cpp`).
16
+ * Example:
17
+ * ```cpp (cpp-adapter.cpp)
18
+ * JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
19
+ * return margelo::nitro::crypto::initialize(vm);
20
+ * }
21
+ * ```
22
+ */
23
+ int initialize(JavaVM* vm);
24
+
25
+ } // namespace margelo::nitro::crypto