36 lines
941 B
Go
36 lines
941 B
Go
package tls
|
|
|
|
import (
|
|
"github.com/refraction-networking/utls/internal/hpke"
|
|
)
|
|
|
|
type HPKERawPublicKey = []byte
|
|
type HPKE_KEM_ID = uint16 // RFC 9180
|
|
type HPKE_KDF_ID = uint16 // RFC 9180
|
|
type HPKE_AEAD_ID = uint16 // RFC 9180
|
|
|
|
type HPKESymmetricCipherSuite struct {
|
|
KdfId HPKE_KDF_ID
|
|
AeadId HPKE_AEAD_ID
|
|
}
|
|
|
|
const defaultHpkeKdf = hpke.KDF_HKDF_SHA256
|
|
const defaultHpkeKem = hpke.DHKEM_X25519_HKDF_SHA256
|
|
const defaultHpkeAead = hpke.AEAD_AES_128_GCM
|
|
|
|
var dummyX25519PublicKey = []byte{
|
|
143, 38, 37, 36, 12, 6, 229, 30, 140, 27, 167, 73, 26, 100, 203, 107, 216,
|
|
81, 163, 222, 52, 211, 54, 210, 46, 37, 78, 216, 157, 97, 241, 244,
|
|
}
|
|
|
|
// cipherLen returns the length of a ciphertext corresponding to a message of
|
|
// length mLen.
|
|
func cipherLen(a uint16, mLen int) int {
|
|
switch a {
|
|
case hpke.AEAD_AES_128_GCM, hpke.AEAD_AES_256_GCM, hpke.AEAD_ChaCha20Poly1305:
|
|
return mLen + 16
|
|
default:
|
|
panic("hpke: invalid AEAD identifier")
|
|
}
|
|
}
|