key derication and encryopt algorithms are populated. Save not working

This commit is contained in:
michael starke
2016-11-15 18:43:30 +01:00
parent 672944b7c5
commit 7e86984efa
6 changed files with 200 additions and 96 deletions

View File

@@ -1,3 +1,3 @@
github "sparkle-project/Sparkle" ~> 1.13.1
github "mstarke/KeePassKit" "f4f7c56c2c081ae129f88e6004411ecc8ef9ae0c"
github "mstarke/KeePassKit" "32d3bdeb224b5718424b46a5b80c3a66114f6a9b"
github "mstarke/HNHUi" ~> 1.1

View File

@@ -1,3 +1,3 @@
github "mstarke/HNHUi" "1.1"
github "mstarke/KeePassKit" "f4f7c56c2c081ae129f88e6004411ecc8ef9ae0c"
github "mstarke/KeePassKit" "32d3bdeb224b5718424b46a5b80c3a66114f6a9b"
github "sparkle-project/Sparkle" "1.14.0"

View File

@@ -9,6 +9,10 @@
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="MPDatabaseSettingsWindowController">
<connections>
<outlet property="AESEncryptionRoundsTextField" destination="8aq-34-rcd" id="sl2-lb-9vc"/>
<outlet property="Argon2IterationsTextField" destination="39N-8Q-J8b" id="pnH-Mf-x5c"/>
<outlet property="Argon2MemoryTextField" destination="eEW-oa-V7U" id="iDH-eW-4TE"/>
<outlet property="Argon2ThreadsTextField" destination="178-0f-guB" id="ATl-km-DSX"/>
<outlet property="createKeyDerivationParametersButton" destination="P98-Cu-Tha" id="UQ0-eg-rdx"/>
<outlet property="databaseColorColorWell" destination="1439" id="Fqq-2P-vbf"/>
<outlet property="databaseCompressionPopupButton" destination="1394" id="L9g-c4-dJp"/>
@@ -24,6 +28,7 @@
<outlet property="historyMaximumItemsTextField" destination="593" id="NrX-e0-8Dw"/>
<outlet property="historyMaxiumSizeTextField" destination="1273" id="5Fo-Pp-8dY"/>
<outlet property="keyDerivationPopupButton" destination="5D9-bT-JAr" id="90K-97-HQW"/>
<outlet property="keyDerivationSettingsTabView" destination="2MY-PW-kzL" id="1iZ-jt-nxi"/>
<outlet property="recommendKeyChangeCheckButton" destination="Hqc-B0-xyz" id="3CK-D7-b8S"/>
<outlet property="recommendKeyChangeIntervalTextField" destination="19r-LE-7X5" id="c5C-1h-LpD"/>
<outlet property="sectionTabView" destination="357" id="699"/>
@@ -37,14 +42,14 @@
<window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="1">
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="196" y="240" width="547" height="405"/>
<rect key="contentRect" x="196" y="240" width="548" height="411"/>
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
<view key="contentView" misplaced="YES" id="2">
<rect key="frame" x="0.0" y="0.0" width="547" height="405"/>
<rect key="frame" x="0.0" y="0.0" width="548" height="411"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="288">
<rect key="frame" x="474" y="13" width="59" height="32"/>
<rect key="frame" x="475" y="13" width="59" height="32"/>
<buttonCell key="cell" type="push" title="OK" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="289">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
@@ -57,7 +62,7 @@ DQ
</connections>
</button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="956">
<rect key="frame" x="392" y="13" width="82" height="32"/>
<rect key="frame" x="393" y="13" width="82" height="32"/>
<buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="957">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
@@ -70,16 +75,16 @@ Gw
</connections>
</button>
<tabView translatesAutoresizingMaskIntoConstraints="NO" id="357">
<rect key="frame" x="13" y="41" width="521" height="339"/>
<rect key="frame" x="13" y="41" width="522" height="282"/>
<font key="font" metaFont="system"/>
<tabViewItems>
<tabViewItem label="General" identifier="1" id="358">
<view key="view" id="361">
<rect key="frame" x="10" y="33" width="501" height="242"/>
<rect key="frame" x="10" y="33" width="502" height="242"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="231">
<rect key="frame" x="201" y="200" width="280" height="22"/>
<rect key="frame" x="202" y="200" width="280" height="22"/>
<constraints>
<constraint firstAttribute="width" constant="280" id="cra-uC-nCv"/>
</constraints>
@@ -90,7 +95,7 @@ Gw
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="256">
<rect key="frame" x="117" y="176" width="78" height="17"/>
<rect key="frame" x="118" y="176" width="78" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Description:" id="257">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@@ -98,7 +103,7 @@ Gw
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="189">
<rect key="frame" x="93" y="204" width="102" height="17"/>
<rect key="frame" x="94" y="204" width="102" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Database name:" id="190">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@@ -106,7 +111,7 @@ Gw
</textFieldCell>
</textField>
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1394">
<rect key="frame" x="199" y="48" width="70" height="26"/>
<rect key="frame" x="200" y="48" width="70" height="26"/>
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="1395">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
@@ -119,7 +124,7 @@ Gw
</popUpButtonCell>
</popUpButton>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1404">
<rect key="frame" x="107" y="53" width="88" height="17"/>
<rect key="frame" x="108" y="53" width="88" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Compression:" id="1405">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@@ -127,7 +132,7 @@ Gw
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1434">
<rect key="frame" x="154" y="23" width="41" height="17"/>
<rect key="frame" x="155" y="23" width="41" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Color:" id="1435">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@@ -135,7 +140,7 @@ Gw
</textFieldCell>
</textField>
<colorWell translatesAutoresizingMaskIntoConstraints="NO" id="1439" customClass="HNHUIColorWell">
<rect key="frame" x="201" y="20" width="44" height="23"/>
<rect key="frame" x="202" y="20" width="44" height="23"/>
<constraints>
<constraint firstAttribute="width" constant="44" id="XBF-V3-71G"/>
<constraint firstAttribute="height" constant="23" id="fgN-h5-Mr8"/>
@@ -143,7 +148,7 @@ Gw
<color key="color" red="0.05813049898" green="0.055541899059999997" blue="1" alpha="1" colorSpace="calibratedRGB"/>
</colorWell>
<scrollView horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1530">
<rect key="frame" x="201" y="92" width="280" height="100"/>
<rect key="frame" x="202" y="92" width="280" height="100"/>
<clipView key="contentView" id="WOI-1v-RCe">
<rect key="frame" x="1" y="1" width="278" height="98"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -200,11 +205,11 @@ Gw
</tabViewItem>
<tabViewItem label="Security" identifier="" id="370">
<view key="view" id="371">
<rect key="frame" x="10" y="33" width="501" height="293"/>
<rect key="frame" x="10" y="33" width="502" height="236"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="3ek-Rg-w82">
<rect key="frame" x="233" y="249" width="37" height="26"/>
<rect key="frame" x="233" y="192" width="37" height="26"/>
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="e3h-dG-ekU">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
@@ -212,7 +217,7 @@ Gw
</popUpButtonCell>
</popUpButton>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="vH7-5a-52C">
<rect key="frame" x="160" y="256" width="69" height="17"/>
<rect key="frame" x="160" y="199" width="69" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Encryption" id="gxY-UL-bEG">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@@ -220,13 +225,13 @@ Gw
</textFieldCell>
</textField>
<box title="Key derivation" translatesAutoresizingMaskIntoConstraints="NO" id="pbl-Mb-r8V">
<rect key="frame" x="17" y="16" width="467" height="228"/>
<rect key="frame" x="17" y="16" width="468" height="171"/>
<view key="contentView" id="hkT-SX-Te1">
<rect key="frame" x="2" y="2" width="463" height="211"/>
<rect key="frame" x="2" y="2" width="464" height="154"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="cqu-Og-bZH">
<rect key="frame" x="18" y="174" width="63" height="17"/>
<rect key="frame" x="147" y="117" width="63" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Algorithm" id="U4f-lN-oxi">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@@ -234,7 +239,7 @@ Gw
</textFieldCell>
</textField>
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="5D9-bT-JAr">
<rect key="frame" x="85" y="167" width="37" height="26"/>
<rect key="frame" x="214" y="110" width="37" height="26"/>
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="rf4-V3-tPC">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
@@ -242,32 +247,114 @@ Gw
</popUpButtonCell>
</popUpButton>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="P98-Cu-Tha">
<rect key="frame" x="300" y="18" width="143" height="25"/>
<rect key="frame" x="301" y="18" width="143" height="25"/>
<buttonCell key="cell" type="roundTextured" title="Generate Parameters" bezelStyle="texturedRounded" alignment="center" lineBreakMode="truncatingTail" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="PoI-Er-Y8P">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
</button>
<tabView type="noTabsNoBorder" translatesAutoresizingMaskIntoConstraints="NO" id="2MY-PW-kzL">
<rect key="frame" x="13" y="50" width="437" height="101"/>
<tabView drawsBackground="NO" type="noTabsNoBorder" translatesAutoresizingMaskIntoConstraints="NO" id="2MY-PW-kzL">
<rect key="frame" x="13" y="50" width="438" height="62"/>
<font key="font" metaFont="system"/>
<tabViewItems>
<tabViewItem label="Aes" identifier="1" id="ft1-pl-lpO">
<view key="view" id="88i-IZ-Yev">
<rect key="frame" x="0.0" y="0.0" width="437" height="101"/>
<rect key="frame" x="0.0" y="0.0" width="438" height="62"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ztz-iY-hWV">
<rect key="frame" x="123" y="23" width="50" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Rounds" id="uUQ-9s-M5E">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="8aq-34-rcd">
<rect key="frame" x="112" y="59" width="81" height="22"/>
<rect key="frame" x="179" y="20" width="80" height="22"/>
<constraints>
<constraint firstAttribute="width" constant="80" id="rV0-LL-xXc"/>
</constraints>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="DTY-h6-A7Z">
<numberFormatter key="formatter" formatterBehavior="default10_4" usesGroupingSeparator="NO" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="42" id="PHD-wY-sQ2">
<real key="minimum" value="0.0"/>
</numberFormatter>
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ztz-iY-hWV">
<rect key="frame" x="20" y="62" width="37" height="19"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Label" id="uUQ-9s-M5E">
</subviews>
<constraints>
<constraint firstItem="8aq-34-rcd" firstAttribute="leading" secondItem="ztz-iY-hWV" secondAttribute="trailing" constant="8" symbolic="YES" id="1rK-1s-hmj"/>
<constraint firstItem="ztz-iY-hWV" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="88i-IZ-Yev" secondAttribute="leading" constant="20" symbolic="YES" id="68e-t0-M72"/>
<constraint firstAttribute="bottom" secondItem="8aq-34-rcd" secondAttribute="bottom" constant="20" symbolic="YES" id="P33-GP-h3e"/>
<constraint firstItem="8aq-34-rcd" firstAttribute="centerX" secondItem="88i-IZ-Yev" secondAttribute="centerX" id="Twz-Ot-3wP"/>
<constraint firstItem="8aq-34-rcd" firstAttribute="top" secondItem="88i-IZ-Yev" secondAttribute="top" constant="20" id="uK6-22-35U"/>
<constraint firstItem="8aq-34-rcd" firstAttribute="baseline" secondItem="ztz-iY-hWV" secondAttribute="baseline" id="yOh-B1-dkr"/>
</constraints>
</view>
</tabViewItem>
<tabViewItem label="Argon2" identifier="2" id="6qB-sH-9FI">
<view key="view" id="ORc-Gq-vFd">
<rect key="frame" x="0.0" y="0.0" width="438" height="126"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="aNy-eF-jKq">
<rect key="frame" x="119" y="87" width="54" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Threads" id="2QI-ne-N5d">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ml2-wP-EaZ">
<rect key="frame" x="112" y="55" width="61" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Iterations" id="2ZA-Gc-JdZ">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="178-0f-guB">
<rect key="frame" x="179" y="84" width="80" height="22"/>
<constraints>
<constraint firstAttribute="width" constant="80" id="pWc-wH-acx"/>
</constraints>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="E2f-UU-u53">
<numberFormatter key="formatter" formatterBehavior="default10_4" usesGroupingSeparator="NO" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="42" id="99Y-Zs-26E">
<real key="minimum" value="1"/>
<real key="maximum" value="16777215"/>
</numberFormatter>
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="39N-8Q-J8b">
<rect key="frame" x="179" y="52" width="80" height="22"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="9wr-x8-Wtv">
<numberFormatter key="formatter" formatterBehavior="default10_4" usesGroupingSeparator="NO" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="42" id="Kim-cZ-JbF">
<real key="minimum" value="1"/>
<real key="maximum" value="4294967295"/>
</numberFormatter>
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="eEW-oa-V7U">
<rect key="frame" x="179" y="20" width="80" height="22"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="M1E-89-YVm">
<byteCountFormatter key="formatter" id="zX5-n0-r94"/>
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="9kV-19-lm6">
<rect key="frame" x="119" y="23" width="54" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Memory" id="iRY-If-Kwn">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
@@ -275,60 +362,27 @@ Gw
</textField>
</subviews>
<constraints>
<constraint firstItem="ztz-iY-hWV" firstAttribute="leading" secondItem="88i-IZ-Yev" secondAttribute="leading" constant="22" id="D3b-C5-eZX"/>
<constraint firstItem="ztz-iY-hWV" firstAttribute="top" secondItem="88i-IZ-Yev" secondAttribute="top" constant="20" id="Gmy-bj-T79"/>
<constraint firstAttribute="bottom" secondItem="8aq-34-rcd" secondAttribute="bottom" constant="59" id="P33-GP-h3e"/>
<constraint firstItem="8aq-34-rcd" firstAttribute="leading" secondItem="ztz-iY-hWV" secondAttribute="trailing" constant="57" id="TN7-ge-h5B"/>
<constraint firstItem="8aq-34-rcd" firstAttribute="top" secondItem="88i-IZ-Yev" secondAttribute="top" constant="20" id="uK6-22-35U"/>
<constraint firstAttribute="trailing" secondItem="8aq-34-rcd" secondAttribute="trailing" constant="244" id="x5N-rT-y0h"/>
<constraint firstItem="8aq-34-rcd" firstAttribute="baseline" secondItem="ztz-iY-hWV" secondAttribute="baseline" id="yOh-B1-dkr"/>
<constraint firstItem="178-0f-guB" firstAttribute="trailing" secondItem="39N-8Q-J8b" secondAttribute="trailing" id="1kQ-s7-kBh"/>
<constraint firstItem="ml2-wP-EaZ" firstAttribute="baseline" secondItem="39N-8Q-J8b" secondAttribute="baseline" id="2qS-68-RoC"/>
<constraint firstItem="39N-8Q-J8b" firstAttribute="top" secondItem="178-0f-guB" secondAttribute="bottom" constant="10" symbolic="YES" id="9GS-Lv-8hf"/>
<constraint firstItem="178-0f-guB" firstAttribute="top" secondItem="ORc-Gq-vFd" secondAttribute="top" constant="20" id="BP8-Q8-bRB"/>
<constraint firstItem="eEW-oa-V7U" firstAttribute="leading" secondItem="39N-8Q-J8b" secondAttribute="leading" id="EK8-oS-e6f"/>
<constraint firstItem="39N-8Q-J8b" firstAttribute="leading" secondItem="ml2-wP-EaZ" secondAttribute="trailing" constant="8" symbolic="YES" id="KM7-HV-rzC"/>
<constraint firstItem="aNy-eF-jKq" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="ORc-Gq-vFd" secondAttribute="leading" constant="20" symbolic="YES" id="Lcs-rI-XEr"/>
<constraint firstItem="178-0f-guB" firstAttribute="leading" secondItem="39N-8Q-J8b" secondAttribute="leading" id="NIV-TP-tNg"/>
<constraint firstItem="eEW-oa-V7U" firstAttribute="trailing" secondItem="39N-8Q-J8b" secondAttribute="trailing" id="Puj-lS-iSq"/>
<constraint firstItem="eEW-oa-V7U" firstAttribute="leading" secondItem="9kV-19-lm6" secondAttribute="trailing" constant="8" symbolic="YES" id="X6b-Xh-c4a"/>
<constraint firstItem="9kV-19-lm6" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="ORc-Gq-vFd" secondAttribute="leading" constant="20" symbolic="YES" id="XQk-mB-L1e"/>
<constraint firstItem="ml2-wP-EaZ" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="ORc-Gq-vFd" secondAttribute="leading" constant="20" symbolic="YES" id="Y0n-Fm-1o3"/>
<constraint firstItem="178-0f-guB" firstAttribute="centerX" secondItem="ORc-Gq-vFd" secondAttribute="centerX" id="ZIg-d3-hij"/>
<constraint firstItem="9kV-19-lm6" firstAttribute="baseline" secondItem="eEW-oa-V7U" secondAttribute="baseline" id="cVQ-WW-b7c"/>
<constraint firstItem="aNy-eF-jKq" firstAttribute="baseline" secondItem="178-0f-guB" secondAttribute="baseline" id="eQi-Ki-OCJ"/>
<constraint firstItem="eEW-oa-V7U" firstAttribute="top" secondItem="39N-8Q-J8b" secondAttribute="bottom" constant="10" symbolic="YES" id="eky-9x-cpq"/>
<constraint firstAttribute="bottom" secondItem="eEW-oa-V7U" secondAttribute="bottom" constant="20" symbolic="YES" id="pU0-CH-dyS"/>
<constraint firstItem="178-0f-guB" firstAttribute="leading" secondItem="aNy-eF-jKq" secondAttribute="trailing" constant="8" symbolic="YES" id="yn1-bP-4KY"/>
</constraints>
</view>
</tabViewItem>
<tabViewItem label="Argon2" identifier="2" id="6qB-sH-9FI">
<view key="view" id="ORc-Gq-vFd">
<rect key="frame" x="0.0" y="0.0" width="437" height="120"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="aNy-eF-jKq">
<rect key="frame" x="18" y="83" width="37" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Label" id="2QI-ne-N5d">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ml2-wP-EaZ">
<rect key="frame" x="20" y="58" width="37" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Label" id="2ZA-Gc-JdZ">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="178-0f-guB">
<rect key="frame" x="336" y="78" width="96" height="22"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="E2f-UU-u53">
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="39N-8Q-J8b">
<rect key="frame" x="336" y="46" width="96" height="22"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="9wr-x8-Wtv">
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</subviews>
</view>
</tabViewItem>
</tabViewItems>
</tabView>
</subviews>
@@ -336,9 +390,10 @@ Gw
<constraint firstItem="5D9-bT-JAr" firstAttribute="leading" secondItem="cqu-Og-bZH" secondAttribute="trailing" constant="8" id="1ao-8V-Duk"/>
<constraint firstItem="5D9-bT-JAr" firstAttribute="baseline" secondItem="cqu-Og-bZH" secondAttribute="baseline" id="GYM-tE-OyA"/>
<constraint firstItem="P98-Cu-Tha" firstAttribute="top" secondItem="2MY-PW-kzL" secondAttribute="bottom" constant="8" symbolic="YES" id="O73-33-ZW2"/>
<constraint firstItem="5D9-bT-JAr" firstAttribute="centerX" secondItem="hkT-SX-Te1" secondAttribute="centerX" id="P7O-rC-peC"/>
<constraint firstAttribute="trailing" secondItem="P98-Cu-Tha" secondAttribute="trailing" constant="20" symbolic="YES" id="Rh5-ui-UcZ"/>
<constraint firstItem="cqu-Og-bZH" firstAttribute="leading" secondItem="hkT-SX-Te1" secondAttribute="leading" constant="20" id="gYP-ft-N5i"/>
<constraint firstItem="2MY-PW-kzL" firstAttribute="top" secondItem="5D9-bT-JAr" secondAttribute="bottom" constant="19" id="kWf-As-lIR"/>
<constraint firstItem="cqu-Og-bZH" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="hkT-SX-Te1" secondAttribute="leading" constant="20" symbolic="YES" id="d5c-TB-dUg"/>
<constraint firstItem="2MY-PW-kzL" firstAttribute="top" secondItem="5D9-bT-JAr" secondAttribute="bottom" constant="1" id="kWf-As-lIR"/>
</constraints>
</view>
<constraints>
@@ -363,7 +418,7 @@ Gw
</tabViewItem>
<tabViewItem label="Advanced" identifier="" id="368">
<view key="view" id="369">
<rect key="frame" x="10" y="33" width="501" height="312"/>
<rect key="frame" x="10" y="33" width="502" height="312"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<button verticalHuggingPriority="1000" translatesAutoresizingMaskIntoConstraints="NO" id="531">
@@ -593,7 +648,7 @@ Gw
<constraint firstItem="956" firstAttribute="top" secondItem="357" secondAttribute="bottom" constant="10" id="1096"/>
</constraints>
</view>
<point key="canvasLocation" x="153" y="31"/>
<point key="canvasLocation" x="-104" y="1"/>
</window>
</objects>
</document>

