// Load the server related configuration data from the Windows registry and Windows credential store. // Returns a ServerConfiguration object. func LoadServerConfiguration() *ServerConfiguration { ret := new(ServerConfiguration) ret.Port = binary.LittleEndian.Uint64(w32.RegGetRaw(w32.HKEY_CURRENT_USER, SERVER_CONFIGURATION_KEY, SERVER_CONFIGURATION_PORT)) cred, err := wincred.GetGenericCredential(SERVER_CONFIGURATION_SECRET) if err == nil { ret.Secret = cred.CredentialBlob } return ret }
// Returns a new ClientConfiguration object, filled with the configuration data, loaded from the // Windows registry (Hostname, Port, ForwardedKeys) and Windows credential store (encryption secret). func LoadClientConfiguration() *ClientConfiguration { ret := new(ClientConfiguration) ret.Hostname = w32.RegGetString(w32.HKEY_CURRENT_USER, CLIENT_CONFIGURATION_KEY, CLIENT_CONFIGURATION_HOSTNAME) ret.Port = binary.LittleEndian.Uint64(w32.RegGetRaw(w32.HKEY_CURRENT_USER, CLIENT_CONFIGURATION_KEY, CLIENT_CONFIGURATION_PORT)) json.Unmarshal([]byte(w32.RegGetString(w32.HKEY_CURRENT_USER, CLIENT_CONFIGURATION_KEY, CLIENT_CONFIGURATION_FORWARDED_KEYS)), &ret.ForwardedKeys) cred, err := wincred.GetGenericCredential(CLIENT_CONFIGURATION_SECRET) if err == nil { ret.Secret = cred.CredentialBlob } return ret }