mirror of
				https://gogs.blitter.com/RLabs/xs
				synced 2024-08-14 10:26:42 +00:00 
			
		
		
		
	Compare commits
	
		
			6 commits
		
	
	
		
			952279a108
			...
			bfcd097a14
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | bfcd097a14 | ||
|  | 136f37e209 | ||
|  | ec9b4fe2f4 | ||
|  | aa33a3b8a0 | ||
|  | 7e4aeba93a | ||
|  | 91bb0778b2 | 
					 9 changed files with 22 additions and 17 deletions
				
			
		
							
								
								
									
										2
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
										
									
									
									
								
							|  | @ -1,4 +1,4 @@ | |||
| VERSION := 0.9.10 | ||||
| VERSION := 0.9.11 | ||||
| .PHONY: lint vis clean common client server passwd\ | ||||
|  subpkgs install uninstall reinstall scc | ||||
|   | ||||
|  |  | |||
							
								
								
									
										14
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										14
									
								
								README.md
									
										
									
									
									
								
							|  | @ -44,10 +44,12 @@ Currently supported session algorithms: | |||
| * Blowfish-64 | ||||
| * CryptMTv1 (64bit) (https://eprint.iacr.org/2005/165.pdf) | ||||
| * ChaCha20 (https://github.com/aead/chacha20) | ||||
| * HOPSCOTCH (https://gogs.blitter.com/Russtopia/hopscotch) | ||||
| 
 | ||||
| [HMAC] | ||||
| * HMAC-SHA256 | ||||
| * HMAC-SHA512 | ||||
| * WHIRLPOOL | ||||
| 
 | ||||
| *** | ||||
| **A Note on 'cryptographic agility'** | ||||
|  | @ -92,18 +94,6 @@ KYBER IND-CCA-2 KEM | |||
| 
 | ||||
| As of this time (Oct 2018) Kyber is one of the candidate algorithms submitted to the [NIST post-quantum cryptography project](https://csrc.nist.gov/Projects/Post-Quantum-Cryptography). The authors recommend using it in "... so-called hybrid mode in combination with established "pre-quantum" security; for example in combination with elliptic-curve Diffie-Hellman." THIS PROJECT DOES NOT DO THIS (in case you didn't notice yet, THIS PROJECT IS EXPERIMENTAL.) | ||||
| 
 | ||||
| ### Dependencies: | ||||
| 
 | ||||
| * Recent version of go (tested, at various times, with go-1.9 to go-1.12.4) | ||||
| * [github.com/mattn/go-isatty](http://github.com/mattn/go-isatty) //terminal tty detection | ||||
| * [github.com/kr/pty](http://github.com/kr/pty) //unix pty control (server pty connections) | ||||
| * [github.com/jameskeane/bcrypt](http://github.com/jameskeane/bcrypt) //password storage/auth | ||||
| * [blitter.com/go/goutmp](https://gogs.blitter.com/RLabs/goutmp) // wtmp/lastlog C bindings for user accounting | ||||
| * [https://gitlab.com/yawning/kyber](https://gogs.blitter.com/RLabs/kyber) // golang Kyber KEM | ||||
| * [https://gitlab.com/yawning/kyber](https://gogs.blitter.com/RLabs/newhope) // golang NEWHOPE,NEWHOPE-SIMPLE KEX | ||||
| * [blitter.com/go/mtwist](https://gogs.blitter.com/RLabs/mtwist) // 64-bit Mersenne Twister PRNG | ||||
| * [blitter.com/go/cryptmt](https://gogs.blitter.com/RLabs/cryptmt) // CryptMTv1 stream cipher | ||||
| 
 | ||||
| 
 | ||||
| ### Installing | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										1
									
								
								go.mod
									
										
									
									
									
								
							
							
						
						
									
										1
									
								
								go.mod
									
										
									
									
									
								
							|  | @ -23,6 +23,7 @@ require ( | |||
| require ( | ||||
| 	blitter.com/go/chacha20 v0.0.0-20200130200441-214e4085f54c // indirect | ||||
| 	blitter.com/go/mtwist v1.0.1 // indirect | ||||
| 	github.com/jzelinskie/whirlpool v0.0.0-20201016144138-0675e54bb004 // indirect | ||||
| 	github.com/klauspost/cpuid/v2 v2.2.6 // indirect | ||||
| 	github.com/klauspost/reedsolomon v1.12.1 // indirect | ||||
| 	github.com/pkg/errors v0.9.1 // indirect | ||||
|  |  | |||
							
								
								
									
										2
									
								
								go.sum
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								go.sum
									
										
									
									
									
								
							|  | @ -45,6 +45,8 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw | |||
| github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | ||||
| github.com/jameskeane/bcrypt v0.0.0-20120420032655-c3cd44c1e20f h1:UWGE8Vi+1Agt0lrvnd7UsmvwqWKRzb9byK9iQmsbY0Y= | ||||
| github.com/jameskeane/bcrypt v0.0.0-20120420032655-c3cd44c1e20f/go.mod h1:u+9Snq0w+ZdYKi8BBoaxnEwWu0fY4Kvu9ByFpM51t1s= | ||||
| github.com/jzelinskie/whirlpool v0.0.0-20201016144138-0675e54bb004 h1:G+9t9cEtnC9jFiTxyptEKuNIAbiN5ZCQzX2a74lj3xg= | ||||
| github.com/jzelinskie/whirlpool v0.0.0-20201016144138-0675e54bb004/go.mod h1:KmHnJWQrgEvbuy0vcvj00gtMqbvNn1L+3YUZLK/B92c= | ||||
| github.com/klauspost/cpuid/v2 v2.2.6 h1:ndNyv040zDGIDh8thGkXYjnFtiN02M1PVVF+JE/48xc= | ||||
| github.com/klauspost/cpuid/v2 v2.2.6/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= | ||||
| github.com/klauspost/reedsolomon v1.12.1 h1:NhWgum1efX1x58daOBGCFWcxtEhOhXKKl1HAPQUp03Q= | ||||
|  |  | |||
							
								
								
									
										3
									
								
								xs/xs.go
									
										
									
									
									
								
							
							
						
						
									
										3
									
								
								xs/xs.go
									
										
									
									
									
								
							|  | @ -733,7 +733,8 @@ func main() { //nolint: funlen, gocyclo | |||
|       C_CHACHA20_12`) | ||||
| 	flag.StringVar(&hmacAlg, "m", "H_SHA256", "session `HMAC`"+` | ||||
|       H_SHA256 | ||||
|       H_SHA512`) | ||||
|       H_SHA512 | ||||
|       H_WHIRLPOOL`) | ||||
| 	flag.StringVar(&kexAlg, "k", "KEX_HERRADURA512", "KEx `alg`"+` | ||||
|       KEX_HERRADURA256 | ||||
|       KEX_HERRADURA512 | ||||
|  |  | |||
|  | @ -572,7 +572,8 @@ func main() { //nolint:funlen,gocyclo | |||
| 	flag.Var(&aHMACAlgs, "aH", "Allowed `HMAC`s (eg. '-aH HMACAlgA -aH HMACAlgB ...')"+` | ||||
|       H_all | ||||
|       H_SHA256 | ||||
|       H_SHA512`) | ||||
|       H_SHA512 | ||||
|       H_WHIRLPOOL`) | ||||
| 
 | ||||
| 	flag.StringVar(&cpuprofile, "cpuprofile", "", "write cpu profile to <`file`>") | ||||
| 	flag.StringVar(&memprofile, "memprofile", "", "write memory profile to <`file`>") | ||||
|  |  | |||
|  | @ -26,7 +26,7 @@ import ( | |||
| 	"github.com/aead/chacha20/chacha" | ||||
| 	"golang.org/x/crypto/blowfish" | ||||
| 	"golang.org/x/crypto/twofish" | ||||
| 
 | ||||
| 	whirlpool "github.com/jzelinskie/whirlpool" | ||||
| 	// hash algos must be manually imported thusly: | ||||
| 	// (Would be nice if the golang pkg docs were more clear | ||||
| 	// on this...) | ||||
|  | @ -157,6 +157,9 @@ func (hc *Conn) getStream(keymat []byte) (rc cipher.Stream, mc hash.Hash, err er | |||
| 		if !halg.Available() { | ||||
| 			log.Fatal("hash not available!") | ||||
| 		} | ||||
| 	case HmacWHIRLPOOL: | ||||
| 		log.Printf("[hash HmacWHIRLPOOL (%d)]\n", hopts) | ||||
| 		mc = whirlpool.New() | ||||
| 	default: | ||||
| 		log.Printf("[invalid hmac (%d)]\n", hopts) | ||||
| 		fmt.Printf("DOOFUS SET A VALID HMAC ALG (%d)\n", hopts) | ||||
|  |  | |||
|  | @ -119,6 +119,7 @@ type CSCipherAlg uint32 | |||
| const ( | ||||
| 	HmacSHA256 = iota | ||||
| 	HmacSHA512 | ||||
| 	HmacWHIRLPOOL | ||||
| 	HmacNoneDisallowed | ||||
| ) | ||||
| 
 | ||||
|  |  | |||
|  | @ -177,6 +177,8 @@ func (h *CSHmacAlg) String() string { | |||
| 		return "H_SHA256" | ||||
| 	case HmacSHA512: | ||||
| 		return "H_SHA512" | ||||
| 	case HmacWHIRLPOOL: | ||||
| 		return "H_WHIRLPOOL" | ||||
| 	default: | ||||
| 		return "H_ERR_UNK" | ||||
| 	} | ||||
|  | @ -363,6 +365,10 @@ func (hc *Conn) applyConnExtensions(extensions ...string) { | |||
| 			log.Println("[extension arg = H_SHA512]") | ||||
| 			hc.cipheropts &= (0xFFFF00FF) | ||||
| 			hc.cipheropts |= (HmacSHA512 << 8) | ||||
| 		case "H_WHIRLPOOL": | ||||
| 			log.Println("[extension arg = H_WHIRLPOOL]") | ||||
| 			hc.cipheropts &= (0xFFFF00FF) | ||||
| 			hc.cipheropts |= (HmacWHIRLPOOL << 8) | ||||
| 		case "OPT_REMOD": | ||||
| 			log.Println("[extension arg = OPT_REMOD]") | ||||
| 			hc.opts |= CORemodulateShields | ||||
|  | @ -1115,7 +1121,7 @@ func (hl *HKExListener) Accept() (hc Conn, err error) { | |||
| 			return Conn{}, err | ||||
| 		} | ||||
| 
 | ||||
| 		logger.LogDebug(fmt.Sprintln("[net.Listener Accepted]")) | ||||
| 		logger.LogDebug(fmt.Sprintf("[net.Listener Accepted %v]\n", c.RemoteAddr())) | ||||
| 	} | ||||
| 	// Read KEx alg proposed by client | ||||
| 	var kexAlg KEXAlg | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue