LIBFMSR  0.1
Defines | Functions
gf.c File Reference

Implements GF(256) arithmetics. More...

#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include "gf.h"
#include "misc.h"

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[].

Detailed Description

Implements GF(256) arithmetics.

Author:
Henry Chen (chchen@cse.cuhk.edu.hk)

Define Documentation

#define gf_uint64_mul (   ptr_multiplier,
  ptr_multiplicand 
)
Value:
((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)

Function Documentation

gf gf_div ( gf  a,
gf  b 
)
void gf_init ( void  )
gf gf_inv ( gf  a)
gf gf_log ( gf  a)
gf gf_mul ( gf  a,
gf  b 
)
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.

gf gf_x ( gf  a)
 All Data Structures Files Functions Variables Typedefs Defines