summaryrefslogtreecommitdiffstats
path: root/docs/_r_e_a_d_m_e_8md_source.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/_r_e_a_d_m_e_8md_source.html')
-rw-r--r--docs/_r_e_a_d_m_e_8md_source.html4
1 files changed, 2 insertions, 2 deletions
diff --git a/docs/_r_e_a_d_m_e_8md_source.html b/docs/_r_e_a_d_m_e_8md_source.html
index a63423b1..e9dd9917 100644
--- a/docs/_r_e_a_d_m_e_8md_source.html
+++ b/docs/_r_e_a_d_m_e_8md_source.html
@@ -23,7 +23,7 @@
<td id="projectlogo"><img alt="Logo" src="doc-icon.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">QtPass
- &#160;<span id="projectnumber">1.3.1</span>
+ &#160;<span id="projectnumber">1.3.2</span>
</div>
<div id="projectbrief">Multi-platform GUI for pass, the standard unix password manager.</div>
</td>
@@ -65,7 +65,7 @@ $(function() {
<div class="title">README.md</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_r_e_a_d_m_e_8md.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;QtPass</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;======</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;[![latest packaged version(s)](https://repology.org/badge/latest-versions/qtpass.svg)](https://repology.org/metapackage/qtpass)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;[![Build Status](https://travis-ci.org/IJHack/QtPass.svg?branch=master)](https://travis-ci.org/IJHack/QtPass)</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;[![Build status](https://ci.appveyor.com/api/projects/status/9rjnj72rdir7u9eg/branch/master?svg=true)](https://ci.appveyor.com/project/annejan/qtpass/branch/master)</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;[![Coverity scan](https://scan.coverity.com/projects/5266/badge.svg)](https://scan.coverity.com/projects/ijhack-qtpass)</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;[![Coverage Status](https://coveralls.io/repos/github/IJHack/QtPass/badge.svg)](https://coveralls.io/github/IJHack/QtPass)</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;[![codecov](https://codecov.io/gh/IJhack/QtPass/branch/master/graph/badge.svg)](https://codecov.io/gh/IJhack/QtPass)</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;[![CodeFactor](https://www.codefactor.io/repository/github/ijhack/qtpass/badge)](https://www.codefactor.io/repository/github/ijhack/qtpass)</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;[![Packaging status](https://repology.org/badge/tiny-repos/qtpass.svg)](https://repology.org/metapackage/qtpass)</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;[![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/IJHack/QtPass.svg?logo=lgtm&amp;logoWidth=18)](https://lgtm.com/projects/g/IJHack/QtPass/context:cpp)</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;[![Total alerts](https://img.shields.io/lgtm/alerts/g/IJHack/QtPass.svg?logo=lgtm&amp;logoWidth=18)](https://lgtm.com/projects/g/IJHack/QtPass/alerts/)</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FIJHack%2FQtPass.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2FIJHack%2FQtPass?ref=badge_shield)</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;QtPass is a GUI for [pass](https://www.passwordstore.org/),</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;the standard unix password manager.</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;Features</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;--------</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;* Using `pass` or `git` and `gpg2` directly</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;* Configurable shoulder surfing protection options</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;* Cross platform: Linux, BSD, OS X and Windows</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;* Per-folder user selection for multi recipient encryption</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;* Multiple profiles</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;* Easy onboarding</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;Logo based on [Heart-padlock by AnonMoos](https://commons.wikimedia.org/wiki/File:Heart-padlock.svg).</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;Installation</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;------------</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;### From package</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;OpenSUSE &amp; Fedora</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;`yum install qtpass`</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;`dnf install qtpass`</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;Debian, Ubuntu and derivates like Mint, Kali &amp; Raspbian</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;`apt-get install qtpass`</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;Arch Linux</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;`pacman -S qtpass`</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;Gentoo</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;`emerge -atv qtpass`</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;Sabayon</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;`equo install qtpass`</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;FreeBSD</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;`pkg install qtpass`</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;macOS</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;`brew cask install qtpass`</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;Windows</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;`choco install qtpass`</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;[![Packaging status](https://repology.org/badge/vertical-allrepos/qtpass.svg)](https://repology.org/metapackage/qtpass)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;### From Source</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;**Dependencies**</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;* QtPass requires Qt 5.2 or later</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;* The Linguist package is required to compile the translations.</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;* For use of the fallback icons the SVG library is required.</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;At runtime the only real dependency is `gpg2` but to make the most of it, you&#39;ll need `git` and `pass` too.</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;Your GPG has to be set-up with a graphical pinentry when applicable, same goes for git authentication.</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;On Mac OS X this currently seems to only work best with `pinentry-mac` from homebrew, although gpgtools works too.</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;On most unix systems all you need is:</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;```</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;qmake &amp;&amp; make &amp;&amp; make install</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;```</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;Testing</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;-------</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;This is done with `make check`</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;Codecoverage can be done with `make lcov`, `make gcov`, `make coveralls` and/or `make codecov`.</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;Be sure to first run: `make distclean &amp;&amp; qmake CONFIG+=coverage qtpass.pro`</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;Security considerations</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;-----------------------</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;Using this program will not magically keep your passwords secure against</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;compromised computers even if you use it in combination with a smartcard.</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;It does protect future and changed passwords though against anyone with access to</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;your password store only but not your keys.</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;Used with a smartcard it also protects against anyone just monitoring/copying</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;all files/keystrokes on that machine and such an attacker would only gain access</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;to the passwords you actually use.</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;Once you plug in your smartcard and enter your PIN (or due to CVE-2015-3298</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;even without your PIN) all your passwords available to the machine can be</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;decrypted by it, if there is malicious software targeted specifically against</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;it installed (or at least one that knows how to use a smartcard).</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;To get better protection out of use with a smartcard even against a targeted</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;attack I can think of at least two options:</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;* The smartcard must require explicit confirmation for each decryption operation.</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; Or if it just provides a counter for decrypted data you could at least notice</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; an attack afterwards, though at quite some effort on your part.</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;* Use a different smartcard for each (group of) key.</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;* If using a YubiKey or U2F module or similar that requires a &quot;button&quot; press for</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; other authentication methods you can use one OTP/U2F enabled WebDAV account per</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; password (or groups of passwords) as a quite inconvenient workaround.</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; Unfortunately I do not know of any WebDAV service with OTP support except ownCloud</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; (so you would have to run your own server).</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;Known issues</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;------------</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;* Filtering (searching) breaks the tree/model sometimes</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;* Starting without a correctly set password-store folder</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; gives weird results in the tree view</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;Planned features</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;----------------</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;* Plugins based on field name, plugins follow same format as password files</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;* Colour coding folders (possibly disabling folders you can&#39;t decrypt)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;* Optional table view of decrypted folder contents</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;* Opening of (basic auth) urls in default browser?</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; Possibly with helper plugin for filling out forms?</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;* WebDAV (configuration) support</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;* Some other form of remote storage that allows for</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; accountability / auditing (web API to retrieve the .gpg files?)</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;Further reading</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;---------------</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;[FAQ](FAQ.md) and [CONTRIBUTING](CONTRIBUTING.md) documentation.</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;[CHANGELOG](CHANGELOG.md)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;[Website](https://qtpass.org/)</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;[Source code](https://github.com/IJHack/qtpass)</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;[Issue queue](https://github.com/IJHack/qtpass/issues)</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;[Chat](https://gitter.im/IJHack/qtpass)</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;## License</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;### GNU GPL v3.0</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;[![GNU GPL v3.0](http://www.gnu.org/graphics/gplv3-127x51.png)](http://www.gnu.org/licenses/gpl.html)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;View official GNU site &lt;http://www.gnu.org/licenses/gpl.html&gt;.</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;[![OSI](http://opensource.org/trademarks/opensource/OSI-Approved-License-100x137.png)](http://opensource.org/licenses/mit-license.php)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;[View the Open Source Initiative site.](http://opensource.org/licenses/mit-license.php)</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FIJHack%2FQtPass.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2FIJHack%2FQtPass?ref=badge_large)</div></div><!-- fragment --></div><!-- contents -->
+<a href="_r_e_a_d_m_e_8md.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;QtPass</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;======</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;[![latest packaged version(s)](https://repology.org/badge/latest-versions/qtpass.svg)](https://repology.org/metapackage/qtpass)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;[![Build Status](https://travis-ci.org/IJHack/QtPass.svg?branch=master)](https://travis-ci.org/IJHack/QtPass)</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;[![Build status](https://ci.appveyor.com/api/projects/status/9rjnj72rdir7u9eg/branch/master?svg=true)](https://ci.appveyor.com/project/annejan/qtpass/branch/master)</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;[![Coverity scan](https://scan.coverity.com/projects/5266/badge.svg)](https://scan.coverity.com/projects/ijhack-qtpass)</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;[![Coverage Status](https://coveralls.io/repos/github/IJHack/QtPass/badge.svg)](https://coveralls.io/github/IJHack/QtPass)</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;[![codecov](https://codecov.io/gh/IJhack/QtPass/branch/master/graph/badge.svg)](https://codecov.io/gh/IJhack/QtPass)</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;[![CodeFactor](https://www.codefactor.io/repository/github/ijhack/qtpass/badge)](https://www.codefactor.io/repository/github/ijhack/qtpass)</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;[![Packaging status](https://repology.org/badge/tiny-repos/qtpass.svg)](https://repology.org/metapackage/qtpass)</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;[![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/IJHack/QtPass.svg?logo=lgtm&amp;logoWidth=18)](https://lgtm.com/projects/g/IJHack/QtPass/context:cpp)</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;[![Total alerts](https://img.shields.io/lgtm/alerts/g/IJHack/QtPass.svg?logo=lgtm&amp;logoWidth=18)](https://lgtm.com/projects/g/IJHack/QtPass/alerts/)</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FIJHack%2FQtPass.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2FIJHack%2FQtPass?ref=badge_shield)</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;QtPass is a GUI for [pass](https://www.passwordstore.org/),</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;the standard unix password manager.</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;Features</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;--------</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;* Using `pass` or `git` and `gpg2` directly</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;* Configurable shoulder surfing protection options</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;* Cross platform: Linux, BSD, OS X and Windows</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;* Per-folder user selection for multi recipient encryption</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;* Multiple profiles</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;* Easy onboarding</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;Logo based on [Heart-padlock by AnonMoos](https://commons.wikimedia.org/wiki/File:Heart-padlock.svg).</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;Installation</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;------------</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;### From package</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;OpenSUSE &amp; Fedora</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;`yum install qtpass`</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;`dnf install qtpass`</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;Debian, Ubuntu and derivates like Mint, Kali &amp; Raspbian</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;`apt-get install qtpass`</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;Arch Linux</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;`pacman -S qtpass`</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;Gentoo</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;`emerge -atv qtpass`</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;Sabayon</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;`equo install qtpass`</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;FreeBSD</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;`pkg install qtpass`</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;macOS</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;`brew cask install qtpass`</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;Windows</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;`choco install qtpass`</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;[![Packaging status](https://repology.org/badge/vertical-allrepos/qtpass.svg)](https://repology.org/metapackage/qtpass)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;### From Source</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;**Dependencies**</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;* QtPass requires Qt 5.2 or later</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;* The Linguist package is required to compile the translations.</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;* For use of the fallback icons the SVG library is required.</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;At runtime the only real dependency is `gpg2` but to make the most of it, you&#39;ll need `git` and `pass` too.</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;Your GPG has to be set-up with a graphical pinentry when applicable, same goes for git authentication.</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;On Mac OS X this currently seems to only work best with `pinentry-mac` from homebrew, although gpgtools works too.</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;On most unix systems all you need is:</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;```</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;qmake &amp;&amp; make &amp;&amp; make install</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;```</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;Testing</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;-------</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;This is done with `make check`</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;Codecoverage can be done with `make lcov`, `make gcov`, `make coveralls` and/or `make codecov`.</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;Be sure to first run: `make distclean &amp;&amp; qmake CONFIG+=coverage qtpass.pro`</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;Security considerations</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;-----------------------</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;Using this program will not magically keep your passwords secure against</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;compromised computers even if you use it in combination with a smartcard.</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;It does protect future and changed passwords though against anyone with access to</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;your password store only but not your keys.</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;Used with a smartcard it also protects against anyone just monitoring/copying</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;all files/keystrokes on that machine and such an attacker would only gain access</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;to the passwords you actually use.</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;Once you plug in your smartcard and enter your PIN (or due to CVE-2015-3298</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;even without your PIN) all your passwords available to the machine can be</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;decrypted by it, if there is malicious software targeted specifically against</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;it installed (or at least one that knows how to use a smartcard).</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;To get better protection out of use with a smartcard even against a targeted</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;attack I can think of at least two options:</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;* The smartcard must require explicit confirmation for each decryption operation.</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; Or if it just provides a counter for decrypted data you could at least notice</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; an attack afterwards, though at quite some effort on your part.</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;* Use a different smartcard for each (group of) key.</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;* If using a YubiKey or U2F module or similar that requires a &quot;button&quot; press for</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; other authentication methods you can use one OTP/U2F enabled WebDAV account per</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; password (or groups of passwords) as a quite inconvenient workaround.</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; Unfortunately I do not know of any WebDAV service with OTP support except ownCloud</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; (so you would have to run your own server).</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;Known issues</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;------------</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;* Filtering (searching) breaks the tree/model sometimes</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;* Starting without a correctly set password-store folder</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; gives weird results in the tree view</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;Planned features</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;----------------</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;* Plugins based on field name, plugins follow same format as password files</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;* Colour coding folders (possibly disabling folders you can&#39;t decrypt)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;* Optional table view of decrypted folder contents</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;* Opening of (basic auth) urls in default browser?</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; Possibly with helper plugin for filling out forms?</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;* WebDAV (configuration) support</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;* Some other form of remote storage that allows for</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; accountability / auditing (web API to retrieve the .gpg files?)</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;Further reading</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;---------------</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;[FAQ](FAQ.md) and [CONTRIBUTING](CONTRIBUTING.md) documentation.</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;[CHANGELOG](CHANGELOG.md)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;[Website](https://qtpass.org/)</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;[Source code](https://github.com/IJHack/qtpass)</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;[Issue queue](https://github.com/IJHack/qtpass/issues)</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;[Chat](https://gitter.im/IJHack/qtpass)</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;## License</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;### GNU GPL v3.0</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;[![GNU GPL v3.0](http://www.gnu.org/graphics/gplv3-127x51.png)](http://www.gnu.org/licenses/gpl.html)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;View official GNU site &lt;http://www.gnu.org/licenses/gpl.html&gt;.</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;[![OSI](http://opensource.org/trademarks/opensource/OSI-Approved-License-100x137.png)](https://opensource.org/licenses/GPL-3.0)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;[View the Open Source Initiative site.](https://opensource.org/licenses/GPL-3.0)</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FIJHack%2FQtPass.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2FIJHack%2FQtPass?ref=badge_large)</div></div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">