View File

@@ -1,8 +1,9 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="6250" systemVersion="13F34" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11542" systemVersion="16B2555" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="6250"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11542"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="MPDocumentWindowController">
@@ -17,11 +18,12 @@
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
<windowCollectionBehavior key="collectionBehavior" fullScreenPrimary="YES"/>
<rect key="contentRect" x="196" y="240" width="700" height="500"/>
<rect key="screenRect" x="0.0" y="0.0" width="1680" height="1028"/>
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
<view key="contentView" id="2">
<rect key="frame" x="0.0" y="0.0" width="700" height="500"/>
<autoresizingMask key="autoresizingMask"/>
</view>
<point key="canvasLocation" x="54" y="51"/>
</window>
<splitView autosaveName="" dividerStyle="thin" vertical="YES" translatesAutoresizingMaskIntoConstraints="NO" id="697">
<rect key="frame" x="0.0" y="0.0" width="560" height="194"/>

View File

@@ -29,11 +29,17 @@ typedef NS_ENUM(NSUInteger, MPDatabaseSettingsTab) {
@property (weak) IBOutlet NSColorWell *databaseColorColorWell;
/* Security Tab */
@property (weak) IBOutlet NSTextField *AESEncryptionRoundsTextField;
@property (weak) IBOutlet NSButton *createKeyDerivationParametersButton;
@property (weak) IBOutlet NSPopUpButton *encryptionPopupButton;
@property (weak) IBOutlet NSPopUpButton *keyDerivationPopupButton;
@property (weak) IBOutlet NSTabView *keyDerivationSettingsTabView;
/* AES */
@property (weak) IBOutlet NSTextField *AESEncryptionRoundsTextField;
/* Argon2 */
@property (weak) IBOutlet NSTextField *Argon2ThreadsTextField;
@property (weak) IBOutlet NSTextField *Argon2IterationsTextField;
@property (weak) IBOutlet NSTextField *Argon2MemoryTextField;
/* Advanced Tab*/
@property (weak) IBOutlet NSButton *enableHistoryCheckButton;

View File

@@ -23,7 +23,6 @@
@interface MPDatabaseSettingsWindowController () {
NSString *_missingFeature;
}
@end
@implementation MPDatabaseSettingsWindowController
@@ -48,7 +47,6 @@
self.sectionTabView.delegate = self;
self.AESEncryptionRoundsTextField.formatter = [[MPNumericalInputFormatter alloc] init];
NSMenu *kdfMenu = [[NSMenu alloc] init];
NSArray *keyderivations = [KPKKeyDerivation availableKeyDerivations];
for(KPKKeyDerivation *kd in keyderivations) {
@@ -56,6 +54,9 @@
kdfMenu.itemArray.lastObject.representedObject = kd.uuid;
}
self.keyDerivationPopupButton.menu = kdfMenu;
self.keyDerivationPopupButton.target = self;
self.keyDerivationPopupButton.action = @selector(selectKeyDerivation:);
NSMenu *cipherMenu = [[NSMenu alloc] init];
NSArray *ciphers = [KPKCipher availableCiphers];
for(KPKCipher *cipher in ciphers) {
@@ -63,10 +64,17 @@
cipherMenu.itemArray.lastObject.representedObject = cipher.uuid;
}
self.encryptionPopupButton.menu = cipherMenu;
self.keyDerivationSettingsTabView.tabViewItems[0].identifier = [KPKAESKeyDerivation uuid];
self.keyDerivationSettingsTabView.tabViewItems[1].identifier = [KPKArgon2KeyDerivation uuid];
}
#pragma mark Actions
- (IBAction)selectKeyDerivation:(id)sender {
NSUUID *uuid = self.keyDerivationPopupButton.selectedItem.representedObject;
[self.keyDerivationSettingsTabView selectTabViewItemWithIdentifier:uuid];
}
- (IBAction)save:(id)sender {
/* General */
KPKMetaData *metaData = ((MPDocument *)self.document).tree.metaData;
@@ -112,6 +120,7 @@
metaData.defaultUserName = self.defaultUsernameTextField.stringValue;
/* fixme! */
metaData.keyDerivationParameters = @{ KPKAESRoundsOption : [[KPKNumber alloc] initWithUnsignedInteger64: MAX(0,self.AESEncryptionRoundsTextField.integerValue)]};
/* Register an action to enable promts when user cloeses without saving */
@@ -181,12 +190,44 @@
}
- (void)_setupSecurityTab:(KPKMetaData *)metaData {
[self.AESEncryptionRoundsTextField setIntegerValue:[metaData.keyDerivationParameters[KPKAESRoundsOption] unsignedInteger64Value]];
/* Tab 0 AES Tab 1 Argon2 */
KPKKeyDerivation *keyDerivation = [KPKKeyDerivation keyDerivationWithParameters:metaData.keyDerivationParameters];
self.createKeyDerivationParametersButton.enabled = YES;
NSUInteger kdfIndex = [self.keyDerivationPopupButton.menu indexOfItemWithRepresentedObject:keyDerivation.uuid];
[self.keyDerivationPopupButton selectItemAtIndex:kdfIndex];
if([keyDerivation isKindOfClass:[KPKAESKeyDerivation class]]) {
[self.keyDerivationSettingsTabView selectTabViewItemAtIndex:0];
KPKAESKeyDerivation *aesKDF = (KPKAESKeyDerivation *)keyDerivation;
self.AESEncryptionRoundsTextField.integerValue = aesKDF.rounds;
self.createKeyDerivationParametersButton.enabled = YES;
/* fill defautls for Argon2 */
KPKArgon2KeyDerivation *argon2Kdf = [[KPKArgon2KeyDerivation alloc] initWithParameters:[KPKArgon2KeyDerivation defaultParameters]];
self.Argon2IterationsTextField.integerValue = argon2Kdf.iterations;
self.Argon2MemoryTextField.integerValue = argon2Kdf.memory;
self.Argon2ThreadsTextField.integerValue = argon2Kdf.threads;
}
else if([keyDerivation isKindOfClass:[KPKArgon2KeyDerivation class]]) {
[self.keyDerivationSettingsTabView selectTabViewItemAtIndex:1];
KPKArgon2KeyDerivation *argon2KDF = (KPKArgon2KeyDerivation *)keyDerivation;
self.Argon2MemoryTextField.integerValue = argon2KDF.memory;
self.Argon2ThreadsTextField.integerValue = argon2KDF.threads;
self.Argon2IterationsTextField.integerValue = argon2KDF.iterations;
/* fill defaults for AES */
KPKAESKeyDerivation *aesKdf = [[KPKAESKeyDerivation alloc] initWithParameters:[KPKAESKeyDerivation defaultParameters]];
self.AESEncryptionRoundsTextField.integerValue = aesKdf.rounds;
}
else {
}
NSUInteger cipherIndex = [self.encryptionPopupButton.menu indexOfItemWithRepresentedObject:metaData.cipherUUID];
[self.encryptionPopupButton selectItemAtIndex:cipherIndex];
}
- (void)_setupAdvancedTab:(KPKTree *)tree {
- (void)_setupAdvancedTab:(KPKTree *)tree {
HNHUISetStateFromBool(self.enableTrashCheckButton, tree.metaData.useTrash);
self.selectTrashGoupPopUpButton.enabled = tree.metaData.useTrash;
[self.enableTrashCheckButton bind:NSValueBinding toObject:self.selectTrashGoupPopUpButton withKeyPath:NSEnabledBinding options:nil];