- // Build auth for accounting packet
- uint8_t z[16] = {0};
- uint8_t hash[16] = {0};
- MD5_CTX ctx;
- MD5_Init(&ctx);
- MD5_Update(&ctx, b, 4);
- MD5_Update(&ctx, z, 16);
- MD5_Update(&ctx, b + 20, (p - b) - 20);
- MD5_Update(&ctx, config->radiussecret, strlen(config->radiussecret));
- MD5_Final(hash, &ctx);
- memcpy(b + 4, hash, 16);
- memcpy(radius[r].auth, hash, 16);
+ // Build auth for accounting packet
+ calc_auth(b, p - b, zero, b + 4);
+ memcpy(radius[r].auth, b + 4, 16);