SEBA-666 Use sha-256 instead of sha-1; verify checksums

Change-Id: I3036b50fa97f898948bb3ec94ff9665bb3fc9752
diff --git a/commands/transfer.go b/commands/transfer.go
index f41a8b8..819e82f 100644
--- a/commands/transfer.go
+++ b/commands/transfer.go
@@ -18,6 +18,7 @@
 
 import (
 	"errors"
+	"fmt"
 	flags "github.com/jessevdk/go-flags"
 	"github.com/opencord/cordctl/format"
 	"strings"
@@ -83,7 +84,13 @@
 		return errors.New("uri argument should be a file:// uri")
 	}
 
-	d, err := UploadFile(conn, descriptor, local_name, uri, options.ChunkSize)
+	h, upload_result, err := UploadFile(conn, descriptor, local_name, uri, options.ChunkSize)
+
+	if upload_result.GetFieldByName("checksum").(string) != h.GetChecksum() {
+		return fmt.Errorf("Checksum mismatch, expected=%s, received=%s",
+			h.GetChecksum(),
+			upload_result.GetFieldByName("checksum").(string))
+	}
 
 	outputFormat := CharReplacer.Replace(options.Format)
 	if outputFormat == "" {
@@ -94,10 +101,10 @@
 	}
 
 	data := make([]TransferOutput, 1)
-	data[0].Checksum = d.GetFieldByName("checksum").(string)
-	data[0].Chunks = int(d.GetFieldByName("chunks_received").(int32))
-	data[0].Bytes = int(d.GetFieldByName("bytes_received").(int32))
-	data[0].Status = GetEnumValue(d, "status")
+	data[0].Checksum = upload_result.GetFieldByName("checksum").(string)
+	data[0].Chunks = int(upload_result.GetFieldByName("chunks_received").(int32))
+	data[0].Bytes = int(upload_result.GetFieldByName("bytes_received").(int32))
+	data[0].Status = GetEnumValue(upload_result, "status")
 
 	result := CommandResult{
 		Format:   format.Format(outputFormat),