Anonymous avatar Anonymous committed 0b0aeb9

root

Comments (0)

Files changed (43)

Binary file added.

SeclavePlugin.sln

+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SeclavePlugin", "SeclavePlugin\SeclavePlugin.csproj", "{DE6F409D-56DB-477F-A068-746A31797BD0}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{DE6F409D-56DB-477F-A068-746A31797BD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{DE6F409D-56DB-477F-A068-746A31797BD0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{DE6F409D-56DB-477F-A068-746A31797BD0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{DE6F409D-56DB-477F-A068-746A31797BD0}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

Binary file added.

Binary file added.

SeclavePlugin/Properties/AssemblyInfo.cs

+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("SeclavePlugin")]
+[assembly: AssemblyDescription("Adds functionality for the Seclave password manager")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Seclave AB")]
+[assembly: AssemblyProduct("KeePass Plugin")]
+[assembly: AssemblyCopyright("Copyright ©  2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("a6ae0e39-908c-4ee2-be83-6842785d81ec")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.1.0.0")]
+[assembly: AssemblyFileVersion("1.1.0.0")]

SeclavePlugin/SeclavePlugin.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using KeePass.Plugins;
+using KeePassLib;
+using System.Windows.Forms;
+using System.IO;
+using KeePassLib.Security;
+
+namespace SeclavePlugin
+{
+    public sealed class SeclavePluginExt : Plugin
+    {
+        private const int m_labelMaxLength = 16;
+        private const int m_usernameMaxLength = 34;
+        private const int m_passwordMaxLength = 48;
+        private const int m_notesMaxLength = 13;
+        private const int m_maxEntries = 500;
+
+        private List<string> m_truncatedStrings; 
+
+        private IPluginHost m_Host;
+        private ToolStripSeparator m_Separator;
+        private ToolStripMenuItem m_MenuItem;
+        private ToolStripMenuItem m_ContextMenuItem;
+
+        private int m_entriesWritten;
+
+        public override bool Initialize(IPluginHost host)
+        {
+            m_Host = host;
+            ToolStripItemCollection menu = host.MainWindow.ToolsMenu.DropDownItems;
+            m_Separator = new ToolStripSeparator();
+            menu.Add(m_Separator);
+
+            m_MenuItem = new ToolStripMenuItem();
+            m_MenuItem.Text = "Export all groups to Seclave...";
+            m_MenuItem.Click += OnSeclaveExport;
+            menu.Add(m_MenuItem);
+
+            var contextMenu = host.MainWindow.GroupContextMenu.Items;
+            m_ContextMenuItem = new ToolStripMenuItem("Export this group to Seclave...");
+            m_ContextMenuItem.Click += OnSeclaveGroupExport;
+            contextMenu.Add(m_ContextMenuItem);
+
+            m_truncatedStrings = new List<string>();
+
+            return true;
+        }
+
+        public override void Terminate()
+        {
+            ToolStripItemCollection menu = m_Host.MainWindow.ToolsMenu.DropDownItems;
+            menu.Remove(m_Separator);
+            menu.Remove(m_MenuItem);
+
+            var contextMenu = m_Host.MainWindow.GroupContextMenu.Items;
+            contextMenu.Remove(m_ContextMenuItem);
+        }
+
+        private static bool writeTruncatedOrPadded(BinaryWriter writer, string s, int length)
+        {
+            // Return value is wether this entry was truncated or not
+            int l = Math.Min(length, s.Length);
+            string s2 = s.Substring(0, l);
+            writer.Write(s2.ToCharArray());
+            for (int i = l; i < length; i++)
+            {
+                writer.Write((byte)0);
+            }
+            return s.Length > length;
+        }
+
+        private static string getProtectedString(ProtectedString ps)
+        {
+            return ps == null ? "" : ps.ReadString();
+        }
+
+        private static void writeNullEntry(BinaryWriter writer)
+        {
+            /* Null Entry Cookie */
+            writer.Write((byte)0x08);
+            writer.Write((byte)0xf2);
+            writer.Write((byte)0x25);
+            writer.Write((byte)0x00);
+
+            /* All ignored */
+            for (int i = 0; i < 124; i++)
+            {
+                writer.Write((byte)0);
+            }
+        }
+
+        private static void writeEntry(BinaryWriter writer, PwEntry entry, List<string> truncatatedStrings)
+        {
+            /* Entry Cookie */
+            writer.Write((byte)0x08);
+            writer.Write((byte)0xf2);
+            writer.Write((byte)0x24);
+            writer.Write((byte)0x00);
+
+            bool entryTruncated = false;
+
+            string label = getProtectedString(entry.Strings.Get("Title")).ToLower();
+            StringBuilder labelBuilder = new StringBuilder();
+            foreach (char c in label) {
+                if (isValidLabelChar(c)) labelBuilder.Append(c);
+                else labelBuilder.Append('_');
+            }
+
+            if (writeTruncatedOrPadded(writer, labelBuilder.ToString(), m_labelMaxLength))
+                entryTruncated = true;
+
+            /* Status */
+            writer.Write((byte)0);
+
+            if (writeTruncatedOrPadded(writer, getProtectedString(entry.Strings.Get("UserName")), m_usernameMaxLength))
+                entryTruncated = true;
+            if (writeTruncatedOrPadded(writer, getProtectedString(entry.Strings.Get("Password")), m_passwordMaxLength))
+                entryTruncated = true;
+            if (writeTruncatedOrPadded(writer, getProtectedString(entry.Strings.Get("Notes")), m_notesMaxLength))
+                entryTruncated = true;
+
+            if (entryTruncated)
+                truncatatedStrings.Add(entry.ParentGroup.Name + Environment.NewLine + getProtectedString(entry.Strings.Get("Title")));
+
+            /* Zero Padding */
+            for (int i = 0; i < 12; i++)
+            {
+                writer.Write((byte)0);
+            }
+        }
+
+        private bool exportHandler(ref int entriesWritten, BinaryWriter writer, PwEntry entry, List<string> truncatedStrings)
+        {
+            // Check if entry parent group is Recycle bin, if so ignore it
+            if (entry.ParentGroup.Uuid == m_Host.Database.RecycleBinUuid) return false;
+
+            writeEntry(writer, entry, truncatedStrings);
+            entriesWritten++;           
+            return true;
+        }
+
+        private void OnSeclaveGroupExport(Object sender, EventArgs e)
+        {
+            ExportDatabase(m_Host.MainWindow.GetSelectedGroup());
+        }
+
+        private void OnSeclaveExport(Object sender, EventArgs e)
+        {
+            ExportDatabase(m_Host.Database.RootGroup);
+        }
+
+        private void ExportDatabase(PwGroup selectedGroup)
+        {
+            // Let user know if there are any prerequisites missing for export
+            if (!m_Host.Database.IsOpen)
+            {
+                MessageBox.Show("Password database needs to be unlocked for export");
+                return;
+            }
+            
+            MessageBox.Show("Please connect SECLAVE to computer and select Import on the SECLAVE");
+            FolderBrowserDialog dialog = new FolderBrowserDialog();
+            dialog.Description = "Select SECLAVE device";
+            dialog.ShowDialog();
+            if (dialog.SelectedPath.Equals(""))
+            {
+                return;
+            }
+
+            // Open up filestream
+            FileStream fs;
+            try
+            {
+                fs = new FileStream(Path.Combine(dialog.SelectedPath, "seclave.imp"), FileMode.Create);
+            }
+            catch (UnauthorizedAccessException ex)
+            {
+                MessageBox.Show("Could not write export file: Access Denied");
+                return;
+            }
+
+            // Set encoding
+            Encoding latin1 = Encoding.GetEncoding("ISO-8859-1");
+
+            // Let the BinaryWriter work
+            var writer = EntryWriter(fs, latin1, selectedGroup);
+
+            // Close writer and filestream
+            //writer.Flush();
+            writer.Close();
+            fs.Close();
+
+            // Let user know if there was any entries truncated during export
+            if (m_truncatedStrings.Any())
+            {
+                var message = "During export, " + m_truncatedStrings.Count + " out of " + m_entriesWritten + " entries was truncated: " + Environment.NewLine;
+                message += string.Join(Environment.NewLine, m_truncatedStrings.ToArray());
+                MessageBox.Show(message, "Export complete", MessageBoxButtons.OK, MessageBoxIcon.Warning);
+            }
+            else
+            {
+                // Let user know that export was completed
+                MessageBox.Show(m_entriesWritten + " entries was successfully exported!", "Export complete", MessageBoxButtons.OK, MessageBoxIcon.Information);
+            }
+        }
+
+        private BinaryWriter EntryWriter(FileStream fileStream, Encoding encoding, PwGroup selectedGroup)
+        {
+            m_entriesWritten = 0;
+            m_truncatedStrings = new List<string>();
+
+            // Create writer and traverse the tree, being root or selected group
+            var writer = new BinaryWriter(fileStream, encoding);
+            selectedGroup.TraverseTree(TraversalMethod.PreOrder, null, entry => exportHandler(ref m_entriesWritten, writer, entry, m_truncatedStrings));
+
+            for (int i = m_entriesWritten; i < m_maxEntries; i++)
+            {
+                writeNullEntry(writer);
+            }
+
+            return writer;
+        }
+
+        private static char latin1ToLower(char c)
+        {
+            if (c >= 'a' && c <= 'z') return c;
+            if (c >= '0' && c <= '9') return c;
+            if (c >= 'A' && c <= 'Z') return (char)(c + ('a' - 'A'));
+
+            if (c == 0xc6) return (char)0xe6; // KS_AE
+            if (c == 0xc5) return (char)0xe5; // KS_Aring
+            if (c == 0xc4) return (char)0xe4; // KS_Adiaeresis
+            if (c == 0xd6) return (char)0xf6; // KS_Odiaeresis
+            if (c == 0xd8) return (char)0xf8; // KS_Ooblique
+            if (c == 0xdc) return (char)0xfc; // KS_Udiaeresis
+
+            return c;
+        }
+
+        private static bool isValidLabelChar(char sc)
+        {
+            char c = latin1ToLower(sc);
+            return (c >= 'a' && c <= 'z') ||
+                   (c >= '0' && c <= '9') ||
+                   (c == '_') ||
+                   (c == 0xe6) || // KS_ae
+                   (c == 0xe5) || // KS_aring
+                   (c == 0xe4) || // KS_adiaeresis
+                   (c == 0xf6) || // KS_odiaeresis
+                   (c == 0xf8) || // KS_oslash
+                   (c == 0xfc) || // KS_udiaeresis
+                   (c == 0xdf); // KS_sslash
+        }
+        
+        // Set this link to where the version update file is located
+        public override string UpdateUrl
+        {
+            get
+            {
+                return "http://www.seclave.se/seclaveplugin_version.txt";
+            }
+        }
+    }
+}

SeclavePlugin/SeclavePlugin.csproj

+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{DE6F409D-56DB-477F-A068-746A31797BD0}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>SeclavePlugin</RootNamespace>
+    <AssemblyName>SeclavePlugin</AssemblyName>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <TargetFrameworkProfile />
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>..\..\..\..\..\..\..\Program Files %28x86%29\KeePass Password Safe 2\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="KeePass, Version=2.21.0.21106, Culture=neutral, PublicKeyToken=fed2ed7716aecf5c, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\..\..\..\..\Program Files (x86)\KeePass Password Safe 2\KeePass.exe</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="SeclavePlugin.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

SeclavePlugin/SeclavePlugin.csproj.user

+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
+    <StartAction>Program</StartAction>
+    <StartProgram>C:\Program Files %28x86%29\KeePass Password Safe 2\KeePass.exe</StartProgram>
+  </PropertyGroup>
+</Project>
Add a comment to this file

SeclavePlugin/bin/Debug/KeePass.XmlSerializers.dll

Binary file added.

SeclavePlugin/bin/Debug/KeePass.config.xml

+<?xml version="1.0" encoding="utf-8"?>
+<Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+	<Meta>
+		<PreferUserConfiguration>false</PreferUserConfiguration>
+		<OmitItemsWithDefaultValues>true</OmitItemsWithDefaultValues>
+	</Meta>
+	<Application>
+		<LastUpdateCheck>2013-04-15T15:26:38Z</LastUpdateCheck>
+		<LastUsedFile>
+			<Path>..\..\..\..\..\..\NewDatabase.kdbx</Path>
+			<CredProtMode>Obf</CredProtMode>
+			<CredSaveMode>NoSave</CredSaveMode>
+		</LastUsedFile>
+		<MostRecentlyUsed>
+			<MaxItemCount>12</MaxItemCount>
+			<Items>
+				<ConnectionInfo>
+					<Path>..\..\..\..\..\..\NewDatabase.kdbx</Path>
+					<CredProtMode>Obf</CredProtMode>
+					<CredSaveMode>NoSave</CredSaveMode>
+				</ConnectionInfo>
+			</Items>
+		</MostRecentlyUsed>
+		<WorkingDirectories>
+			<Item>Database@..\..\..\..\..\..\..\Documents</Item>
+		</WorkingDirectories>
+		<Start>
+			<CheckForUpdate>false</CheckForUpdate>
+			<CheckForUpdateConfigured>true</CheckForUpdateConfigured>
+		</Start>
+		<FileOpening />
+		<FileClosing />
+		<TriggerSystem>
+			<Triggers />
+		</TriggerSystem>
+	</Application>
+	<Logging />
+	<MainWindow>
+		<X>305</X>
+		<Y>111</Y>
+		<Width>1062</Width>
+		<Height>712</Height>
+		<SplitterHorizontalFrac>0.8291874</SplitterHorizontalFrac>
+		<SplitterVerticalFrac>0.250478</SplitterVerticalFrac>
+		<Layout>Default</Layout>
+		<ToolBar />
+		<EntryView />
+		<TanView />
+		<EntryListColumnCollection>
+			<Column>
+				<Type>Title</Type>
+				<Width>111</Width>
+			</Column>
+			<Column>
+				<Type>UserName</Type>
+				<Width>90</Width>
+			</Column>
+			<Column>
+				<Type>Password</Type>
+				<Width>90</Width>
+				<HideWithAsterisks>true</HideWithAsterisks>
+			</Column>
+			<Column>
+				<Type>Url</Type>
+				<Width>238</Width>
+			</Column>
+			<Column>
+				<Type>Notes</Type>
+				<Width>90</Width>
+			</Column>
+		</EntryListColumnCollection>
+		<EntryListColumnDisplayOrder>0 1 2 3 4</EntryListColumnDisplayOrder>
+		<ListSorting>
+			<Order>Ascending</Order>
+		</ListSorting>
+	</MainWindow>
+	<UI>
+		<TrayIcon />
+		<Hiding />
+		<StandardFont>
+			<Family>Microsoft Sans Serif</Family>
+			<Size>8.25</Size>
+			<GraphicsUnit>Point</GraphicsUnit>
+			<Style>Regular</Style>
+			<OverrideUIDefault>false</OverrideUIDefault>
+		</StandardFont>
+		<PasswordFont>
+			<Family>Courier New</Family>
+			<Size>8.25</Size>
+			<GraphicsUnit>Point</GraphicsUnit>
+			<Style>Regular</Style>
+			<OverrideUIDefault>false</OverrideUIDefault>
+		</PasswordFont>
+		<BannerStyle>WinVistaBlack</BannerStyle>
+		<DataEditorFont>
+			<Family>Microsoft Sans Serif</Family>
+			<Size>8.25</Size>
+			<GraphicsUnit>Point</GraphicsUnit>
+			<Style>Regular</Style>
+			<OverrideUIDefault>false</OverrideUIDefault>
+		</DataEditorFont>
+		<UIFlags>0</UIFlags>
+		<KeyCreationFlags>0</KeyCreationFlags>
+		<KeyPromptFlags>0</KeyPromptFlags>
+	</UI>
+	<Security>
+		<WorkspaceLocking>
+			<LockAfterTime>0</LockAfterTime>
+			<LockAfterGlobalTime>0</LockAfterGlobalTime>
+		</WorkspaceLocking>
+		<Policy />
+		<MasterPassword>
+			<MinimumLength>0</MinimumLength>
+			<MinimumQuality>0</MinimumQuality>
+		</MasterPassword>
+	</Security>
+	<Native />
+	<PasswordGenerator>
+		<AutoGeneratedPasswordsProfile>
+			<GeneratorType>CharSet</GeneratorType>
+			<Length>20</Length>
+			<CharSetRanges>ULD_______</CharSetRanges>
+		</AutoGeneratedPasswordsProfile>
+		<LastUsedProfile>
+			<Name>(Custom)</Name>
+			<GeneratorType>CharSet</GeneratorType>
+			<Length>20</Length>
+			<CharSetRanges>ULD_______</CharSetRanges>
+		</LastUsedProfile>
+		<UserProfiles />
+	</PasswordGenerator>
+	<Defaults>
+		<OptionsTabIndex>0</OptionsTabIndex>
+		<SearchParameters>
+			<ComparisonMode>InvariantCultureIgnoreCase</ComparisonMode>
+		</SearchParameters>
+		<KeySources />
+	</Defaults>
+	<Integration>
+		<HotKeyGlobalAutoType>393281</HotKeyGlobalAutoType>
+		<HotKeySelectedAutoType>0</HotKeySelectedAutoType>
+		<HotKeyShowWindow>393291</HotKeyShowWindow>
+		<HotKeyEntryMenu>0</HotKeyEntryMenu>
+		<UrlSchemeOverrides>
+			<BuiltInOverridesEnabled>1</BuiltInOverridesEnabled>
+			<CustomOverrides />
+		</UrlSchemeOverrides>
+		<ProxyType>System</ProxyType>
+	</Integration>
+	<Custom />
+</Configuration>
Add a comment to this file

SeclavePlugin/bin/Debug/KeePass.exe

Binary file added.

Add a comment to this file

SeclavePlugin/bin/Debug/SecImport.dll

Binary file added.

Add a comment to this file

SeclavePlugin/bin/Debug/SecImport.pdb

Binary file added.

Add a comment to this file

SeclavePlugin/bin/Release/KeePass.XmlSerializers.dll

Binary file added.

SeclavePlugin/bin/Release/KeePass.config.xml

+<?xml version="1.0" encoding="utf-8"?>
+<Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+	<Meta>
+		<PreferUserConfiguration>false</PreferUserConfiguration>
+		<OmitItemsWithDefaultValues>true</OmitItemsWithDefaultValues>
+	</Meta>
+	<Application>
+		<LastUsedFile>
+			<Path>..\..\..\..\..\..\NewDatabase.kdbx</Path>
+			<CredProtMode>Obf</CredProtMode>
+			<CredSaveMode>NoSave</CredSaveMode>
+		</LastUsedFile>
+		<MostRecentlyUsed>
+			<MaxItemCount>12</MaxItemCount>
+			<Items>
+				<ConnectionInfo>
+					<Path>..\..\..\..\..\..\NewDatabase.kdbx</Path>
+					<CredProtMode>Obf</CredProtMode>
+					<CredSaveMode>NoSave</CredSaveMode>
+				</ConnectionInfo>
+			</Items>
+		</MostRecentlyUsed>
+		<WorkingDirectories>
+			<Item>Database@..\..\..\..\..\..\..\Documents</Item>
+		</WorkingDirectories>
+		<Start>
+			<CheckForUpdate>false</CheckForUpdate>
+			<CheckForUpdateConfigured>true</CheckForUpdateConfigured>
+		</Start>
+		<FileOpening />
+		<FileClosing />
+		<TriggerSystem>
+			<Triggers />
+		</TriggerSystem>
+	</Application>
+	<Logging />
+	<MainWindow>
+		<X>305</X>
+		<Y>118</Y>
+		<Width>670</Width>
+		<Height>524</Height>
+		<SplitterHorizontalFrac>0.8313253</SplitterHorizontalFrac>
+		<SplitterVerticalFrac>0.250764519</SplitterVerticalFrac>
+		<Layout>Default</Layout>
+		<ToolBar />
+		<EntryView />
+		<TanView />
+		<EntryListColumnCollection>
+			<Column>
+				<Type>Title</Type>
+				<Width>90</Width>
+			</Column>
+			<Column>
+				<Type>UserName</Type>
+				<Width>90</Width>
+			</Column>
+			<Column>
+				<Type>Password</Type>
+				<Width>90</Width>
+				<HideWithAsterisks>true</HideWithAsterisks>
+			</Column>
+			<Column>
+				<Type>Url</Type>
+				<Width>90</Width>
+			</Column>
+			<Column>
+				<Type>Notes</Type>
+				<Width>90</Width>
+			</Column>
+		</EntryListColumnCollection>
+		<EntryListColumnDisplayOrder>0 1 2 3 4</EntryListColumnDisplayOrder>
+		<ListSorting>
+			<Order>Ascending</Order>
+		</ListSorting>
+	</MainWindow>
+	<UI>
+		<TrayIcon />
+		<Hiding />
+		<StandardFont>
+			<Family>Microsoft Sans Serif</Family>
+			<Size>8.25</Size>
+			<GraphicsUnit>Point</GraphicsUnit>
+			<Style>Regular</Style>
+			<OverrideUIDefault>false</OverrideUIDefault>
+		</StandardFont>
+		<PasswordFont>
+			<Family>Courier New</Family>
+			<Size>8.25</Size>
+			<GraphicsUnit>Point</GraphicsUnit>
+			<Style>Regular</Style>
+			<OverrideUIDefault>false</OverrideUIDefault>
+		</PasswordFont>
+		<BannerStyle>WinVistaBlack</BannerStyle>
+		<DataEditorFont>
+			<Family>Microsoft Sans Serif</Family>
+			<Size>8.25</Size>
+			<GraphicsUnit>Point</GraphicsUnit>
+			<Style>Regular</Style>
+			<OverrideUIDefault>false</OverrideUIDefault>
+		</DataEditorFont>
+		<UIFlags>0</UIFlags>
+		<KeyCreationFlags>0</KeyCreationFlags>
+		<KeyPromptFlags>0</KeyPromptFlags>
+	</UI>
+	<Security>
+		<WorkspaceLocking>
+			<LockAfterTime>0</LockAfterTime>
+			<LockAfterGlobalTime>0</LockAfterGlobalTime>
+		</WorkspaceLocking>
+		<Policy />
+		<MasterPassword>
+			<MinimumLength>0</MinimumLength>
+			<MinimumQuality>0</MinimumQuality>
+		</MasterPassword>
+	</Security>
+	<Native />
+	<PasswordGenerator>
+		<AutoGeneratedPasswordsProfile>
+			<GeneratorType>CharSet</GeneratorType>
+			<Length>20</Length>
+			<CharSetRanges>ULD_______</CharSetRanges>
+		</AutoGeneratedPasswordsProfile>
+		<LastUsedProfile>
+			<GeneratorType>CharSet</GeneratorType>
+			<Length>20</Length>
+			<CharSetRanges>ULD_______</CharSetRanges>
+		</LastUsedProfile>
+		<UserProfiles />
+	</PasswordGenerator>
+	<Defaults>
+		<OptionsTabIndex>0</OptionsTabIndex>
+		<SearchParameters>
+			<ComparisonMode>InvariantCultureIgnoreCase</ComparisonMode>
+		</SearchParameters>
+		<KeySources />
+	</Defaults>
+	<Integration>
+		<HotKeyGlobalAutoType>393281</HotKeyGlobalAutoType>
+		<HotKeySelectedAutoType>0</HotKeySelectedAutoType>
+		<HotKeyShowWindow>393291</HotKeyShowWindow>
+		<HotKeyEntryMenu>0</HotKeyEntryMenu>
+		<UrlSchemeOverrides>
+			<BuiltInOverridesEnabled>1</BuiltInOverridesEnabled>
+			<CustomOverrides />
+		</UrlSchemeOverrides>
+		<ProxyType>System</ProxyType>
+	</Integration>
+	<Custom />
+</Configuration>
Add a comment to this file

SeclavePlugin/bin/Release/KeePass.config.xml.tmp

Empty file added.

Add a comment to this file

SeclavePlugin/bin/Release/KeePass.exe

Binary file added.

Add a comment to this file

SeclavePlugin/bin/Release/SecImport.dll

Binary file added.

Add a comment to this file

SeclavePlugin/bin/Release/SecImport.pdb

Binary file added.

Add a comment to this file

SeclavePlugin/obj/Debug/DesignTimeResolveAssemblyReferences.cache

Binary file added.

Add a comment to this file

SeclavePlugin/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache

Binary file added.

SeclavePlugin/obj/Debug/SecExport.csproj.FileListAbsolute.txt

+C:\Program Files (x86)\KeePass Password Safe 2\SecExport.dll
+C:\Program Files (x86)\KeePass Password Safe 2\SecExport.pdb
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SecImport\SecImport\obj\Debug\SecExport.csprojResolveAssemblyReference.cache
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SecImport\SecImport\obj\Debug\SecExport.dll
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SecImport\SecImport\obj\Debug\SecExport.pdb
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SecExport\SecExport\obj\Debug\SecExport.csprojResolveAssemblyReference.cache
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SecExport\SecExport\obj\Debug\SecExport.dll
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SecExport\SecExport\obj\Debug\SecExport.pdb
Add a comment to this file

SeclavePlugin/obj/Debug/SecExport.csprojResolveAssemblyReference.cache

Binary file added.

SeclavePlugin/obj/Debug/SecImport.csproj.FileListAbsolute.txt

+C:\Users\dna\Documents\Visual Studio 2012\Projects\SecImport\SecImport\bin\Debug\SecImport.dll
+C:\Users\dna\Documents\Visual Studio 2012\Projects\SecImport\SecImport\bin\Debug\SecImport.pdb
+C:\Users\dna\Documents\Visual Studio 2012\Projects\SecImport\SecImport\bin\Debug\KeePass.exe
+C:\Users\dna\Documents\Visual Studio 2012\Projects\SecImport\SecImport\bin\Debug\KeePass.XmlSerializers.dll
+C:\Users\dna\Documents\Visual Studio 2012\Projects\SecImport\SecImport\obj\Debug\SecImport.dll
+C:\Users\dna\Documents\Visual Studio 2012\Projects\SecImport\SecImport\obj\Debug\SecImport.pdb
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SecImport\SecImport\bin\Debug\SecImport.dll
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SecImport\SecImport\bin\Debug\SecImport.pdb
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SecImport\SecImport\bin\Debug\KeePass.XmlSerializers.dll
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SecImport\SecImport\obj\Debug\SecImport.csprojResolveAssemblyReference.cache
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SecImport\SecImport\obj\Debug\SecImport.dll
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SecImport\SecImport\obj\Debug\SecImport.pdb
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SecImport\SecImport\bin\Debug\KeePass.exe
+C:\Program Files (x86)\KeePass Password Safe 2\SecImport.dll
+C:\Program Files (x86)\KeePass Password Safe 2\SecImport.pdb
Add a comment to this file

SeclavePlugin/obj/Debug/SecImport.csprojResolveAssemblyReference.cache

Binary file added.

Add a comment to this file

SeclavePlugin/obj/Debug/SecImport.dll

Binary file added.

Add a comment to this file

SeclavePlugin/obj/Debug/SecImport.pdb

Binary file added.

SeclavePlugin/obj/Debug/SeclavePlugin.csproj.FileListAbsolute.txt

+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SeclavePlugin\SeclavePlugin\obj\Debug\SeclavePlugin.csprojResolveAssemblyReference.cache
+C:\Program Files (x86)\KeePass Password Safe 2\SeclavePlugin.dll
+C:\Program Files (x86)\KeePass Password Safe 2\SeclavePlugin.pdb
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SeclavePlugin\SeclavePlugin\obj\Debug\SeclavePlugin.dll
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SeclavePlugin\SeclavePlugin\obj\Debug\SeclavePlugin.pdb
Add a comment to this file

SeclavePlugin/obj/Debug/SeclavePlugin.csprojResolveAssemblyReference.cache

Binary file added.

Add a comment to this file

SeclavePlugin/obj/Debug/SeclavePlugin.dll

Binary file added.

Add a comment to this file

SeclavePlugin/obj/Debug/SeclavePlugin.pdb

Binary file added.

Add a comment to this file

SeclavePlugin/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs

Empty file added.

Add a comment to this file

SeclavePlugin/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs

Empty file added.

Add a comment to this file

SeclavePlugin/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs

Empty file added.

Add a comment to this file

SeclavePlugin/obj/Release/DesignTimeResolveAssemblyReferences.cache

Binary file added.

Add a comment to this file

SeclavePlugin/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache

Binary file added.

SeclavePlugin/obj/Release/SecImport.csproj.FileListAbsolute.txt

+c:\users\dna\documents\visual studio 2012\Projects\SecImport\SecImport\bin\Release\SecImport.dll
+c:\users\dna\documents\visual studio 2012\Projects\SecImport\SecImport\bin\Release\SecImport.pdb
+c:\users\dna\documents\visual studio 2012\Projects\SecImport\SecImport\bin\Release\KeePass.exe
+c:\users\dna\documents\visual studio 2012\Projects\SecImport\SecImport\bin\Release\KeePass.XmlSerializers.dll
+c:\users\dna\documents\visual studio 2012\Projects\SecImport\SecImport\obj\Release\SecImport.dll
+c:\users\dna\documents\visual studio 2012\Projects\SecImport\SecImport\obj\Release\SecImport.pdb
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SecImport\SecImport\bin\Release\SecImport.dll
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SecImport\SecImport\bin\Release\SecImport.pdb
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SecImport\SecImport\bin\Release\KeePass.XmlSerializers.dll
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SecImport\SecImport\obj\Release\SecImport.csprojResolveAssemblyReference.cache
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SecImport\SecImport\obj\Release\SecImport.dll
+C:\Users\bjand1\Documents\Visual Studio 2012\Projects\SecImport\SecImport\obj\Release\SecImport.pdb
Add a comment to this file

SeclavePlugin/obj/Release/SecImport.csprojResolveAssemblyReference.cache

Binary file added.

Add a comment to this file

SeclavePlugin/obj/Release/SecImport.dll

Binary file added.

Add a comment to this file

SeclavePlugin/obj/Release/SecImport.pdb

Binary file added.

Add a comment to this file

SeclavePlugin/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs

Empty file added.

Add a comment to this file

SeclavePlugin/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs

Empty file added.

Add a comment to this file

SeclavePlugin/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs

Empty file added.

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.