MCPcopy Create free account
hub / github.com/defold/defold / EncryptXTea

Function EncryptXTea

engine/dlib/src/dlib/crypt.cpp:26–40  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

24 const uint32_t NUM_ROUNDS = 32;
25
26 static inline uint64_t EncryptXTea(uint64_t v, const uint32_t* key)
27 {
28 uint32_t v0 = (uint32_t) (v >> 32);
29 uint32_t v1 = (uint32_t) (v & 0xffffffff);
30
31 uint32_t sum = 0, delta = 0x9e3779b9;
32 for (uint32_t i = 0; i < NUM_ROUNDS; i++)
33 {
34 v0 += (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + dmEndian::ToHost(key[sum & 3]));
35 sum += delta;
36 v1 += (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + dmEndian::ToHost(key[(sum>>11) & 3]));
37 }
38 uint64_t ret = dmEndian::ToHost((((uint64_t) v0) << 32 | v1));
39 return ret;
40 }
41
42 static void EncryptXTeaCTR(uint8_t* data, uint32_t datalen, const uint8_t* key, uint32_t keylen)
43 {

Callers 1

EncryptXTeaCTRFunction · 0.85

Calls 1

ToHostFunction · 0.85

Tested by

no test coverage detected