// newGFPolyFromData returns |data| as a polynomial over GF(2^8). // // Each data byte becomes the coefficient of an x term. // // For an n byte input the polynomial is: // data[n-1]*(x^n-1) + data[n-2]*(x^n-2) ... + data[0]*(x^0). func newGFPolyFromData(data *bitset.Bitset) gfPoly { numTotalBytes := data.Len() / 8 if data.Len()%8 != 0 { numTotalBytes++ } result := gfPoly{term: make([]gfElement, numTotalBytes)} i := numTotalBytes - 1 for j := 0; j < data.Len(); j += 8 { result.term[i] = gfElement(data.ByteAt(j)) i-- } return result }