GonetsReedSalmon/GonetsReedSalmon.h

38 lines
978 B
C

//
// 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