Skip to content

Commit 40225f0

Browse files
committed
fix ci loop & fix code issues
Made-with: Cursor
1 parent 4702bab commit 40225f0

2 files changed

Lines changed: 36 additions & 33 deletions

File tree

include/vortex/cipher.h

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -192,29 +192,28 @@
192192
* Loop 3 — performs the actual decryption into the buffer and binds
193193
* var; its UPDATE clears the flag so loops 1 and 2 also exit.
194194
*
195-
* The encrypted blob is an inline compound literal in read-only storage.
195+
* The encrypted blob is a static const array in read-only storage.
196196
* The plaintext buffer lives only while the body executes.
197197
*
198198
* Lifetime note: do NOT use var outside the braces. */
199199
#define OBF_WITH(var, s) \
200+
(void)sizeof(struct { \
201+
_Static_assert(sizeof(s) <= (size_t)(OBF_MAX_LEN), \
202+
"OBF_WITH: string length exceeds OBF_MAX_LEN"); \
203+
char obf_sa_; \
204+
}); \
205+
static const unsigned char var##__blob_[] = { \
206+
OBF_SBOX(OBF_SEED0), OBF_SBOX(OBF_SEED1), \
207+
OBF_SBOX(OBF_SEED2), OBF_SBOX(OBF_SEED3), \
208+
OBF_ENC_ALL(s) \
209+
}; \
200210
for (int var##__once_ = 1; var##__once_; var##__once_ = 0) \
201211
for (unsigned char var##__buf_[OBF_MAX_LEN] = {0}; \
202212
var##__once_; \
203213
obf_zero(var##__buf_, (size_t)OBF_MAX_LEN), var##__once_ = 0) \
204-
for (const char *var = ( \
205-
(void)sizeof(struct { \
206-
_Static_assert(sizeof(s) <= (size_t)(OBF_MAX_LEN), \
207-
"OBF_WITH: string length exceeds OBF_MAX_LEN"); \
208-
char obf_sa_; \
209-
}), \
210-
obf_decrypt( \
211-
(const unsigned char[]){ \
212-
OBF_SBOX(OBF_SEED0), OBF_SBOX(OBF_SEED1), \
213-
OBF_SBOX(OBF_SEED2), OBF_SBOX(OBF_SEED3), \
214-
OBF_ENC_ALL(s) \
215-
}, \
216-
(size_t)(sizeof(s) + 4u), var##__buf_) \
217-
); \
214+
for (const char *var = obf_decrypt( \
215+
var##__blob_, \
216+
(size_t)(sizeof(s) + 4u), var##__buf_); \
218217
var##__once_; var##__once_ = 0)
219218

220219
/* ── OBF_INT ─────────────────────────────────────────────────────────
@@ -336,14 +335,16 @@
336335
"OBF_STRING: string length exceeds OBF_MAX_LEN"); \
337336
char obf_sa_; \
338337
}); \
338+
static const unsigned char var##__blob_[] = { \
339+
OBF_SBOX(OBF_SEED0), OBF_SBOX(OBF_SEED1), \
340+
OBF_SBOX(OBF_SEED2), OBF_SBOX(OBF_SEED3), \
341+
OBF_ENC_ALL(s) \
342+
}; \
339343
unsigned char var##__buf_[OBF_MAX_LEN] = {0}; \
340344
unsigned char *var##__gc_ \
341345
__attribute__((cleanup(obf_buf_cleanup_))) = var##__buf_; \
342-
const char *var = obf_decrypt( \
343-
(const unsigned char[]){OBF_SBOX(OBF_SEED0), OBF_SBOX(OBF_SEED1), \
344-
OBF_SBOX(OBF_SEED2), OBF_SBOX(OBF_SEED3), \
345-
OBF_ENC_ALL(s)}, \
346-
(size_t)(sizeof(s) + 4u), var##__buf_); \
346+
const char *var = obf_decrypt(var##__blob_, \
347+
(size_t)(sizeof(s) + 4u), var##__buf_); \
347348
(void)var##__gc_
348349

349350
#else /* MSVC / unknown: no auto-zero; use OBF_WITH for safe cleanup */
@@ -354,11 +355,13 @@
354355
"OBF_STRING: string length exceeds OBF_MAX_LEN"); \
355356
char obf_sa_; \
356357
}); \
358+
static const unsigned char var##__blob_[] = { \
359+
OBF_SBOX(OBF_SEED0), OBF_SBOX(OBF_SEED1), \
360+
OBF_SBOX(OBF_SEED2), OBF_SBOX(OBF_SEED3), \
361+
OBF_ENC_ALL(s) \
362+
}; \
357363
unsigned char var##__buf_[OBF_MAX_LEN] = {0}; \
358-
const char *var = obf_decrypt( \
359-
(const unsigned char[]){OBF_SBOX(OBF_SEED0), OBF_SBOX(OBF_SEED1), \
360-
OBF_SBOX(OBF_SEED2), OBF_SBOX(OBF_SEED3), \
361-
OBF_ENC_ALL(s)}, \
364+
const char *var = obf_decrypt(var##__blob_, \
362365
(size_t)(sizeof(s) + 4u), var##__buf_)
363366

364367
#endif /* __GNUC__ || __clang__ */

include/vortex/keys.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,15 @@
4646
* We look at specific characters in the date string (like "Jan 01 2024").
4747
* We use prime numbers to multiply the characters so they combine randomly. */
4848
#define OBF_GSEED \
49-
(( (unsigned int)OBF_FC(__DATE__, 0)*127u \
50-
+ (unsigned int)OBF_FC(__DATE__, 1)*131u \
51-
+ (unsigned int)OBF_FC(__DATE__, 2)*137u \
52-
+ (unsigned int)OBF_FC(__DATE__, 4)*139u \
53-
+ (unsigned int)OBF_FC(__DATE__, 5)*149u \
54-
+ (unsigned int)OBF_FC(__DATE__, 7)*151u \
55-
+ (unsigned int)OBF_FC(__DATE__, 8)*157u \
56-
+ (unsigned int)OBF_FC(__DATE__, 9)*163u \
57-
+ (unsigned int)OBF_FC(__DATE__,10)*167u \
49+
((( (unsigned int)OBF_FC(__DATE__, 0)*127u \
50+
+ (unsigned int)OBF_FC(__DATE__, 1)*131u \
51+
+ (unsigned int)OBF_FC(__DATE__, 2)*137u \
52+
+ (unsigned int)OBF_FC(__DATE__, 4)*139u \
53+
+ (unsigned int)OBF_FC(__DATE__, 5)*149u \
54+
+ (unsigned int)OBF_FC(__DATE__, 7)*151u \
55+
+ (unsigned int)OBF_FC(__DATE__, 8)*157u \
56+
+ (unsigned int)OBF_FC(__DATE__, 9)*163u \
57+
+ (unsigned int)OBF_FC(__DATE__,10)*167u) \
5858
^ ((unsigned int)(OBF_PROJECT_SALT) * 241u) \
5959
) & 0xFFFFFFFFu)
6060

0 commit comments

Comments
 (0)