Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

123456789101112131415161718192021222324252627282930313233
  1. /*
  2. This file is for syndrome computation
  3. */
  4. #include "synd.h"
  5. #include "params.h"
  6. #include "root.h"
  7. /* input: Goppa polynomial f, support L, received word r */
  8. /* output: out, the syndrome of length 2t */
  9. void PQCLEAN_MCELIECE6960119_CLEAN_synd(gf *out, gf *f, gf *L, const unsigned char *r) {
  10. int i, j;
  11. gf e, e_inv, c;
  12. for (j = 0; j < 2 * SYS_T; j++) {
  13. out[j] = 0;
  14. }
  15. for (i = 0; i < SYS_N; i++) {
  16. c = (r[i / 8] >> (i % 8)) & 1;
  17. e = PQCLEAN_MCELIECE6960119_CLEAN_eval(f, L[i]);
  18. e_inv = PQCLEAN_MCELIECE6960119_CLEAN_gf_inv(PQCLEAN_MCELIECE6960119_CLEAN_gf_mul(e, e));
  19. for (j = 0; j < 2 * SYS_T; j++) {
  20. out[j] = PQCLEAN_MCELIECE6960119_CLEAN_gf_add(out[j], PQCLEAN_MCELIECE6960119_CLEAN_gf_mul(e_inv, c));
  21. e_inv = PQCLEAN_MCELIECE6960119_CLEAN_gf_mul(e_inv, L[i]);
  22. }
  23. }
  24. }