Select the types of activity you want to include in your feed.
fix(crypto): clarify gf_mul comment in split_secret
It is the random coefficient (coeffs[i]), not the secret byte directly, that passes through gf_mul. The secret byte only goes through gf_add (XOR, inherently branchless). Security intent unchanged.
···3434 // Polynomial: f(x) = secret[i] + coeffs[i]·x in GF(2^8).
3535 // f(0) = secret[i]. Shares are f(1), f(2), f(3).
3636 //
3737- // Secret bytes are in the first argument of gf_mul. The polynomial
3838- // reduction inside gf_mul is branchless (mask-based), so bit patterns
3939- // of the secret are not observable through branch timing. The `if b & 1`
4040- // branch in gf_mul is on the public share index.
3737+ // Secret-bearing coefficient bytes are in the first argument of gf_mul.
3838+ // The polynomial reduction inside gf_mul is branchless (mask-based), so
3939+ // bit patterns of the coefficients are not observable through branch
4040+ // timing. The `if b & 1` branch in gf_mul is on the public share index.
4141 for i in 0..32 {
4242 let s = secret[i];
4343 let a = coeffs[i];