polytomsg function
Converts a polynomial into a message (byte array). Groups of 8 coefficients are converted back into a single byte.
Implementation
void polytomsg(Uint8List msg, Poly p) {
for (int i = 0; i < KYBER_SYMBYTES; i++) {
msg[i] = 0;
for (int j = 0; j < 8; j++) {
int t = p.coeffs[8 * i + j];
t = (t + (KYBER_Q ~/ 2)) % KYBER_Q;
int bit = ((2 * t) ~/ KYBER_Q) & 1;
msg[i] |= (bit << j);
}
}
}