func setNextSenderSessionPub( keyStore session.Store, sessionState *session.State, sessionStateKey string, rand io.Reader, ) (*uid.KeyEntry, error) { // create next session key var nextSenderSession uid.KeyEntry if err := nextSenderSession.InitDHKey(rand); err != nil { return nil, err } // store next session key if err := addSessionKey(keyStore, &nextSenderSession); err != nil { return nil, err } // update session state sessionState.NextSenderSessionPub = &nextSenderSession err := keyStore.SetSessionState(sessionStateKey, sessionState) if err != nil { return nil, err } return &nextSenderSession, nil }