 +	}
 +}
 +
++func PrincipalNameFromDERCert(derCert []byte) *string {
++	cert, err := x509.ParseCertificate(derCert)
++	if err != nil {
++		log.Printf("PrincipalNameFromDERCert: Can't get name from certificate\n")
++		return nil
++	}
++	cn := cert.Subject.CommonName
++	return &cn
++}
++
 +// returns sealed symmetric key, sealed signing key, DER encoded cert, delegation, error
-+func GetMyCryptoMaterial(path string) ([]byte, []byte, []byte, []byte, error) {
-+	// stat domain.config
-+	fileinfo, err := os.Stat(path + "sealedsymmetrickey")
++func LoadProgramKeys(path string) ([]byte, []byte, []byte, []byte, error) {
++	_, err := os.Stat(path + "sealedsymmetrickey")
 +	if err != nil {
 +		return nil, nil, nil, nil, err
 +	}
-+	fmt.Printf("fileproxy: Size of %s is %d\n", path+"sealedsymmetricKey", fileinfo.Size())
-+	fileinfo, err = os.Stat(path + "sealedsigningKey")
++	_, err = os.Stat(path + "sealedsigningKey")
 +	if err != nil {
 +		return nil, nil, nil, nil, err
 +	}
-+	fmt.Printf("fileproxy: Size of %s is %d\n", path+"sealedsigningKey", fileinfo.Size())
-+	fileinfo, err = os.Stat(path + "signerCert")
++	_, err = os.Stat(path + "signerCert")
 +	if err != nil {
 +		return nil, nil, nil, nil, err
 +	}
-+	fmt.Printf("fileproxy: Size of %s is %d\n", path+"signerCert", fileinfo.Size())
 +
 +	sealedSymmetricKey, err := ioutil.ReadFile(path + "sealedsymmetricKey")
 +	if err != nil {
 +		return nil, nil, nil, nil, err
 +	}
-+	fmt.Printf("fileproxy: Got sealedSymmetricKey\n")
++	log.Printf("fileproxy: Got sealedSymmetricKey\n")
 +	sealedSigningKey, err := ioutil.ReadFile(path + "sealedsigningKey")
-+	fmt.Printf("sealedSigningKey: ", sealedSigningKey)
-+	fmt.Printf("\n")
 +	if err != nil {
 +		return nil, nil, nil, nil, err
 +	}
-+	fmt.Printf("fileproxy: Got sealedSigningKey\n")
++	log.Printf("fileproxy: Got sealedSigningKey\n")
 +	derCert, err := ioutil.ReadFile(path + "signerCert")
 +	if err != nil {
 +		return nil, nil, nil, nil, err
 +	}
-+	fmt.Printf("fileproxy: Got signerCert\n")
++	log.Printf("fileproxy: Got signerCert\n")
 +	ds, err := ioutil.ReadFile(path + "delegationBlob")
 +	if err != nil {
 +		return nil, nil, nil, nil, err
 +	}
-+	fmt.Printf(" GetMyCryptoMaterial succeeded\n")
++	log.Printf("LoadProgramKeys succeeded\n")
 +	return sealedSymmetricKey, sealedSigningKey, derCert, ds, nil
 +}
 +
 +func CreateSigningKey(t tao.Tao) (*tao.Keys, []byte, error) {
++	log.Printf("CreateSigningKey\n")
 +	self, err := t.GetTaoName()
 +	k, err := tao.NewTemporaryKeys(tao.Signing)
 +	if k == nil || err != nil {
-+		return nil, nil, errors.New("Cant generate signing key")
++		return nil, nil, errors.New("Can't generate signing key")
 +	}
 +	publicString := strings.Replace(self.String(), "(", "", -1)
 +	publicString = strings.Replace(publicString, ")", "", -1)
-+	fmt.Printf("fileclient, publicString: %s\n", publicString)
 +	details := tao.X509Details{
 +		Country:      "US",
 +		Organization: "Google",

#* 
#* author: John Manferdelli
#* email: jlmucbmath@gmail.com
#* date: 2014-10-22T12:50:42-0700
#* 
#- readded fileproxy
#- 
#- 
#- changes
#- 
#- 

+linux_host -path="../hostdomain/linux_tao_host" -run -- $PROG_DIR/fileserver 
diff --git a/apps/fileproxy/hostdomain/checkprog b/apps/fileproxy/hostdomain/checkprog
new file mode 100755
index 0000000..c5261e2
--- /dev/null
+++ b/apps/fileproxy/hostdomain/checkprog
@@ -0,0 +1,7 @@
+#
+ps aux | fgrep linux_host
+ps aux | fgrep keynegoserver
+ps aux | fgrep fileclient
+ps aux | fgrep fileserver
+ps aux | fgrep rollbackserver
+
diff --git a/apps/fileproxy/hostdomain/inithost b/apps/fileproxy/hostdomain/inithost
new file mode 100755
