mirror of https://gogs.blitter.com/RLabs/xs
Added HMAC_SHA512
This commit is contained in:
parent
cd9f7914e0
commit
06ee94da03
|
@ -52,6 +52,7 @@ type CSCipherAlg uint32
|
||||||
|
|
||||||
const (
|
const (
|
||||||
HmacSHA256 = iota
|
HmacSHA256 = iota
|
||||||
|
HmacSHA512
|
||||||
HmacNoneDisallowed
|
HmacNoneDisallowed
|
||||||
)
|
)
|
||||||
// Available HMACs for hkex.Conn (TODO: not currently used)
|
// Available HMACs for hkex.Conn (TODO: not currently used)
|
||||||
|
|
|
@ -27,6 +27,7 @@ import (
|
||||||
// (Would be nice if the golang pkg docs were more clear
|
// (Would be nice if the golang pkg docs were more clear
|
||||||
// on this...)
|
// on this...)
|
||||||
_ "crypto/sha256"
|
_ "crypto/sha256"
|
||||||
|
_ "crypto/sha512"
|
||||||
)
|
)
|
||||||
|
|
||||||
/* Support functionality to set up encryption after a channel has
|
/* Support functionality to set up encryption after a channel has
|
||||||
|
@ -92,6 +93,14 @@ func (hc Conn) getStream(keymat *big.Int) (rc cipher.Stream, mc hash.Hash, err e
|
||||||
log.Fatal("hash not available!")
|
log.Fatal("hash not available!")
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
|
case HmacSHA512:
|
||||||
|
log.Printf("[hash HmacSHA512 (%d)]\n", hopts)
|
||||||
|
halg := crypto.SHA512
|
||||||
|
mc = halg.New()
|
||||||
|
if !halg.Available() {
|
||||||
|
log.Fatal("hash not available!")
|
||||||
|
}
|
||||||
|
break
|
||||||
default:
|
default:
|
||||||
log.Printf("[invalid hmac (%d)]\n", hopts)
|
log.Printf("[invalid hmac (%d)]\n", hopts)
|
||||||
fmt.Printf("DOOFUS SET A VALID HMAC ALG (%d)\n", hopts)
|
fmt.Printf("DOOFUS SET A VALID HMAC ALG (%d)\n", hopts)
|
||||||
|
|
|
@ -176,6 +176,11 @@ func (hc *Conn) applyConnExtensions(extensions ...string) {
|
||||||
hc.cipheropts &= (0xFFFF00FF)
|
hc.cipheropts &= (0xFFFF00FF)
|
||||||
hc.cipheropts |= (HmacSHA256 << 8)
|
hc.cipheropts |= (HmacSHA256 << 8)
|
||||||
break
|
break
|
||||||
|
case "H_SHA512":
|
||||||
|
log.Println("[extension arg = H_SHA512]")
|
||||||
|
hc.cipheropts &= (0xFFFF00FF)
|
||||||
|
hc.cipheropts |= (HmacSHA512 << 8)
|
||||||
|
break
|
||||||
default:
|
default:
|
||||||
log.Printf("[Dial ext \"%s\" ignored]\n", s)
|
log.Printf("[Dial ext \"%s\" ignored]\n", s)
|
||||||
break
|
break
|
||||||
|
|
Loading…
Reference in New Issue