LIBFMSR
0.1
|
Implements GF(256) arithmetics. More...
Defines | |
#define | gf_uint64_mul(ptr_multiplier, ptr_multiplicand) |
Functions | |
void | gf_init () |
gf | gf_mul (gf a, gf b) |
gf | gf_div (gf a, gf b) |
gf | gf_inv (gf a) |
gf | gf_log (gf a) |
gf | gf_x (gf a) |
void | gf_mul_bytes (gf *a, size_t len, gf b, gf *c) |
Multiplies all (len) bytes in a[] by b, store results in c[]. | |
void | gf_mulxor_bytes (gf *a, size_t len, gf b, gf *c) |
Multiplies all (len) bytes in a[] by b, bitwise xor results to c[]. |
Implements GF(256) arithmetics.
#define gf_uint64_mul | ( | ptr_multiplier, | |
ptr_multiplicand | |||
) |
((uint64_t)ptr_multiplier[ptr_multiplicand[0]]) | \ (((uint64_t)ptr_multiplier[ptr_multiplicand[1]])<<8) | \ (((uint64_t)ptr_multiplier[ptr_multiplicand[2]])<<16) | \ (((uint64_t)ptr_multiplier[ptr_multiplicand[3]])<<24) | \ (((uint64_t)ptr_multiplier[ptr_multiplicand[4]])<<32) | \ (((uint64_t)ptr_multiplier[ptr_multiplicand[5]])<<40) | \ (((uint64_t)ptr_multiplier[ptr_multiplicand[6]])<<48) | \ (((uint64_t)ptr_multiplier[ptr_multiplicand[7]])<<56)
void gf_init | ( | void | ) |
void gf_mul_bytes | ( | gf * | a, |
size_t | len, | ||
gf | b, | ||
gf * | c | ||
) |
Multiplies all (len) bytes in a[] by b, store results in c[].
a[] and c[] can be the same location.
void gf_mulxor_bytes | ( | gf * | a, |
size_t | len, | ||
gf | b, | ||
gf * | c | ||
) |
Multiplies all (len) bytes in a[] by b, bitwise xor results to c[].
a[] and c[] can be the same location.