react-native-mmkv 3.0.0 → 3.0.1
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.
- package/MMKV/Core/aes/AESCrypt.cpp +19 -17
- package/MMKV/Core/aes/AESCrypt.h +1 -4
- package/package.json +1 -1
|
@@ -25,25 +25,12 @@
|
|
|
25
25
|
#include <cstring>
|
|
26
26
|
#include <ctime>
|
|
27
27
|
|
|
28
|
-
namespace mmkv {
|
|
29
|
-
|
|
30
|
-
// assuming size in [1, 5]
|
|
31
|
-
uint32_t AESCrypt::randomItemSizeHolder(uint32_t size) {
|
|
32
|
-
constexpr uint32_t ItemSizeHolders[] = {0, 0x80, 0x4000, 0x200000, 0x10000000, 0};
|
|
33
|
-
auto ItemSizeHolderMin = ItemSizeHolders[size - 1];
|
|
34
|
-
auto ItemSizeHolderMax = ItemSizeHolders[size] - 1;
|
|
35
|
-
|
|
36
|
-
srand((unsigned) time(nullptr));
|
|
37
|
-
auto result = static_cast<uint32_t>(rand());
|
|
38
|
-
result = result % (ItemSizeHolderMax - ItemSizeHolderMin + 1);
|
|
39
|
-
result += ItemSizeHolderMin;
|
|
40
|
-
return result;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
28
|
#ifndef MMKV_DISABLE_CRYPT
|
|
44
29
|
|
|
45
30
|
using namespace openssl;
|
|
46
31
|
|
|
32
|
+
namespace mmkv {
|
|
33
|
+
|
|
47
34
|
AESCrypt::AESCrypt(const void *key, size_t keyLength, const void *iv, size_t ivLength) {
|
|
48
35
|
if (key && keyLength > 0) {
|
|
49
36
|
memcpy(m_key, key, (keyLength > AES_KEY_LEN) ? AES_KEY_LEN : keyLength);
|
|
@@ -115,6 +102,19 @@ void AESCrypt::fillRandomIV(void *vector) {
|
|
|
115
102
|
}
|
|
116
103
|
}
|
|
117
104
|
|
|
105
|
+
// assuming size in [1, 5]
|
|
106
|
+
uint32_t AESCrypt::randomItemSizeHolder(uint32_t size) {
|
|
107
|
+
constexpr uint32_t ItemSizeHolders[] = {0, 0x80, 0x4000, 0x200000, 0x10000000, 0};
|
|
108
|
+
auto ItemSizeHolderMin = ItemSizeHolders[size - 1];
|
|
109
|
+
auto ItemSizeHolderMax = ItemSizeHolders[size] - 1;
|
|
110
|
+
|
|
111
|
+
srand((unsigned) time(nullptr));
|
|
112
|
+
auto result = static_cast<uint32_t>(rand());
|
|
113
|
+
result = result % (ItemSizeHolderMax - ItemSizeHolderMin + 1);
|
|
114
|
+
result += ItemSizeHolderMin;
|
|
115
|
+
return result;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
118
|
static inline void
|
|
119
119
|
Rollback_cfb_decrypt(const uint8_t *input, const uint8_t *output, size_t len, AES_KEY *key, AESCryptStatus &status) {
|
|
120
120
|
auto ivec = status.m_vector;
|
|
@@ -174,6 +174,8 @@ AESCrypt AESCrypt::cloneWithStatus(const AESCryptStatus &status) const {
|
|
|
174
174
|
return AESCrypt(*this, status);
|
|
175
175
|
}
|
|
176
176
|
|
|
177
|
+
} // namespace mmkv
|
|
178
|
+
|
|
177
179
|
# ifdef MMKV_DEBUG
|
|
178
180
|
|
|
179
181
|
# include "../MMKVLog.h"
|
|
@@ -270,7 +272,7 @@ void AESCrypt::testAESCrypt() {
|
|
|
270
272
|
delete[] decryptText;
|
|
271
273
|
}
|
|
272
274
|
|
|
275
|
+
} // namespace mmkv
|
|
276
|
+
|
|
273
277
|
# endif // MMKV_DEBUG
|
|
274
278
|
#endif // MMKV_DISABLE_CRYPT
|
|
275
|
-
|
|
276
|
-
} // namespace mmkv
|
package/MMKV/Core/aes/AESCrypt.h
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-mmkv",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "The fastest key/value storage for React Native. ~30x faster than AsyncStorage! Works on Android, iOS and Web.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|