diff --git a/bindings/ud.go b/bindings/ud.go
index 2d22c26782c9ee89945085264f2332f1461d8fc0..d3883fb973a1f0a44f55efce797f367772a9f0a1 100644
--- a/bindings/ud.go
+++ b/bindings/ud.go
@@ -298,8 +298,9 @@ func (ud UserDiscovery) MultiLookup(ids *IdList, callback MultiLookupCallback,
 // Once set, any user discovery operation will go through the alternative
 // user discovery service.
 // To undo this operation, use UnsetAlternativeUserDiscovery.
-func (ud *UserDiscovery) SetAlternativeUserDiscovery(address, cert, id, dhPubKey []byte) error {
-	return ud.ud.SetAlternativeUserDiscovery(id, cert, address, dhPubKey)
+// The contact file is the already read in bytes, not the file path for the contact file.
+func (ud *UserDiscovery) SetAlternativeUserDiscovery(address, cert, contactFile []byte) error {
+	return ud.ud.SetAlternativeUserDiscovery(cert, address, contactFile)
 }
 
 // UnsetAlternativeUserDiscovery clears out the information from
diff --git a/go.mod b/go.mod
index cc3f5aedb7c9914fc324bec0f4dbbb4e953234ea..45080b85cc2b58d1ce635ac9d73c031bfc874fde 100644
--- a/go.mod
+++ b/go.mod
@@ -20,14 +20,14 @@ require (
 	github.com/spf13/viper v1.7.1
 	gitlab.com/elixxir/bloomfilter v0.0.0-20200930191214-10e9ac31b228
 	gitlab.com/elixxir/comms v0.0.4-0.20220128144348-f01dc3227d76
-	gitlab.com/elixxir/crypto v0.0.7-0.20220110170041-7e42f2e8b062
+	gitlab.com/elixxir/crypto v0.0.7-0.20220208225807-4ca94bd92105
 	gitlab.com/elixxir/ekv v0.1.6
 	gitlab.com/elixxir/primitives v0.0.3-0.20220104173924-275cb9d7834f
 	gitlab.com/xx_network/comms v0.0.4-0.20220126231737-fe2338016cce
 	gitlab.com/xx_network/crypto v0.0.5-0.20211227194420-f311e8920467
 	gitlab.com/xx_network/primitives v0.0.4-0.20211222205802-03e9d7d835b0
-	golang.org/x/crypto v0.0.0-20210921155107-089bfa567519
-	golang.org/x/net v0.0.0-20210525063256-abc453219eb5
+	golang.org/x/crypto v0.0.0-20220128200615-198e4374d7ed
+	golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2
 	google.golang.org/genproto v0.0.0-20210105202744-fe13368bc0e1 // indirect
 	google.golang.org/grpc v1.42.0
 	google.golang.org/protobuf v1.27.1
diff --git a/go.sum b/go.sum
index 5b4b7cfb26db2da474002cb2d28fdf3abbfbdb8a..17e6b8e459490d28188989baed6697e6221324b6 100644
--- a/go.sum
+++ b/go.sum
@@ -280,6 +280,10 @@ gitlab.com/elixxir/crypto v0.0.0-20200804182833-984246dea2c4/go.mod h1:ucm9SFKJo
 gitlab.com/elixxir/crypto v0.0.3/go.mod h1:ZNgBOblhYToR4m8tj4cMvJ9UsJAUKq+p0gCp07WQmhA=
 gitlab.com/elixxir/crypto v0.0.7-0.20220110170041-7e42f2e8b062 h1:6LLdEX2U/jA3RakJh/cKtjckMYBBjrjyowoBEtIF9L4=
 gitlab.com/elixxir/crypto v0.0.7-0.20220110170041-7e42f2e8b062/go.mod h1:qmW0OGPB21GcaGg1Jvt527/qUw7ke6W8DKCiYBfsx48=
+gitlab.com/elixxir/crypto v0.0.7-0.20220208225325-dbdeafce872f h1:pYw+i7SHvRtE7r5PKf738eZ4MVE0JpdCCUvfITj6cEY=
+gitlab.com/elixxir/crypto v0.0.7-0.20220208225325-dbdeafce872f/go.mod h1:WyLFCxOOgaCHElpH0Ha893tfjxg3HXYU7lSJz2M4JUE=
+gitlab.com/elixxir/crypto v0.0.7-0.20220208225807-4ca94bd92105 h1:nuYixTwkX6rAw+9RJ6HBk+8bHVrSbV16vxVOexCyK6s=
+gitlab.com/elixxir/crypto v0.0.7-0.20220208225807-4ca94bd92105/go.mod h1:WyLFCxOOgaCHElpH0Ha893tfjxg3HXYU7lSJz2M4JUE=
 gitlab.com/elixxir/ekv v0.1.6 h1:M2hUSNhH/ChxDd+s8xBqSEKgoPtmE6hOEBqQ73KbN6A=
 gitlab.com/elixxir/ekv v0.1.6/go.mod h1:e6WPUt97taFZe5PFLPb1Dupk7tqmDCTQu1kkstqJvw4=
 gitlab.com/elixxir/primitives v0.0.0-20200731184040-494269b53b4d/go.mod h1:OQgUZq7SjnE0b+8+iIAT2eqQF+2IFHn73tOo+aV11mg=
@@ -324,6 +328,8 @@ golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWP
 golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg=
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
+golang.org/x/crypto v0.0.0-20220128200615-198e4374d7ed h1:YoWVYYAfvQ4ddHv3OKmIvX7NCAhFGTj62VP2l2kfBbA=
+golang.org/x/crypto v0.0.0-20220128200615-198e4374d7ed/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -361,6 +367,8 @@ golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81R
 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20210525063256-abc453219eb5 h1:wjuX4b5yYQnEQHzd+CBcrcC6OVR2J1CN6mUy0oSxIPo=
 golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2 h1:CIJ76btIcR3eFI5EgSo6k1qKw9KJexJuRLI9G7Hp5wE=
+golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
diff --git a/ud/manager.go b/ud/manager.go
index 3f8f900141fa52d48d261463bfe0923b9539570c..79e439e60b2aaf7e01a6b53b20138984f9b315b8 100644
--- a/ud/manager.go
+++ b/ud/manager.go
@@ -109,11 +109,12 @@ func NewManager(client *api.Client, single *single.Manager) (*Manager, error) {
 // Once set, any user discovery operation will go through the alternative
 // user discovery service.
 // To undo this operation, use UnsetAlternativeUserDiscovery.
-func (m *Manager) SetAlternativeUserDiscovery(altId, altCert, altAddress, dhPubKey []byte) error {
+func (m *Manager) SetAlternativeUserDiscovery(altCert, altAddress, contactFile []byte) error {
 	params := connect.GetDefaultHostParams()
 	params.AuthEnabled = false
 
-	udID, err := id.Unmarshal(altId)
+	udIdBytes, dhPubKey := contact.ReadContactFromFile(contactFile)
+	udID, err := id.Unmarshal(udIdBytes)
 	if err != nil {
 		return err
 	}