react-native-quick-crypto 0.2.0 → 0.3.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 (95) hide show
  1. package/README.md +38 -14
  2. package/android/src/main/AndroidManifest.xml +1 -1
  3. package/android/src/main/java/com/margelo/quickcrypto/QuickCryptoModule.java +70 -0
  4. package/android/src/main/java/com/{reactnativequickcrypto → margelo/quickcrypto}/QuickCryptoPackage.java +11 -12
  5. package/cpp/Cipher/MGLCipherHostObject.cpp +64 -48
  6. package/cpp/Cipher/MGLCipherKeys.cpp +1469 -0
  7. package/cpp/Cipher/MGLCipherKeys.h +124 -0
  8. package/cpp/Cipher/MGLCreateCipherInstaller.cpp +56 -53
  9. package/cpp/Cipher/MGLCreateCipherInstaller.h +5 -0
  10. package/cpp/Cipher/MGLCreateDecipherInstaller.cpp +56 -53
  11. package/cpp/Cipher/MGLGenerateKeyPairInstaller.cpp +107 -0
  12. package/cpp/Cipher/MGLGenerateKeyPairInstaller.h +32 -0
  13. package/cpp/Cipher/MGLGenerateKeyPairSyncInstaller.cpp +60 -0
  14. package/cpp/Cipher/MGLGenerateKeyPairSyncInstaller.h +35 -0
  15. package/cpp/Cipher/MGLPublicCipher.h +120 -0
  16. package/cpp/Cipher/MGLPublicCipherInstaller.h +113 -0
  17. package/cpp/Cipher/MGLRsa.cpp +188 -0
  18. package/cpp/Cipher/MGLRsa.h +61 -0
  19. package/cpp/JSIUtils/MGLJSIUtils.h +24 -0
  20. package/cpp/JSIUtils/MGLThreadAwareHostObject.h +1 -1
  21. package/cpp/MGLQuickCryptoHostObject.cpp +42 -3
  22. package/cpp/Utils/MGLUtils.cpp +156 -0
  23. package/cpp/Utils/MGLUtils.h +254 -0
  24. package/lib/commonjs/@types/crypto-browserify.d.js +2 -0
  25. package/lib/commonjs/@types/crypto-browserify.d.js.map +1 -0
  26. package/lib/commonjs/@types/stream-browserify.d.js +2 -0
  27. package/lib/commonjs/@types/stream-browserify.d.js.map +1 -0
  28. package/lib/commonjs/Cipher.js +310 -2
  29. package/lib/commonjs/Cipher.js.map +1 -1
  30. package/lib/commonjs/Hash.js +2 -2
  31. package/lib/commonjs/Hash.js.map +1 -1
  32. package/lib/commonjs/Hmac.js +2 -2
  33. package/lib/commonjs/Hmac.js.map +1 -1
  34. package/lib/commonjs/NativeQuickCrypto/Cipher.js +11 -0
  35. package/lib/commonjs/NativeQuickCrypto/Cipher.js.map +1 -1
  36. package/lib/commonjs/NativeQuickCrypto/NativeQuickCrypto.js.map +1 -1
  37. package/lib/commonjs/QuickCrypto.js +8 -0
  38. package/lib/commonjs/QuickCrypto.js.map +1 -1
  39. package/lib/commonjs/Utils.js +82 -1
  40. package/lib/commonjs/Utils.js.map +1 -1
  41. package/lib/commonjs/constants.js +86 -0
  42. package/lib/commonjs/constants.js.map +1 -0
  43. package/lib/commonjs/index.js +18 -10
  44. package/lib/commonjs/index.js.map +1 -1
  45. package/lib/commonjs/keys.js +207 -0
  46. package/lib/commonjs/keys.js.map +1 -0
  47. package/lib/module/@types/crypto-browserify.d.js +2 -0
  48. package/lib/module/@types/crypto-browserify.d.js.map +1 -0
  49. package/lib/module/@types/stream-browserify.d.js +2 -0
  50. package/lib/module/@types/stream-browserify.d.js.map +1 -0
  51. package/lib/module/Cipher.js +298 -4
  52. package/lib/module/Cipher.js.map +1 -1
  53. package/lib/module/Hash.js +1 -1
  54. package/lib/module/Hash.js.map +1 -1
  55. package/lib/module/Hmac.js +1 -1
  56. package/lib/module/Hmac.js.map +1 -1
  57. package/lib/module/NativeQuickCrypto/Cipher.js +9 -1
  58. package/lib/module/NativeQuickCrypto/Cipher.js.map +1 -1
  59. package/lib/module/NativeQuickCrypto/NativeQuickCrypto.js.map +1 -1
  60. package/lib/module/QuickCrypto.js +8 -1
  61. package/lib/module/QuickCrypto.js.map +1 -1
  62. package/lib/module/Utils.js +67 -1
  63. package/lib/module/Utils.js.map +1 -1
  64. package/lib/module/constants.js +79 -0
  65. package/lib/module/constants.js.map +1 -0
  66. package/lib/module/index.js +13 -1
  67. package/lib/module/index.js.map +1 -1
  68. package/lib/module/keys.js +193 -0
  69. package/lib/module/keys.js.map +1 -0
  70. package/lib/typescript/Cipher.d.ts +59 -2
  71. package/lib/typescript/Hash.d.ts +1 -1
  72. package/lib/typescript/Hmac.d.ts +1 -1
  73. package/lib/typescript/NativeQuickCrypto/Cipher.d.ts +10 -0
  74. package/lib/typescript/NativeQuickCrypto/NativeQuickCrypto.d.ts +6 -1
  75. package/lib/typescript/QuickCrypto.d.ts +105 -1
  76. package/lib/typescript/Utils.d.ts +11 -0
  77. package/lib/typescript/constants.d.ts +75 -0
  78. package/lib/typescript/index.d.ts +208 -1
  79. package/lib/typescript/keys.d.ts +60 -0
  80. package/package.json +7 -6
  81. package/react-native-quick-crypto.podspec +1 -1
  82. package/src/.DS_Store +0 -0
  83. package/src/@types/crypto-browserify.d.ts +4 -0
  84. package/src/@types/stream-browserify.d.ts +4 -0
  85. package/src/Cipher.ts +446 -4
  86. package/src/Hash.ts +1 -1
  87. package/src/Hmac.ts +1 -1
  88. package/src/NativeQuickCrypto/Cipher.ts +44 -0
  89. package/src/NativeQuickCrypto/NativeQuickCrypto.ts +13 -1
  90. package/src/QuickCrypto.ts +12 -0
  91. package/src/Utils.ts +91 -0
  92. package/src/constants.ts +79 -0
  93. package/src/index.ts +15 -1
  94. package/src/keys.ts +297 -0
  95. package/android/src/main/java/com/reactnativequickcrypto/QuickCryptoModule.java +0 -70
