<divclass="line"><aname="l00002"></a><spanclass="lineno"> 2</span> <spanclass="comment"> This file is part of Pretty Curved Privacy (pcp1).</span></div>
<divclass="line"><aname="l00006"></a><spanclass="lineno"> 6</span> <spanclass="comment"> This program is free software: you can redistribute it and/or modify</span></div>
<divclass="line"><aname="l00007"></a><spanclass="lineno"> 7</span> <spanclass="comment"> it under the terms of the GNU General Public License as published by</span></div>
<divclass="line"><aname="l00008"></a><spanclass="lineno"> 8</span> <spanclass="comment"> the Free Software Foundation, either version 3 of the License, or</span></div>
<divclass="line"><aname="l00009"></a><spanclass="lineno"> 9</span> <spanclass="comment"> (at your option) any later version.</span></div>
<divclass="line"><aname="l00011"></a><spanclass="lineno"> 11</span> <spanclass="comment"> This program is distributed in the hope that it will be useful,</span></div>
<divclass="line"><aname="l00012"></a><spanclass="lineno"> 12</span> <spanclass="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
<divclass="line"><aname="l00013"></a><spanclass="lineno"> 13</span> <spanclass="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
<divclass="line"><aname="l00014"></a><spanclass="lineno"> 14</span> <spanclass="comment"> GNU General Public License for more details.</span></div>
<divclass="line"><aname="l00016"></a><spanclass="lineno"> 16</span> <spanclass="comment"> You should have received a copy of the GNU General Public License</span></div>
<divclass="line"><aname="l00017"></a><spanclass="lineno"> 17</span> <spanclass="comment"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div>
<divclass="line"><aname="l00019"></a><spanclass="lineno"> 19</span> <spanclass="comment"> You can contact me by mail: <tom AT vondein DOT org>.</span></div>
<divclass="line"><aname="l00095"></a><spanclass="lineno"><aclass="code"href="struct__vault__t.html"> 95</a></span> <spanclass="keyword">struct </span><aclass="code"href="struct__vault__t.html"title="This structure represents a vault.">_vault_t</a> {</div>
<divclass="line"><aname="l00096"></a><spanclass="lineno"><aclass="code"href="struct__vault__t.html#a0ac0cd4db869ca11128eeebf4e44ab1f"> 96</a></span> <spanclass="keywordtype">char</span> *<aclass="code"href="struct__vault__t.html#a0ac0cd4db869ca11128eeebf4e44ab1f"title="The filename of the vault (full path)">filename</a>; </div>
<divclass="line"><aname="l00097"></a><spanclass="lineno"><aclass="code"href="struct__vault__t.html#aeb36f1f7c2c1a5ee5dfa15e0047a851c"> 97</a></span>  FILE *<aclass="code"href="struct__vault__t.html#aeb36f1f7c2c1a5ee5dfa15e0047a851c"title="Filehandle if opened.">fd</a>; </div>
<divclass="line"><aname="l00098"></a><spanclass="lineno"><aclass="code"href="struct__vault__t.html#aabb4ba4d964189e84e80b843abe8b7bf"> 98</a></span>  uint8_t <aclass="code"href="struct__vault__t.html#aabb4ba4d964189e84e80b843abe8b7bf"title="Flag to tell if the file needs to be written.">unsafed</a>; </div>
<divclass="line"><aname="l00099"></a><spanclass="lineno"><aclass="code"href="struct__vault__t.html#ada18cb30c8ef3aa4976b431a99a1d170"> 99</a></span>  uint8_t <aclass="code"href="struct__vault__t.html#ada18cb30c8ef3aa4976b431a99a1d170"title="Flag to tell if the vault has been newly created.">isnew</a>; </div>
<divclass="line"><aname="l00104"></a><spanclass="lineno"><aclass="code"href="struct__vault__t.html#a39fb3dfd4fe6aaafdbfb9a3e88f4f09e"> 104</a></span>  byte <aclass="code"href="struct__vault__t.html#a39fb3dfd4fe6aaafdbfb9a3e88f4f09e"title="SHA256 checksum over the whole vault.">checksum</a>[32]; </div>
<divclass="line"><aname="l00115"></a><spanclass="lineno"><aclass="code"href="struct__vault__header__t.html#a60589e0cbf3ff9495e5c8d3b7f799e8d"> 115</a></span>  byte <aclass="code"href="struct__vault__header__t.html#a60589e0cbf3ff9495e5c8d3b7f799e8d"title="SHA256 checksum over the whole vault.">checksum</a>[32]; </div>
<divclass="line"><aname="l00119"></a><spanclass="lineno"><aclass="code"href="group__VAULT.html#gaeeeef6ec087f97f2d73ddd6863db7eba"> 119</a></span> <spanclass="keyword">typedef</span><spanclass="keyword">struct </span><aclass="code"href="struct__vault__header__t.html"title="Defines the vault header.">_vault_header_t</a><aclass="code"href="struct__vault__header__t.html"title="Defines the vault header.">vault_header_t</a>;</div>
<divclass="line"><aname="l00125"></a><spanclass="lineno"><aclass="code"href="struct__vault__item__header__t.html#a54e8da230087325ceec0f286de377b8f"> 125</a></span>  uint32_t <aclass="code"href="struct__vault__item__header__t.html#a54e8da230087325ceec0f286de377b8f"title="Size of the item.">size</a>; </div>
<divclass="line"><aname="l00126"></a><spanclass="lineno"><aclass="code"href="struct__vault__item__header__t.html#a5d3634c7c9d5050f60444326e0a9eea7"> 126</a></span>  uint32_t <aclass="code"href="struct__vault__item__header__t.html#a5d3634c7c9d5050f60444326e0a9eea7"title="Version of the item.">version</a>; </div>
<divclass="line"><aname="l00127"></a><spanclass="lineno"><aclass="code"href="struct__vault__item__header__t.html#a5169dbce0f216fe38f89a214e8217c56"> 127</a></span>  byte <aclass="code"href="struct__vault__item__header__t.html#a5169dbce0f216fe38f89a214e8217c56"title="SHA256 checksum of the item.">checksum</a>[32]; </div>
<divclass="line"><aname="l00143"></a><spanclass="lineno"> 143</span> <spanclass="comment">/* Creates a new vault file. Called internally only.</span></div>
<divclass="line"><aname="l00144"></a><spanclass="lineno"> 144</span> <spanclass="comment"> If is_tmp If set to 1, create a temporary vault file.</span></div>
<divclass="line"><aname="l00149"></a><spanclass="lineno"> 149</span> <spanclass="comment">/* Writes the initial vault header to the vault.</span></div>
<divclass="line"><aname="l00150"></a><spanclass="lineno"> 150</span> <spanclass="comment"> Called internally only. */</span></div>
<divclass="line"><aname="l00151"></a><spanclass="lineno"> 151</span> <spanclass="keywordtype">int</span> pcpvault_create(<aclass="code"href="struct__vault__t.html"title="This structure represents a vault.">vault_t</a> *vault);</div>
<divclass="line"><aname="l00171"></a><spanclass="lineno"> 171</span> <spanclass="keywordtype">int</span><aclass="code"href="group__VAULT.html#gad4cf9423cb397da3cd379127f7291faa"title="Add an item to the vault.">pcpvault_additem</a>(<aclass="code"href="struct__vault__t.html"title="This structure represents a vault.">vault_t</a> *vault, <spanclass="keywordtype">void</span> *item, <spanclass="keywordtype">size_t</span> itemsize, uint8_t <aclass="code"href="struct__vault__item__header__t.html#a300141ad03ff5f6cb79aafd9984e5e0e"title="Item type (secret key, public, key, keysig,.">type</a>);</div>
<divclass="line"><aname="l00192"></a><spanclass="lineno"> 192</span> <spanclass="keywordtype">int</span><aclass="code"href="group__VAULT.html#gaa4ff722fbe407da88fdb893a5c40f7ed"title="Add a key to the vault.">pcpvault_addkey</a>(<aclass="code"href="struct__vault__t.html"title="This structure represents a vault.">vault_t</a> *vault, <spanclass="keywordtype">void</span> *item, uint8_t <aclass="code"href="struct__vault__item__header__t.html#a300141ad03ff5f6cb79aafd9984e5e0e"title="Item type (secret key, public, key, keysig,.">type</a>);</div>
<divclass="line"><aname="l00209"></a><spanclass="lineno"> 209</span> <spanclass="keywordtype">int</span><aclass="code"href="group__VAULT.html#gaf0696f85075e0e7c8056e42e2e6a31e6"title="Close a vault file.">pcpvault_close</a>(<aclass="code"href="struct__vault__t.html"title="This structure represents a vault.">vault_t</a> *vault);</div>
<divclass="line"><aname="l00230"></a><spanclass="lineno"> 230</span> <spanclass="keywordtype">int</span><aclass="code"href="group__VAULT.html#ga303629777a5b784b71ca718c8cda8dbf"title="Reads in the vault contents.">pcpvault_fetchall</a>(<aclass="code"href="struct__vault__t.html"title="This structure represents a vault.">vault_t</a> *vault);</div>
<divclass="line"><aname="l00245"></a><spanclass="lineno"> 245</span> <spanclass="comment">/* write the new checksum to the header of the current vault */</span></div>
<divclass="line"><aname="l00246"></a><spanclass="lineno"> 246</span> <spanclass="keywordtype">void</span> pcpvault_update_checksum(<aclass="code"href="struct__vault__t.html"title="This structure represents a vault.">vault_t</a> *vault);</div>