byteutil

package
v1.0.2026 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 14, 2023 License: Apache-2.0 Imports: 0 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GfnDouble

func GfnDouble(input []byte) []byte

GfnDouble computes 2 * input in the field of 2^n elements. The irreducible polynomial in the finite field for n=128 is x^128 + x^7 + x^2 + x + 1 (equals 0x87) Constant-time execution in order to avoid side-channel attacks

func RightXor

func RightXor(X, Y []byte) []byte

RightXor XORs smaller input (assumed Y) at the right of the larger input (assumed X)

func ShiftBytesLeft

func ShiftBytesLeft(x []byte) []byte

ShiftBytesLeft outputs the byte array corresponding to x << 1 in binary.

func ShiftNBytesLeft

func ShiftNBytesLeft(dst, x []byte, n int)

ShiftNBytesLeft puts in dst the byte array corresponding to x << n in binary.

func SliceForAppend

func SliceForAppend(in []byte, n int) (head, tail []byte)

SliceForAppend takes a slice and a requested number of bytes. It returns a slice with the contents of the given slice followed by that many bytes and a second slice that aliases into it and contains only the extra bytes. If the original slice has sufficient capacity then no allocation is performed.

func XorBytes

func XorBytes(Z, X, Y []byte)

XorBytes assumes equal input length, puts X XOR Y into Z

func XorBytesMut

func XorBytesMut(X, Y []byte)

XorBytesMut assumes equal input length, replaces X with X XOR Y

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL