code: func (c *Conversation) UseExtraSymmetricKey(usage uint32, usageData []byte) ([]byte, []ValidMessage, error) {
  	if c.msgState != encrypted ||
  		c.keys.theirKeyID == 0 {
  		return nil, nil, newOtrError("cannot send message in current state")
  	}
  
  	t := tlv{
  		tlvType:   tlvTypeExtraSymmetricKey,
  		tlvLength: 4 + uint16(len(usageData)),
  		tlvValue:  append(gotrax.AppendWord(nil, usage), usageData...),
  	}
  
  	toSend, x, err := c.createSerializedDataMessage(nil, messageFlagIgnoreUnreadable, []tlv{t})
  	return x.key, toSend, err
  }
docs: // UseExtraSymmetricKey takes a usage parameter and optional usageData and returns the current symmetric key
  // and a set of messages to send in order to ask the peer to use the same symmetric key for the usage defined