guoling
a72006d149
Optimize borrowed value storage and reject self-import
2026-10-08 16:17:57 +08:00
Qutrek
e3a2a9e610
Copy borrowed values when importing into an encrypted store
...
importFrom() passes the destination no-copy views of the source's values
(KeyValueHolderCrypt::toMMBuffer() / KeyValueHolder::toMMBuffer()). An
encrypted destination keeps a value that is not stored as an offset with
KeyValueHolderCrypt(MMBuffer &&), which adopted the buffer's pointer without
checking that the buffer owns it, and freed it later on remove, overwrite or
clearAll(): a free of memory inside the source's map node or mmap, or a
double free of the source's heap buffer.
Copy a no-copy buffer instead of adopting it. Add a unit test importing plain
and encrypted stores into AES-128 and AES-256 destinations.
2026-10-02 06:09:16 +03:00
guoling
c708914c04
protect from delete file failure on corrupted files
2025-12-18 19:33:30 +08:00
guoling
8cb70d1123
add aes256 option on mmkv creation
2025-11-27 16:02:49 +08:00
guoling
2ba8ff9bc0
support AES 256
2025-09-24 11:55:35 +08:00
guoling
f23e95c652
support using MMKVCore at Apple platform in pure C++ code
2025-02-14 19:43:48 +08:00
guoling
912f8a4ccf
fix override bug on encrypted mmkv #1351
2024-07-16 18:38:38 +08:00
guoling
100b8ef384
fix leak in test code
2020-11-03 17:02:39 +08:00
guoling
fa241c754f
fix NSData copy error #550
2020-11-03 16:34:19 +08:00
guoling
193d77e329
prepare for v1.2.4
2020-10-21 16:38:55 +08:00
guoling
580e815ce9
fix decode error of encrypted MMKV on some devices: issue #529
2020-09-23 12:29:25 +08:00
guoling
6945a37d7a
fix pointer alignment
2020-09-03 21:27:42 +08:00
guoling
74be762dc8
add MMKV_DISABLE_CRYPT preprocess directive
2020-07-01 18:12:00 +08:00
guoling
1d262bb195
hide KeyValueHolder from public header
2020-06-30 18:23:25 +08:00
guoling
d5814ab10f
tidy
2020-06-28 20:51:45 +08:00
guoling
6a6ce49849
rename paddedValue & paddedBuffer
2020-06-28 17:15:03 +08:00
guoling
20d64a6f4a
fix skipBytes() bug
2020-06-23 20:55:35 +08:00
guoling
dacbd84693
split IO logic into seperate file
2020-06-22 23:02:24 +08:00
guoling
738e567a3c
throw on malloc failure
2020-06-19 21:20:31 +08:00
guoling
87e32a5539
opt partialLoadFromFile on encrypted mmkv
2020-06-19 18:57:09 +08:00
guoling
7b2af677cd
POSIX
2020-06-19 15:36:08 +08:00
guoling
e1b7e95388
Win32
2020-06-19 15:09:56 +08:00
guoling
9ba472ca1f
POSIX
2020-06-18 22:37:57 +08:00
guoling
0ad815fc5c
encrypt & decrypt almost done
2020-06-17 20:44:56 +08:00
guoling
3c044e62b6
split small value & large value
2020-06-16 22:20:52 +08:00
guoling
305bbca60d
aes decrypt almost done
2020-06-16 21:48:18 +08:00
guoling
cb097c3901
prepare for handling encrypted mmkv, decrypt rollback almost ready
2020-06-12 22:03:53 +08:00
guoling
0f0554edf1
opt fullwriteback()
2020-06-10 17:33:38 +08:00
guoling
524df11448
finish read, prepare for write
2020-06-09 22:22:53 +08:00
guoling
89d8a5f713
split kv holder into normal & crypted
2020-06-09 11:44:22 +08:00
guoling
402a65fc5f
key-value holder
2020-06-08 23:19:19 +08:00