astrobwtv3

package module
v0.0.0-...-b3560f5 Latest Latest
Warning

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

Go to latest
Published: Jun 18, 2024 License: BSD-3-Clause Imports: 19 Imported by: 1

README

go-spectrex

ATTENTION: THIS REPOSITORY IS ARCHIVED AND NO LONGER UPDATED. THE GO VERSION HAS BEEN SUPERSEDED BY THE STABLE RUST VERSION OF SPECTREX. WE STRONGLY ENCOURAGE SWITCHING TO THE NEW RUST VERSION IMMEDIATELY.

https://github.com/spectre-project/rusty-spectrex

PLEASE NOTE: BUGS AND FEATURE REQUESTS FOR THE GO VERSION WILL NOT BE ADDRESSED. REPRODUCE ANY ISSUES IN THE RUST VERSION AND REPORT THEM IN THE RELEVANT REPOSITORY.

Documentation

Overview

Package rc4 implements RC4 encryption, as defined in Bruce Schneier's Applied Cryptography.

RC4 is cryptographically broken and should not be used for secure applications.

Package suffixarray implements substring search in logarithmic time using an in-memory suffix array.

Example use:

// create index for some data
index := suffixarray.New(data)

// lookup byte slice s
offsets1 := index.Lookup(s, -1) // the list of all indices where s occurs in data
offsets2 := index.Lookup(s, 3)  // the list of at most 3 indices where s occurs in data

Index

Constants

View Source
const ALLOCATION_SIZE = MAX_LENGTH
View Source
const BigEndian = false
View Source
const CALCULATE_DISTRIBUTION = false
View Source
const COUNTING_SORT_BITS uint64 = 10
View Source
const COUNTING_SORT_SIZE uint64 = 1 << COUNTING_SORT_BITS
View Source
const LittleEndian = true
View Source
const MAX_LENGTH uint32 = (256 * 384) - 1 // this is the maximum
View Source
const REFERENCE_MODE = true

Variables

View Source
var Pool = sync.Pool{New: func() interface{} {
	var d ScratchData
	d.hasher = sha256.New()
	d.stage1_result = ((*[MAX_LENGTH + 1]uint16)(unsafe.Pointer(&d.indices[0])))
	d.stage1_result_bytes = ((*[(MAX_LENGTH) * 2]byte)(unsafe.Pointer(&d.indices[0])))
	d.sa_bytes = ((*[(MAX_LENGTH) * 4]byte)(unsafe.Pointer(&d.sa[0])))

	return &d
}}

Functions

func AstroBWTv3

func AstroBWTv3(input []byte) (outputhash [32]byte)

this will generate a hash

func BigEndian_Uint64

func BigEndian_Uint64(b []byte) uint64

func ReadBigUint32Unsafe

func ReadBigUint32Unsafe(b []byte) uint32

this is NOT much faster and efficient, however it won't work on appengine since it doesn't have the unsafe package. Also this would blow up silently if len(b) < 4.

Types

type Cipher

type Cipher struct {
	// contains filtered or unexported fields
}

A Cipher is an instance of RC4 using a particular key.

func NewCipher

func NewCipher(key []byte) Cipher

NewCipher creates and returns a new Cipher. The key argument should be the RC4 key, at least 1 byte and at most 256 bytes.

func (*Cipher) Reset deprecated

func (c *Cipher) Reset()

Reset zeros the key data and makes the Cipher unusable.

Deprecated: Reset can't guarantee that the key will be entirely removed from the process's memory.

func (*Cipher) XORKeyStream

func (c *Cipher) XORKeyStream(dst, src []byte)

XORKeyStream sets dst to the result of XORing src with the key stream. Dst and src must overlap entirely or not at all.

type Data2

type Data2 struct {
	// contains filtered or unexported fields
}

type Index

type Index struct {
	// contains filtered or unexported fields
}

Index implements a suffix array for fast substring search.

func New

func New(data []byte) *Index

New creates a new Index for data. Index creation time is O(N) for N = len(data).

func (*Index) Bytes

func (x *Index) Bytes() []byte

Bytes returns the data over which the index was created. It must not be modified.

func (*Index) FindAllIndex

func (x *Index) FindAllIndex(r *regexp.Regexp, n int) (result [][]int)

FindAllIndex returns a sorted list of non-overlapping matches of the regular expression r, where a match is a pair of indices specifying the matched slice of x.Bytes(). If n < 0, all matches are returned in successive order. Otherwise, at most n matches are returned and they may not be successive. The result is nil if there are no matches, or if n == 0.

func (*Index) Lookup

func (x *Index) Lookup(s []byte, n int) (result []int)

Lookup returns an unsorted list of at most n indices where the byte string s occurs in the indexed data. If n < 0, all occurrences are returned. The result is nil if s is empty, s is not found, or n == 0. Lookup time is O(log(N)*len(s) + len(result)) where N is the size of the indexed data.

func (*Index) Read

func (x *Index) Read(r io.Reader) error

Read reads the index from r into x; x must not be nil.

func (*Index) Write

func (x *Index) Write(w io.Writer) error

Write writes the index x to w.

type KeySizeError

type KeySizeError int

func (KeySizeError) Error

func (k KeySizeError) Error() string

type ScratchData

type ScratchData struct {
	// contains filtered or unexported fields
}

Jump to

Keyboard shortcuts

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