Assembly-optimized MD4 hash algorithm in Go

Related tags

md4
Overview

md4

Go Reference

MD4 hash algorithm in Go. Assembly-optimized for amd64 platforms.

MD4 is cryptographically broken and should should only be used where compatibility with legacy systems, not security, is the goal.

Thanks

This package is based up the MD4 implementation in x/crypto together with some internals borrowed from crypto/md5, which is structurally very similar. For assembly micro-optimization it was very helpful to consult the implementations of MD5 in Go and OpenSSL, Marc Bevand's assembly MD5, and Nayuki's optimized MD4/MD5. Ricardo Branco's OpenSSL bindings were very helpful for differential testing and providing a performance baseline. Lastly, thanks to Michael Stapelberg for providing the motivation for this package, to optimize his rsync daemon.

License

md4 is available under the BSD 3-Clause License. The license retains the copyright notice from x/crypto.

Issues
Owner
Michael McLoughlin
Michael McLoughlin
A Protocol Buffers compiler that generates optimized marshaling & unmarshaling Go code for ProtoBuf APIv2

vtprotobuf, the Vitess Protocol Buffers compiler This repository provides the protoc-gen-go-vtproto plug-in for protoc, which is used by Vitess to gen

PlanetScale 320 Sep 19, 2021
Package rsync contains a native Go rsync implementation.

gokrazy rsync Package rsync contains a native Go rsync implementation. ⚠ Beware: very fresh. Might eat your data. You have been warned! ⚠ The only com

null 90 Sep 16, 2021
This is a proof of concept (PoC) for creating a QR code system for proving that one has had a valid vaccination record

TestVac QR Core This is a proof of concept (PoC) for creating a QR code system for proving that one has had a valid vaccination record (FHIR, see http

Ministerie van Volksgezondheid, Welzijn en Sport 24 Sep 12, 2021
Reed-Solomon Erasure Coding in Go

Reed-Solomon Reed-Solomon Erasure Coding in Go, with speeds exceeding 1GB/s/cpu core implemented in pure Go. This is a Go port of the JavaReedSolomon

Klaus Post 1.3k Sep 26, 2021
Golang implementation of Sliding Window Algorithm for distributed rate limiting.

slidingwindow Golang implementation of Sliding Window Algorithm for distributed rate limiting. Installation $ go get -u github.com/RussellLuo/slidingw

Luo Peng 257 Sep 8, 2021
Collection of Technical Interview Questions solved with Go

go-interview Collection of Technical Interview Questions solved with Go Algorithms A Star Datastructures Linked Lists Doubly Linked List Singly Linked

Raed Shomali 3.5k Sep 25, 2021
DNS library in Go

Alternative (more granular) approach to a DNS library Less is more. Complete and usable DNS library. All Resource Records are supported, including the

Miek Gieben 5.8k Sep 21, 2021
Subfinder is a subdomain discovery tool that discovers valid subdomains for websites. Designed as a passive framework to be useful for bug bounties and safe for penetration testing.

Fast passive subdomain enumeration tool. Features • Install • Usage • API Setup • License • Join Discord Subfinder is a subdomain discovery tool that

ProjectDiscovery 4.3k Sep 25, 2021
HTTP rate limiting module for Caddy 2

This module implements both internal and distributed HTTP rate limiting. Requests can be rejected after a specified rate limit is hit.

Matt Holt 52 Sep 7, 2021
Zero downtime restarts for go servers (Drop in replacement for http.ListenAndServe)

endless Zero downtime restarts for golang HTTP and HTTPS servers. (for golang 1.3+) Inspiration & Credits Well... it's what you want right - no need t

Florian von Bock 3.3k Sep 18, 2021
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

frp README | 中文文档 What is frp? frp is a fast reverse proxy to help you expose a local server behind a NAT or firewall to the Internet. As of now, it s

null 48.5k Sep 22, 2021
IPFS implementation in Go

go-ipfs What is IPFS? IPFS is a global, versioned, peer-to-peer filesystem. It combines good ideas from previous systems such as Git, BitTorrent, Kade

IPFS 12k Sep 22, 2021
UDP Transport: compress, encrypt and send any data reliably over unreliable UDP connections

udpt UDP Transport Compresses, encrypts and transfers data between a sender and receiver using UDP protocol. Features and Design Aims: Avoid the overh

Ali Bala 40 Aug 30, 2021
A download manager package for Go

grab Downloading the internet, one goroutine at a time! $ go get github.com/cavaliercoder/grab Grab is a Go package for downloading files from the in

Ryan Armstrong 912 Sep 17, 2021
SwipeChain is a decentralised liquidity network built with CosmosSDK.

SwipeChain is a CosmosSDK-powered replicated state machine to coordinate asset movement for ASGARDEX, including processing swaps, stakes and more. SwipeChain does not peg assets, it simply determines how to move them.

Swipe 13 Sep 13, 2021
Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http

fasthttp Fast HTTP implementation for Go. Currently fasthttp is successfully used by VertaMedia in a production serving up to 200K rps from more than

Aliaksandr Valialkin 16.1k Sep 24, 2021
A Crypto-Secure, Production-Grade Reliable-UDP Library for golang with FEC

Introduction kcp-go is a Production-Grade Reliable-UDP library for golang. This library intents to provide a smooth, resilient, ordered, error-checked

xtaci 3.1k Sep 20, 2021
The Swiss Army knife for 802.11, BLE and Ethernet networks reconnaissance and MITM attacks.

bettercap is a powerful, easily extensible and portable framework written in Go which aims to offer to security researchers, red teamers and reverse e

bettercap 10.4k Sep 22, 2021