func (c *kdfChain) step() Key {
	var mk Key
	c.CK, mk = c.Crypto.KdfCK(c.CK)
	c.N++
	return mk
}
step performs symmetric ratchet step and returns a new message key.
package doubleratchet
type KDFer interface {
	KdfRK(rk, dhOut Key) (rootKey, chainKey, newHeaderKey Key)
	KdfCK(ck Key) (chainKey, msgKey Key)
}
type kdfChain struct {
	Crypto KDFer
	CK Key
	N uint32
}