public void Initialise(string serverUrl, string keydir, bool decOnly) { m_log.Debug("[CRYPTOGRID] Common constructor"); _assetServerUrl = serverUrl; string[] keys = Directory.GetFiles(keydir, "*.deckey"); foreach (string key in keys) { XmlSerializer xs = new XmlSerializer(typeof (RjinKeyfile)); FileStream file = new FileStream(key, FileMode.Open, FileAccess.Read); RjinKeyfile rjkey = (RjinKeyfile) xs.Deserialize(file); file.Close(); m_keyfiles.Add(rjkey.AlsoKnownAs, rjkey); } keys = Directory.GetFiles(keydir, "*.enckey"); if (keys.Length == 1) { string Ekey = keys[0]; XmlSerializer Exs = new XmlSerializer(typeof (RjinKeyfile)); FileStream Efile = new FileStream(Ekey, FileMode.Open, FileAccess.Read); RjinKeyfile Erjkey = (RjinKeyfile) Exs.Deserialize(Efile); Efile.Close(); m_keyfiles.Add(Erjkey.AlsoKnownAs, Erjkey); m_encryptKey = Erjkey; } else { if (keys.Length > 1) throw new Exception( "You have more than one asset *encryption* key. (You should never have more than one)," + "If you downloaded this key from someone, rename it to <filename>.deckey to convert it to" + "a decryption-only key."); m_log.Warn("No encryption key found, generating a new one for you..."); RjinKeyfile encKey = new RjinKeyfile(); encKey.GenerateRandom(); m_encryptKey = encKey; FileStream encExportFile = new FileStream("mysecretkey_rename_me.enckey",FileMode.CreateNew); XmlSerializer xs = new XmlSerializer(typeof(RjinKeyfile)); xs.Serialize(encExportFile, encKey); encExportFile.Flush(); encExportFile.Close(); m_log.Info( "Encryption file generated, please rename 'mysecretkey_rename_me.enckey' to something more appropriate (however preserve the file extension)."); } // If Decrypt-Only, dont encrypt on upload m_encryptOnUpload = !decOnly; }
public void Initialise(string serverUrl, string keydir, bool decOnly) { m_log.Debug("[CRYPTOGRID] Common constructor"); _assetServerUrl = serverUrl; string[] keys = Directory.GetFiles(keydir, "*.deckey"); foreach (string key in keys) { XmlSerializer xs = new XmlSerializer(typeof(RjinKeyfile)); FileStream file = new FileStream(key, FileMode.Open, FileAccess.Read); RjinKeyfile rjkey = (RjinKeyfile)xs.Deserialize(file); file.Close(); m_keyfiles.Add(rjkey.AlsoKnownAs, rjkey); } keys = Directory.GetFiles(keydir, "*.enckey"); if (keys.Length == 1) { string Ekey = keys[0]; XmlSerializer Exs = new XmlSerializer(typeof(RjinKeyfile)); FileStream Efile = new FileStream(Ekey, FileMode.Open, FileAccess.Read); RjinKeyfile Erjkey = (RjinKeyfile)Exs.Deserialize(Efile); Efile.Close(); m_keyfiles.Add(Erjkey.AlsoKnownAs, Erjkey); m_encryptKey = Erjkey; } else { if (keys.Length > 1) { throw new Exception( "You have more than one asset *encryption* key. (You should never have more than one)," + "If you downloaded this key from someone, rename it to <filename>.deckey to convert it to" + "a decryption-only key."); } m_log.Warn("No encryption key found, generating a new one for you..."); RjinKeyfile encKey = new RjinKeyfile(); encKey.GenerateRandom(); m_encryptKey = encKey; FileStream encExportFile = new FileStream("mysecretkey_rename_me.enckey", FileMode.CreateNew); XmlSerializer xs = new XmlSerializer(typeof(RjinKeyfile)); xs.Serialize(encExportFile, encKey); encExportFile.Flush(); encExportFile.Close(); m_log.Info( "Encryption file generated, please rename 'mysecretkey_rename_me.enckey' to something more appropriate (however preserve the file extension)."); } // If Decrypt-Only, dont encrypt on upload m_encryptOnUpload = !decOnly; }