@@ -1,5 +1,5 @@
1
1
  import * as random from './random';
2
- import { createCipher, createCipheriv, createDecipher, createDecipheriv } from './Cipher';
2
+ import { createCipher, createCipheriv, createDecipher, createDecipheriv, generateKeyPair, generateKeyPairSync } from './Cipher';
3
3
  import { createHmac } from './Hmac';
4
4
  import { createHash } from './Hash';
5
5
  export declare const QuickCrypto: {
@@ -28,4 +28,108 @@ export declare const QuickCrypto: {
28
28
  createCipheriv: typeof createCipheriv;
29
29
  createDecipher: typeof createDecipher;
30
30
  createDecipheriv: typeof createDecipheriv;
31
+ publicEncrypt: (options: {
32
+ key: any;
33
+ encoding?: string | undefined;
34
+ format?: any;
35
+ padding?: any;
36
+ oaepHash?: any;
37
+ oaepLabel?: any;
38
+ passphrase?: string | undefined;
39
+ }, buffer: import("./Utils").BinaryLike) => import("@craftzdog/react-native-buffer").Buffer;
40
+ publicDecrypt: (options: {
41
+ key: any;
42
+ encoding?: string | undefined;
43
+ format?: any;
44
+ padding?: any;
45
+ oaepHash?: any;
46
+ oaepLabel?: any;
47
+ passphrase?: string | undefined;
48
+ }, buffer: import("./Utils").BinaryLike) => import("@craftzdog/react-native-buffer").Buffer;
49
+ privateDecrypt: (options: {
50
+ key: any;
51
+ encoding?: string | undefined;
52
+ format?: any;
53
+ padding?: any;
54
+ oaepHash?: any;
55
+ oaepLabel?: any;
56
+ passphrase?: string | undefined;
57
+ }, buffer: import("./Utils").BinaryLike) => import("@craftzdog/react-native-buffer").Buffer;
58
+ generateKeyPair: typeof generateKeyPair;
59
+ generateKeyPairSync: typeof generateKeyPairSync;
60
+ constants: {
61
+ OPENSSL_VERSION_NUMBER: number;
62
+ SSL_OP_ALL: number;
63
+ SSL_OP_ALLOW_NO_DHE_KEX: number;
64
+ SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: number;
65
+ SSL_OP_CIPHER_SERVER_PREFERENCE: number;
66
+ SSL_OP_CISCO_ANYCONNECT: number;
67
+ SSL_OP_COOKIE_EXCHANGE: number;
68
+ SSL_OP_CRYPTOPRO_TLSEXT_BUG: number;
69
+ SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: number;
70
+ SSL_OP_EPHEMERAL_RSA: number;
71
+ SSL_OP_LEGACY_SERVER_CONNECT: number;
72
+ SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: number;
73
+ SSL_OP_MICROSOFT_SESS_ID_BUG: number;
74
+ SSL_OP_MSIE_SSLV2_RSA_PADDING: number;
75
+ SSL_OP_NETSCAPE_CA_DN_BUG: number;
76
+ SSL_OP_NETSCAPE_CHALLENGE_BUG: number;
77
+ SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG: number;
78
+ SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: number;
79
+ SSL_OP_NO_COMPRESSION: number;
80
+ SSL_OP_NO_ENCRYPT_THEN_MAC: number;
81
+ SSL_OP_NO_QUERY_MTU: number;
82
+ SSL_OP_NO_RENEGOTIATION: number;
83
+ SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: number;
84
+ SSL_OP_NO_SSLv2: number;
85
+ SSL_OP_NO_SSLv3: number;
86
+ SSL_OP_NO_TICKET: number;
87
+ SSL_OP_NO_TLSv1: number;
88
+ SSL_OP_NO_TLSv1_1: number;
89
+ SSL_OP_NO_TLSv1_2: number;
90
+ SSL_OP_NO_TLSv1_3: number;
91
+ SSL_OP_PKCS1_CHECK_1: number;
92
+ SSL_OP_PKCS1_CHECK_2: number;
93
+ SSL_OP_PRIORITIZE_CHACHA: number;
94
+ SSL_OP_SINGLE_DH_USE: number;
95
+ SSL_OP_SINGLE_ECDH_USE: number;
96
+ SSL_OP_SSLEAY_080_CLIENT_DH_BUG: number;
97
+ SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG: number;
98
+ SSL_OP_TLS_BLOCK_PADDING_BUG: number;
99
+ SSL_OP_TLS_D5_BUG: number;
100
+ SSL_OP_TLS_ROLLBACK_BUG: number;
101
+ ENGINE_METHOD_RSA: number;
102
+ ENGINE_METHOD_DSA: number;
103
+ ENGINE_METHOD_DH: number;
104
+ ENGINE_METHOD_RAND: number;
105
+ ENGINE_METHOD_EC: number;
106
+ ENGINE_METHOD_CIPHERS: number;
107
+ ENGINE_METHOD_DIGESTS: number;
108
+ ENGINE_METHOD_PKEY_METHS: number;
109
+ ENGINE_METHOD_PKEY_ASN1_METHS: number;
110
+ ENGINE_METHOD_ALL: number;
111
+ ENGINE_METHOD_NONE: number;
112
+ DH_CHECK_P_NOT_SAFE_PRIME: number;
113
+ DH_CHECK_P_NOT_PRIME: number;
114
+ DH_UNABLE_TO_CHECK_GENERATOR: number;
115
+ DH_NOT_SUITABLE_GENERATOR: number;
116
+ ALPN_ENABLED: number;
117
+ RSA_PKCS1_PADDING: number;
118
+ RSA_SSLV23_PADDING: number;
119
+ RSA_NO_PADDING: number;
120
+ RSA_PKCS1_OAEP_PADDING: number;
121
+ RSA_X931_PADDING: number;
122
+ RSA_PKCS1_PSS_PADDING: number;
123
+ RSA_PSS_SALTLEN_DIGEST: number;
124
+ RSA_PSS_SALTLEN_MAX_SIGN: number;
125
+ RSA_PSS_SALTLEN_AUTO: number;
126
+ defaultCoreCipherList: string;
127
+ TLS1_VERSION: number;
128
+ TLS1_1_VERSION: number;
129
+ TLS1_2_VERSION: number;
130
+ TLS1_3_VERSION: number;
131
+ POINT_CONVERSION_COMPRESSED: number;
132
+ POINT_CONVERSION_UNCOMPRESSED: number;
133
+ POINT_CONVERSION_HYBRID: number;
134
+ };
31
135
  };
@@ -7,7 +7,18 @@ export declare type Encoding = BinaryToTextEncoding | CharacterEncoding | Legacy
7
7
  export declare type CipherEncoding = Encoding | 'buffer';
8
8
  export declare function setDefaultEncoding(encoding: CipherEncoding): void;
9
9
  export declare function getDefaultEncoding(): CipherEncoding;
10
+ export declare const kEmptyObject: any;
10
11
  export declare function isBuffer(buf: any): buf is Buffer;
11
12
  export declare function toArrayBuffer(buf: Buffer): ArrayBuffer;
12
13
  export declare function binaryLikeToArrayBuffer(input: BinaryLike, encoding?: string): ArrayBuffer;
13
14
  export declare function ab2str(buf: ArrayBuffer, encoding?: string): string;
15
+ export declare function validateString(str: any, name?: string): str is string;
16
+ export declare function validateFunction(f: any): f is Function;
17
+ export declare function isStringOrBuffer(val: any): val is string | ArrayBuffer;
18
+ export declare function validateObject<T>(value: any, name: string, options?: {
19
+ allowArray: boolean;
20
+ allowFunction: boolean;
21
+ nullable: boolean;
22
+ } | null): value is T;
23
+ export declare function validateInt32(value: any, name: string, min?: number, max?: number): void;
24
+ export declare function validateUint32(value: number, name: string, positive?: boolean): void;
@@ -0,0 +1,75 @@
1
+ export declare const constants: {
2
+ OPENSSL_VERSION_NUMBER: number;
3
+ SSL_OP_ALL: number;
4
+ SSL_OP_ALLOW_NO_DHE_KEX: number;
5
+ SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: number;
6
+ SSL_OP_CIPHER_SERVER_PREFERENCE: number;
7
+ SSL_OP_CISCO_ANYCONNECT: number;
8
+ SSL_OP_COOKIE_EXCHANGE: number;
9
+ SSL_OP_CRYPTOPRO_TLSEXT_BUG: number;
10
+ SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: number;
11
+ SSL_OP_EPHEMERAL_RSA: number;
12
+ SSL_OP_LEGACY_SERVER_CONNECT: number;
13
+ SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: number;
14
+ SSL_OP_MICROSOFT_SESS_ID_BUG: number;
15
+ SSL_OP_MSIE_SSLV2_RSA_PADDING: number;
16
+ SSL_OP_NETSCAPE_CA_DN_BUG: number;
17
+ SSL_OP_NETSCAPE_CHALLENGE_BUG: number;
18
+ SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG: number;
19
+ SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: number;
20
+ SSL_OP_NO_COMPRESSION: number;
21
+ SSL_OP_NO_ENCRYPT_THEN_MAC: number;
22
+ SSL_OP_NO_QUERY_MTU: number;
23
+ SSL_OP_NO_RENEGOTIATION: number;
24
+ SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: number;
25
+ SSL_OP_NO_SSLv2: number;
26
+ SSL_OP_NO_SSLv3: number;
27
+ SSL_OP_NO_TICKET: number;
28
+ SSL_OP_NO_TLSv1: number;
29
+ SSL_OP_NO_TLSv1_1: number;
30
+ SSL_OP_NO_TLSv1_2: number;
31
+ SSL_OP_NO_TLSv1_3: number;
32
+ SSL_OP_PKCS1_CHECK_1: number;
33
+ SSL_OP_PKCS1_CHECK_2: number;
34
+ SSL_OP_PRIORITIZE_CHACHA: number;
35
+ SSL_OP_SINGLE_DH_USE: number;
36
+ SSL_OP_SINGLE_ECDH_USE: number;
37
+ SSL_OP_SSLEAY_080_CLIENT_DH_BUG: number;
38
+ SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG: number;
39
+ SSL_OP_TLS_BLOCK_PADDING_BUG: number;
40
+ SSL_OP_TLS_D5_BUG: number;
41
+ SSL_OP_TLS_ROLLBACK_BUG: number;
42
+ ENGINE_METHOD_RSA: number;
43
+ ENGINE_METHOD_DSA: number;
44
+ ENGINE_METHOD_DH: number;
45
+ ENGINE_METHOD_RAND: number;
46
+ ENGINE_METHOD_EC: number;
47
+ ENGINE_METHOD_CIPHERS: number;
48
+ ENGINE_METHOD_DIGESTS: number;
49
+ ENGINE_METHOD_PKEY_METHS: number;
50
+ ENGINE_METHOD_PKEY_ASN1_METHS: number;
51
+ ENGINE_METHOD_ALL: number;
52
+ ENGINE_METHOD_NONE: number;
53
+ DH_CHECK_P_NOT_SAFE_PRIME: number;
54
+ DH_CHECK_P_NOT_PRIME: number;
55
+ DH_UNABLE_TO_CHECK_GENERATOR: number;
56
+ DH_NOT_SUITABLE_GENERATOR: number;
57
+ ALPN_ENABLED: number;
58
+ RSA_PKCS1_PADDING: number;
59
+ RSA_SSLV23_PADDING: number;
60
+ RSA_NO_PADDING: number;
61
+ RSA_PKCS1_OAEP_PADDING: number;
62
+ RSA_X931_PADDING: number;
63
+ RSA_PKCS1_PSS_PADDING: number;
64
+ RSA_PSS_SALTLEN_DIGEST: number;
65
+ RSA_PSS_SALTLEN_MAX_SIGN: number;
66
+ RSA_PSS_SALTLEN_AUTO: number;
67
+ defaultCoreCipherList: string;
68
+ TLS1_VERSION: number;
69
+ TLS1_1_VERSION: number;
70
+ TLS1_2_VERSION: number;
71
+ TLS1_3_VERSION: number;
72
+ POINT_CONVERSION_COMPRESSED: number;
73
+ POINT_CONVERSION_UNCOMPRESSED: number;
74
+ POINT_CONVERSION_HYBRID: number;
75
+ };
@@ -1 +1,208 @@
1
- export * from './QuickCrypto';
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ /// <reference types="node" />
4
+ /// <reference types="node" />
5
+ import { Buffer } from '@craftzdog/react-native-buffer';
6
+ import FallbackCrypto from 'crypto-browserify';
7
+ declare const crypto: {
8
+ randomFill<T extends Buffer | ArrayBufferLike | (Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | Int8Array | Int16Array | Int32Array | Float32Array | Float64Array) | DataView>(buffer: T, callback: (err: Error | null, buf: T) => void): void;
9
+ randomFill<T_1 extends Buffer | ArrayBufferLike | (Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | Int8Array | Int16Array | Int32Array | Float32Array | Float64Array) | DataView>(buffer: T_1, offset: number, callback: (err: Error | null, buf: T_1) => void): void;
10
+ randomFill<T_2 extends Buffer | ArrayBufferLike | (Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | Int8Array | Int16Array | Int32Array | Float32Array | Float64Array) | DataView>(buffer: T_2, offset: number, size: number, callback: (err: Error | null, buf: T_2) => void): void;
11
+ randomFillSync<T_3 extends Buffer | ArrayBufferLike | (Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | Int8Array | Int16Array | Int32Array | Float32Array | Float64Array) | DataView>(buffer: T_3, offset?: number | undefined, size?: number | undefined): T_3;
12
+ randomBytes(size: number): ArrayBuffer;
13
+ randomBytes(size: number, callback: (err: Error | null, buf?: ArrayBuffer | undefined) => void): void;
14
+ randomInt(max: number, callback: (err: Error | null, value: number) => void): void;
15
+ randomInt(max: number): number;
16
+ randomInt(min: number, max: number, callback: (err: Error | null, value: number) => void): void;
17
+ randomInt(min: number, max: number): number;
18
+ getRandomValues(data: Uint8Array | Uint16Array | Uint32Array | Int8Array | Int16Array | Int32Array): Uint8Array | Uint16Array | Uint32Array | Int8Array | Int16Array | Int32Array;
19
+ rng: typeof import("./random").randomBytes;
20
+ pseudoRandomBytes: typeof import("./random").randomBytes;
21
+ prng: typeof import("./random").randomBytes;
22
+ pbkdf2(password: import("./Utils").BinaryLike, salt: import("./Utils").BinaryLike, iterations: number, keylen: number, digest: string, callback: (err: Error | null, derivedKey?: Buffer | undefined) => void): void;
23
+ pbkdf2(password: import("./Utils").BinaryLike, salt: import("./Utils").BinaryLike, iterations: number, keylen: number, callback: (err: Error | null, derivedKey?: Buffer | undefined) => void): void;
24
+ pbkdf2Sync(password: import("./Utils").BinaryLike, salt: import("./Utils").BinaryLike, iterations: number, keylen: number, digest?: string | undefined): Buffer;
25
+ createHmac: typeof import("./Hmac").createHmac;
26
+ Hmac: typeof import("./Hmac").createHmac;
27
+ Hash: typeof import("./Hash").createHash;
28
+ createHash: typeof import("./Hash").createHash;
29
+ createCipher: typeof import("./Cipher").createCipher;
30
+ createCipheriv: typeof import("./Cipher").createCipheriv;
31
+ createDecipher: typeof import("./Cipher").createDecipher;
32
+ createDecipheriv: typeof import("./Cipher").createDecipheriv;
33
+ publicEncrypt: (options: {
34
+ key: any;
35
+ encoding?: string | undefined;
36
+ format?: any;
37
+ padding?: any;
38
+ oaepHash?: any;
39
+ oaepLabel?: any;
40
+ passphrase?: string | undefined;
41
+ }, buffer: import("./Utils").BinaryLike) => Buffer;
42
+ publicDecrypt: (options: {
43
+ key: any;
44
+ encoding?: string | undefined;
45
+ format?: any;
46
+ padding?: any;
47
+ oaepHash?: any;
48
+ oaepLabel?: any;
49
+ passphrase?: string | undefined;
50
+ }, buffer: import("./Utils").BinaryLike) => Buffer;
51
+ privateDecrypt: (options: {
52
+ key: any;
53
+ encoding?: string | undefined;
54
+ format?: any;
55
+ padding?: any;
56
+ oaepHash?: any;
57
+ oaepLabel?: any;
58
+ passphrase?: string | undefined;
59
+ }, buffer: import("./Utils").BinaryLike) => Buffer;
60
+ generateKeyPair: typeof import("./Cipher").generateKeyPair;
61
+ generateKeyPairSync: typeof import("./Cipher").generateKeyPairSync;
62
+ constants: {
63
+ OPENSSL_VERSION_NUMBER: number;
64
+ SSL_OP_ALL: number;
65
+ SSL_OP_ALLOW_NO_DHE_KEX: number;
66
+ SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: number;
67
+ SSL_OP_CIPHER_SERVER_PREFERENCE: number;
68
+ SSL_OP_CISCO_ANYCONNECT: number;
69
+ SSL_OP_COOKIE_EXCHANGE: number;
70
+ SSL_OP_CRYPTOPRO_TLSEXT_BUG: number;
71
+ SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: number;
72
+ SSL_OP_EPHEMERAL_RSA: number;
73
+ SSL_OP_LEGACY_SERVER_CONNECT: number;
74
+ SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: number;
75
+ SSL_OP_MICROSOFT_SESS_ID_BUG: number;
76
+ SSL_OP_MSIE_SSLV2_RSA_PADDING: number;
77
+ SSL_OP_NETSCAPE_CA_DN_BUG: number;
78
+ SSL_OP_NETSCAPE_CHALLENGE_BUG: number;
79
+ SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG: number;
80
+ SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: number;
81
+ SSL_OP_NO_COMPRESSION: number;
82
+ SSL_OP_NO_ENCRYPT_THEN_MAC: number;
83
+ SSL_OP_NO_QUERY_MTU: number;
84
+ SSL_OP_NO_RENEGOTIATION: number;
85
+ SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: number;
86
+ SSL_OP_NO_SSLv2: number;
87
+ SSL_OP_NO_SSLv3: number;
88
+ SSL_OP_NO_TICKET: number;
89
+ SSL_OP_NO_TLSv1: number;
90
+ SSL_OP_NO_TLSv1_1: number;
91
+ SSL_OP_NO_TLSv1_2: number;
92
+ SSL_OP_NO_TLSv1_3: number;
93
+ SSL_OP_PKCS1_CHECK_1: number;
94
+ SSL_OP_PKCS1_CHECK_2: number;
95
+ SSL_OP_PRIORITIZE_CHACHA: number;
96
+ SSL_OP_SINGLE_DH_USE: number;
97
+ SSL_OP_SINGLE_ECDH_USE: number;
98
+ SSL_OP_SSLEAY_080_CLIENT_DH_BUG: number;
99
+ SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG: number;
100
+ SSL_OP_TLS_BLOCK_PADDING_BUG: number;
101
+ SSL_OP_TLS_D5_BUG: number;
102
+ SSL_OP_TLS_ROLLBACK_BUG: number;
103
+ ENGINE_METHOD_RSA: number;
104
+ ENGINE_METHOD_DSA: number;
105
+ ENGINE_METHOD_DH: number;
106
+ ENGINE_METHOD_RAND: number;
107
+ ENGINE_METHOD_EC: number;
108
+ ENGINE_METHOD_CIPHERS: number;
109
+ ENGINE_METHOD_DIGESTS: number;
110
+ ENGINE_METHOD_PKEY_METHS: number;
111
+ ENGINE_METHOD_PKEY_ASN1_METHS: number;
112
+ ENGINE_METHOD_ALL: number;
113
+ ENGINE_METHOD_NONE: number;
114
+ DH_CHECK_P_NOT_SAFE_PRIME: number;
115
+ DH_CHECK_P_NOT_PRIME: number;
116
+ DH_UNABLE_TO_CHECK_GENERATOR: number;
117
+ DH_NOT_SUITABLE_GENERATOR: number;
118
+ ALPN_ENABLED: number;
119
+ RSA_PKCS1_PADDING: number;
120
+ RSA_SSLV23_PADDING: number;
121
+ RSA_NO_PADDING: number;
122
+ RSA_PKCS1_OAEP_PADDING: number;
123
+ RSA_X931_PADDING: number;
124
+ RSA_PKCS1_PSS_PADDING: number;
125
+ RSA_PSS_SALTLEN_DIGEST: number;
126
+ RSA_PSS_SALTLEN_MAX_SIGN: number;
127
+ RSA_PSS_SALTLEN_AUTO: number;
128
+ defaultCoreCipherList: string;
129
+ TLS1_VERSION: number;
130
+ TLS1_1_VERSION: number;
131
+ TLS1_2_VERSION: number;
132
+ TLS1_3_VERSION: number;
133
+ POINT_CONVERSION_COMPRESSED: number;
134
+ POINT_CONVERSION_UNCOMPRESSED: number;
135
+ POINT_CONVERSION_HYBRID: number;
136
+ };
137
+ generateKey(type: "hmac" | "aes", options: {
138
+ length: number;
139
+ }, callback: (err: Error | null, key: FallbackCrypto.KeyObject) => void): void;
140
+ generateKeySync(type: "hmac" | "aes", options: {
141
+ length: number;
142
+ }): FallbackCrypto.KeyObject;
143
+ createPrivateKey(key: string | globalThis.Buffer | FallbackCrypto.PrivateKeyInput | FallbackCrypto.JsonWebKeyInput): FallbackCrypto.KeyObject;
144
+ createPublicKey(key: string | globalThis.Buffer | FallbackCrypto.KeyObject | FallbackCrypto.JsonWebKeyInput | FallbackCrypto.PublicKeyInput): FallbackCrypto.KeyObject;
145
+ createSecretKey(key: NodeJS.ArrayBufferView): FallbackCrypto.KeyObject;
146
+ createSecretKey(key: string, encoding: BufferEncoding): FallbackCrypto.KeyObject;
147
+ createSign(algorithm: string, options?: import("stream").WritableOptions | undefined): FallbackCrypto.Sign;
148
+ createVerify(algorithm: string, options?: import("stream").WritableOptions | undefined): FallbackCrypto.Verify;
149
+ createDiffieHellman(primeLength: number, generator?: number | NodeJS.ArrayBufferView | undefined): FallbackCrypto.DiffieHellman;
150
+ createDiffieHellman(prime: NodeJS.ArrayBufferView): FallbackCrypto.DiffieHellman;
151
+ createDiffieHellman(prime: string, primeEncoding: FallbackCrypto.BinaryToTextEncoding): FallbackCrypto.DiffieHellman;
152
+ createDiffieHellman(prime: string, primeEncoding: FallbackCrypto.BinaryToTextEncoding, generator: number | NodeJS.ArrayBufferView): FallbackCrypto.DiffieHellman;
153
+ createDiffieHellman(prime: string, primeEncoding: FallbackCrypto.BinaryToTextEncoding, generator: string, generatorEncoding: FallbackCrypto.BinaryToTextEncoding): FallbackCrypto.DiffieHellman;
154
+ getDiffieHellman(groupName: string): FallbackCrypto.DiffieHellman;
155
+ scrypt(password: FallbackCrypto.BinaryLike, salt: FallbackCrypto.BinaryLike, keylen: number, callback: (err: Error | null, derivedKey: globalThis.Buffer) => void): void;
156
+ scrypt(password: FallbackCrypto.BinaryLike, salt: FallbackCrypto.BinaryLike, keylen: number, options: FallbackCrypto.ScryptOptions, callback: (err: Error | null, derivedKey: globalThis.Buffer) => void): void;
157
+ scryptSync(password: FallbackCrypto.BinaryLike, salt: FallbackCrypto.BinaryLike, keylen: number, options?: FallbackCrypto.ScryptOptions | undefined): globalThis.Buffer;
158
+ privateEncrypt(privateKey: FallbackCrypto.RsaPrivateKey | FallbackCrypto.KeyLike, buffer: NodeJS.ArrayBufferView): globalThis.Buffer;
159
+ getCiphers(): string[];
160
+ getCurves(): string[];
161
+ getFips(): 0 | 1;
162
+ getHashes(): string[];
163
+ createECDH(curveName: string): FallbackCrypto.ECDH;
164
+ timingSafeEqual(a: NodeJS.ArrayBufferView, b: NodeJS.ArrayBufferView): boolean;
165
+ sign(algorithm: string | null | undefined, data: NodeJS.ArrayBufferView, key: FallbackCrypto.KeyLike | FallbackCrypto.SignKeyObjectInput | FallbackCrypto.SignPrivateKeyInput): globalThis.Buffer;
166
+ sign(algorithm: string | null | undefined, data: NodeJS.ArrayBufferView, key: FallbackCrypto.KeyLike | FallbackCrypto.SignKeyObjectInput | FallbackCrypto.SignPrivateKeyInput, callback: (error: Error | null, data: globalThis.Buffer) => void): void;
167
+ verify(algorithm: string | null | undefined, data: NodeJS.ArrayBufferView, key: FallbackCrypto.KeyLike | FallbackCrypto.VerifyKeyObjectInput | FallbackCrypto.VerifyPublicKeyInput, signature: NodeJS.ArrayBufferView): boolean;
168
+ verify(algorithm: string | null | undefined, data: NodeJS.ArrayBufferView, key: FallbackCrypto.KeyLike | FallbackCrypto.VerifyKeyObjectInput | FallbackCrypto.VerifyPublicKeyInput, signature: NodeJS.ArrayBufferView, callback: (error: Error | null, result: boolean) => void): void;
169
+ diffieHellman(options: {
170
+ privateKey: FallbackCrypto.KeyObject;
171
+ publicKey: FallbackCrypto.KeyObject;
172
+ }): globalThis.Buffer;
173
+ getCipherInfo(nameOrNid: string | number, options?: FallbackCrypto.CipherInfoOptions | undefined): FallbackCrypto.CipherInfo | undefined;
174
+ hkdf(digest: string, irm: FallbackCrypto.KeyObject | FallbackCrypto.BinaryLike, salt: FallbackCrypto.BinaryLike, info: FallbackCrypto.BinaryLike, keylen: number, callback: (err: Error | null, derivedKey: ArrayBuffer) => void): void;
175
+ hkdfSync(digest: string, ikm: FallbackCrypto.KeyObject | FallbackCrypto.BinaryLike, salt: FallbackCrypto.BinaryLike, info: FallbackCrypto.BinaryLike, keylen: number): ArrayBuffer;
176
+ secureHeapUsed(): FallbackCrypto.SecureHeapUsage;
177
+ randomUUID(options?: FallbackCrypto.RandomUUIDOptions | undefined): string;
178
+ generatePrime(size: number, callback: (err: Error | null, prime: ArrayBuffer) => void): void;
179
+ generatePrime(size: number, options: FallbackCrypto.GeneratePrimeOptionsBigInt, callback: (err: Error | null, prime: bigint) => void): void;
180
+ generatePrime(size: number, options: FallbackCrypto.GeneratePrimeOptionsArrayBuffer, callback: (err: Error | null, prime: ArrayBuffer) => void): void;
181
+ generatePrime(size: number, options: FallbackCrypto.GeneratePrimeOptions, callback: (err: Error | null, prime: bigint | ArrayBuffer) => void): void;
182
+ generatePrimeSync(size: number): ArrayBuffer;
183
+ generatePrimeSync(size: number, options: FallbackCrypto.GeneratePrimeOptionsBigInt): bigint;
184
+ generatePrimeSync(size: number, options: FallbackCrypto.GeneratePrimeOptionsArrayBuffer): ArrayBuffer;
185
+ generatePrimeSync(size: number, options: FallbackCrypto.GeneratePrimeOptions): bigint | ArrayBuffer;
186
+ checkPrime(value: FallbackCrypto.LargeNumberLike, callback: (err: Error | null, result: boolean) => void): void;
187
+ checkPrime(value: FallbackCrypto.LargeNumberLike, options: FallbackCrypto.CheckPrimeOptions, callback: (err: Error | null, result: boolean) => void): void;
188
+ checkPrimeSync(candidate: FallbackCrypto.LargeNumberLike, options?: FallbackCrypto.CheckPrimeOptions | undefined): boolean;
189
+ Certificate: FallbackCrypto.Certificate & {
190
+ (): FallbackCrypto.Certificate;
191
+ new (): FallbackCrypto.Certificate;
192
+ exportChallenge(spkac: FallbackCrypto.BinaryLike): globalThis.Buffer;
193
+ exportPublicKey(spkac: FallbackCrypto.BinaryLike, encoding?: string | undefined): globalThis.Buffer;
194
+ verifySpkac(spkac: NodeJS.ArrayBufferView): boolean;
195
+ };
196
+ fips: boolean;
197
+ KeyObject: typeof FallbackCrypto.KeyObject;
198
+ Cipher: typeof FallbackCrypto.Cipher;
199
+ Decipher: typeof FallbackCrypto.Decipher;
200
+ Sign: typeof FallbackCrypto.Sign;
201
+ Verify: typeof FallbackCrypto.Verify;
202
+ DiffieHellman: typeof FallbackCrypto.DiffieHellman;
203
+ ECDH: typeof FallbackCrypto.ECDH;
204
+ DEFAULT_ENCODING: BufferEncoding;
205
+ X509Certificate: typeof FallbackCrypto.X509Certificate;
206
+ webcrypto: typeof FallbackCrypto.webcrypto;
207
+ };
208
+ export default crypto;
@@ -0,0 +1,60 @@
1
+ import { BinaryLike } from './Utils';
2
+ declare enum KFormatType {
3
+ kKeyFormatDER = 0,
4
+ kKeyFormatPEM = 1,
5
+ kKeyFormatJWK = 2
6
+ }
7
+ declare enum KeyEncoding {
8
+ kKeyEncodingPKCS1 = 0,
9
+ kKeyEncodingPKCS8 = 1,
10
+ kKeyEncodingSPKI = 2,
11
+ kKeyEncodingSEC1 = 3
12
+ }
13
+ export declare function preparePrivateKey(key: BinaryLike | {
14
+ key: any;
15
+ encoding?: string;
16
+ format?: any;
17
+ padding?: number;
18
+ passphrase?: string;
19
+ }): {
20
+ format: KFormatType;
21
+ data: ArrayBuffer;
22
+ type?: any;
23
+ passphrase?: any;
24
+ };
25
+ export declare function preparePublicOrPrivateKey(key: BinaryLike | {
26
+ key: any;
27
+ encoding?: string;
28
+ format?: any;
29
+ padding?: number;
30
+ }): {
31
+ format: KFormatType;
32
+ data: ArrayBuffer;
33
+ type?: any;
34
+ passphrase?: any;
35
+ };
36
+ export declare function parsePublicKeyEncoding(enc: {
37
+ key: any;
38
+ encoding?: string;
39
+ format?: string;
40
+ cipher?: string;
41
+ passphrase?: string;
42
+ }, keyType: string | undefined, objName?: string): {
43
+ format: KFormatType;
44
+ type: KeyEncoding | undefined;
45
+ cipher: string | undefined;
46
+ passphrase: ArrayBuffer | undefined;
47
+ };
48
+ export declare function parsePrivateKeyEncoding(enc: {
49
+ key: any;
50
+ encoding?: string;
51
+ format?: string;
52
+ cipher?: string;
53
+ passphrase?: string;
54
+ }, keyType: string | undefined, objName?: string): {
55
+ format: KFormatType;
56
+ type: KeyEncoding | undefined;
57
+ cipher: string | undefined;
58
+ passphrase: ArrayBuffer | undefined;
59
+ };
60
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-quick-crypto",
3
- "version": "0.2.0",
3
+ "version": "0.3.2",
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",
@@ -26,7 +26,7 @@
26
26
  "lint": "eslint \"**/*.{js,ts,tsx}\"",
27
27
  "prepare": "bob build",
28
28
  "release": "release-it",
29
- "pods": "cd example && pod-install --quiet"
29
+ "pods": "cd example/ios && pod-install --quiet"
30
30
  },
