diff --git a/CASA/micasad/cache/SecretStore.cs b/CASA/micasad/cache/SecretStore.cs index 7507646f..bc048cdb 100644 --- a/CASA/micasad/cache/SecretStore.cs +++ b/CASA/micasad/cache/SecretStore.cs @@ -28,7 +28,6 @@ using System.Xml; using System.Xml.Serialization; using System.Security.Cryptography; using System.Text; -using System.Diagnostics; using sscs.cache; using sscs.common; @@ -64,83 +63,8 @@ namespace sscs.cache string m_persistenceDirectory = null; private static string POLICY_DIRECTORY = "/home/.casa"; - private MPFileWatcher mpWatcher = null; + private MPFileWatcher mpWatcher = null; - private static SecretStore casaStore; - - static SecretStore() - { - if (casaStore == null) - { - User casaUser; - -#if LINUX - casaUser = new UnixUser(new UnixUserIdentifier(GetCasaServiceUID()), "/home/.casa/" + constants.ConstStrings.MICASA_SERVICE_NAME); -#else - // create a data directory for server secrets - Process proc = Process.GetCurrentProcess(); - string exePath = proc.MainModule.FileName; - exePath = exePath.Substring(0, exePath.LastIndexOf("\\")); - Directory.CreateDirectory(exePath + "\\data"); - - // create a casa User - casaUser = new WinUser(new WinUserIdentifier(998, 0), exePath + "\\data"); -#endif - casaUser.SetUserName(constants.ConstStrings.MICASA_SERVICE_NAME); - casaStore = casaUser.GetSecretStore(); - casaStore.refCount++; - - casaStore.AddKeyChain(new KeyChain(constants.ConstStrings.SSCS_SERVER_KEY_CHAIN_ID + "\0")); - casaStore.StartPersistenceOfServerSecretsBySystemKey(); - } - } - -#if LINUX - static private int GetCasaServiceUID() - { - Mono.Unix.UnixUserInfo uui; - - try - { - uui = new Mono.Unix.UnixUserInfo(constants.ConstStrings.MICASA_SERVICE_NAME); - } - catch - { - Process proc = new Process(); - - ProcessStartInfo psi = new ProcessStartInfo("useradd"); - psi.Arguments = constants.ConstStrings.MICASA_SERVICE_NAME; - psi.UseShellExecute = false; - psi.RedirectStandardOutput = true; - - proc.StartInfo = psi; - proc.Start(); - proc.WaitForExit(); - - uui = new Mono.Unix.UnixUserInfo(constants.ConstStrings.MICASA_SERVICE_NAME); - } - - - if (uui != null) - { - // create directory for casa - Mono.Unix.Native.FilePermissions permissions = Mono.Unix.Native.Syscall.umask( - Mono.Unix.Native.FilePermissions.S_IWGRP | - Mono.Unix.Native.FilePermissions.S_IWOTH); - - Directory.CreateDirectory("/home/.casa/" + constants.ConstStrings.MICASA_SERVICE_NAME); - - // set ownership - Mono.Unix.Native.Syscall.chown("/home/.casa/" + constants.ConstStrings.MICASA_SERVICE_NAME, - (uint)uui.UserId, - (uint)uui.GroupId); - - Mono.Unix.Native.Syscall.umask(permissions); - } - - return (int)uui.UserId; - } -#endif private DateTime createTime; public DateTime CreateTime { @@ -815,22 +739,8 @@ namespace sscs.cache return GetKeyChain("SSCS_SESSION_KEY_CHAIN_ID\0"); } - internal KeyChain GetKeyChain(string id) - - { - Console.WriteLine("Keychain {0}", id); - - // if this is the server keychain, return the casaStore controlled one. - if (id.StartsWith(constants.ConstStrings.SSCS_SERVER_KEY_CHAIN_ID)) - { - KeyChain casakc = (KeyChain)casaStore.keyChainList[id]; - casakc.AccessedTime = DateTime.Now; - Console.WriteLine("Returned casakc"); - - return casakc; - } - - + internal KeyChain GetKeyChain(string id) + { if(keyChainList.ContainsKey(id)) { CSSSLogger.DbgLog("In " + CSSSLogger.GetExecutionPath(this) + " Keychain already exists."); @@ -847,10 +757,6 @@ namespace sscs.cache internal bool CheckIfKeyChainExists(string id) { - // return true if this is the server keychain - if (id.StartsWith(constants.ConstStrings.SSCS_SERVER_KEY_CHAIN_ID)) - return true; - if(keyChainList.ContainsKey(id)) return true; else @@ -864,10 +770,6 @@ namespace sscs.cache lss.PersistStoreWithDelay(); if (slss != null) slss.PersistServerStoreWithDelay(); - - // persist casastore data - if (casaStore.slss != null) - casaStore.slss.PersistServerStoreWithDelay(); } /* This function would need to do any storage/cleanup required diff --git a/CASA/micasad/common/Constants.cs b/CASA/micasad/common/Constants.cs index 0591df21..6cc73a03 100644 --- a/CASA/micasad/common/Constants.cs +++ b/CASA/micasad/common/Constants.cs @@ -143,10 +143,7 @@ namespace sscs.constants // these are used in the GUI too. internal static string CONFIG_PERSISTENT_DIRECTORY = "PersistentDirectory"; internal static string CONFIG_PERSIST_SECRETS = "PersistSecrets"; - internal static string CONFIG_DECRYPT_USING_DESKTOP_PASS = "DecryptUsingDesktopPassword"; - - internal static string MICASA_SERVICE_NAME = "casa-service-user"; - + internal static string CONFIG_DECRYPT_USING_DESKTOP_PASS = "DecryptUsingDesktopPassword"; } internal class ConstFlags diff --git a/CASA/micasad/common/UnixUser.cs b/CASA/micasad/common/UnixUser.cs index 9c37ca77..5491d423 100644 --- a/CASA/micasad/common/UnixUser.cs +++ b/CASA/micasad/common/UnixUser.cs @@ -32,20 +32,11 @@ namespace sscs.common { internal class UnixUser : User { - private string m_userHome = null; internal UnixUser() { } - internal UnixUser(UserIdentifier unixUserId, string sUserHome) - { - m_userHome = sUserHome; - userId = unixUserId; - secretStore = new SecretStore(this); - - } - internal UnixUser(UserIdentifier unixUserId) { userId = unixUserId; @@ -64,17 +55,10 @@ namespace sscs.common override internal string GetUserHomeDir() { - if (m_userHome == null) - { - uint uid = (uint)userId.GetUID(); - Mono.Unix.UnixUserInfo uui = new Mono.Unix.UnixUserInfo(uid); - userName = uui.UserName; - return uui.HomeDirectory; - } - else - { - return m_userHome; - } + uint uid = (uint)userId.GetUID(); + Mono.Unix.UnixUserInfo uui = new Mono.Unix.UnixUserInfo(uid); + userName = uui.UserName; + return uui.HomeDirectory; }