// // Created by zemon on 24.07.2022. // #ifndef GonetsReedSalmon_GonetsReedSalmon_H #define GonetsReedSalmon_GonetsReedSalmon_H #include "Galois256.h" typedef struct { tGalois256 *gf; uint8_t generative_polynomial[32]; uint8_t generative_polynomial_len; uint8_t parity_length; uint8_t max_fixable_err; } tGonetsReedSalmon;//fish void vGonetsReedSalmonInit(tGonetsReedSalmon *env, tGalois256 *galoisField, uint8_t parity_length); void vGonetsReedSalmonEncode(tGonetsReedSalmon *env, const uint8_t *msg, uint8_t msg_len, uint8_t *encoded); void vGonetsReedSalmonRecovery( tGonetsReedSalmon *env, uint8_t *encoded_message, uint8_t encoded_message_len, uint8_t *recovered_message ); void vGonetsReedSalmonEncode_1410_3430(tGonetsReedSalmon *salmonParity4, uint8_t *data1410); void vGonetsReedSalmonRecovery_1410_3430(tGonetsReedSalmon *salmonParity4, uint8_t *data1410); #endif //GonetsReedSalmon_GonetsReedSalmon_H