Пример #1
0
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
}