Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ports: port peachpy go projects to avo #40

Open
mmcloughlin opened this issue Jan 7, 2019 · 10 comments
Open

ports: port peachpy go projects to avo #40

mmcloughlin opened this issue Jan 7, 2019 · 10 comments
Labels
good first issue Good for newcomers testing Tests and supporting infrastructure

Comments

@mmcloughlin
Copy link
Owner

mmcloughlin commented Jan 7, 2019

Consider porting existing PeachPy Go projects to avo. At a minimum this would be really valuable feedback and system-level testing for avo. These could be committed to the avo examples directory or potentially committed back to the original repos if their maintainers are interested.

Repository Description Stars
Yawning/chacha20 ChaCha20 cryptographic cipher. 33
Yawning/aez AEZ authenticated-encryption scheme. 6
robskie/bp128 SIMD-BP128 integer encoding and decoding. 22
dgryski/go-marvin32 Microsoft's Marvin32 hash function. 7
dgryski/go-highway Google's Highway hash function. 55
dgryski/go-metro MetroHash function. 66
dgryski/go-stadtx Stadtx hash function. See examples/stadtx 7
dgryski/go-sip13 SipHash 1-3 function. 17
dgryski/go-chaskey Chaskey MAC. 5
dgryski/go-speck SPECK cipher. 7
dgryski/go-bloomindex Bloom-filter based search index. 79
dgryski/go-groupvariant SSE-optimized group varint integer encoding. 25
bwesterb/go-sha256x8 Eight-way SHA256 0
gtank/ed25519 radix51 sub-package originally generated with PeachPy 8
@mmcloughlin mmcloughlin added the good first issue Good for newcomers label Jan 7, 2019
@mmcloughlin mmcloughlin changed the title ports: port PeachPy Go projects to avo ports: port peachpy go projects to avo Jan 7, 2019
@dgryski
Copy link
Collaborator

dgryski commented Jan 7, 2019

Porting my projects definitely on my TODO list. Start small then work big. Small are SPECK, marvin32, sip13. Maybe bloomindex. Medium are metro, chaskey, groupvarint. Large highway.

@mmcloughlin mmcloughlin added the testing Tests and supporting infrastructure label Jan 7, 2019
@dgryski
Copy link
Collaborator

dgryski commented Mar 18, 2019

@dgryski
Copy link
Collaborator

dgryski commented Mar 18, 2019

@dgryski
Copy link
Collaborator

dgryski commented Mar 18, 2019

@dgryski
Copy link
Collaborator

dgryski commented Mar 18, 2019

groupvarint not worth converting. Only a single tiny asm routine. Removed peachpy but left the generated 10-line function.

@dgryski
Copy link
Collaborator

dgryski commented Mar 18, 2019

Will probably not convert stadtx, as you've already done that.

@mmcloughlin
Copy link
Owner Author

Will probably not convert stadtx, as you've already done that.

Please feel free to copy that code into your repo.

@dgryski
Copy link
Collaborator

dgryski commented Mar 19, 2019

@dgryski
Copy link
Collaborator

dgryski commented Mar 19, 2019

@dgryski
Copy link
Collaborator

dgryski commented Mar 19, 2019

https://github.com/dgryski/go-chaskey/blob/master/asm.go

Notable in this one is the loop helper type.

type loop string

var loops int

func newLoop(name string) loop {
	loops++
         if name == "" { name = "loop" }
	return loop(name + strconv.Itoa(loops-1))
}

func (l loop) begin() string { return string(l) + "_begin" }
func (l loop) end() string   { return string(l) + "_end" }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers testing Tests and supporting infrastructure
Projects
None yet
Development

No branches or pull requests

2 participants