Skip to content
Snippets Groups Projects
Select Git revision
  • 40df6bc066643b2475db9bb34fe4c947e0aa2d1e
  • release default
  • master protected
  • feature/xx-4717/logLevel
  • XX-4626/SingleUsePackage
  • josh/DmPackage
  • xx-4437/no-registration
  • feature/project/DM
  • project/channels
  • feature/ctidh
  • Jakub/rootless-CI
  • jono/wasmDemo
  • feature/XX-4108/updateProtoc
  • feature/hotfix/unsafe_send_to_self
  • Anne/OldSessionTesting
  • hotfix/groupChat
  • josh/groupCreationScript
  • feature/XX-3797/restore
  • feature/XX-3789/DeleteIndividualRequests
  • dev
  • feature/debugSendCMIX
21 results

noerrors.txt

Blame
  • permissioning.go 3.16 KiB
    ///////////////////////////////////////////////////////////////////////////////
    // Copyright © 2020 xx network SEZC                                          //
    //                                                                           //
    // Use of this source code is governed by a license that can be found in the //
    // LICENSE file                                                              //
    ///////////////////////////////////////////////////////////////////////////////
    
    package xxdk
    
    import (
    	"encoding/json"
    	"github.com/pkg/errors"
    	"gitlab.com/elixxir/client/storage"
    	"gitlab.com/elixxir/client/storage/user"
    )
    
    // Returns an error if registration fails.
    func (c *Cmix) registerWithPermissioning() error {
    	//get the users public key
    	transmissionPubKey := c.storage.GetTransmissionRSA().GetPublic()
    	receptionPubKey := c.storage.GetReceptionRSA().GetPublic()
    
    	//load the registration code
    	regCode, err := c.storage.GetRegCode()
    	if err != nil {
    		return errors.WithMessage(err, "failed to register with "+
    			"permissioning")
    	}
    
    	//register with registration
    	transmissionRegValidationSignature, receptionRegValidationSignature,
    		registrationTimestamp, err := c.permissioning.Register(
    		transmissionPubKey, receptionPubKey, regCode)
    	if err != nil {
    		return errors.WithMessage(err, "failed to register with "+
    			"permissioning")
    	}
    
    	//store the signature
    	c.storage.SetTransmissionRegistrationValidationSignature(
    		transmissionRegValidationSignature)
    	c.storage.SetReceptionRegistrationValidationSignature(
    		receptionRegValidationSignature)
    	c.storage.SetRegistrationTimestamp(registrationTimestamp)
    
    	//update the registration state
    	err = c.storage.ForwardRegistrationStatus(storage.PermissioningComplete)
    	if err != nil {
    		return errors.WithMessage(err, "failed to update local state "+
    			"after registration with permissioning")
    	}
    	return nil
    }
    
    // ConstructProtoUserFile is a helper function which is used for proto
    // client testing.  This is used for development testing.
    func (c *Cmix) ConstructProtoUserFile() ([]byte, error) {
    
    	//load the registration code
    	regCode, err := c.storage.GetRegCode()
    	if err != nil {
    		return nil, errors.WithMessage(err, "failed to register with "+
    			"permissioning")
    	}
    
    	userInfo := c.GetStorage().PortableUserInfo()
    	Usr := user.Proto{
    		TransmissionID:               userInfo.TransmissionID,
    		TransmissionSalt:             userInfo.TransmissionSalt,
    		TransmissionRSA:              userInfo.TransmissionRSA,
    		ReceptionID:                  userInfo.ReceptionID,
    		ReceptionSalt:                userInfo.ReceptionSalt,
    		ReceptionRSA:                 userInfo.ReceptionRSA,
    		Precanned:                    userInfo.Precanned,
    		RegistrationTimestamp:        userInfo.RegistrationTimestamp,
    		RegCode:                      regCode,
    		TransmissionRegValidationSig: c.storage.GetTransmissionRegistrationValidationSignature(),
    		ReceptionRegValidationSig:    c.storage.GetReceptionRegistrationValidationSignature(),
    		E2eDhPrivateKey:              nil,
    		E2eDhPublicKey:               nil,
    	}
    
    	jsonBytes, err := json.Marshal(Usr)
    	if err != nil {
    		return nil, errors.WithMessage(err, "failed to register with "+
    			"permissioning")
    	}
    
    	return jsonBytes, nil
    }