func NewNoiseConfig(dataDir string, verifyPairing func([]byte) (bool, error)) *NoiseConfig {
	noise := &NoiseConfig{
		dataDir:       dataDir,
		initialized:   false,
		verifyPairing: verifyPairing,
	}
	return noise
}
NewNoiseConfig takes a directory path string as an argument and returns a NoiseConfig struct.
package noisemanager
import (
	"bytes"
	"crypto/rand"
	"encoding/json"
	"errors"
	"io/ioutil"
	"log"
	"os"
	"path/filepath"
	"github.com/flynn/noise"
	"github.com/gorilla/websocket"
)
const (
	opICanHasHandShaek          = "h"
	responseSuccess             = "\x00"
	responseFailure             = "\x01"
	responseNeedsPairing        = "\x01"
	opICanHasPairinVerificashun = byte('v')
)
type NoiseConfig struct {
	clientStaticPubkey          []byte
	channelHash                 []byte
	sendCipher, receiveCipher   *noise.CipherState
	pairingVerificationRequired bool
	initialized                 bool
	dataDir                     string
	verifyPairing func(channelHash []byte) (bool, error)
}