diff --git a/dfssc/cmd/unregister.go b/dfssc/cmd/unregister.go
index 32a05cc3e6069471d07192ce4278adcddfec01fc..97e9054a1f1a3e98164668db233c252c386c0ba8 100644
--- a/dfssc/cmd/unregister.go
+++ b/dfssc/cmd/unregister.go
@@ -22,14 +22,15 @@ var unregisterCmd = &cobra.Command{
 		}
 
 		// Confirmation
-		var ready string
+		var passphrase, ready string
+		_ = readPassword(&passphrase, false)
 		readStringParam("Do you REALLY want to delete "+cert.Subject.CommonName+"? Type 'yes' to confirm", "", &ready)
 		if ready != "yes" {
 			fmt.Fprintln(os.Stderr, "Unregistering aborted!")
 			os.Exit(1)
 		}
 
-		err = user.Unregister()
+		err = user.Unregister(passphrase)
 		if err != nil {
 			fmt.Fprintln(os.Stderr, "Cannot unregister:", err.Error())
 			os.Exit(2)
diff --git a/dfssc/user/unregister.go b/dfssc/user/unregister.go
index 428922e74e226632c6840d8b4c2911ea3c210e0c..a218b1d1e050fcaf49b01ebfc4fabea1668824b5 100644
--- a/dfssc/user/unregister.go
+++ b/dfssc/user/unregister.go
@@ -1,31 +1,35 @@
 package user
 
 import (
-	"errors"
-
-	pb "dfss/dfssp/api"
+	"dfss/dfssc/common"
+	"dfss/dfssc/security"
+	"dfss/dfssp/api"
 	"dfss/net"
+	"github.com/spf13/viper"
 	"golang.org/x/net/context"
-	"google.golang.org/grpc"
 )
 
 // Unregister a user from the platform
-func Unregister() error {
-	client, err := connect()
+func Unregister(passphrase string) error {
+	auth := security.NewAuthContainer(passphrase)
+	ca, cert, key, err := auth.LoadFiles()
+	if err != nil {
+		return err
+	}
+
+	conn, err := net.Connect(viper.GetString("platform_addrport"), cert, key, ca, nil)
 	if err != nil {
 		return err
 	}
 
-	// Stop the context if it takes too long for the platform to answer
+	client := api.NewPlatformClient(conn)
 	ctx, cancel := context.WithTimeout(context.Background(), net.DefaultTimeout)
 	defer cancel()
-	response, err := client.Unregister(ctx, &pb.Empty{})
+	response, err := client.Unregister(ctx, &api.Empty{})
+
 	if err != nil {
-		return errors.New(grpc.ErrorDesc(err))
-	}
-	if response.Code != pb.ErrorCode_SUCCESS {
-		return errors.New(response.Message)
+		return err
 	}
 
-	return nil
+	return common.EvaluateErrorCodeResponse(response)
 }