public override bool TryBeginImport() { if (NativeLib.IsUnix()) { MessageService.ShowWarning(KPRes.KeePassLibCNotWindows, KPRes.KeePassLibCNotWindowsHint); return(false); } Exception exLib; if (!KdbFile.IsLibraryInstalled(out exLib)) { MessageService.ShowWarning(KPRes.KeePassLibCNotFound, KPRes.KdbKeePassLibC, exLib); return(false); } return(true); }
private void GetAppComponents() { ListViewItem lvi = new ListViewItem(PwDefs.ShortProductName); lvi.SubItems.Add(PwDefs.VersionString); m_lvComponents.Items.Add(lvi); lvi = new ListViewItem(KPRes.XslStylesheetsKdbx); string strPath = WinUtil.GetExecutable(); strPath = UrlUtil.GetFileDirectory(strPath, true, false); strPath += AppDefs.XslFilesDir; strPath = UrlUtil.EnsureTerminatingSeparator(strPath, false); bool bInstalled = File.Exists(strPath + AppDefs.XslFileHtmlLite); bInstalled &= File.Exists(strPath + AppDefs.XslFileHtmlFull); bInstalled &= File.Exists(strPath + AppDefs.XslFileHtmlTabular); if (!bInstalled) { lvi.SubItems.Add(KPRes.NotInstalled); } else { lvi.SubItems.Add(KPRes.Installed); } m_lvComponents.Items.Add(lvi); lvi = new ListViewItem(KPRes.KeePassLibCLong); if (!KdbFile.IsLibraryInstalled()) { lvi.SubItems.Add(KPRes.NotInstalled); } else { lvi.SubItems.Add(KdbManager.KeePassVersionString + " (0x" + KdbManager.LibraryBuild.ToString("X4") + ")"); } m_lvComponents.Items.Add(lvi); }
public override bool Export(PwExportInfo pwExportInfo, Stream sOutput, IStatusLogger slLogger) { PwDatabase pd = (pwExportInfo.ContextDatabase ?? new PwDatabase()); string strTempFile = Program.TempFilesPool.GetTempFileName(false); try { KdbFile kdb = new KdbFile(pd, slLogger); kdb.Save(strTempFile, pwExportInfo.DataGroup); byte[] pbKdb = File.ReadAllBytes(strTempFile); sOutput.Write(pbKdb, 0, pbKdb.Length); Array.Clear(pbKdb, 0, pbKdb.Length); } catch(Exception exKdb) { if(slLogger != null) slLogger.SetText(exKdb.Message, LogStatusType.Error); return false; } Program.TempFilesPool.Delete(strTempFile); return true; }
public override void Import(PwDatabase pwStorage, Stream sInput, IStatusLogger slLogger) { string strTempFile = Program.TempFilesPool.GetTempFileName(); BinaryReader br = new BinaryReader(sInput); byte[] pb = br.ReadBytes((int)sInput.Length); br.Close(); File.WriteAllBytes(strTempFile, pb); KdbFile kdb = new KdbFile(pwStorage, slLogger); kdb.Load(strTempFile); Program.TempFilesPool.Delete(strTempFile); }