31
31
  "keywords": [
32
32
  "react-native",
@@ -55,14 +55,14 @@
55
55
  "@release-it/conventional-changelog": "^3.3.0",
56
56
  "@types/react": "^17.0.21",
57
57
  "@types/react-native": "^0.65.5",
58
- "@typescript-eslint/eslint-plugin": "^5.14.0",
59
- "eslint": "^7.32.0",
58
+ "@typescript-eslint/eslint-plugin": "^5.28.0",
59
+ "eslint": "^8.17.0",
60
60
  "prettier": "^2.4.0",
61
61
  "react": "^17.0.2",
62
62
  "react-native": "^0.66.0",
63
63
  "react-native-builder-bob": "^0.18.1",
64
64
  "release-it": "^14.11.5",
65
- "typescript": "^4.4.3"
65
+ "typescript": "^4.7.4"
66
66
  },
67
67
  "peerDependencies": {
68
68
  "react": "*",
@@ -163,6 +163,7 @@
163
163
  "react-native-quick-base64": "^2.0.2",
164
164
  "stream": "^0.0.2",
165
165
  "stream-browserify": "^3.0.0",
166
- "string_decoder": "^1.3.0"
166
+ "string_decoder": "^1.3.0",
167
+ "crypto-browserify": "^3.12.0"
167
168
  }
168
169
  }
@@ -33,7 +33,7 @@ Pod::Spec.new do |s|
33
33
  "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\" \"$(PODS_TARGET_SRCROOT)\" \"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/boost-for-react-native\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/Headers/Private/React-Core\" "
34
34
  }
35
35
  s.xcconfig = {
36
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++14",
36
+ "CLANG_CXX_LANGUAGE_STANDARD" => "c++17",
37
37
  "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/boost-for-react-native\" \"$(PODS_ROOT)/glog\" \"${PODS_ROOT}/Headers/Public/React-hermes\" \"${PODS_ROOT}/Headers/Public/hermes-engine\""
38
38
  }
39
39
 
package/src/.DS_Store ADDED
Binary file
@@ -0,0 +1,4 @@
1
+ declare module 'crypto-browserify' {
2
+ import Crypto from 'crypto';
3
+ export = Crypto;
4
+ }
@@ -0,0 +1,4 @@
1
+ declare module 'stream-browserify' {
2
+ import Stream from 'stream';
3
+ export = Stream;
4
+ }