Documentation
¶
Overview ¶
Package kdf provides key derivation functions and schedules
Index ¶
- Variables
- type Budgets
- type HandshakeKeys
- type HashID
- type KeySchedule
- func (ks *KeySchedule) DeriveEarlyDataKeys(psk []byte, transcript []byte) (*HandshakeKeys, error)
- func (ks *KeySchedule) DeriveHandshakeKeys(kemSecret, ecdheSecret []byte, transcript []byte) (*HandshakeKeys, error)
- func (ks *KeySchedule) Export(context []byte, length int) ([]byte, error)
- func (ks *KeySchedule) KeyUpdate() (*HandshakeKeys, error)
- func (ks *KeySchedule) ResumptionSecret(transcript []byte) ([]byte, error)
- type Suite
Constants ¶
This section is empty.
Variables ¶
View Source
var (
ErrNoHandshakeKeys = &keyScheduleError{"no handshake keys derived"}
)
Error types
Functions ¶
This section is empty.
Types ¶
type Budgets ¶
type Budgets struct {
MaxMessages uint32
MaxBytes uint64
MaxAge int // seconds
// contains filtered or unexported fields
}
Budgets tracks key usage limits
func NewBudgets ¶
NewBudgets creates new key usage budgets
func (*Budgets) CheckAndUpdate ¶
CheckAndUpdate checks if key update is needed
type HandshakeKeys ¶
type HandshakeKeys struct {
ClientKey []byte
ServerKey []byte
ClientIV []byte
ServerIV []byte
ExporterSecret []byte
KeyID uint32
}
HandshakeKeys contains derived keys for handshake
type KeySchedule ¶
type KeySchedule struct {
// contains filtered or unexported fields
}
KeySchedule manages key derivation for QZMQ
func NewKeySchedule ¶
func NewKeySchedule(suite Suite) *KeySchedule
NewKeySchedule creates a new key schedule
func (*KeySchedule) DeriveEarlyDataKeys ¶
func (ks *KeySchedule) DeriveEarlyDataKeys(psk []byte, transcript []byte) (*HandshakeKeys, error)
EarlyData derives keys for 0-RTT data
func (*KeySchedule) DeriveHandshakeKeys ¶
func (ks *KeySchedule) DeriveHandshakeKeys(kemSecret, ecdheSecret []byte, transcript []byte) (*HandshakeKeys, error)
DeriveHandshakeKeys derives keys from KEM and ECDHE secrets
func (*KeySchedule) Export ¶
func (ks *KeySchedule) Export(context []byte, length int) ([]byte, error)
Export derives an exported value for channel binding
func (*KeySchedule) KeyUpdate ¶
func (ks *KeySchedule) KeyUpdate() (*HandshakeKeys, error)
KeyUpdate performs key ratcheting
func (*KeySchedule) ResumptionSecret ¶
func (ks *KeySchedule) ResumptionSecret(transcript []byte) ([]byte, error)
ResumptionSecret derives a resumption PSK
Click to show internal directories.
Click to hide internal directories.