rm html stuff from repo, changes too often. enhanced pcpstream
4
TODO
@@ -17,6 +17,10 @@ vault checksum: add keysigs as well
|
||||
|
||||
enable formats for secret key exports as well
|
||||
|
||||
PCPSTREAM changes:
|
||||
- enable determine armor mode of input, parse headers, comments
|
||||
and newlines away, decode and return the binary result with ps_read()
|
||||
as before.
|
||||
|
||||
|
||||
Python binding, e.g.:
|
||||
|
||||
@@ -8,6 +8,7 @@ extern "C" {
|
||||
#include "pcp/config.h"
|
||||
#include "pcp/base85.h"
|
||||
#include "pcp/buffer.h"
|
||||
#include "pcp/config.h"
|
||||
#include "pcp/crypto.h"
|
||||
#include "pcp/defines.h"
|
||||
#include "pcp/digital_crc32.h"
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "util.h"
|
||||
#include "defines.h"
|
||||
#include "buffer.h"
|
||||
#include "z85.h"
|
||||
|
||||
/**
|
||||
* \defgroup Pcpstream PCPSTREAMS
|
||||
@@ -58,9 +59,15 @@
|
||||
struct _pcp_stream_t {
|
||||
FILE *fd; /**< The backend FILE stream */
|
||||
Buffer *b; /**< The backend Buffer object */
|
||||
Buffer *z; /**< Buffer Cache for Z85 en/de-coding */
|
||||
Buffer *t; /**< Temporary Buffer */
|
||||
uint8_t is_buffer; /**< Set to 1 if the backend is a Buffer */
|
||||
uint8_t eof; /**< Set to 1 if EOF reached */
|
||||
uint8_t err; /**< Set to 1 if an error occured */
|
||||
uint8_t armor; /**< Set to 1 if Z85 en/de-coding is requested */
|
||||
uint8_t determine; /**< Set to 1 to automatically determine armor mode */
|
||||
uint8_t firstread; /**< Internal flag, will be set after first read() */
|
||||
size_t linewr; /**< Used for Z85 writing, remember how many chars we lastly wrote on the current line */
|
||||
};
|
||||
|
||||
/** The name used everywhere */
|
||||
|
||||
@@ -23,11 +23,14 @@
|
||||
|
||||
Pcpstream *ps_init(void) {
|
||||
Pcpstream *stream = ucmalloc(sizeof(Pcpstream));
|
||||
stream->z = buffer_new(32, "Z85stream");
|
||||
stream->b = NULL;
|
||||
stream->fd = NULL;
|
||||
stream->is_buffer = 0;
|
||||
stream->eof = 0;
|
||||
stream->err = 0;
|
||||
stream->armor = 0;
|
||||
stream->determine = 0;
|
||||
return stream;
|
||||
}
|
||||
|
||||
@@ -51,15 +54,47 @@ Pcpstream *ps_new_outbuffer() {
|
||||
return stream;
|
||||
}
|
||||
|
||||
void ps_armor(Pcpstream *stream) {
|
||||
stream->armor = 1;
|
||||
}
|
||||
|
||||
void ps_determine(Pcpstream *stream) {
|
||||
stream->determine = 1;
|
||||
}
|
||||
|
||||
int ps_end(Pcpstream *stream) {
|
||||
return stream->eof;
|
||||
}
|
||||
|
||||
int ps_err(Pcpstream *stream) {
|
||||
return stream->err;
|
||||
}
|
||||
|
||||
size_t ps_read(Pcpstream *stream, void *buf, size_t readbytes) {
|
||||
size_t gotbytes = 0;
|
||||
|
||||
if(stream->is_buffer) {
|
||||
/* check if there's enough space in our buffer */
|
||||
/* a buffer stream */
|
||||
if(buffer_left(stream->b) < readbytes)
|
||||
readbytes = buffer_left(stream->b);
|
||||
|
||||
gotbytes = buffer_get_chunk(stream->b, buf, readbytes);
|
||||
if(stream->armor == 1) {
|
||||
size_t i = 0;
|
||||
uint8_t c;
|
||||
while (i < readbytes) {
|
||||
c = buffer_get8(stream->b);
|
||||
if(c != '\r' && c != '\n') {
|
||||
buffer_add8(stream->z, c);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
memcpy(buf, buffer_get(stream->z), buffer_size(stream->z));
|
||||
gotbytes = buffer_size(stream->z);
|
||||
buffer_clear(stream->z);
|
||||
}
|
||||
else
|
||||
gotbytes = buffer_get_chunk(stream->b, buf, readbytes);
|
||||
|
||||
if(gotbytes == 0) {
|
||||
/* this should not happen with buffers */
|
||||
stream->eof = 1;
|
||||
@@ -67,7 +102,27 @@ size_t ps_read(Pcpstream *stream, void *buf, size_t readbytes) {
|
||||
}
|
||||
}
|
||||
else {
|
||||
gotbytes = fread(buf, 1, readbytes, stream->fd);
|
||||
/* a FILE stream */
|
||||
if(stream->armor == 1) {
|
||||
size_t i = 0;
|
||||
uint8_t c;
|
||||
while (i < readbytes) {
|
||||
gotbytes = fread(&c, 1, 1, stream->fd);
|
||||
if(gotbytes == 0)
|
||||
break;
|
||||
if(c != '\r' && c != '\n') {
|
||||
buffer_add8(stream->z, c);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
memcpy(buf, buffer_get(stream->z), buffer_size(stream->z));
|
||||
gotbytes = buffer_size(stream->z);
|
||||
_dump("buf", buf, gotbytes);
|
||||
buffer_clear(stream->z);
|
||||
}
|
||||
else
|
||||
gotbytes = fread(buf, 1, readbytes, stream->fd);
|
||||
|
||||
if(gotbytes == 0) {
|
||||
if(feof(stream->fd) != 0)
|
||||
stream->eof = 1;
|
||||
@@ -76,22 +131,82 @@ size_t ps_read(Pcpstream *stream, void *buf, size_t readbytes) {
|
||||
}
|
||||
}
|
||||
|
||||
if(gotbytes > 0 && stream->determine && stream->firstread == 0) {
|
||||
/* check if we need to decode input */
|
||||
fprintf(stderr, "determine\n");
|
||||
if(_buffer_is_binary(buf, gotbytes) == 0) {
|
||||
fprintf(stderr, "is armored\n");
|
||||
stream->armor = 1;
|
||||
}
|
||||
}
|
||||
|
||||
stream->firstread = 1;
|
||||
|
||||
if(gotbytes > 0 && stream->armor == 1) {
|
||||
/* z85 decode buf */
|
||||
size_t binlen;
|
||||
unsigned char *bin = pcp_z85_decode(buf, &binlen);
|
||||
if(bin == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
memcpy(buf, bin, binlen);
|
||||
|
||||
_dump("decoded", buf, binlen);
|
||||
|
||||
free(bin);
|
||||
return binlen;
|
||||
}
|
||||
|
||||
return gotbytes;
|
||||
}
|
||||
|
||||
size_t ps_write(Pcpstream *stream, void *buf, size_t writebytes) {
|
||||
size_t donebytes = 0;
|
||||
|
||||
if(stream->is_buffer) {
|
||||
buffer_add(stream->b, buf, writebytes);
|
||||
donebytes = writebytes;
|
||||
if(stream->armor == 1) {
|
||||
/* z85 encode buf */
|
||||
size_t padlen, zlen, i, pos;
|
||||
unsigned char *padded = pcp_padfour(buf, writebytes, &padlen);
|
||||
|
||||
zlen = (padlen * 5 / 4);
|
||||
char *z85 = ucmalloc(zlen);
|
||||
|
||||
zmq_z85_encode(z85, padded, padlen);
|
||||
|
||||
_dump(" orig", buf, writebytes);
|
||||
_dump(" z85", z85, zlen);
|
||||
|
||||
pos = stream->linewr;
|
||||
for(i=0; i<zlen; ++i) {
|
||||
if(pos >= 71) {
|
||||
buffer_add8(stream->z, '\r');
|
||||
buffer_add8(stream->z, '\n');
|
||||
pos = 1;
|
||||
}
|
||||
else
|
||||
pos++;
|
||||
buffer_add8(stream->z, z85[i]);
|
||||
}
|
||||
stream->linewr = pos;
|
||||
_dump("n added", buffer_get(stream->z), buffer_size(stream->z));
|
||||
}
|
||||
else {
|
||||
donebytes = fwrite(buf, 1, writebytes, stream->fd);
|
||||
if(ferror(stream->fd) != 0 || donebytes < writebytes)
|
||||
buffer_add(stream->z, buf, writebytes);
|
||||
}
|
||||
|
||||
if(stream->is_buffer) {
|
||||
buffer_add(stream->b, buffer_get(stream->z), buffer_size(stream->z));
|
||||
donebytes = buffer_size(stream->z);
|
||||
}
|
||||
else {
|
||||
donebytes = fwrite(buffer_get(stream->z), 1, buffer_size(stream->z), stream->fd);
|
||||
if(ferror(stream->fd) != 0 || donebytes < buffer_size(stream->z))
|
||||
stream->err = 1;
|
||||
}
|
||||
|
||||
writebytes = buffer_size(stream->z);
|
||||
buffer_clear(stream->z);
|
||||
return writebytes;
|
||||
}
|
||||
|
||||
@@ -125,14 +240,6 @@ void ps_close(Pcpstream *stream) {
|
||||
}
|
||||
}
|
||||
|
||||
int ps_end(Pcpstream *stream) {
|
||||
return stream->eof;
|
||||
}
|
||||
|
||||
int ps_err(Pcpstream *stream) {
|
||||
return stream->err;
|
||||
}
|
||||
|
||||
size_t ps_tell(Pcpstream *stream) {
|
||||
if(stream->is_buffer) {
|
||||
if(stream->b->end > stream->b->offset)
|
||||
@@ -148,3 +255,4 @@ size_t ps_tell(Pcpstream *stream) {
|
||||
Buffer *ps_buffer(Pcpstream *stream) {
|
||||
return stream->b;
|
||||
}
|
||||
|
||||
|
||||
@@ -2,5 +2,15 @@ API Documentation for libpcp
|
||||
============================
|
||||
|
||||
The API docs are generated using doxygen from the
|
||||
header files. You can read them locally after downloading
|
||||
or "git clone' or read them [online](http://www.daemon.de/libpcp/).
|
||||
header files.
|
||||
|
||||
You can read them [online](http://www.daemon.de/libpcp/).
|
||||
|
||||
You can also generate the docs yourself:
|
||||
|
||||
```
|
||||
git clone https://github.com/TLINDEN/pcp.git
|
||||
doxygen man/.doxygen
|
||||
```
|
||||
|
||||
You can access them afterwards from man/html/index.html.
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: Class List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li class="current"><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Class List</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
|
||||
<table class="directory">
|
||||
<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct__pcp__buffer.html" target="_self">_pcp_buffer</a></td><td class="desc">A flexible buffer object wich automatically resizes, if neccessary</td></tr>
|
||||
<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct__pcp__key__t.html" target="_self">_pcp_key_t</a></td><td class="desc">PCP private key structure</td></tr>
|
||||
<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct__pcp__pubkey__t.html" target="_self">_pcp_pubkey_t</a></td><td class="desc">PCP public key structure</td></tr>
|
||||
<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct__pcp__rec__t.html" target="_self">_pcp_rec_t</a></td><td class="desc">Encrypted recipient list</td></tr>
|
||||
<tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct__pcp__stream__t.html" target="_self">_pcp_stream_t</a></td><td class="desc">An I/O wrapper object backed by a file or a buffer</td></tr>
|
||||
<tr id="row_5_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct__vault__header__t.html" target="_self">_vault_header_t</a></td><td class="desc">Defines the vault header</td></tr>
|
||||
<tr id="row_6_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct__vault__item__header__t.html" target="_self">_vault_item_header_t</a></td><td class="desc">An item header</td></tr>
|
||||
<tr id="row_7_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct__vault__t.html" target="_self">_vault_t</a></td><td class="desc">This structure represents a vault</td></tr>
|
||||
</table>
|
||||
</div><!-- directory -->
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
|
Before Width: | Height: | Size: 676 B |
|
Before Width: | Height: | Size: 147 B |
@@ -1,191 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: buffer.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">buffer.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> This file is part of Pretty Curved Privacy (pcp1).</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> Copyright (C) 2013-2014 T.v.Dein.</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> This program is free software: you can redistribute it and/or modify</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> it under the terms of the GNU General Public License as published by</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> the Free Software Foundation, either version 3 of the License, or</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> (at your option) any later version.</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> This program is distributed in the hope that it will be useful,</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> GNU General Public License for more details.</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> You should have received a copy of the GNU General Public License</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> You can contact me by mail: <tom AT vondein DOT org>.</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">*/</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifndef HAVE_PCP_BUFFER_H</span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"></span><span class="preprocessor">#define HAVE_PCP_BUFFER_H</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <stdio.h></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <stdarg.h></span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "mem.h"</span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "util.h"</span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "defines.h"</span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"><a class="code" href="struct__pcp__buffer.html"> 50</a></span> <span class="keyword">struct </span><a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">_pcp_buffer</a> {</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"><a class="code" href="struct__pcp__buffer.html#aa45619703bed4597d1ac7a45c40b92e3"> 51</a></span>  <span class="keywordtype">char</span> *<a class="code" href="struct__pcp__buffer.html#aa45619703bed4597d1ac7a45c40b92e3" title="just for convenience in error messages and the like, so we know which buffer cause trouble...">name</a>; </div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="struct__pcp__buffer.html#a48fee003c319d92f8d9a5e4c2c735e6f"> 52</a></span>  uint8_t <a class="code" href="struct__pcp__buffer.html#a48fee003c319d92f8d9a5e4c2c735e6f" title="marks the buffer as allocated">allocated</a>; </div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"><a class="code" href="struct__pcp__buffer.html#a7fdd9e4a9ed7abfc5eec36cb1eca281a"> 53</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="struct__pcp__buffer.html#a7fdd9e4a9ed7abfc5eec36cb1eca281a" title="the blocksize to use when resizing, also used for initial malloc()">blocksize</a>; </div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"><a class="code" href="struct__pcp__buffer.html#a8bf9eb28e7fa878847212133ece0c482"> 54</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="struct__pcp__buffer.html#a8bf9eb28e7fa878847212133ece0c482" title="stores the current allocated size of the object">size</a>; </div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"><a class="code" href="struct__pcp__buffer.html#a0ea19798e2cd04c152980bd7caac5d10"> 55</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="struct__pcp__buffer.html#a0ea19798e2cd04c152980bd7caac5d10" title="current read position">offset</a>; </div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="struct__pcp__buffer.html#acad944641be2d2e4c4109f83b6a6609f"> 56</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="struct__pcp__buffer.html#acad944641be2d2e4c4109f83b6a6609f" title="current write position, data end.">end</a>; </div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"><a class="code" href="struct__pcp__buffer.html#aa1e4c60e982f39498ce66af85325bab6"> 57</a></span>  uint8_t <a class="code" href="struct__pcp__buffer.html#aa1e4c60e982f39498ce66af85325bab6" title="treat as char array/string">isstring</a>; </div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"><a class="code" href="struct__pcp__buffer.html#a8d80e52785446bcc9e2fd4456c97daf5"> 58</a></span>  <span class="keywordtype">void</span> *<a class="code" href="struct__pcp__buffer.html#a8d80e52785446bcc9e2fd4456c97daf5" title="the actual storage buffer">buf</a>; </div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> };</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="group__Buffer.html#ga2460ea15a51a37433b5f2e1503667e8f"> 62</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">_pcp_buffer</a> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a>;</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *<a class="code" href="group__Buffer.html#ga55e468b36750f28308b7fa5dfea5b564" title="Create a new buffer.">buffer_new</a>(<span class="keywordtype">size_t</span> <a class="code" href="struct__pcp__buffer.html#a7fdd9e4a9ed7abfc5eec36cb1eca281a" title="the blocksize to use when resizing, also used for initial malloc()">blocksize</a>, <span class="keywordtype">char</span> *<a class="code" href="struct__pcp__buffer.html#aa45619703bed4597d1ac7a45c40b92e3" title="just for convenience in error messages and the like, so we know which buffer cause trouble...">name</a>);</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *<a class="code" href="group__Buffer.html#ga770f9c4e3caf1bcf315666a56312246f" title="Create a new string buffer.">buffer_new_str</a>(<span class="keywordtype">char</span> *<a class="code" href="struct__pcp__buffer.html#aa45619703bed4597d1ac7a45c40b92e3" title="just for convenience in error messages and the like, so we know which buffer cause trouble...">name</a>);</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
|
||||
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *<a class="code" href="group__Buffer.html#ga924b013cdf1e6f7b38ba9d10b3b7112e" title="Create a new buffer from existing data.">buffer_new_buf</a>(<span class="keywordtype">char</span> *<a class="code" href="struct__pcp__buffer.html#aa45619703bed4597d1ac7a45c40b92e3" title="just for convenience in error messages and the like, so we know which buffer cause trouble...">name</a>, <span class="keywordtype">void</span> *data, <span class="keywordtype">size_t</span> datasize);</div>
|
||||
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
|
||||
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="comment">/* initialize buffer vars */</span></div>
|
||||
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="keywordtype">void</span> buffer_init(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b, <span class="keywordtype">size_t</span> <a class="code" href="struct__pcp__buffer.html#a7fdd9e4a9ed7abfc5eec36cb1eca281a" title="the blocksize to use when resizing, also used for initial malloc()">blocksize</a>, <span class="keywordtype">char</span> *<a class="code" href="struct__pcp__buffer.html#aa45619703bed4597d1ac7a45c40b92e3" title="just for convenience in error messages and the like, so we know which buffer cause trouble...">name</a>);</div>
|
||||
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keywordtype">void</span> <a class="code" href="group__Buffer.html#gaa1c00049898e0ea7d6570748bf9a0e9e" title="Clears and frees the Buffer.">buffer_free</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="keywordtype">void</span> <a class="code" href="group__Buffer.html#ga96b992409df040ca36ac65c83c748e71" title="Clears the Buffer.">buffer_clear</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
|
||||
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keywordtype">void</span> <a class="code" href="group__Buffer.html#gaf8731a858abb423ad9cbecc8666b79dd" title="Put read offset back to start.">buffer_rewind</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div>
|
||||
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="keywordtype">void</span> <a class="code" href="group__Buffer.html#ga17edc4ffe7ea459a42ffdd6540d5f213" title="Add data to the buffer.">buffer_add</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b, <span class="keyword">const</span> <span class="keywordtype">void</span> *data, <span class="keywordtype">size_t</span> len);</div>
|
||||
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div>
|
||||
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="keywordtype">void</span> <a class="code" href="group__Buffer.html#gab3b5de7a9eb3cca96a9df0b8f90766eb" title="Add data to the buffer.">buffer_add_buf</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *dst, <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *src);</div>
|
||||
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div>
|
||||
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="keywordtype">void</span> <a class="code" href="group__Buffer.html#ga5b99c0ae55b2e279339c745b6fd7bb21" title="Add a formated string to the buffer.">buffer_add_str</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b, <span class="keyword">const</span> <span class="keywordtype">char</span> * fmt, ...);</div>
|
||||
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div>
|
||||
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="keywordtype">void</span> <a class="code" href="group__Buffer.html#ga3a57658aba6c18d93219334b369e8663" title="Add data as hex string to the buffer.">buffer_add_hex</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b, <span class="keywordtype">void</span> *data, <span class="keywordtype">size_t</span> len);</div>
|
||||
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div>
|
||||
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="comment">/* resize the buffer if necessary, used internally only */</span></div>
|
||||
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="keywordtype">void</span> buffer_resize(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b, <span class="keywordtype">size_t</span> len);</div>
|
||||
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div>
|
||||
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="keywordtype">int</span> <a class="code" href="group__Buffer.html#ga914506665c6fac92ccb17f92cefd0914" title="Tell if there are no more bytes to read.">buffer_done</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div>
|
||||
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="keywordtype">size_t</span> <a class="code" href="group__Buffer.html#gaddf2e52378c6cd765b940617cdef2bd2" title="Read some chunk of data from the Buffer.">buffer_get_chunk</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b, <span class="keywordtype">void</span> *<a class="code" href="struct__pcp__buffer.html#a8d80e52785446bcc9e2fd4456c97daf5" title="the actual storage buffer">buf</a>, <span class="keywordtype">size_t</span> len);</div>
|
||||
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div>
|
||||
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="group__Buffer.html#ga4411acab20dfabc5834fe11322bee661" title="Read the whole Buffer content.">buffer_get</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div>
|
||||
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="keywordtype">char</span> *<a class="code" href="group__Buffer.html#ga8c89e4ab5d03dff079b7b861a1e04a7f" title="Read the whole Buffer content as string.">buffer_get_str</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div>
|
||||
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="group__Buffer.html#gaeafab0893e204b624eb5181954cbc9ca" title="Read the remaining data after current read offset.">buffer_get_remainder</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div>
|
||||
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="keywordtype">size_t</span> <a class="code" href="group__Buffer.html#gab91a95b51ecfa067bdcca086f7afe4e4" title="Read some data inside the Buffer.">buffer_extract</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b, <span class="keywordtype">void</span> *<a class="code" href="struct__pcp__buffer.html#a8d80e52785446bcc9e2fd4456c97daf5" title="the actual storage buffer">buf</a>, <span class="keywordtype">size_t</span> <a class="code" href="struct__pcp__buffer.html#a0ea19798e2cd04c152980bd7caac5d10" title="current read position">offset</a>, <span class="keywordtype">size_t</span> len);</div>
|
||||
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div>
|
||||
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="keywordtype">void</span> <a class="code" href="group__Buffer.html#ga0e0f433cbd077d3048ebdda35aa9ccb6" title="Dump the Buffer contents to stderr in hex form.">buffer_dump</a>(<span class="keyword">const</span> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> </div>
|
||||
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="keywordtype">void</span> <a class="code" href="group__Buffer.html#gad4b243dbcad9cb27abad40c8dcab7b22" title="Print Buffer counters to stderr.">buffer_info</a>(<span class="keyword">const</span> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> </div>
|
||||
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="keywordtype">size_t</span> <a class="code" href="group__Buffer.html#ga714b0a831d0f31a33e66e8ef76a26e46" title="Tell how much data there is in the buffer available.">buffer_size</a>(<span class="keyword">const</span> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> </div>
|
||||
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="keywordtype">size_t</span> <a class="code" href="group__Buffer.html#gaedba431c6b8e302e0d94cd9fafc3d292" title="Tell how much data is left to read in the Buffer.">buffer_left</a>(<span class="keyword">const</span> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div>
|
||||
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> uint8_t <a class="code" href="group__Buffer.html#gae6a7aec563f6d66a94abc1fd3e10bf1e" title="Read 1 byte (8 bit) number from a Buffer.">buffer_get8</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> </div>
|
||||
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> uint16_t <a class="code" href="group__Buffer.html#ga5b9bd1a6b474438db8cf4901ed750b92" title="Read 2 bytes (16 bit) number from a Buffer.">buffer_get16</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div>
|
||||
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> uint32_t <a class="code" href="group__Buffer.html#ga42354f61519e2c7d6ae81a695f36d580" title="Read 4 byte (32 bit) number from a Buffer.">buffer_get32</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> </div>
|
||||
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> uint64_t <a class="code" href="group__Buffer.html#gaf4da4b1c370490997c9d7103cfd20a83" title="Read 8 byte (64 bit) from a Buffer.">buffer_get64</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> </div>
|
||||
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> uint16_t <a class="code" href="group__Buffer.html#ga1d71a1ae861f7d9763f8f59ca317ad49" title="Read 2 bytes (16 bit) number from a Buffer, converted to host endian.">buffer_get16na</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> </div>
|
||||
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> uint32_t <a class="code" href="group__Buffer.html#ga46f10bed24ace6987844d4b12b39362f" title="Read 4 byte (32 bit) number from a Buffer, converted to host endian.">buffer_get32na</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> </div>
|
||||
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> uint64_t <a class="code" href="group__Buffer.html#ga3c32fbab871258600bbdc848358c28cb" title="Read 8 byte (64 bit) from a Buffer, converted to host endian.">buffer_get64na</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> </div>
|
||||
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> uint8_t <a class="code" href="group__Buffer.html#ga29dc7e7f34028600a92f8b85c8f94c38" title="Read the last 1 byte (8 bit) number from a Buffer.">buffer_last8</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> </div>
|
||||
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> uint16_t <a class="code" href="group__Buffer.html#ga32959cf4cfad7c456e46fa93175508e4" title="Read the last 2 byte (16 bit) number from a Buffer.">buffer_last16</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> </div>
|
||||
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> uint32_t <a class="code" href="group__Buffer.html#gafe524705c638959590e08ed3f63da37e" title="Read the last 4 byte (32 bit) number from a Buffer.">buffer_last32</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> </div>
|
||||
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> uint64_t <a class="code" href="group__Buffer.html#ga48e50f95c09c029c265c37f2af7755f3" title="Read the last 8 byte (64 bit) number from a Buffer.">buffer_last64</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b);</div>
|
||||
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> </div>
|
||||
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <span class="keywordtype">size_t</span> <a class="code" href="group__Buffer.html#ga2330b241d4fd267d193b05b508035935" title="Read data from a file directly into a Buffer.">buffer_fd_read</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b, FILE *in, <span class="keywordtype">size_t</span> len);</div>
|
||||
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> </div>
|
||||
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="keywordtype">void</span> <a class="code" href="group__Buffer.html#ga9125df8f37c49ae4443364acf711ae36" title="Write a 1 byte (8 bit) number in binary form into the buffer.">buffer_add8</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b, uint8_t v);</div>
|
||||
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> </div>
|
||||
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> <span class="keywordtype">void</span> <a class="code" href="group__Buffer.html#ga5f1e47affe629232ebdabb1070f9c8c6" title="Write a 2 byte (16 bit) number in binary form into the buffer.">buffer_add16</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b, uint16_t v);</div>
|
||||
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> </div>
|
||||
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="keywordtype">void</span> <a class="code" href="group__Buffer.html#ga2f36174e848271c8b0c525ea36d884fa" title="Write a 4 byte (32 bit) number in binary form into the buffer.">buffer_add32</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b, uint32_t v);</div>
|
||||
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> </div>
|
||||
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> <span class="keywordtype">void</span> <a class="code" href="group__Buffer.html#ga4d37d8261c678d747472e47b30c6299f" title="Write a 8 byte (64 bit) number in binary form into the buffer.">buffer_add64</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b, uint64_t v);</div>
|
||||
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> </div>
|
||||
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="keywordtype">void</span> <a class="code" href="group__Buffer.html#gab2141b987b8eb383da3f336f285384c5" title="Write a 2 byte (16 bit) number in binary form into the buffer, converted to big endian.">buffer_add16be</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b, uint16_t v);</div>
|
||||
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> </div>
|
||||
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="keywordtype">void</span> <a class="code" href="group__Buffer.html#ga601c4d9cd62c52639f0536524830dfa5" title="Write a 4 byte (32 bit) number in binary form into the buffer, converted to big endian.">buffer_add32be</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b, uint32_t v);</div>
|
||||
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> </div>
|
||||
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> <span class="keywordtype">void</span> <a class="code" href="group__Buffer.html#ga6bbc5298e3c0a31eda31d48bfd63943a" title="Write a 8 byte (64 bit) number in binary form into the buffer, converted to big endian.">buffer_add64be</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *b, uint64_t v);</div>
|
||||
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> </div>
|
||||
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> </div>
|
||||
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> <span class="preprocessor">#endif // HAVE_PCP_BUFFER_H</span></div>
|
||||
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,66 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: Class Index</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Class Index</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="qindex"><a class="qindex" href="#letter__">_</a></div>
|
||||
<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr><td rowspan="2" valign="bottom"><a name="letter__"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  _  </div></td></tr></table>
|
||||
</td><td valign="top"><a class="el" href="struct__pcp__key__t.html">_pcp_key_t</a>   </td><td valign="top"><a class="el" href="struct__pcp__rec__t.html">_pcp_rec_t</a>   </td><td valign="top"><a class="el" href="struct__vault__header__t.html">_vault_header_t</a>   </td><td valign="top"><a class="el" href="struct__vault__t.html">_vault_t</a>   </td></tr>
|
||||
<tr><td valign="top"><a class="el" href="struct__pcp__pubkey__t.html">_pcp_pubkey_t</a>   </td><td valign="top"><a class="el" href="struct__pcp__stream__t.html">_pcp_stream_t</a>   </td><td valign="top"><a class="el" href="struct__vault__item__header__t.html">_vault_item_header_t</a>   </td><td></td></tr>
|
||||
<tr><td valign="top"><a class="el" href="struct__pcp__buffer.html">_pcp_buffer</a>   </td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
</table>
|
||||
<div class="qindex"><a class="qindex" href="#letter__">_</a></div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
|
Before Width: | Height: | Size: 132 B |
@@ -1,133 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: crypto.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">crypto.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> This file is part of Pretty Curved Privacy (pcp1).</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> Copyright (C) 2013 T.Linden.</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> This program is free software: you can redistribute it and/or modify</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> it under the terms of the GNU General Public License as published by</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> the Free Software Foundation, either version 3 of the License, or</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> (at your option) any later version.</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> This program is distributed in the hope that it will be useful,</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> GNU General Public License for more details.</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> You should have received a copy of the GNU General Public License</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> You can contact me by mail: <tlinden AT cpan DOT org>.</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">*/</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#ifndef _HAVE_PCP_CRYPTO_H</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"></span><span class="preprocessor">#define _HAVE_PCP_CRYPTO_H</span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <sodium.h></span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <string.h></span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <stdio.h></span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <sodium.h></span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <stdlib.h></span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "defines.h"</span></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "mem.h"</span></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "key.h"</span></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "keyhash.h"</span></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "ed.h"</span></div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "pcpstream.h"</span></div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keywordtype">size_t</span> pcp_sodium_box(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **cipher,</div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *cleartext,</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordtype">size_t</span> clearsize,</div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *nonce,</div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *secret,</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pub);</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keywordtype">int</span> pcp_sodium_verify_box(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **cleartext, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* message,</div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordtype">size_t</span> messagesize, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *nonce,</div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *secret, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pub);</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="group__CRYPTO.html#ga65c6dc4a24eb0844f9a82e5a02306c14" title="Asymmetrically encrypt a message.">pcp_box_encrypt</a>(<a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *secret, <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *pub,</div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *message, <span class="keywordtype">size_t</span> messagesize,</div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordtype">size_t</span> *csize);</div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="group__CRYPTO.html#ga73788bf0c6828922f98e57f1568dd845" title="Asymmetrically decrypt a message.">pcp_box_decrypt</a>(<a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *secret, <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *pub,</div>
|
||||
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *cipher, <span class="keywordtype">size_t</span> ciphersize,</div>
|
||||
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordtype">size_t</span> *dsize);</div>
|
||||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
|
||||
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="keywordtype">size_t</span> <a class="code" href="group__CRYPTO.html#gadbdb839246cac65ff20ef63902041597" title="Asymmetrically encrypt a file or a buffer stream.">pcp_encrypt_stream</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *in, <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a>* out, <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *s, <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *p, <span class="keywordtype">int</span> signcrypt);</div>
|
||||
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div>
|
||||
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="keywordtype">size_t</span> <a class="code" href="group__CRYPTO.html#ga949053e8f2a9ddfa2421d578951f7cf5" title="Symmetrically encrypt a file or a buffer stream.">pcp_encrypt_stream_sym</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *in, <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a>* out, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *symkey, <span class="keywordtype">int</span> havehead, <a class="code" href="struct__pcp__rec__t.html" title="Encrypted recipient list.">pcp_rec_t</a> *recsign);</div>
|
||||
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div>
|
||||
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div>
|
||||
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="keywordtype">size_t</span> <a class="code" href="group__CRYPTO.html#gaeb1196ed4a3edc911e77d1d15612c539" title="Asymmetrically decrypt a file or a buffer stream.">pcp_decrypt_stream</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *in, <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a>* out, <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *s, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *symkey, <span class="keywordtype">int</span> verify);</div>
|
||||
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div>
|
||||
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div>
|
||||
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="keywordtype">size_t</span> <a class="code" href="group__CRYPTO.html#ga98322a73045d7d3e069e1afeb7fe2918" title="Symmetrically decrypt a file or a buffer stream.">pcp_decrypt_stream_sym</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *in, <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a>* out, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *symkey, <a class="code" href="struct__pcp__rec__t.html" title="Encrypted recipient list.">pcp_rec_t</a> *recverify);</div>
|
||||
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div>
|
||||
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <a class="code" href="struct__pcp__rec__t.html" title="Encrypted recipient list.">pcp_rec_t</a> *pcp_rec_new(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *cipher, <span class="keywordtype">size_t</span> clen, <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *secret, <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *pub);</div>
|
||||
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="keywordtype">void</span> pcp_rec_free(<a class="code" href="struct__pcp__rec__t.html" title="Encrypted recipient list.">pcp_rec_t</a> *r);</div>
|
||||
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div>
|
||||
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="preprocessor">#endif </span><span class="comment">/* _HAVE_PCP_CRYPTO_H */</span><span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,175 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: defines.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">defines.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> This file is part of Pretty Curved Privacy (pcp1).</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> Copyright (C) 2013 T.Linden.</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> This program is free software: you can redistribute it and/or modify</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> it under the terms of the GNU General Public License as published by</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> the Free Software Foundation, either version 3 of the License, or</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> (at your option) any later version.</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> This program is distributed in the hope that it will be useful,</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> GNU General Public License for more details.</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> You should have received a copy of the GNU General Public License</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> You can contact me by mail: <tlinden AT cpan DOT org>.</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">*/</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#ifndef _DEFINES_H</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"></span><span class="preprocessor">#define _DEFINES_H</span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#include "config.h"</span></div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> byte; <span class="comment">/* Single unsigned byte = 8 bits */</span></div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> dbyte; <span class="comment">/* Double byte = 16 bits */</span></div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> qbyte; <span class="comment">/* Quad byte = 32 bits */</span></div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">/* key stuff, deprecated. */</span></div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#define PCP_KEY_HEADER "----- BEGIN PCP SECRET KEY -----"</span></div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"></span><span class="preprocessor">#define PCP_KEY_FOOTER "------ END PCP SECRET KEY ------"</span></div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#define PCP_PUBKEY_HEADER "----- BEGIN PCP PUBLIC KEY -----"</span></div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"></span><span class="preprocessor">#define PCP_PUBKEY_FOOTER "------ END PCP PUBLICKEY ------"</span></div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#define PCP_ENFILE_HEADER "----- BEGIN PCP ENCRYPTED FILE -----"</span></div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"></span><span class="preprocessor">#define PCP_ENFILE_FOOTER "------ END PCP ENCRYPTED FILE ------"</span></div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor">#define PCP_ZFILE_HEADER "----- BEGIN Z85 ENCODED FILE -----"</span></div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"></span><span class="preprocessor">#define PCP_ZFILE_FOOTER "------ END Z85 ENCODED FILE ------"</span></div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#define PCP_SIG_HEADER "----- BEGIN ED25519 SIGNED MESSAGE -----"</span></div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor"></span><span class="preprocessor">#define PCP_SIG_START "----- BEGIN ED25519 SIGNATURE -----"</span></div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor"></span><span class="preprocessor">#define PCP_SIG_END "------ END ED25519 SIGNATURE ------"</span></div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"></span><span class="preprocessor">#define PCP_SIGPREFIX "\nnacl-"</span></div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#define PCP_ME "Pretty Curved Privacy"</span></div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor">#define PCP_KEY_VERSION 6</span></div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor"></span><span class="preprocessor">#define PCP_KEY_PRIMITIVE "CURVE25519-ED25519-SALSA20-POLY1305"</span></div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"><a class="code" href="group__KEYS.html#ga19da9fe7a497dcd854feff4d29e4472d"> 92</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="group__KEYS.html#ga19da9fe7a497dcd854feff4d29e4472d" title="Internal key types.">_PCP_KEY_TYPES</a> {</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"><a class="code" href="group__KEYS.html#gga19da9fe7a497dcd854feff4d29e4472da2cbd93780b8b12601c8243317f712b99"> 93</a></span>  <a class="code" href="group__KEYS.html#gga19da9fe7a497dcd854feff4d29e4472da2cbd93780b8b12601c8243317f712b99" title="1 - Primary secret">PCP_KEY_TYPE_MAINSECRET</a> = 1, </div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"><a class="code" href="group__KEYS.html#gga19da9fe7a497dcd854feff4d29e4472da719ee3955ec3f9031d77f12759e75e62"> 94</a></span>  <a class="code" href="group__KEYS.html#gga19da9fe7a497dcd854feff4d29e4472da719ee3955ec3f9031d77f12759e75e62" title="2 - Other secret">PCP_KEY_TYPE_SECRET</a> = 2, </div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"><a class="code" href="group__KEYS.html#gga19da9fe7a497dcd854feff4d29e4472da4ec09a5121dc8a4ebe8a9991058ed0f0"> 95</a></span>  <a class="code" href="group__KEYS.html#gga19da9fe7a497dcd854feff4d29e4472da4ec09a5121dc8a4ebe8a9991058ed0f0" title="3 - Public">PCP_KEY_TYPE_PUBLIC</a> = 3, </div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"><a class="code" href="group__KEYS.html#gga19da9fe7a497dcd854feff4d29e4472da416d3698781131f927f2fa0eaef32490"> 96</a></span>  <a class="code" href="group__KEYS.html#gga19da9fe7a497dcd854feff4d29e4472da416d3698781131f927f2fa0eaef32490" title="4 - PCP native key signature">PCP_KEYSIG_NATIVE</a> = 4, </div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"><a class="code" href="group__KEYS.html#gga19da9fe7a497dcd854feff4d29e4472da1e1cd206d3b6397ae6e67c479956308b"> 97</a></span>  <a class="code" href="group__KEYS.html#gga19da9fe7a497dcd854feff4d29e4472da1e1cd206d3b6397ae6e67c479956308b" title="5 - PBP key signature">PCP_KEYSIG_PBP</a> = 5 </div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> } PCP_KEY_TYPES;</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment">/* save typing, dammit */</span></div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor">#define PCP_ENCRYPT_MAC crypto_secretbox_ZEROBYTES + crypto_secretbox_NONCEBYTES</span></div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment">/* vault id */</span></div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor">#define PCP_VAULT_ID 14</span></div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor"></span><span class="preprocessor">#define PCP_VAULT_VERSION 2</span></div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">/* sigs */</span></div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="preprocessor">#define PCP_SIG_VERSION 2</span></div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment">/* crypto file format stuff */</span></div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment">/* enabled via config.h (configure --enable-cbc) */</span></div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor">#ifndef PCP_CBC</span></div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor"></span><span class="preprocessor"> #define PCP_ASYM_CIPHER 5</span></div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor"></span><span class="preprocessor"> #define PCP_SYM_CIPHER 23</span></div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor"></span><span class="preprocessor"> #define PCP_BLOCK_SIZE 32 * 1024</span></div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor"></span><span class="comment">/* CBC mode, use smaller blocks */</span></div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor"> #define PCP_ASYM_CIPHER 7</span></div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="preprocessor"></span><span class="preprocessor"> #define PCP_SYM_CIPHER 25</span></div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="preprocessor"></span><span class="preprocessor"> #define PCP_BLOCK_SIZE 1 * 1024</span></div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="preprocessor">#define PCP_CRYPTO_ADD (crypto_box_ZEROBYTES - crypto_box_BOXZEROBYTES)</span></div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="preprocessor"></span><span class="preprocessor">#define PCP_BLOCK_SIZE_IN (PCP_BLOCK_SIZE) + PCP_CRYPTO_ADD + crypto_secretbox_NONCEBYTES</span></div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor"></span><span class="preprocessor">#define PCP_ASYM_RECIPIENT_SIZE crypto_secretbox_KEYBYTES + PCP_CRYPTO_ADD + crypto_secretbox_NONCEBYTES</span></div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment">/* #define PCP_ASYM_ADD_SENDER_PUB */</span></div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment">/* used for self encryption only */</span></div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor">#define PBP_COMPAT_SALT "qa~t](84z<1t<1oz:ik.@IRNyhG=8q(on9}4#!/_h#a7wqK{Nt$T?W>,mt8NqYq&6U<GB1$,<$j>,rSYI2GRDd:Bcm"</span></div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor">#define PCP_RFC_CIPHER 0x21 </span><span class="comment">/* curve25519+ed25519+poly1305+salsa20+blake2 */</span><span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="comment">/* error handling */</span></div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keyword">extern</span> <span class="keywordtype">char</span> *<a class="code" href="group__FATALS.html#gaa82cfd45780516d548fca7e395dcd737" title="Global variable holding the last error message.">PCP_ERR</a>;</div>
|
||||
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
|
||||
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="keyword">extern</span> byte <a class="code" href="group__FATALS.html#ga370bd749bea64884ea94a420197e5a1f" title="Global variable indicating if an error occurred.">PCP_ERRSET</a>;</div>
|
||||
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div>
|
||||
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__FATALS.html#gabdc19db902d5cdd179bd48d3d156c3a0" title="Exitcode for the pcp commandline utility.">PCP_EXIT</a>;</div>
|
||||
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
|
||||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="keywordtype">void</span> <a class="code" href="group__FATALS.html#ga677da14e8c4326bde43622f233f1ead3" title="Set an error message.">fatal</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * fmt, ...);</div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
|
||||
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keywordtype">void</span> <a class="code" href="group__FATALS.html#ga0ea01da59af8a06c55258d78da6cb0cb" title="Prints error messages to STDERR, if there are some.">fatals_ifany</a>();</div>
|
||||
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
|
||||
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="keywordtype">void</span> <a class="code" href="group__FATALS.html#ga778f5515a4d5e03cb7baf53855e05375" title="Reset the error variables.">fatals_reset</a>();</div>
|
||||
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
|
||||
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="keywordtype">void</span> <a class="code" href="group__FATALS.html#gae354ce0c89d6ee013f6bca066507a813" title="Cleans up memory allocation of global error variables.">fatals_done</a>();</div>
|
||||
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div>
|
||||
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="preprocessor">#endif </span><span class="comment">/* _DEFINES_H */</span><span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,99 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: pcp Directory Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">pcp Directory Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
|
||||
Files</h2></td></tr>
|
||||
<tr class="memitem:buffer_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>buffer.h</b> <a href="buffer_8h_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:crypto_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>crypto.h</b> <a href="crypto_8h_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:defines_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>defines.h</b> <a href="defines_8h_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ed_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>ed.h</b> <a href="ed_8h_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:getpass_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>getpass.h</b> <a href="getpass_8h_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:key_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>key.h</b> <a href="key_8h_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:keyhash_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>keyhash.h</b> <a href="keyhash_8h_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:keysig_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>keysig.h</b> <a href="keysig_8h_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:mac_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>mac.h</b> <a href="mac_8h_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:mem_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>mem.h</b> <a href="mem_8h_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:mgmt_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>mgmt.h</b> <a href="mgmt_8h_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:pad_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>pad.h</b> <a href="pad_8h_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:pcpstream_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>pcpstream.h</b> <a href="pcpstream_8h_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:plist_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>plist.h</b> <a href="plist_8h_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:randomart_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>randomart.h</b> <a href="randomart_8h_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:scrypt_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>scrypt.h</b> <a href="scrypt_8h_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:util_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>util.h</b> <a href="util_8h_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:vault_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>vault.h</b> <a href="vault_8h_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:version_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>version.h</b> <a href="version_8h_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:z85_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>z85.h</b> <a href="z85_8h_source.html">[code]</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,61 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: include Directory Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">include Directory Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
|
||||
Directories</h2></td></tr>
|
||||
<tr class="memitem:dir_76e3dfa7802a76391b3a5cc4012b4dd7"><td class="memItemLeft" align="right" valign="top">directory  </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
1172
man/html/doxygen.css
|
Before Width: | Height: | Size: 3.7 KiB |
@@ -1,78 +0,0 @@
|
||||
function toggleVisibility(linkObj)
|
||||
{
|
||||
var base = $(linkObj).attr('id');
|
||||
var summary = $('#'+base+'-summary');
|
||||
var content = $('#'+base+'-content');
|
||||
var trigger = $('#'+base+'-trigger');
|
||||
var src=$(trigger).attr('src');
|
||||
if (content.is(':visible')===true) {
|
||||
content.hide();
|
||||
summary.show();
|
||||
$(linkObj).addClass('closed').removeClass('opened');
|
||||
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
|
||||
} else {
|
||||
content.show();
|
||||
summary.hide();
|
||||
$(linkObj).removeClass('closed').addClass('opened');
|
||||
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function updateStripes()
|
||||
{
|
||||
$('table.directory tr').
|
||||
removeClass('even').filter(':visible:even').addClass('even');
|
||||
}
|
||||
function toggleLevel(level)
|
||||
{
|
||||
$('table.directory tr').each(function(){
|
||||
var l = this.id.split('_').length-1;
|
||||
var i = $('#img'+this.id.substring(3));
|
||||
var a = $('#arr'+this.id.substring(3));
|
||||
if (l<level+1) {
|
||||
i.attr('src','ftv2folderopen.png');
|
||||
a.attr('src','ftv2mnode.png');
|
||||
$(this).show();
|
||||
} else if (l==level+1) {
|
||||
i.attr('src','ftv2folderclosed.png');
|
||||
a.attr('src','ftv2pnode.png');
|
||||
$(this).show();
|
||||
} else {
|
||||
$(this).hide();
|
||||
}
|
||||
});
|
||||
updateStripes();
|
||||
}
|
||||
function toggleFolder(id)
|
||||
{
|
||||
var n = $('[id^=row_'+id+']');
|
||||
var i = $('[id^=img_'+id+']');
|
||||
var a = $('[id^=arr_'+id+']');
|
||||
var c = n.slice(1);
|
||||
if (c.filter(':first').is(':visible')===true) {
|
||||
i.attr('src','ftv2folderclosed.png');
|
||||
a.attr('src','ftv2pnode.png');
|
||||
c.hide();
|
||||
} else {
|
||||
i.attr('src','ftv2folderopen.png');
|
||||
a.attr('src','ftv2mnode.png');
|
||||
c.show();
|
||||
}
|
||||
updateStripes();
|
||||
}
|
||||
|
||||
function toggleInherit(id)
|
||||
{
|
||||
var rows = $('tr.inherit.'+id);
|
||||
var img = $('tr.inherit_header.'+id+' img');
|
||||
var src = $(img).attr('src');
|
||||
if (rows.filter(':first').is(':visible')===true) {
|
||||
rows.css('display','none');
|
||||
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
|
||||
} else {
|
||||
rows.css('display','table-row'); // using show() causes jump in firefox
|
||||
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,115 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: ed.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">ed.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> This file is part of Pretty Curved Privacy (pcp1).</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> Copyright (C) 2013-2014 T.v.Dein.</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> This program is free software: you can redistribute it and/or modify</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> it under the terms of the GNU General Public License as published by</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> the Free Software Foundation, either version 3 of the License, or</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> (at your option) any later version.</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> This program is distributed in the hope that it will be useful,</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> GNU General Public License for more details.</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> You should have received a copy of the GNU General Public License</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> You can contact me by mail: <tom AT vondein DOT org>.</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">*/</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifndef _HAVE_PCP_ED_H</span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"></span><span class="preprocessor">#define _HAVE_PCP_ED_H</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <sodium.h></span></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <string.h></span></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <stdio.h></span></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <time.h></span></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "defines.h"</span></div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "platform.h"</span></div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "mem.h"</span></div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "key.h"</span></div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include "keyhash.h"</span></div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include "util.h"</span></div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include "pcpstream.h"</span></div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="group__ED.html#gabbefb2b18707ad13f8d50ba1d53a0eaf" title="Sign a raw message.">pcp_ed_sign</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *message, <span class="keywordtype">size_t</span> messagesize, <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *s);</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="group__ED.html#ga3afd124c16427247dcd58e49b8b6f6f5" title="Sign a raw message using s->mastersecret.">pcp_ed_sign_key</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *message, <span class="keywordtype">size_t</span> messagesize, <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *s);</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="group__ED.html#ga8a3d79ddcfbe3fe69f14dbe9d5ad7c79" title="Verify a signature.">pcp_ed_verify</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *signature, <span class="keywordtype">size_t</span> siglen, <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *p);</div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="group__ED.html#ga15fef528d9d44c9e2b2b9edc159222c5" title="Verify a signature using the mastersecret.">pcp_ed_verify_key</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *signature, <span class="keywordtype">size_t</span> siglen, <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *p);</div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="keywordtype">size_t</span> <a class="code" href="group__ED.html#gabc079b17c0ba452c978b56a6507b3db7" title="Sign a stream in 32k block mode.">pcp_ed_sign_buffered</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *in, <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *out, <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *s, <span class="keywordtype">int</span> z85);</div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *<a class="code" href="group__ED.html#ga251ca21c3128e4fdfa2392439d14411e" title="Verify a signature from a stream in 32k block mode.">pcp_ed_verify_buffered</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *in, <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *p);</div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
|
||||
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="keywordtype">size_t</span> <a class="code" href="group__ED.html#ga60df616ebdb499671067edb15e66cb9e" title="Generate a detached signature from a stream in 32k block mode.">pcp_ed_detachsign_buffered</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *in, <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *out, <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *s);</div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
|
||||
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *<a class="code" href="group__ED.html#ga944290e7b36e6b856f6cff981128f89f" title="Verify a detached signature from a stream in 32k block mode.">pcp_ed_detachverify_buffered</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *in, <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *sigfd, <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *p);</div>
|
||||
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div>
|
||||
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="preprocessor">#endif </span><span class="comment">/* _HAVE_PCP_ED_H */</span><span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,80 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: File List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li class="current"><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">File List</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
|
||||
<table class="directory">
|
||||
<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="buffer_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>buffer.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="crypto_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>crypto.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="defines_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>defines.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="ed_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>ed.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="getpass_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>getpass.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_5_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="key_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>key.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_6_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="keyhash_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>keyhash.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_7_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="keysig_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>keysig.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_8_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="mac_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>mac.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_9_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="mem_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>mem.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_10_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="mgmt_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>mgmt.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_11_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="pad_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>pad.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_12_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="pcpstream_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>pcpstream.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_13_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="plist_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>plist.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_14_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="randomart_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>randomart.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_15_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="scrypt_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>scrypt.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_16_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="util_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>util.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_17_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="vault_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>vault.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_18_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="version_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>version.h</b></td><td class="desc"></td></tr>
|
||||
<tr id="row_19_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="z85_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><b>z85.h</b></td><td class="desc"></td></tr>
|
||||
</table>
|
||||
</div><!-- directory -->
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
|
Before Width: | Height: | Size: 86 B |
|
Before Width: | Height: | Size: 453 B |
|
Before Width: | Height: | Size: 746 B |
|
Before Width: | Height: | Size: 616 B |
|
Before Width: | Height: | Size: 597 B |
|
Before Width: | Height: | Size: 86 B |
|
Before Width: | Height: | Size: 746 B |
|
Before Width: | Height: | Size: 246 B |
|
Before Width: | Height: | Size: 246 B |
|
Before Width: | Height: | Size: 403 B |
|
Before Width: | Height: | Size: 86 B |
|
Before Width: | Height: | Size: 388 B |
|
Before Width: | Height: | Size: 229 B |
|
Before Width: | Height: | Size: 229 B |
|
Before Width: | Height: | Size: 314 B |
|
Before Width: | Height: | Size: 86 B |
@@ -1,274 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: Class Members</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li class="current"><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow3" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li class="current"><a href="functions.html"><span>All</span></a></li>
|
||||
<li><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow4" class="tabs3">
|
||||
<ul class="tablist">
|
||||
<li><a href="#index_a"><span>a</span></a></li>
|
||||
<li><a href="#index_b"><span>b</span></a></li>
|
||||
<li><a href="#index_c"><span>c</span></a></li>
|
||||
<li><a href="#index_e"><span>e</span></a></li>
|
||||
<li><a href="#index_f"><span>f</span></a></li>
|
||||
<li><a href="#index_i"><span>i</span></a></li>
|
||||
<li><a href="#index_m"><span>m</span></a></li>
|
||||
<li><a href="#index_n"><span>n</span></a></li>
|
||||
<li><a href="#index_o"><span>o</span></a></li>
|
||||
<li><a href="#index_p"><span>p</span></a></li>
|
||||
<li><a href="#index_s"><span>s</span></a></li>
|
||||
<li><a href="#index_t"><span>t</span></a></li>
|
||||
<li><a href="#index_u"><span>u</span></a></li>
|
||||
<li><a href="#index_v"><span>v</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="contents">
|
||||
<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div>
|
||||
|
||||
<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
|
||||
<li>allocated
|
||||
: <a class="el" href="struct__pcp__buffer.html#a48fee003c319d92f8d9a5e4c2c735e6f">_pcp_buffer</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
|
||||
<li>b
|
||||
: <a class="el" href="struct__pcp__stream__t.html#a320a3c593ebcf0a651700f9263e5d9b4">_pcp_stream_t</a>
|
||||
</li>
|
||||
<li>blocksize
|
||||
: <a class="el" href="struct__pcp__buffer.html#a7fdd9e4a9ed7abfc5eec36cb1eca281a">_pcp_buffer</a>
|
||||
</li>
|
||||
<li>buf
|
||||
: <a class="el" href="struct__pcp__buffer.html#a8d80e52785446bcc9e2fd4456c97daf5">_pcp_buffer</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
|
||||
<li>checksum
|
||||
: <a class="el" href="struct__vault__t.html#a39fb3dfd4fe6aaafdbfb9a3e88f4f09e">_vault_t</a>
|
||||
, <a class="el" href="struct__vault__header__t.html#a60589e0cbf3ff9495e5c8d3b7f799e8d">_vault_header_t</a>
|
||||
, <a class="el" href="struct__vault__item__header__t.html#a5169dbce0f216fe38f89a214e8217c56">_vault_item_header_t</a>
|
||||
</li>
|
||||
<li>cipher
|
||||
: <a class="el" href="struct__pcp__rec__t.html#a5ee9ab68d084ed116bb81bd773122ada">_pcp_rec_t</a>
|
||||
</li>
|
||||
<li>ciphersize
|
||||
: <a class="el" href="struct__pcp__rec__t.html#a1e3bc60866c85b917b284ed6590e4145">_pcp_rec_t</a>
|
||||
</li>
|
||||
<li>ctime
|
||||
: <a class="el" href="struct__pcp__key__t.html#ac848ee41e72b2d4da0a85288f90165fa">_pcp_key_t</a>
|
||||
, <a class="el" href="struct__pcp__pubkey__t.html#a9ac602791697d90bf56ecb0a7a7c3714">_pcp_pubkey_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
|
||||
<li>edpub
|
||||
: <a class="el" href="struct__pcp__key__t.html#a5fbb76c6d2988ee039966c19e64440ef">_pcp_key_t</a>
|
||||
, <a class="el" href="struct__pcp__pubkey__t.html#a7d4d53e88c0ca2b09364394cf1dee200">_pcp_pubkey_t</a>
|
||||
</li>
|
||||
<li>edsecret
|
||||
: <a class="el" href="struct__pcp__key__t.html#a420b3fd1bc46d668c088c8360a53838d">_pcp_key_t</a>
|
||||
</li>
|
||||
<li>encrypted
|
||||
: <a class="el" href="struct__pcp__key__t.html#a1da3d67421a27665dfe207403364a349">_pcp_key_t</a>
|
||||
</li>
|
||||
<li>end
|
||||
: <a class="el" href="struct__pcp__buffer.html#acad944641be2d2e4c4109f83b6a6609f">_pcp_buffer</a>
|
||||
</li>
|
||||
<li>eof
|
||||
: <a class="el" href="struct__pcp__stream__t.html#a4b0242f83eec494ee19ad41e08e924af">_pcp_stream_t</a>
|
||||
</li>
|
||||
<li>err
|
||||
: <a class="el" href="struct__pcp__stream__t.html#aaed1bd389ba84b3cd87839088b4057ea">_pcp_stream_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
|
||||
<li>fd
|
||||
: <a class="el" href="struct__pcp__stream__t.html#ab3be4b7b5c57f456ed996cb0b5d53f27">_pcp_stream_t</a>
|
||||
, <a class="el" href="struct__vault__t.html#aeb36f1f7c2c1a5ee5dfa15e0047a851c">_vault_t</a>
|
||||
</li>
|
||||
<li>fileid
|
||||
: <a class="el" href="struct__vault__header__t.html#a1d8383b18710635ad2a99ffcb7fa0592">_vault_header_t</a>
|
||||
</li>
|
||||
<li>filename
|
||||
: <a class="el" href="struct__vault__t.html#a0ac0cd4db869ca11128eeebf4e44ab1f">_vault_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
|
||||
<li>id
|
||||
: <a class="el" href="struct__pcp__key__t.html#a99e0435c5d7a074e5969e7a83bc93f67">_pcp_key_t</a>
|
||||
, <a class="el" href="struct__pcp__pubkey__t.html#ad10eadcb9325538e71c9fd8b140dbdd2">_pcp_pubkey_t</a>
|
||||
</li>
|
||||
<li>is_buffer
|
||||
: <a class="el" href="struct__pcp__stream__t.html#a5fc108c71fb18d9835f7083e1b2ff5fa">_pcp_stream_t</a>
|
||||
</li>
|
||||
<li>isnew
|
||||
: <a class="el" href="struct__vault__t.html#ada18cb30c8ef3aa4976b431a99a1d170">_vault_t</a>
|
||||
</li>
|
||||
<li>isstring
|
||||
: <a class="el" href="struct__pcp__buffer.html#aa1e4c60e982f39498ce66af85325bab6">_pcp_buffer</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
|
||||
<li>mail
|
||||
: <a class="el" href="struct__pcp__key__t.html#a6259d3e70f1ae793398e2e83eba9ae6d">_pcp_key_t</a>
|
||||
, <a class="el" href="struct__pcp__pubkey__t.html#a5d4e99518b3c0edcccd2917274e7cc29">_pcp_pubkey_t</a>
|
||||
</li>
|
||||
<li>masterpub
|
||||
: <a class="el" href="struct__pcp__pubkey__t.html#a0c503b0cdf8a331d54f3affb18fd068e">_pcp_pubkey_t</a>
|
||||
, <a class="el" href="struct__pcp__key__t.html#a776b37491c8bfd98de8f239bb9a41695">_pcp_key_t</a>
|
||||
</li>
|
||||
<li>mastersecret
|
||||
: <a class="el" href="struct__pcp__key__t.html#a0df2e9e13765ae54213fb0e9cad65173">_pcp_key_t</a>
|
||||
</li>
|
||||
<li>mode
|
||||
: <a class="el" href="struct__vault__t.html#a763b363f077e9656ecb4dc2c58ad006b">_vault_t</a>
|
||||
</li>
|
||||
<li>modified
|
||||
: <a class="el" href="struct__vault__t.html#a6f8062cda1f43dacd6960c6edf7317f3">_vault_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
|
||||
<li>name
|
||||
: <a class="el" href="struct__pcp__buffer.html#aa45619703bed4597d1ac7a45c40b92e3">_pcp_buffer</a>
|
||||
</li>
|
||||
<li>nonce
|
||||
: <a class="el" href="struct__pcp__key__t.html#a4363b752a7242f0d789ec8ca75e1c426">_pcp_key_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
|
||||
<li>offset
|
||||
: <a class="el" href="struct__pcp__buffer.html#a0ea19798e2cd04c152980bd7caac5d10">_pcp_buffer</a>
|
||||
</li>
|
||||
<li>owner
|
||||
: <a class="el" href="struct__pcp__pubkey__t.html#a1cc906382ef13dc456e9a15b84843a79">_pcp_pubkey_t</a>
|
||||
, <a class="el" href="struct__pcp__key__t.html#a058c2dce0c18939b2b6b7b0272a7095d">_pcp_key_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
|
||||
<li>pub
|
||||
: <a class="el" href="struct__pcp__key__t.html#abf48278152e33968e634a4a5aea1076c">_pcp_key_t</a>
|
||||
, <a class="el" href="struct__pcp__rec__t.html#ac8918a7a90e23d54ca5d1873c6fbcd02">_pcp_rec_t</a>
|
||||
, <a class="el" href="struct__pcp__pubkey__t.html#a10cb7717fbf5cc0ba9584fd3c1d7bb33">_pcp_pubkey_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
|
||||
<li>secret
|
||||
: <a class="el" href="struct__pcp__key__t.html#a6d2a4ac0d698bc759b2a814f28d15282">_pcp_key_t</a>
|
||||
, <a class="el" href="struct__pcp__rec__t.html#a0167577bf19d9845c4f16c83878f74c8">_pcp_rec_t</a>
|
||||
</li>
|
||||
<li>serial
|
||||
: <a class="el" href="struct__pcp__pubkey__t.html#afd1941bc57da1a65f8038b47e3ccd21d">_pcp_pubkey_t</a>
|
||||
, <a class="el" href="struct__pcp__key__t.html#a06aa6c7284118608fd6573a54372e263">_pcp_key_t</a>
|
||||
</li>
|
||||
<li>signature
|
||||
: <a class="el" href="struct__pcp__pubkey__t.html#ad6952d39d4ebc81d0677649e5f369013">_pcp_pubkey_t</a>
|
||||
</li>
|
||||
<li>sigpub
|
||||
: <a class="el" href="struct__pcp__pubkey__t.html#a7e6b30f39e7107c4b3b7cd67cdc019f9">_pcp_pubkey_t</a>
|
||||
</li>
|
||||
<li>size
|
||||
: <a class="el" href="struct__vault__item__header__t.html#a54e8da230087325ceec0f286de377b8f">_vault_item_header_t</a>
|
||||
, <a class="el" href="struct__vault__t.html#aedf5d37e686a68b527bf44534398e113">_vault_t</a>
|
||||
, <a class="el" href="struct__pcp__buffer.html#a8bf9eb28e7fa878847212133ece0c482">_pcp_buffer</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
|
||||
<li>type
|
||||
: <a class="el" href="struct__pcp__key__t.html#a5cefa1a4a2d1a49361aac5a3fb8d988f">_pcp_key_t</a>
|
||||
, <a class="el" href="struct__vault__item__header__t.html#a300141ad03ff5f6cb79aafd9984e5e0e">_vault_item_header_t</a>
|
||||
, <a class="el" href="struct__pcp__pubkey__t.html#a2154caabdc447e21106e117205c1259d">_pcp_pubkey_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
|
||||
<li>unsafed
|
||||
: <a class="el" href="struct__vault__t.html#aabb4ba4d964189e84e80b843abe8b7bf">_vault_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
|
||||
<li>valid
|
||||
: <a class="el" href="struct__pcp__pubkey__t.html#af93af4b3e259d6fa9e05009e564be8f7">_pcp_pubkey_t</a>
|
||||
</li>
|
||||
<li>version
|
||||
: <a class="el" href="struct__vault__item__header__t.html#a5d3634c7c9d5050f60444326e0a9eea7">_vault_item_header_t</a>
|
||||
, <a class="el" href="struct__vault__header__t.html#a325f9343b65fde4984639a8ed564fd0d">_vault_header_t</a>
|
||||
, <a class="el" href="struct__vault__t.html#a3c19b6b1629efb8504272bbeb62d97ed">_vault_t</a>
|
||||
, <a class="el" href="struct__pcp__pubkey__t.html#aaebe0105dd79f3d22575dd29ff1d7356">_pcp_pubkey_t</a>
|
||||
, <a class="el" href="struct__pcp__key__t.html#af9f00779fcbbedaf0b17caa3f3a6fa30">_pcp_key_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,274 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: Class Members - Variables</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li class="current"><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow3" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="functions.html"><span>All</span></a></li>
|
||||
<li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow4" class="tabs3">
|
||||
<ul class="tablist">
|
||||
<li><a href="#index_a"><span>a</span></a></li>
|
||||
<li><a href="#index_b"><span>b</span></a></li>
|
||||
<li><a href="#index_c"><span>c</span></a></li>
|
||||
<li><a href="#index_e"><span>e</span></a></li>
|
||||
<li><a href="#index_f"><span>f</span></a></li>
|
||||
<li><a href="#index_i"><span>i</span></a></li>
|
||||
<li><a href="#index_m"><span>m</span></a></li>
|
||||
<li><a href="#index_n"><span>n</span></a></li>
|
||||
<li><a href="#index_o"><span>o</span></a></li>
|
||||
<li><a href="#index_p"><span>p</span></a></li>
|
||||
<li><a href="#index_s"><span>s</span></a></li>
|
||||
<li><a href="#index_t"><span>t</span></a></li>
|
||||
<li><a href="#index_u"><span>u</span></a></li>
|
||||
<li><a href="#index_v"><span>v</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="contents">
|
||||
 
|
||||
|
||||
<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
|
||||
<li>allocated
|
||||
: <a class="el" href="struct__pcp__buffer.html#a48fee003c319d92f8d9a5e4c2c735e6f">_pcp_buffer</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
|
||||
<li>b
|
||||
: <a class="el" href="struct__pcp__stream__t.html#a320a3c593ebcf0a651700f9263e5d9b4">_pcp_stream_t</a>
|
||||
</li>
|
||||
<li>blocksize
|
||||
: <a class="el" href="struct__pcp__buffer.html#a7fdd9e4a9ed7abfc5eec36cb1eca281a">_pcp_buffer</a>
|
||||
</li>
|
||||
<li>buf
|
||||
: <a class="el" href="struct__pcp__buffer.html#a8d80e52785446bcc9e2fd4456c97daf5">_pcp_buffer</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
|
||||
<li>checksum
|
||||
: <a class="el" href="struct__vault__t.html#a39fb3dfd4fe6aaafdbfb9a3e88f4f09e">_vault_t</a>
|
||||
, <a class="el" href="struct__vault__header__t.html#a60589e0cbf3ff9495e5c8d3b7f799e8d">_vault_header_t</a>
|
||||
, <a class="el" href="struct__vault__item__header__t.html#a5169dbce0f216fe38f89a214e8217c56">_vault_item_header_t</a>
|
||||
</li>
|
||||
<li>cipher
|
||||
: <a class="el" href="struct__pcp__rec__t.html#a5ee9ab68d084ed116bb81bd773122ada">_pcp_rec_t</a>
|
||||
</li>
|
||||
<li>ciphersize
|
||||
: <a class="el" href="struct__pcp__rec__t.html#a1e3bc60866c85b917b284ed6590e4145">_pcp_rec_t</a>
|
||||
</li>
|
||||
<li>ctime
|
||||
: <a class="el" href="struct__pcp__key__t.html#ac848ee41e72b2d4da0a85288f90165fa">_pcp_key_t</a>
|
||||
, <a class="el" href="struct__pcp__pubkey__t.html#a9ac602791697d90bf56ecb0a7a7c3714">_pcp_pubkey_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
|
||||
<li>edpub
|
||||
: <a class="el" href="struct__pcp__key__t.html#a5fbb76c6d2988ee039966c19e64440ef">_pcp_key_t</a>
|
||||
, <a class="el" href="struct__pcp__pubkey__t.html#a7d4d53e88c0ca2b09364394cf1dee200">_pcp_pubkey_t</a>
|
||||
</li>
|
||||
<li>edsecret
|
||||
: <a class="el" href="struct__pcp__key__t.html#a420b3fd1bc46d668c088c8360a53838d">_pcp_key_t</a>
|
||||
</li>
|
||||
<li>encrypted
|
||||
: <a class="el" href="struct__pcp__key__t.html#a1da3d67421a27665dfe207403364a349">_pcp_key_t</a>
|
||||
</li>
|
||||
<li>end
|
||||
: <a class="el" href="struct__pcp__buffer.html#acad944641be2d2e4c4109f83b6a6609f">_pcp_buffer</a>
|
||||
</li>
|
||||
<li>eof
|
||||
: <a class="el" href="struct__pcp__stream__t.html#a4b0242f83eec494ee19ad41e08e924af">_pcp_stream_t</a>
|
||||
</li>
|
||||
<li>err
|
||||
: <a class="el" href="struct__pcp__stream__t.html#aaed1bd389ba84b3cd87839088b4057ea">_pcp_stream_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
|
||||
<li>fd
|
||||
: <a class="el" href="struct__pcp__stream__t.html#ab3be4b7b5c57f456ed996cb0b5d53f27">_pcp_stream_t</a>
|
||||
, <a class="el" href="struct__vault__t.html#aeb36f1f7c2c1a5ee5dfa15e0047a851c">_vault_t</a>
|
||||
</li>
|
||||
<li>fileid
|
||||
: <a class="el" href="struct__vault__header__t.html#a1d8383b18710635ad2a99ffcb7fa0592">_vault_header_t</a>
|
||||
</li>
|
||||
<li>filename
|
||||
: <a class="el" href="struct__vault__t.html#a0ac0cd4db869ca11128eeebf4e44ab1f">_vault_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
|
||||
<li>id
|
||||
: <a class="el" href="struct__pcp__key__t.html#a99e0435c5d7a074e5969e7a83bc93f67">_pcp_key_t</a>
|
||||
, <a class="el" href="struct__pcp__pubkey__t.html#ad10eadcb9325538e71c9fd8b140dbdd2">_pcp_pubkey_t</a>
|
||||
</li>
|
||||
<li>is_buffer
|
||||
: <a class="el" href="struct__pcp__stream__t.html#a5fc108c71fb18d9835f7083e1b2ff5fa">_pcp_stream_t</a>
|
||||
</li>
|
||||
<li>isnew
|
||||
: <a class="el" href="struct__vault__t.html#ada18cb30c8ef3aa4976b431a99a1d170">_vault_t</a>
|
||||
</li>
|
||||
<li>isstring
|
||||
: <a class="el" href="struct__pcp__buffer.html#aa1e4c60e982f39498ce66af85325bab6">_pcp_buffer</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
|
||||
<li>mail
|
||||
: <a class="el" href="struct__pcp__key__t.html#a6259d3e70f1ae793398e2e83eba9ae6d">_pcp_key_t</a>
|
||||
, <a class="el" href="struct__pcp__pubkey__t.html#a5d4e99518b3c0edcccd2917274e7cc29">_pcp_pubkey_t</a>
|
||||
</li>
|
||||
<li>masterpub
|
||||
: <a class="el" href="struct__pcp__pubkey__t.html#a0c503b0cdf8a331d54f3affb18fd068e">_pcp_pubkey_t</a>
|
||||
, <a class="el" href="struct__pcp__key__t.html#a776b37491c8bfd98de8f239bb9a41695">_pcp_key_t</a>
|
||||
</li>
|
||||
<li>mastersecret
|
||||
: <a class="el" href="struct__pcp__key__t.html#a0df2e9e13765ae54213fb0e9cad65173">_pcp_key_t</a>
|
||||
</li>
|
||||
<li>mode
|
||||
: <a class="el" href="struct__vault__t.html#a763b363f077e9656ecb4dc2c58ad006b">_vault_t</a>
|
||||
</li>
|
||||
<li>modified
|
||||
: <a class="el" href="struct__vault__t.html#a6f8062cda1f43dacd6960c6edf7317f3">_vault_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
|
||||
<li>name
|
||||
: <a class="el" href="struct__pcp__buffer.html#aa45619703bed4597d1ac7a45c40b92e3">_pcp_buffer</a>
|
||||
</li>
|
||||
<li>nonce
|
||||
: <a class="el" href="struct__pcp__key__t.html#a4363b752a7242f0d789ec8ca75e1c426">_pcp_key_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
|
||||
<li>offset
|
||||
: <a class="el" href="struct__pcp__buffer.html#a0ea19798e2cd04c152980bd7caac5d10">_pcp_buffer</a>
|
||||
</li>
|
||||
<li>owner
|
||||
: <a class="el" href="struct__pcp__pubkey__t.html#a1cc906382ef13dc456e9a15b84843a79">_pcp_pubkey_t</a>
|
||||
, <a class="el" href="struct__pcp__key__t.html#a058c2dce0c18939b2b6b7b0272a7095d">_pcp_key_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
|
||||
<li>pub
|
||||
: <a class="el" href="struct__pcp__key__t.html#abf48278152e33968e634a4a5aea1076c">_pcp_key_t</a>
|
||||
, <a class="el" href="struct__pcp__rec__t.html#ac8918a7a90e23d54ca5d1873c6fbcd02">_pcp_rec_t</a>
|
||||
, <a class="el" href="struct__pcp__pubkey__t.html#a10cb7717fbf5cc0ba9584fd3c1d7bb33">_pcp_pubkey_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
|
||||
<li>secret
|
||||
: <a class="el" href="struct__pcp__key__t.html#a6d2a4ac0d698bc759b2a814f28d15282">_pcp_key_t</a>
|
||||
, <a class="el" href="struct__pcp__rec__t.html#a0167577bf19d9845c4f16c83878f74c8">_pcp_rec_t</a>
|
||||
</li>
|
||||
<li>serial
|
||||
: <a class="el" href="struct__pcp__pubkey__t.html#afd1941bc57da1a65f8038b47e3ccd21d">_pcp_pubkey_t</a>
|
||||
, <a class="el" href="struct__pcp__key__t.html#a06aa6c7284118608fd6573a54372e263">_pcp_key_t</a>
|
||||
</li>
|
||||
<li>signature
|
||||
: <a class="el" href="struct__pcp__pubkey__t.html#ad6952d39d4ebc81d0677649e5f369013">_pcp_pubkey_t</a>
|
||||
</li>
|
||||
<li>sigpub
|
||||
: <a class="el" href="struct__pcp__pubkey__t.html#a7e6b30f39e7107c4b3b7cd67cdc019f9">_pcp_pubkey_t</a>
|
||||
</li>
|
||||
<li>size
|
||||
: <a class="el" href="struct__vault__item__header__t.html#a54e8da230087325ceec0f286de377b8f">_vault_item_header_t</a>
|
||||
, <a class="el" href="struct__vault__t.html#aedf5d37e686a68b527bf44534398e113">_vault_t</a>
|
||||
, <a class="el" href="struct__pcp__buffer.html#a8bf9eb28e7fa878847212133ece0c482">_pcp_buffer</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
|
||||
<li>type
|
||||
: <a class="el" href="struct__pcp__key__t.html#a5cefa1a4a2d1a49361aac5a3fb8d988f">_pcp_key_t</a>
|
||||
, <a class="el" href="struct__vault__item__header__t.html#a300141ad03ff5f6cb79aafd9984e5e0e">_vault_item_header_t</a>
|
||||
, <a class="el" href="struct__pcp__pubkey__t.html#a2154caabdc447e21106e117205c1259d">_pcp_pubkey_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
|
||||
<li>unsafed
|
||||
: <a class="el" href="struct__vault__t.html#aabb4ba4d964189e84e80b843abe8b7bf">_vault_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
|
||||
<li>valid
|
||||
: <a class="el" href="struct__pcp__pubkey__t.html#af93af4b3e259d6fa9e05009e564be8f7">_pcp_pubkey_t</a>
|
||||
</li>
|
||||
<li>version
|
||||
: <a class="el" href="struct__vault__item__header__t.html#a5d3634c7c9d5050f60444326e0a9eea7">_vault_item_header_t</a>
|
||||
, <a class="el" href="struct__vault__header__t.html#a325f9343b65fde4984639a8ed564fd0d">_vault_header_t</a>
|
||||
, <a class="el" href="struct__vault__t.html#a3c19b6b1629efb8504272bbeb62d97ed">_vault_t</a>
|
||||
, <a class="el" href="struct__pcp__pubkey__t.html#aaebe0105dd79f3d22575dd29ff1d7356">_pcp_pubkey_t</a>
|
||||
, <a class="el" href="struct__pcp__key__t.html#af9f00779fcbbedaf0b17caa3f3a6fa30">_pcp_key_t</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,82 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: getpass.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">getpass.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#ifndef _HAVE_PCP_GETPASS</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor"></span><span class="preprocessor">#define _HAVE_PCP_GETPASS</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * (unportable) functions to turn on/off terminal echo</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * using termios functions. might compile however on</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * most unices, tested on FreeBSD only.</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> </div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include <unistd.h></span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <stdio.h></span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include <stdlib.h></span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <termios.h></span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keywordtype">void</span> pcp_echo_off();</div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keywordtype">void</span> pcp_echo_on();</div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keywordtype">char</span> *pcp_get_stdin();</div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keywordtype">char</span> *pcp_get_passphrase(<span class="keywordtype">char</span> *prompt);</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#endif </span><span class="comment">/* _HAVE_PCP_GETPASS */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,595 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: CRYPTO</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">CRYPTO</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Functions for symmetrical or asymmetrical encryption using NaCL.
|
||||
<a href="#details">More...</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:ga65c6dc4a24eb0844f9a82e5a02306c14"><td class="memItemLeft" align="right" valign="top">unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__CRYPTO.html#ga65c6dc4a24eb0844f9a82e5a02306c14">pcp_box_encrypt</a> (<a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *secret, <a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> *pub, unsigned char *message, size_t messagesize, size_t *csize)</td></tr>
|
||||
<tr class="memdesc:ga65c6dc4a24eb0844f9a82e5a02306c14"><td class="mdescLeft"> </td><td class="mdescRight">Asymmetrically encrypt a message. <a href="#ga65c6dc4a24eb0844f9a82e5a02306c14"></a><br/></td></tr>
|
||||
<tr class="separator:ga65c6dc4a24eb0844f9a82e5a02306c14"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga73788bf0c6828922f98e57f1568dd845"><td class="memItemLeft" align="right" valign="top">unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__CRYPTO.html#ga73788bf0c6828922f98e57f1568dd845">pcp_box_decrypt</a> (<a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *secret, <a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> *pub, unsigned char *cipher, size_t ciphersize, size_t *dsize)</td></tr>
|
||||
<tr class="memdesc:ga73788bf0c6828922f98e57f1568dd845"><td class="mdescLeft"> </td><td class="mdescRight">Asymmetrically decrypt a message. <a href="#ga73788bf0c6828922f98e57f1568dd845"></a><br/></td></tr>
|
||||
<tr class="separator:ga73788bf0c6828922f98e57f1568dd845"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gadbdb839246cac65ff20ef63902041597"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__CRYPTO.html#gadbdb839246cac65ff20ef63902041597">pcp_encrypt_stream</a> (<a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *in, <a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *out, <a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *s, <a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> *p, int signcrypt)</td></tr>
|
||||
<tr class="memdesc:gadbdb839246cac65ff20ef63902041597"><td class="mdescLeft"> </td><td class="mdescRight">Asymmetrically encrypt a file or a buffer stream. <a href="#gadbdb839246cac65ff20ef63902041597"></a><br/></td></tr>
|
||||
<tr class="separator:gadbdb839246cac65ff20ef63902041597"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga949053e8f2a9ddfa2421d578951f7cf5"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__CRYPTO.html#ga949053e8f2a9ddfa2421d578951f7cf5">pcp_encrypt_stream_sym</a> (<a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *in, <a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *out, unsigned char *symkey, int havehead, <a class="el" href="group__KEYS.html#gab69d94a862952b046c6f340d3c701dd0">pcp_rec_t</a> *recsign)</td></tr>
|
||||
<tr class="memdesc:ga949053e8f2a9ddfa2421d578951f7cf5"><td class="mdescLeft"> </td><td class="mdescRight">Symmetrically encrypt a file or a buffer stream. <a href="#ga949053e8f2a9ddfa2421d578951f7cf5"></a><br/></td></tr>
|
||||
<tr class="separator:ga949053e8f2a9ddfa2421d578951f7cf5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gaeb1196ed4a3edc911e77d1d15612c539"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__CRYPTO.html#gaeb1196ed4a3edc911e77d1d15612c539">pcp_decrypt_stream</a> (<a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *in, <a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *out, <a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *s, unsigned char *symkey, int verify)</td></tr>
|
||||
<tr class="memdesc:gaeb1196ed4a3edc911e77d1d15612c539"><td class="mdescLeft"> </td><td class="mdescRight">Asymmetrically decrypt a file or a buffer stream. <a href="#gaeb1196ed4a3edc911e77d1d15612c539"></a><br/></td></tr>
|
||||
<tr class="separator:gaeb1196ed4a3edc911e77d1d15612c539"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga98322a73045d7d3e069e1afeb7fe2918"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__CRYPTO.html#ga98322a73045d7d3e069e1afeb7fe2918">pcp_decrypt_stream_sym</a> (<a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *in, <a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *out, unsigned char *symkey, <a class="el" href="group__KEYS.html#gab69d94a862952b046c6f340d3c701dd0">pcp_rec_t</a> *recverify)</td></tr>
|
||||
<tr class="memdesc:ga98322a73045d7d3e069e1afeb7fe2918"><td class="mdescLeft"> </td><td class="mdescRight">Symmetrically decrypt a file or a buffer stream. <a href="#ga98322a73045d7d3e069e1afeb7fe2918"></a><br/></td></tr>
|
||||
<tr class="separator:ga98322a73045d7d3e069e1afeb7fe2918"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gaf9ec9f99af7315fa9f1a5f9649f27347"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__CRYPTO.html#gaf9ec9f99af7315fa9f1a5f9649f27347">pcp_sodium_mac</a> (unsigned char **cipher, unsigned char *cleartext, size_t clearsize, unsigned char *nonce, unsigned char *key)</td></tr>
|
||||
<tr class="memdesc:gaf9ec9f99af7315fa9f1a5f9649f27347"><td class="mdescLeft"> </td><td class="mdescRight">Symmetrically encrypt a message. <a href="#gaf9ec9f99af7315fa9f1a5f9649f27347"></a><br/></td></tr>
|
||||
<tr class="separator:gaf9ec9f99af7315fa9f1a5f9649f27347"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga6475f85713c66641097d26bc9121bf70"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__CRYPTO.html#ga6475f85713c66641097d26bc9121bf70">pcp_sodium_verify_mac</a> (unsigned char **cleartext, unsigned char *message, size_t messagesize, unsigned char *nonce, unsigned char *key)</td></tr>
|
||||
<tr class="memdesc:ga6475f85713c66641097d26bc9121bf70"><td class="mdescLeft"> </td><td class="mdescRight">Decrypt a symmetrically encrypted message. <a href="#ga6475f85713c66641097d26bc9121bf70"></a><br/></td></tr>
|
||||
<tr class="separator:ga6475f85713c66641097d26bc9121bf70"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<p>Functions for symmetrical or asymmetrical encryption using NaCL. </p>
|
||||
<h1><a class="anchor" id="intro"></a>
|
||||
Introduction</h1>
|
||||
<p>Encryption is done 32k blockwise using an ephemeral key.</p>
|
||||
<p>If using asymmetrical encryption the ephemeral key is encrypted asymmetrically using Curve25519 for all recipients and added to the output.</p>
|
||||
<p>If sign+crypt is requested, a hash of the clear content plus the recipient list will be made and signed. That signature will be encrypted using the ephemeral key as well and appended to the output.</p>
|
||||
<p>For each encryption cycle (per block) a unique nonce will be used.</p>
|
||||
<h1><a class="anchor" id="format"></a>
|
||||
Encrypted Output Format</h1>
|
||||
<p>Encrypted output will always written as binary files. No armoring supported yet. The encryption process works as this:</p>
|
||||
<ul>
|
||||
<li>generate a random symetric 32 byte key B<S></li>
|
||||
<li>encrypt it asymetrically for each recipient using a unique nonce (B<R>)</li>
|
||||
<li>encrypt the input file 32k blockwise using the symetric key</li>
|
||||
</ul>
|
||||
<p>Symmetric encryption works the very same with the recipient stuff left out.</p>
|
||||
<p>Formal format description, asymmetric encrypted files: </p>
|
||||
<pre class="fragment"> +---------------------------------------------------------+
|
||||
| Field Size Description |
|
||||
+-------------+--------+----------------------------------+
|
||||
| Type | 1 | Filetype, 5=ASYM, 23=SYM |
|
||||
+-------------|--------|----------------------------------+
|
||||
| Len R | 4 | Number of recipients (*) |
|
||||
+-------------|--------|----------------------------------+
|
||||
| Recipients | R*72 | C(recipient)|C(recipient)... (*) |
|
||||
+-------------|--------|----------------------------------+
|
||||
| Encrypted | ~ | The actual encrypted data |
|
||||
+-------------|--------|----------------------------------+
|
||||
</pre><p>The following will be Left out when doing symetric encryption.</p>
|
||||
<p>Recipient field format: </p>
|
||||
<pre class="fragment"> +---------------------------------------------------------+
|
||||
| Field Size Description |
|
||||
+-------------+--------+----------------------------------+
|
||||
| Nonce | 24 | Random Nonce, one per R |
|
||||
+-------------|--------|----------------------------------+
|
||||
| Cipher | 48 | S encrypted with PK or R |
|
||||
+-------------|--------|----------------------------------+
|
||||
</pre><p>R is calculated using public key encryption using the senders secret key, the recipients public key and a random nonce.</p>
|
||||
<p>Pseudocode:</p>
|
||||
<div class="fragment"><div class="line">R = <span class="keywordflow">foreach</span> P: N | crypto_box(S, N, P, SK)</div>
|
||||
<div class="line">L = len(R)</div>
|
||||
<div class="line">T = 5</div>
|
||||
<div class="line">write (T | L | R)</div>
|
||||
<div class="line">foreach I: write (N | crypto_secret_box(I, N, S))</div>
|
||||
</div><!-- fragment --><p>where P is the public key of a recipient, SK is the senders secret key, R is the recipient list, L is the number of recipients, T is the filetype header, I is a block of input with a size of 32k, N is a nonce (new per block) and S the symmetric key. </p>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a class="anchor" id="ga73788bf0c6828922f98e57f1568dd845"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned char* pcp_box_decrypt </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>secret</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td>
|
||||
<td class="paramname"><em>pub</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>cipher</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>ciphersize</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t * </td>
|
||||
<td class="paramname"><em>dsize</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Asymmetrically decrypt a message. </p>
|
||||
<p>This function is used internally and normally a user doesn't need to use it. However, from time to time there maybe the requirement to work with raw NaCL crypto_box() output. This function adds the neccessary padding and it uses PCP key structures.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">secret</td><td>The secret key structure from the sender.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">pub</td><td>The public key structure from the recipient.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">cipher</td><td>The encrypted message.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">ciphersize</td><td>The size in bytes of the encrypted message.</td></tr>
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">dsize</td><td>A pointer which will be set to the size of the decrypted result if successful.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns an allocated unsigned char array of the size csize which contains the encrypted result. In case of an error, it returns NULL sets csize to 0. Use <a class="el" href="group__FATALS.html#ga0ea01da59af8a06c55258d78da6cb0cb" title="Prints error messages to STDERR, if there are some.">fatals_ifany()</a> to check for errors. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga65c6dc4a24eb0844f9a82e5a02306c14"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned char* pcp_box_encrypt </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>secret</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td>
|
||||
<td class="paramname"><em>pub</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>message</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>messagesize</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t * </td>
|
||||
<td class="paramname"><em>csize</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Asymmetrically encrypt a message. </p>
|
||||
<p>This function is used internally and normally a user doesn't need to use it. However, from time to time there maybe the requirement to work with raw NaCL crypto_box() output. This function adds the neccessary padding and it uses PCP key structures.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">secret</td><td>The secret key structure from the sender.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">pub</td><td>The public key structure from the recipient.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">message</td><td>The clear unencrypted message.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">messagesize</td><td>The size in bytes of the message.</td></tr>
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">csize</td><td>A pointer which will be set to the size of the encrypted result if successful.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns an allocated unsigned char array of the size csize which contains the encrypted result. In case of an error, it returns NULL sets csize to 0. Use <a class="el" href="group__FATALS.html#ga0ea01da59af8a06c55258d78da6cb0cb" title="Prints error messages to STDERR, if there are some.">fatals_ifany()</a> to check for errors. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaeb1196ed4a3edc911e77d1d15612c539"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">size_t pcp_decrypt_stream </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>in</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>out</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>s</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>symkey</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"><em>verify</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Asymmetrically decrypt a file or a buffer stream. </p>
|
||||
<p>This function decrypts a stream 32k+16-blockwise for a number of recipients.</p>
|
||||
<p>Calls <a class="el" href="group__CRYPTO.html#ga98322a73045d7d3e069e1afeb7fe2918" title="Symmetrically decrypt a file or a buffer stream.">pcp_decrypt_stream_sym()</a> after assembling the encrypted recipient list.</p>
|
||||
<p>FIXME: should return the pcp_rec_t structure upon successfull verification somehow.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>Stream to read the data to decrypt from.</td></tr>
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Stream to write decrypted result to.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>Secret key structure of the recipient.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">symkey</td><td>Ephemeral key for symmetric decryption. Set to NULL if you call this function directly.</td></tr>
|
||||
<tr><td class="paramdir"></td><td class="paramname">verify</td><td>Flag to indicate sign+crypt. If 1 it tries to verify a signature, otherwise not.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns the size of the output written to the output stream or 0 in case of errors. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga98322a73045d7d3e069e1afeb7fe2918"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">size_t pcp_decrypt_stream_sym </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>in</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>out</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>symkey</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gab69d94a862952b046c6f340d3c701dd0">pcp_rec_t</a> * </td>
|
||||
<td class="paramname"><em>recverify</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Symmetrically decrypt a file or a buffer stream. </p>
|
||||
<p>This function decrypts a stream 32k+16-blockwise using a given ephemeral key. Usually compute this key using the pcp_scrypt() function. If not called directly, the key have been extracted from the recipient list.</p>
|
||||
<p>Uses crypto_secret_box_open() for each 32k+16-block with a random nonce for each.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>Stream to read the data to decrypt from.</td></tr>
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Stream to write decrypted result to.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">symkey</td><td>Ephemeral key to use for decryption.</td></tr>
|
||||
<tr><td class="paramdir"></td><td class="paramname">recverify</td><td>Flag to indicate sign+crypt. If 1 it tries to verify a signature, otherwise not.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns the size of the output written to the output stream or 0 in case of errors. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gadbdb839246cac65ff20ef63902041597"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">size_t pcp_encrypt_stream </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>in</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>out</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>s</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td>
|
||||
<td class="paramname"><em>p</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"><em>signcrypt</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Asymmetrically encrypt a file or a buffer stream. </p>
|
||||
<p>This function encrypts a stream 32k-blockwise for a number of recipients.</p>
|
||||
<p>Calls <a class="el" href="group__CRYPTO.html#ga949053e8f2a9ddfa2421d578951f7cf5" title="Symmetrically encrypt a file or a buffer stream.">pcp_encrypt_stream_sym()</a> after assembling the encrypted recipient list.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>Stream to read the data to encrypt from.</td></tr>
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Stream to write encrypted result to.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>Secret key structure of the sender.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>Public key hash containing a list of the recipients.</td></tr>
|
||||
<tr><td class="paramdir"></td><td class="paramname">signcrypt</td><td>Flag to indicate sign+crypt. If 1 it adds a signature, otherwise not.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns the size of the output written to the output stream or 0 in case of errors. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga949053e8f2a9ddfa2421d578951f7cf5"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">size_t pcp_encrypt_stream_sym </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>in</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>out</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>symkey</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"><em>havehead</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gab69d94a862952b046c6f340d3c701dd0">pcp_rec_t</a> * </td>
|
||||
<td class="paramname"><em>recsign</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Symmetrically encrypt a file or a buffer stream. </p>
|
||||
<p>This function encrypts a stream 32k-blockwise using a given ephemeral key. Usually compute this key using the pcp_scrypt() function.</p>
|
||||
<p>Uses crypto_secret_box() for each 32k-block with a random nonce for each.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>Stream to read the data to encrypt from.</td></tr>
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Stream to write encrypted result to.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">symkey</td><td>Ephemeral key to use for encryption.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">havehead</td><td>Flag to indicate if the file header has already been written. Set to 0 if you call this function directly in order to do symmetrical encryption.</td></tr>
|
||||
<tr><td class="paramdir"></td><td class="paramname">recsign</td><td>Recipient list, set this to NULL if you call this function directly.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns the size of the output written to the output stream or 0 in case of errors. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaf9ec9f99af7315fa9f1a5f9649f27347"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">size_t pcp_sodium_mac </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">unsigned char ** </td>
|
||||
<td class="paramname"><em>cipher</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>cleartext</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>clearsize</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>nonce</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>key</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Symmetrically encrypt a message. </p>
|
||||
<p>This function encrypts a message symmetrically using crypto_secretbox() using the given Curve25519 raw secret key and the nonce.</p>
|
||||
<p>It allocates apropriate memory for the result, which will be stored in <em>cipher</em>.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">cipher</td><td>Encrypted result. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">cleartext</td><td>Clear message. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">clearsize</td><td>Size of message. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">nonce</td><td>A random nonce (24 Bytes). </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>A Curve25519 key (32 Bytes).</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns the size of <em>cipher</em>. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga6475f85713c66641097d26bc9121bf70"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int pcp_sodium_verify_mac </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">unsigned char ** </td>
|
||||
<td class="paramname"><em>cleartext</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>message</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>messagesize</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>nonce</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>key</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Decrypt a symmetrically encrypted message. </p>
|
||||
<p>This function decrypts a symmetrically encrypted message using crypto_secretbox_open() using the given Curve25519 raw secret key and the nonce.</p>
|
||||
<p>It allocates apropriate memory for the result, which will be stored in <em>cleartext</em>.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">cleartext</td><td>The decrypted result. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">message</td><td>The encrypted message. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">messagesize</td><td>Size of message. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">nonce</td><td>A random nonce (24 Bytes). </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>A Curve25519 key (32 Bytes).</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns 0 in case of success of -1 in case of an error. Check fatals_if_any(). </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,442 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: SIGNING</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">SIGNING</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>ED25519 signature functions.
|
||||
<a href="#details">More...</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:gabbefb2b18707ad13f8d50ba1d53a0eaf"><td class="memItemLeft" align="right" valign="top">unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ED.html#gabbefb2b18707ad13f8d50ba1d53a0eaf">pcp_ed_sign</a> (unsigned char *message, size_t messagesize, <a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *s)</td></tr>
|
||||
<tr class="memdesc:gabbefb2b18707ad13f8d50ba1d53a0eaf"><td class="mdescLeft"> </td><td class="mdescRight">Sign a raw message. <a href="#gabbefb2b18707ad13f8d50ba1d53a0eaf"></a><br/></td></tr>
|
||||
<tr class="separator:gabbefb2b18707ad13f8d50ba1d53a0eaf"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga3afd124c16427247dcd58e49b8b6f6f5"><td class="memItemLeft" align="right" valign="top">unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ED.html#ga3afd124c16427247dcd58e49b8b6f6f5">pcp_ed_sign_key</a> (unsigned char *message, size_t messagesize, <a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *s)</td></tr>
|
||||
<tr class="memdesc:ga3afd124c16427247dcd58e49b8b6f6f5"><td class="mdescLeft"> </td><td class="mdescRight">Sign a raw message using s->mastersecret. <a href="#ga3afd124c16427247dcd58e49b8b6f6f5"></a><br/></td></tr>
|
||||
<tr class="separator:ga3afd124c16427247dcd58e49b8b6f6f5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga8a3d79ddcfbe3fe69f14dbe9d5ad7c79"><td class="memItemLeft" align="right" valign="top">unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ED.html#ga8a3d79ddcfbe3fe69f14dbe9d5ad7c79">pcp_ed_verify</a> (unsigned char *signature, size_t siglen, <a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> *p)</td></tr>
|
||||
<tr class="memdesc:ga8a3d79ddcfbe3fe69f14dbe9d5ad7c79"><td class="mdescLeft"> </td><td class="mdescRight">Verify a signature. <a href="#ga8a3d79ddcfbe3fe69f14dbe9d5ad7c79"></a><br/></td></tr>
|
||||
<tr class="separator:ga8a3d79ddcfbe3fe69f14dbe9d5ad7c79"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga15fef528d9d44c9e2b2b9edc159222c5"><td class="memItemLeft" align="right" valign="top">unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ED.html#ga15fef528d9d44c9e2b2b9edc159222c5">pcp_ed_verify_key</a> (unsigned char *signature, size_t siglen, <a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> *p)</td></tr>
|
||||
<tr class="memdesc:ga15fef528d9d44c9e2b2b9edc159222c5"><td class="mdescLeft"> </td><td class="mdescRight">Verify a signature using the mastersecret. <a href="#ga15fef528d9d44c9e2b2b9edc159222c5"></a><br/></td></tr>
|
||||
<tr class="separator:ga15fef528d9d44c9e2b2b9edc159222c5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gabc079b17c0ba452c978b56a6507b3db7"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ED.html#gabc079b17c0ba452c978b56a6507b3db7">pcp_ed_sign_buffered</a> (<a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *in, <a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *out, <a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *s, int z85)</td></tr>
|
||||
<tr class="memdesc:gabc079b17c0ba452c978b56a6507b3db7"><td class="mdescLeft"> </td><td class="mdescRight">Sign a stream in 32k block mode. <a href="#gabc079b17c0ba452c978b56a6507b3db7"></a><br/></td></tr>
|
||||
<tr class="separator:gabc079b17c0ba452c978b56a6507b3db7"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga251ca21c3128e4fdfa2392439d14411e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ED.html#ga251ca21c3128e4fdfa2392439d14411e">pcp_ed_verify_buffered</a> (<a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *in, <a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> *p)</td></tr>
|
||||
<tr class="memdesc:ga251ca21c3128e4fdfa2392439d14411e"><td class="mdescLeft"> </td><td class="mdescRight">Verify a signature from a stream in 32k block mode. <a href="#ga251ca21c3128e4fdfa2392439d14411e"></a><br/></td></tr>
|
||||
<tr class="separator:ga251ca21c3128e4fdfa2392439d14411e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga60df616ebdb499671067edb15e66cb9e"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ED.html#ga60df616ebdb499671067edb15e66cb9e">pcp_ed_detachsign_buffered</a> (<a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *in, <a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *out, <a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *s)</td></tr>
|
||||
<tr class="memdesc:ga60df616ebdb499671067edb15e66cb9e"><td class="mdescLeft"> </td><td class="mdescRight">Generate a detached signature from a stream in 32k block mode. <a href="#ga60df616ebdb499671067edb15e66cb9e"></a><br/></td></tr>
|
||||
<tr class="separator:ga60df616ebdb499671067edb15e66cb9e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga944290e7b36e6b856f6cff981128f89f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ED.html#ga944290e7b36e6b856f6cff981128f89f">pcp_ed_detachverify_buffered</a> (<a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *in, <a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *sigfd, <a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> *p)</td></tr>
|
||||
<tr class="memdesc:ga944290e7b36e6b856f6cff981128f89f"><td class="mdescLeft"> </td><td class="mdescRight">Verify a detached signature from a stream in 32k block mode. <a href="#ga944290e7b36e6b856f6cff981128f89f"></a><br/></td></tr>
|
||||
<tr class="separator:ga944290e7b36e6b856f6cff981128f89f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<p>ED25519 signature functions. </p>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a class="anchor" id="ga60df616ebdb499671067edb15e66cb9e"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">size_t pcp_ed_detachsign_buffered </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>in</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>out</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>s</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Generate a detached signature from a stream in 32k block mode. </p>
|
||||
<p>This function reads blockwise from the stream <em>in</em> and generates a hash of the contents of the stream. It then signs that hash and writes the hash and the signature to the output stream <em>out</em>.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>Stream to read from.</td></tr>
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Stream to write to.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>Pointer to secret key.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns the size of the detached signature written or 0 in case of errors. Check fatals_if_any(). </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga944290e7b36e6b856f6cff981128f89f"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a>* pcp_ed_detachverify_buffered </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>in</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>sigfd</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td>
|
||||
<td class="paramname"><em>p</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Verify a detached signature from a stream in 32k block mode. </p>
|
||||
<p>This function reads blockwise from the stream <em>in</em> and generates a hash of the contents of the stream. It then reads the signature from the stream <em>sigfd</em> and verifies the signature from it using p->edpub and compares the signature hash with the hash it calculated from the signed content.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>Stream to read from.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">sigfd</td><td>Stream containing the detached signature.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>Pointer to public key structure.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a pointer to a public key which were used to verify the signature or NULL if an error occurred. Check fatals_if_any(). </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gabbefb2b18707ad13f8d50ba1d53a0eaf"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned char* pcp_ed_sign </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>message</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>messagesize</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>s</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Sign a raw message. </p>
|
||||
<p>Sign a message of messagesize using s->edsecret. This is just a convenience wrapper around crypto_sign().</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">message</td><td>The message to sign.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">messagesize</td><td>Size of the message.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>Pointer to secret key structure.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns message+signature with size of messagesize + crypto_sign_BYTES, or NULL in case of an error. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gabc079b17c0ba452c978b56a6507b3db7"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">size_t pcp_ed_sign_buffered </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>in</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>out</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>s</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"><em>z85</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Sign a stream in 32k block mode. </p>
|
||||
<p>This function reads blockwise from the stream <em>in</em> and generates a hash of the contents of the stream. It outputs the stream to <em>out</em>, also blockwise and appends the signature afterwards, which consists of the hash+nacl-signature.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>Stream to read from.</td></tr>
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Stream to write to.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>Pointer to secret key.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">z85</td><td>Flag which indicates if to create an armored signature or not. 1=armored, 0=raw.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns the number of bytes written to the output stream. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga3afd124c16427247dcd58e49b8b6f6f5"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned char* pcp_ed_sign_key </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>message</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>messagesize</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>s</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Sign a raw message using s->mastersecret. </p>
|
||||
<p>The same as <a class="el" href="group__ED.html#gabbefb2b18707ad13f8d50ba1d53a0eaf" title="Sign a raw message.">pcp_ed_sign()</a> but uses the mastersecret for signing. Usually used for key signing only.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">message</td><td>The message to sign.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">messagesize</td><td>Size of the message.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>Pointer to secret key structure.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns message+signature with size of messagesize + crypto_sign_BYTES, or NULL in case of an error. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga8a3d79ddcfbe3fe69f14dbe9d5ad7c79"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned char* pcp_ed_verify </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>signature</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>siglen</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td>
|
||||
<td class="paramname"><em>p</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Verify a signature. </p>
|
||||
<p>Verify a signature of size siglen using p->edpub.</p>
|
||||
<p>The signature must contain the message+nacl signature (with size crypto_sign_BYTES).</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">signature</td><td>Message+signature.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">siglen</td><td>Size of message+signature.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>Pointer to public key structure.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>If the signature verifies return the raw message with the signature removed (size: siglen - crypto_sign_BYTES), returns NULL in case of errors. Check fatals_if_any(). </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga251ca21c3128e4fdfa2392439d14411e"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a>* pcp_ed_verify_buffered </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>in</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td>
|
||||
<td class="paramname"><em>p</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Verify a signature from a stream in 32k block mode. </p>
|
||||
<p>This function reads blockwise from the stream <em>in</em> and generates a hash of the contents of the stream. While reading from the stream it extracts the appended signature (hash+sig). It then verifies the signature using p->edpub and compares the signature hash with the hash it calculated from the signed content.</p>
|
||||
<p>The parameter <em>p</em> can be NULL. In this case the function loops through the global public key hash pcppubkey_hash to find a public key which is able to verify the signature.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>Stream to read from.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>Pointer to public key structure.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a pointer to a public key which were used to verify the signature or NULL if an error occurred. Check fatals_if_any(). </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga15fef528d9d44c9e2b2b9edc159222c5"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned char* pcp_ed_verify_key </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>signature</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>siglen</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td>
|
||||
<td class="paramname"><em>p</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Verify a signature using the mastersecret. </p>
|
||||
<p>Verify a signature of size siglen using p->masterpub.</p>
|
||||
<p>The signature must contain the message+nacl signature (with size crypto_sign_BYTES).</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">signature</td><td>Message+signature.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">siglen</td><td>Size of message+signature.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>Pointer to public key structure.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>If the signature verifies return the raw message with the signature removed (size: siglen - crypto_sign_BYTES), returns NULL in case of errors. Check fatals_if_any(). </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,221 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: FATALS</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#func-members">Functions</a> |
|
||||
<a href="#var-members">Variables</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">FATALS</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>A couple of functions to catch errors and display them.
|
||||
<a href="#details">More...</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:ga677da14e8c4326bde43622f233f1ead3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__FATALS.html#ga677da14e8c4326bde43622f233f1ead3">fatal</a> (const char *fmt,...)</td></tr>
|
||||
<tr class="memdesc:ga677da14e8c4326bde43622f233f1ead3"><td class="mdescLeft"> </td><td class="mdescRight">Set an error message. <a href="#ga677da14e8c4326bde43622f233f1ead3"></a><br/></td></tr>
|
||||
<tr class="separator:ga677da14e8c4326bde43622f233f1ead3"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga0ea01da59af8a06c55258d78da6cb0cb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__FATALS.html#ga0ea01da59af8a06c55258d78da6cb0cb">fatals_ifany</a> ()</td></tr>
|
||||
<tr class="memdesc:ga0ea01da59af8a06c55258d78da6cb0cb"><td class="mdescLeft"> </td><td class="mdescRight">Prints error messages to STDERR, if there are some. <a href="#ga0ea01da59af8a06c55258d78da6cb0cb"></a><br/></td></tr>
|
||||
<tr class="separator:ga0ea01da59af8a06c55258d78da6cb0cb"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga778f5515a4d5e03cb7baf53855e05375"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__FATALS.html#ga778f5515a4d5e03cb7baf53855e05375">fatals_reset</a> ()</td></tr>
|
||||
<tr class="memdesc:ga778f5515a4d5e03cb7baf53855e05375"><td class="mdescLeft"> </td><td class="mdescRight">Reset the error variables. <a href="#ga778f5515a4d5e03cb7baf53855e05375"></a><br/></td></tr>
|
||||
<tr class="separator:ga778f5515a4d5e03cb7baf53855e05375"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gae354ce0c89d6ee013f6bca066507a813"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__FATALS.html#gae354ce0c89d6ee013f6bca066507a813">fatals_done</a> ()</td></tr>
|
||||
<tr class="memdesc:gae354ce0c89d6ee013f6bca066507a813"><td class="mdescLeft"> </td><td class="mdescRight">Cleans up memory allocation of global error variables. <a href="#gae354ce0c89d6ee013f6bca066507a813"></a><br/></td></tr>
|
||||
<tr class="separator:gae354ce0c89d6ee013f6bca066507a813"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
|
||||
Variables</h2></td></tr>
|
||||
<tr class="memitem:gaa82cfd45780516d548fca7e395dcd737"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__FATALS.html#gaa82cfd45780516d548fca7e395dcd737">PCP_ERR</a></td></tr>
|
||||
<tr class="memdesc:gaa82cfd45780516d548fca7e395dcd737"><td class="mdescLeft"> </td><td class="mdescRight">Global variable holding the last error message. <a href="#gaa82cfd45780516d548fca7e395dcd737"></a><br/></td></tr>
|
||||
<tr class="separator:gaa82cfd45780516d548fca7e395dcd737"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga370bd749bea64884ea94a420197e5a1f"><td class="memItemLeft" align="right" valign="top">byte </td><td class="memItemRight" valign="bottom"><a class="el" href="group__FATALS.html#ga370bd749bea64884ea94a420197e5a1f">PCP_ERRSET</a></td></tr>
|
||||
<tr class="memdesc:ga370bd749bea64884ea94a420197e5a1f"><td class="mdescLeft"> </td><td class="mdescRight">Global variable indicating if an error occurred. <a href="#ga370bd749bea64884ea94a420197e5a1f"></a><br/></td></tr>
|
||||
<tr class="separator:ga370bd749bea64884ea94a420197e5a1f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gabdc19db902d5cdd179bd48d3d156c3a0"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__FATALS.html#gabdc19db902d5cdd179bd48d3d156c3a0">PCP_EXIT</a></td></tr>
|
||||
<tr class="memdesc:gabdc19db902d5cdd179bd48d3d156c3a0"><td class="mdescLeft"> </td><td class="mdescRight">Exitcode for the pcp commandline utility. <a href="#gabdc19db902d5cdd179bd48d3d156c3a0"></a><br/></td></tr>
|
||||
<tr class="separator:gabdc19db902d5cdd179bd48d3d156c3a0"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<p>A couple of functions to catch errors and display them. </p>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a class="anchor" id="ga677da14e8c4326bde43622f233f1ead3"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void fatal </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">const char * </td>
|
||||
<td class="paramname"><em>fmt</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"> </td>
|
||||
<td class="paramname"><em>...</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Set an error message. </p>
|
||||
<p>This function gets a printf() like error message, which it stores in the global PCP_ERR variable and sets PCP_ERRSET to 1.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">fmt</td><td>printf() like format description.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">...</td><td>format parameters, if any. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gae354ce0c89d6ee013f6bca066507a813"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void fatals_done </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Cleans up memory allocation of global error variables. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga0ea01da59af8a06c55258d78da6cb0cb"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void fatals_ifany </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Prints error messages to STDERR, if there are some. </p>
|
||||
<p>FIXME: add something like this which returns the message. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga778f5515a4d5e03cb7baf53855e05375"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void fatals_reset </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Reset the error variables. </p>
|
||||
<p>This can be used to ignore previous errors. Use with care. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Variable Documentation</h2>
|
||||
<a class="anchor" id="gaa82cfd45780516d548fca7e395dcd737"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">PCP_ERR</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Global variable holding the last error message. </p>
|
||||
<p>Can be retrieved with <a class="el" href="group__FATALS.html#ga0ea01da59af8a06c55258d78da6cb0cb" title="Prints error messages to STDERR, if there are some.">fatals_ifany()</a>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga370bd749bea64884ea94a420197e5a1f"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">PCP_ERRSET</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Global variable indicating if an error occurred. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gabdc19db902d5cdd179bd48d3d156c3a0"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">PCP_EXIT</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Exitcode for the pcp commandline utility. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,404 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: KEYHASH</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#define-members">Macros</a> |
|
||||
<a href="#func-members">Functions</a> |
|
||||
<a href="#var-members">Variables</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">KEYHASH</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Uthashes of secret and public key structures.
|
||||
<a href="#details">More...</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
|
||||
Macros</h2></td></tr>
|
||||
<tr class="memitem:ga67612ac824c9cd2bf19ef54463aa03d6"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYHASH.html#ga67612ac824c9cd2bf19ef54463aa03d6">pcphash_iterate</a>(key)</td></tr>
|
||||
<tr class="memdesc:ga67612ac824c9cd2bf19ef54463aa03d6"><td class="mdescLeft"> </td><td class="mdescRight">Iterate over the list of secret keys. <a href="#ga67612ac824c9cd2bf19ef54463aa03d6"></a><br/></td></tr>
|
||||
<tr class="separator:ga67612ac824c9cd2bf19ef54463aa03d6"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gadf7bf61c0ae9de0800550e66649cbe74"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYHASH.html#gadf7bf61c0ae9de0800550e66649cbe74">pcphash_iteratepub</a>(key)</td></tr>
|
||||
<tr class="memdesc:gadf7bf61c0ae9de0800550e66649cbe74"><td class="mdescLeft"> </td><td class="mdescRight">Iterate over the list of public keys. <a href="#gadf7bf61c0ae9de0800550e66649cbe74"></a><br/></td></tr>
|
||||
<tr class="separator:gadf7bf61c0ae9de0800550e66649cbe74"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:ga032631be7ae7bfda7a7d3a6ec6c470e9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYHASH.html#ga032631be7ae7bfda7a7d3a6ec6c470e9">pcphash_init</a> ()</td></tr>
|
||||
<tr class="memdesc:ga032631be7ae7bfda7a7d3a6ec6c470e9"><td class="mdescLeft"> </td><td class="mdescRight">Initialize the global hashes. <a href="#ga032631be7ae7bfda7a7d3a6ec6c470e9"></a><br/></td></tr>
|
||||
<tr class="separator:ga032631be7ae7bfda7a7d3a6ec6c470e9"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga6ec2d68ebc58d0291f1a3df489f60137"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYHASH.html#ga6ec2d68ebc58d0291f1a3df489f60137">pcphash_del</a> (void *key, int type)</td></tr>
|
||||
<tr class="memdesc:ga6ec2d68ebc58d0291f1a3df489f60137"><td class="mdescLeft"> </td><td class="mdescRight">Delete an entry from a hash. <a href="#ga6ec2d68ebc58d0291f1a3df489f60137"></a><br/></td></tr>
|
||||
<tr class="separator:ga6ec2d68ebc58d0291f1a3df489f60137"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga29bb3dbb781b383f0ded40ee149b8917"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYHASH.html#ga29bb3dbb781b383f0ded40ee149b8917">pcphash_clean</a> ()</td></tr>
|
||||
<tr class="memdesc:ga29bb3dbb781b383f0ded40ee149b8917"><td class="mdescLeft"> </td><td class="mdescRight">Frees the memory allocated by the hashes. <a href="#ga29bb3dbb781b383f0ded40ee149b8917"></a><br/></td></tr>
|
||||
<tr class="separator:ga29bb3dbb781b383f0ded40ee149b8917"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga16be3ae351e715ae60801e9bae56a672"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYHASH.html#ga16be3ae351e715ae60801e9bae56a672">pcphash_keyexists</a> (char *id)</td></tr>
|
||||
<tr class="memdesc:ga16be3ae351e715ae60801e9bae56a672"><td class="mdescLeft"> </td><td class="mdescRight">Check if a secret key with a given key-id exists in the hash. <a href="#ga16be3ae351e715ae60801e9bae56a672"></a><br/></td></tr>
|
||||
<tr class="separator:ga16be3ae351e715ae60801e9bae56a672"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gad8bdc1bfa1e646032ff7ceadbec0b2b1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYHASH.html#gad8bdc1bfa1e646032ff7ceadbec0b2b1">pcphash_pubkeyexists</a> (char *id)</td></tr>
|
||||
<tr class="memdesc:gad8bdc1bfa1e646032ff7ceadbec0b2b1"><td class="mdescLeft"> </td><td class="mdescRight">Check if a publickey with a given key-id exists in the hash. <a href="#gad8bdc1bfa1e646032ff7ceadbec0b2b1"></a><br/></td></tr>
|
||||
<tr class="separator:gad8bdc1bfa1e646032ff7ceadbec0b2b1"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga334bc5afda6c8bfa53d9c73390a4743f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYHASH.html#ga334bc5afda6c8bfa53d9c73390a4743f">pcphash_add</a> (void *key, int type)</td></tr>
|
||||
<tr class="memdesc:ga334bc5afda6c8bfa53d9c73390a4743f"><td class="mdescLeft"> </td><td class="mdescRight">Add a key structure to the hash list. <a href="#ga334bc5afda6c8bfa53d9c73390a4743f"></a><br/></td></tr>
|
||||
<tr class="separator:ga334bc5afda6c8bfa53d9c73390a4743f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gabf4f54f18a5ad15606ce8a43ea4b1d89"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYHASH.html#gabf4f54f18a5ad15606ce8a43ea4b1d89">pcphash_count</a> ()</td></tr>
|
||||
<tr class="memdesc:gabf4f54f18a5ad15606ce8a43ea4b1d89"><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of secret keys in the hash. <a href="#gabf4f54f18a5ad15606ce8a43ea4b1d89"></a><br/></td></tr>
|
||||
<tr class="separator:gabf4f54f18a5ad15606ce8a43ea4b1d89"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gababf062b31ee773f739d1411b2b72317"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYHASH.html#gababf062b31ee773f739d1411b2b72317">pcphash_countpub</a> ()</td></tr>
|
||||
<tr class="memdesc:gababf062b31ee773f739d1411b2b72317"><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of public keys in the hash. <a href="#gababf062b31ee773f739d1411b2b72317"></a><br/></td></tr>
|
||||
<tr class="separator:gababf062b31ee773f739d1411b2b72317"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
|
||||
Variables</h2></td></tr>
|
||||
<tr class="memitem:ga816334866b4b71819101952713f957d3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYHASH.html#ga816334866b4b71819101952713f957d3">pcpkey_hash</a></td></tr>
|
||||
<tr class="memdesc:ga816334866b4b71819101952713f957d3"><td class="mdescLeft"> </td><td class="mdescRight">Global hash for secret keys. <a href="#ga816334866b4b71819101952713f957d3"></a><br/></td></tr>
|
||||
<tr class="separator:ga816334866b4b71819101952713f957d3"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga2953fd446079220a948693dfab5d6055"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYHASH.html#ga2953fd446079220a948693dfab5d6055">pcppubkey_hash</a></td></tr>
|
||||
<tr class="memdesc:ga2953fd446079220a948693dfab5d6055"><td class="mdescLeft"> </td><td class="mdescRight">Global hash for public keys. <a href="#ga2953fd446079220a948693dfab5d6055"></a><br/></td></tr>
|
||||
<tr class="separator:ga2953fd446079220a948693dfab5d6055"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gaf35ca454e8baae8101c5efae0e8f8da0"><td class="memItemLeft" align="right" valign="top">pcp_keysig_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYHASH.html#gaf35ca454e8baae8101c5efae0e8f8da0">pcpkeysig_hash</a></td></tr>
|
||||
<tr class="memdesc:gaf35ca454e8baae8101c5efae0e8f8da0"><td class="mdescLeft"> </td><td class="mdescRight">Global hash for key signatures. <a href="#gaf35ca454e8baae8101c5efae0e8f8da0"></a><br/></td></tr>
|
||||
<tr class="separator:gaf35ca454e8baae8101c5efae0e8f8da0"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<p>Uthashes of secret and public key structures. </p>
|
||||
<p>Libpcp uses the <a href="http://troydhanson.github.io/uthash/">uthash</a> system to maintain lists of keys. There's one hash per key type. The hash has the same type as the key structure itself, but is global. </p>
|
||||
<h2 class="groupheader">Macro Definition Documentation</h2>
|
||||
<a class="anchor" id="ga67612ac824c9cd2bf19ef54463aa03d6"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">#define pcphash_iterate</td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"> </td>
|
||||
<td class="paramname">key</td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<b>Value:</b><div class="fragment"><div class="line">__k = NULL; \</div>
|
||||
<div class="line"> HASH_ITER(hh, <a class="code" href="group__KEYHASH.html#ga816334866b4b71819101952713f957d3" title="Global hash for secret keys.">pcpkey_hash</a>, key, __k)</div>
|
||||
</div><!-- fragment -->
|
||||
<p>Iterate over the list of secret keys. </p>
|
||||
<p>Sample use:</p>
|
||||
<div class="fragment"><div class="line"><a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> k = NULL;</div>
|
||||
<div class="line"><a class="code" href="group__KEYHASH.html#ga67612ac824c9cd2bf19ef54463aa03d6" title="Iterate over the list of secret keys.">pcphash_iterate</a>(k) {</div>
|
||||
<div class="line"> <a class="code" href="group__KEYS.html#ga8aa66f20f7671d80e75d7b05a7e692c4" title="Dump a secret key structure to stderr.">pcp_dumpkey</a>(k);</div>
|
||||
<div class="line">}</div>
|
||||
</div><!-- fragment --><p>Also, don't free() the keyhash or the temporary key pointer yourself. Use <a class="el" href="group__KEYHASH.html#ga29bb3dbb781b383f0ded40ee149b8917" title="Frees the memory allocated by the hashes.">pcphash_clean()</a> instead when done. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="keyhash_8h_source.html#l00064">64</a> of file <a class="el" href="keyhash_8h_source.html">keyhash.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gadf7bf61c0ae9de0800550e66649cbe74"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">#define pcphash_iteratepub</td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"> </td>
|
||||
<td class="paramname">key</td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<b>Value:</b><div class="fragment"><div class="line">__p = NULL; \</div>
|
||||
<div class="line"> HASH_ITER(hh, <a class="code" href="group__KEYHASH.html#ga2953fd446079220a948693dfab5d6055" title="Global hash for public keys.">pcppubkey_hash</a>, key, __p)</div>
|
||||
</div><!-- fragment -->
|
||||
<p>Iterate over the list of public keys. </p>
|
||||
<p>Sample use:</p>
|
||||
<div class="fragment"><div class="line"><a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> k = NULL;</div>
|
||||
<div class="line"><a class="code" href="group__KEYHASH.html#gadf7bf61c0ae9de0800550e66649cbe74" title="Iterate over the list of public keys.">pcphash_iteratepub</a>(k) {</div>
|
||||
<div class="line"> <a class="code" href="group__KEYS.html#gaf37d43db0d210b3fbeab0929e3a76ebf" title="Dump a public key structure to stderr.">pcp_dumppubkey</a>(k);</div>
|
||||
<div class="line">}</div>
|
||||
</div><!-- fragment --><p>Also, don't free() the keyhash or the temporary key pointer yourself. Use <a class="el" href="group__KEYHASH.html#ga29bb3dbb781b383f0ded40ee149b8917" title="Frees the memory allocated by the hashes.">pcphash_clean()</a> instead when done. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="keyhash_8h_source.html#l00083">83</a> of file <a class="el" href="keyhash_8h_source.html">keyhash.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a class="anchor" id="ga334bc5afda6c8bfa53d9c73390a4743f"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void pcphash_add </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void * </td>
|
||||
<td class="paramname"><em>key</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"><em>type</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Add a key structure to the hash list. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>A pointer to the key structure to delete.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>An integer specifying the key type to delete. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__KEYS.html#ga19da9fe7a497dcd854feff4d29e4472d" title="Internal key types.">_PCP_KEY_TYPES</a>. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga29bb3dbb781b383f0ded40ee149b8917"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void pcphash_clean </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Frees the memory allocated by the hashes. </p>
|
||||
<p>Clears and frees memory of all keys in the hash lists and the hashes themselfes. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gabf4f54f18a5ad15606ce8a43ea4b1d89"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int pcphash_count </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Returns the number of secret keys in the hash. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Number of keys. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gababf062b31ee773f739d1411b2b72317"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int pcphash_countpub </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Returns the number of public keys in the hash. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Number of keys. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga6ec2d68ebc58d0291f1a3df489f60137"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void pcphash_del </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void * </td>
|
||||
<td class="paramname"><em>key</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"><em>type</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Delete an entry from a hash. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>A pointer to the key structure to delete.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>An integer specifying the key type to delete. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__KEYS.html#ga19da9fe7a497dcd854feff4d29e4472d" title="Internal key types.">_PCP_KEY_TYPES</a>. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga032631be7ae7bfda7a7d3a6ec6c470e9"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void pcphash_init </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Initialize the global hashes. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga16be3ae351e715ae60801e9bae56a672"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a>* pcphash_keyexists </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">char * </td>
|
||||
<td class="paramname"><em>id</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Check if a secret key with a given key-id exists in the hash. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>A string with the key-id (max 17 chars incl 0).</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a pointer to the matching key or NULL if the id doesn't match. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gad8bdc1bfa1e646032ff7ceadbec0b2b1"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a>* pcphash_pubkeyexists </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">char * </td>
|
||||
<td class="paramname"><em>id</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Check if a publickey with a given key-id exists in the hash. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>A string with the key-id (max 17 chars incl 0).</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a pointer to the matching key or NULL if the id doesn't match. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Variable Documentation</h2>
|
||||
<a class="anchor" id="ga816334866b4b71819101952713f957d3"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a>* pcpkey_hash</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Global hash for secret keys. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaf35ca454e8baae8101c5efae0e8f8da0"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">pcp_keysig_t* pcpkeysig_hash</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Global hash for key signatures. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga2953fd446079220a948693dfab5d6055"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a>* pcppubkey_hash</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Global hash for public keys. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,710 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: KEYS</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
<a href="#typedef-members">Typedefs</a> |
|
||||
<a href="#enum-members">Enumerations</a> |
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">KEYS</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>PCP public and secret key functions.
|
||||
<a href="#details">More...</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||||
Classes</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__key__t.html">_pcp_key_t</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">PCP private key structure. <a href="struct__pcp__key__t.html#details">More...</a><br/></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__pubkey__t.html">_pcp_pubkey_t</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">PCP public key structure. <a href="struct__pcp__pubkey__t.html#details">More...</a><br/></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__rec__t.html">_pcp_rec_t</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Encrypted recipient list. <a href="struct__pcp__rec__t.html#details">More...</a><br/></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
|
||||
Typedefs</h2></td></tr>
|
||||
<tr class="memitem:gae88eb39995125f3b68b4ce9175b41732"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct__pcp__key__t.html">_pcp_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a></td></tr>
|
||||
<tr class="memdesc:gae88eb39995125f3b68b4ce9175b41732"><td class="mdescLeft"> </td><td class="mdescRight">Typedef for secret keys. <a href="#gae88eb39995125f3b68b4ce9175b41732"></a><br/></td></tr>
|
||||
<tr class="separator:gae88eb39995125f3b68b4ce9175b41732"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga859c793ca80717fdfc8ebef3e7224746"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct__pcp__pubkey__t.html">_pcp_pubkey_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a></td></tr>
|
||||
<tr class="memdesc:ga859c793ca80717fdfc8ebef3e7224746"><td class="mdescLeft"> </td><td class="mdescRight">Typedef for public keys. <a href="#ga859c793ca80717fdfc8ebef3e7224746"></a><br/></td></tr>
|
||||
<tr class="separator:ga859c793ca80717fdfc8ebef3e7224746"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gab69d94a862952b046c6f340d3c701dd0"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct__pcp__rec__t.html">_pcp_rec_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#gab69d94a862952b046c6f340d3c701dd0">pcp_rec_t</a></td></tr>
|
||||
<tr class="memdesc:gab69d94a862952b046c6f340d3c701dd0"><td class="mdescLeft"> </td><td class="mdescRight">Typedef for public keys. <a href="#gab69d94a862952b046c6f340d3c701dd0"></a><br/></td></tr>
|
||||
<tr class="separator:gab69d94a862952b046c6f340d3c701dd0"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
|
||||
Enumerations</h2></td></tr>
|
||||
<tr class="memitem:ga19da9fe7a497dcd854feff4d29e4472d"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#ga19da9fe7a497dcd854feff4d29e4472d">_PCP_KEY_TYPES</a> { <br/>
|
||||
  <a class="el" href="group__KEYS.html#gga19da9fe7a497dcd854feff4d29e4472da2cbd93780b8b12601c8243317f712b99">PCP_KEY_TYPE_MAINSECRET</a> = 1,
|
||||
<a class="el" href="group__KEYS.html#gga19da9fe7a497dcd854feff4d29e4472da719ee3955ec3f9031d77f12759e75e62">PCP_KEY_TYPE_SECRET</a> = 2,
|
||||
<a class="el" href="group__KEYS.html#gga19da9fe7a497dcd854feff4d29e4472da4ec09a5121dc8a4ebe8a9991058ed0f0">PCP_KEY_TYPE_PUBLIC</a> = 3,
|
||||
<a class="el" href="group__KEYS.html#gga19da9fe7a497dcd854feff4d29e4472da416d3698781131f927f2fa0eaef32490">PCP_KEYSIG_NATIVE</a> = 4,
|
||||
<br/>
|
||||
  <a class="el" href="group__KEYS.html#gga19da9fe7a497dcd854feff4d29e4472da1e1cd206d3b6397ae6e67c479956308b">PCP_KEYSIG_PBP</a> = 5
|
||||
<br/>
|
||||
}</td></tr>
|
||||
<tr class="memdesc:ga19da9fe7a497dcd854feff4d29e4472d"><td class="mdescLeft"> </td><td class="mdescRight">Internal key types. <a href="group__KEYS.html#ga19da9fe7a497dcd854feff4d29e4472d">More...</a><br/></td></tr>
|
||||
<tr class="separator:ga19da9fe7a497dcd854feff4d29e4472d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:gaecf6a1829b4133350a7cb694c3eca8ad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#gaecf6a1829b4133350a7cb694c3eca8ad">pcpkey_new</a> ()</td></tr>
|
||||
<tr class="memdesc:gaecf6a1829b4133350a7cb694c3eca8ad"><td class="mdescLeft"> </td><td class="mdescRight">Generate a new key structure. <a href="#gaecf6a1829b4133350a7cb694c3eca8ad"></a><br/></td></tr>
|
||||
<tr class="separator:gaecf6a1829b4133350a7cb694c3eca8ad"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gabdc09d45ad7a6f9f039f9240635a743f"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#gabdc09d45ad7a6f9f039f9240635a743f">pcppubkey_get_art</a> (<a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> *k)</td></tr>
|
||||
<tr class="memdesc:gabdc09d45ad7a6f9f039f9240635a743f"><td class="mdescLeft"> </td><td class="mdescRight">Generate an ASCII art image of the public key. <a href="#gabdc09d45ad7a6f9f039f9240635a743f"></a><br/></td></tr>
|
||||
<tr class="separator:gabdc09d45ad7a6f9f039f9240635a743f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga13aae5cf5986e308f1af674bedf0e6fd"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#ga13aae5cf5986e308f1af674bedf0e6fd">pcpkey_get_art</a> (<a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *k)</td></tr>
|
||||
<tr class="memdesc:ga13aae5cf5986e308f1af674bedf0e6fd"><td class="mdescLeft"> </td><td class="mdescRight">Generate an ASCII art image of the public key part of a secret key. <a href="#ga13aae5cf5986e308f1af674bedf0e6fd"></a><br/></td></tr>
|
||||
<tr class="separator:ga13aae5cf5986e308f1af674bedf0e6fd"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga30c2d289b43fe80562fc74068f2566ae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#ga30c2d289b43fe80562fc74068f2566ae">pcpkey_encrypt</a> (<a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *key, char *passphrase)</td></tr>
|
||||
<tr class="memdesc:ga30c2d289b43fe80562fc74068f2566ae"><td class="mdescLeft"> </td><td class="mdescRight">Encrypt a secret key structure. <a href="#ga30c2d289b43fe80562fc74068f2566ae"></a><br/></td></tr>
|
||||
<tr class="separator:ga30c2d289b43fe80562fc74068f2566ae"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gad91934413b36cfe316458c90ceb1eb99"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#gad91934413b36cfe316458c90ceb1eb99">pcpkey_decrypt</a> (<a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *key, char *passphrase)</td></tr>
|
||||
<tr class="memdesc:gad91934413b36cfe316458c90ceb1eb99"><td class="mdescLeft"> </td><td class="mdescRight">Decrypt a secret key structure. <a href="#gad91934413b36cfe316458c90ceb1eb99"></a><br/></td></tr>
|
||||
<tr class="separator:gad91934413b36cfe316458c90ceb1eb99"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga22c965c007208e860deaa4c145046283"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#ga22c965c007208e860deaa4c145046283">pcpkey_pub_from_secret</a> (<a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *key)</td></tr>
|
||||
<tr class="memdesc:ga22c965c007208e860deaa4c145046283"><td class="mdescLeft"> </td><td class="mdescRight">Generate a public key structure from a given secret key structure. <a href="#ga22c965c007208e860deaa4c145046283"></a><br/></td></tr>
|
||||
<tr class="separator:ga22c965c007208e860deaa4c145046283"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gaac64db4cd21af0cf79512ea0ea43261f"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#gaac64db4cd21af0cf79512ea0ea43261f">pcp_getkeyid</a> (<a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *k)</td></tr>
|
||||
<tr class="memdesc:gaac64db4cd21af0cf79512ea0ea43261f"><td class="mdescLeft"> </td><td class="mdescRight">Calculate a key-id from public key fields. <a href="#gaac64db4cd21af0cf79512ea0ea43261f"></a><br/></td></tr>
|
||||
<tr class="separator:gaac64db4cd21af0cf79512ea0ea43261f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gab16e85cdb769465c8ce8808b581c7a3d"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#gab16e85cdb769465c8ce8808b581c7a3d">pcp_getpubkeyid</a> (<a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> *k)</td></tr>
|
||||
<tr class="memdesc:gab16e85cdb769465c8ce8808b581c7a3d"><td class="mdescLeft"> </td><td class="mdescRight">Calculate a key-id from public key fields. <a href="#gab16e85cdb769465c8ce8808b581c7a3d"></a><br/></td></tr>
|
||||
<tr class="separator:gab16e85cdb769465c8ce8808b581c7a3d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga78309dfa0b19b697ca64d8af2e7d796d"><td class="memItemLeft" align="right" valign="top">unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#ga78309dfa0b19b697ca64d8af2e7d796d">pcppubkey_getchecksum</a> (<a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> *k)</td></tr>
|
||||
<tr class="memdesc:ga78309dfa0b19b697ca64d8af2e7d796d"><td class="mdescLeft"> </td><td class="mdescRight">Calculate a checksum of a public key. <a href="#ga78309dfa0b19b697ca64d8af2e7d796d"></a><br/></td></tr>
|
||||
<tr class="separator:ga78309dfa0b19b697ca64d8af2e7d796d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gaa2678fef0a024456ee82d1bfa60c5fb2"><td class="memItemLeft" align="right" valign="top">unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#gaa2678fef0a024456ee82d1bfa60c5fb2">pcpkey_getchecksum</a> (<a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *k)</td></tr>
|
||||
<tr class="memdesc:gaa2678fef0a024456ee82d1bfa60c5fb2"><td class="mdescLeft"> </td><td class="mdescRight">Calculate a checksum of a public key part of the given secret key. <a href="#gaa2678fef0a024456ee82d1bfa60c5fb2"></a><br/></td></tr>
|
||||
<tr class="separator:gaa2678fef0a024456ee82d1bfa60c5fb2"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga2cea694131a6a86a9ba76c2514ef1bff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#ga2cea694131a6a86a9ba76c2514ef1bff">pcpkey_exists</a> (char *id)</td></tr>
|
||||
<tr class="memdesc:ga2cea694131a6a86a9ba76c2514ef1bff"><td class="mdescLeft"> </td><td class="mdescRight">Checks if a secret key structure is registered in the secret key hash. <a href="#ga2cea694131a6a86a9ba76c2514ef1bff"></a><br/></td></tr>
|
||||
<tr class="separator:ga2cea694131a6a86a9ba76c2514ef1bff"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gacad3aeb15a79c5d8d848452d33db08f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#gacad3aeb15a79c5d8d848452d33db08f8">pcppubkey_exists</a> (char *id)</td></tr>
|
||||
<tr class="memdesc:gacad3aeb15a79c5d8d848452d33db08f8"><td class="mdescLeft"> </td><td class="mdescRight">Checks if a public key structure is registered in the public key hash. <a href="#gacad3aeb15a79c5d8d848452d33db08f8"></a><br/></td></tr>
|
||||
<tr class="separator:gacad3aeb15a79c5d8d848452d33db08f8"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga201b09819c67a813de56bee423dce5c9"><td class="memItemLeft" align="right" valign="top">unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#ga201b09819c67a813de56bee423dce5c9">pcp_gennonce</a> ()</td></tr>
|
||||
<tr class="memdesc:ga201b09819c67a813de56bee423dce5c9"><td class="mdescLeft"> </td><td class="mdescRight">Generate a nonce. <a href="#ga201b09819c67a813de56bee423dce5c9"></a><br/></td></tr>
|
||||
<tr class="separator:ga201b09819c67a813de56bee423dce5c9"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gafd7aed4591ab1ef769e5d061fe77a3de"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#gafd7aed4591ab1ef769e5d061fe77a3de">pcp_sanitycheck_pub</a> (<a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> *key)</td></tr>
|
||||
<tr class="memdesc:gafd7aed4591ab1ef769e5d061fe77a3de"><td class="mdescLeft"> </td><td class="mdescRight">Make a sanity check of the given public key structure. <a href="#gafd7aed4591ab1ef769e5d061fe77a3de"></a><br/></td></tr>
|
||||
<tr class="separator:gafd7aed4591ab1ef769e5d061fe77a3de"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga749e28028744cf7206492911564c559a"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#ga749e28028744cf7206492911564c559a">pcp_sanitycheck_key</a> (<a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *key)</td></tr>
|
||||
<tr class="memdesc:ga749e28028744cf7206492911564c559a"><td class="mdescLeft"> </td><td class="mdescRight">Make a sanity check of the given secret key structure. <a href="#ga749e28028744cf7206492911564c559a"></a><br/></td></tr>
|
||||
<tr class="separator:ga749e28028744cf7206492911564c559a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga8aa66f20f7671d80e75d7b05a7e692c4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#ga8aa66f20f7671d80e75d7b05a7e692c4">pcp_dumpkey</a> (<a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *k)</td></tr>
|
||||
<tr class="memdesc:ga8aa66f20f7671d80e75d7b05a7e692c4"><td class="mdescLeft"> </td><td class="mdescRight">Dump a secret key structure to stderr. <a href="#ga8aa66f20f7671d80e75d7b05a7e692c4"></a><br/></td></tr>
|
||||
<tr class="separator:ga8aa66f20f7671d80e75d7b05a7e692c4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gaf37d43db0d210b3fbeab0929e3a76ebf"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__KEYS.html#gaf37d43db0d210b3fbeab0929e3a76ebf">pcp_dumppubkey</a> (<a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> *k)</td></tr>
|
||||
<tr class="memdesc:gaf37d43db0d210b3fbeab0929e3a76ebf"><td class="mdescLeft"> </td><td class="mdescRight">Dump a public key structure to stderr. <a href="#gaf37d43db0d210b3fbeab0929e3a76ebf"></a><br/></td></tr>
|
||||
<tr class="separator:gaf37d43db0d210b3fbeab0929e3a76ebf"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<p>PCP public and secret key functions. </p>
|
||||
<p>Functions to generate PCP keypairs, de- and encrypt them and various related helpers. </p>
|
||||
<h2 class="groupheader">Typedef Documentation</h2>
|
||||
<a class="anchor" id="gae88eb39995125f3b68b4ce9175b41732"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">typedef struct <a class="el" href="struct__pcp__key__t.html">_pcp_key_t</a> <a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Typedef for secret keys. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00113">113</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga859c793ca80717fdfc8ebef3e7224746"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">typedef struct <a class="el" href="struct__pcp__pubkey__t.html">_pcp_pubkey_t</a> <a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Typedef for public keys. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00140">140</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gab69d94a862952b046c6f340d3c701dd0"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">typedef struct <a class="el" href="struct__pcp__rec__t.html">_pcp_rec_t</a> <a class="el" href="group__KEYS.html#gab69d94a862952b046c6f340d3c701dd0">pcp_rec_t</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Typedef for public keys. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00174">174</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Enumeration Type Documentation</h2>
|
||||
<a class="anchor" id="ga19da9fe7a497dcd854feff4d29e4472d"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">enum <a class="el" href="group__KEYS.html#ga19da9fe7a497dcd854feff4d29e4472d">_PCP_KEY_TYPES</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Internal key types. </p>
|
||||
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"><em><a class="anchor" id="gga19da9fe7a497dcd854feff4d29e4472da2cbd93780b8b12601c8243317f712b99"></a>PCP_KEY_TYPE_MAINSECRET</em> </td><td>
|
||||
<p>1 - Primary secret </p>
|
||||
</td></tr>
|
||||
<tr><td valign="top"><em><a class="anchor" id="gga19da9fe7a497dcd854feff4d29e4472da719ee3955ec3f9031d77f12759e75e62"></a>PCP_KEY_TYPE_SECRET</em> </td><td>
|
||||
<p>2 - Other secret </p>
|
||||
</td></tr>
|
||||
<tr><td valign="top"><em><a class="anchor" id="gga19da9fe7a497dcd854feff4d29e4472da4ec09a5121dc8a4ebe8a9991058ed0f0"></a>PCP_KEY_TYPE_PUBLIC</em> </td><td>
|
||||
<p>3 - Public </p>
|
||||
</td></tr>
|
||||
<tr><td valign="top"><em><a class="anchor" id="gga19da9fe7a497dcd854feff4d29e4472da416d3698781131f927f2fa0eaef32490"></a>PCP_KEYSIG_NATIVE</em> </td><td>
|
||||
<p>4 - PCP native key signature </p>
|
||||
</td></tr>
|
||||
<tr><td valign="top"><em><a class="anchor" id="gga19da9fe7a497dcd854feff4d29e4472da1e1cd206d3b6397ae6e67c479956308b"></a>PCP_KEYSIG_PBP</em> </td><td>
|
||||
<p>5 - PBP key signature </p>
|
||||
</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="defines_8h_source.html#l00092">92</a> of file <a class="el" href="defines_8h_source.html">defines.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a class="anchor" id="ga8aa66f20f7671d80e75d7b05a7e692c4"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void pcp_dumpkey </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>k</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Dump a secret key structure to stderr. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>Secret key to dump. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaf37d43db0d210b3fbeab0929e3a76ebf"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void pcp_dumppubkey </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td>
|
||||
<td class="paramname"><em>k</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Dump a public key structure to stderr. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>Public key to dump. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga201b09819c67a813de56bee423dce5c9"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned char* pcp_gennonce </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Generate a nonce. </p>
|
||||
<p>This function generates a 24 byte nonce used for cryptographic functions. It allocates the memory and the caller is responsible to clear and free() it after use.</p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a pointer to a 24 byte unsigned char array. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaac64db4cd21af0cf79512ea0ea43261f"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">char* pcp_getkeyid </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>k</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Calculate a key-id from public key fields. </p>
|
||||
<p>This function calculates 2 JEN Hashes: one from the 'pub' field and one from the 'edpub' field. It the puts them together into a newly allocated char pointer of 17 bytes length as hex, terminated with a 0.</p>
|
||||
<p>The key-id is supposed to be collision save, but there's no guarantee. However, it's used locally only, it wont be transmitted over the network and it's not part of any exported packet.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>The secret key structure.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a char pointer containing the key-id string. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gab16e85cdb769465c8ce8808b581c7a3d"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">char* pcp_getpubkeyid </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td>
|
||||
<td class="paramname"><em>k</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Calculate a key-id from public key fields. </p>
|
||||
<p>This does the same as <a class="el" href="group__KEYS.html#gaac64db4cd21af0cf79512ea0ea43261f" title="Calculate a key-id from public key fields.">pcp_getkeyid()</a> but uses a pcp_pubkey_t as input.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>The public key structure.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a char pointer containing the key-id string. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga749e28028744cf7206492911564c559a"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int pcp_sanitycheck_key </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>key</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Make a sanity check of the given secret key structure. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>The secret key structure.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns 1 if the sanity check succeeds, 0 otherwise. Use <a class="el" href="group__FATALS.html#ga0ea01da59af8a06c55258d78da6cb0cb" title="Prints error messages to STDERR, if there are some.">fatals_ifany()</a> to check why. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gafd7aed4591ab1ef769e5d061fe77a3de"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int pcp_sanitycheck_pub </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td>
|
||||
<td class="paramname"><em>key</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Make a sanity check of the given public key structure. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>The public key structure.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns 1 if the sanity check succeeds, 0 otherwise. Use <a class="el" href="group__FATALS.html#ga0ea01da59af8a06c55258d78da6cb0cb" title="Prints error messages to STDERR, if there are some.">fatals_ifany()</a> to check why. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gad91934413b36cfe316458c90ceb1eb99"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a>* pcpkey_decrypt </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>key</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">char * </td>
|
||||
<td class="paramname"><em>passphrase</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Decrypt a secret key structure. </p>
|
||||
<p>The given passphrase will be used to calculate an encryption key using the scrypt() function.</p>
|
||||
<p>The encryption key will be used to decrypt the 'encrypted' field of the structure. If it works, the result will be dissected and put into the correspondig secret key fields.</p>
|
||||
<p>The data structure will be modified directly, no new memory will be allocated.</p>
|
||||
<p>The caller is responsible to clear the passphrase right after use and free() it as soon as possible.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in,out]</td><td class="paramname">key</td><td>The secret key structure.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">passphrase</td><td>The passphrase used to decrypt the key.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a pointer to the decrypted key structure or NULL in case of an error. Use <a class="el" href="group__FATALS.html#ga0ea01da59af8a06c55258d78da6cb0cb" title="Prints error messages to STDERR, if there are some.">fatals_ifany()</a> to catch them. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga30c2d289b43fe80562fc74068f2566ae"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a>* pcpkey_encrypt </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>key</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">char * </td>
|
||||
<td class="paramname"><em>passphrase</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Encrypt a secret key structure. </p>
|
||||
<p>The given passphrase will be used to calculate an encryption key using the scrypt() function.</p>
|
||||
<p>The secret keys will be concatenated and encrypted, the result will be put into the 'encrypted' field. The first byte of each secret key field will be set to 0 to indicate the key is encrypted.</p>
|
||||
<p>The data structure will be modified directly, no new memory will be allocated.</p>
|
||||
<p>The caller is responsible to clear the passphrase right after use and free() it as soon as possible.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in,out]</td><td class="paramname">key</td><td>The secret key structure.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">passphrase</td><td>The passphrase used to encrypt the key.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a pointer to the encrypted key structure or NULL in case of an error. Use <a class="el" href="group__FATALS.html#ga0ea01da59af8a06c55258d78da6cb0cb" title="Prints error messages to STDERR, if there are some.">fatals_ifany()</a> to catch them. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga2cea694131a6a86a9ba76c2514ef1bff"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a>* pcpkey_exists </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">char * </td>
|
||||
<td class="paramname"><em>id</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Checks if a secret key structure is registered in the secret key hash. </p>
|
||||
<p>Returns a pointer to a pcp_key_t structure if there exists a secret key structure with the given id in the secret key hash.</p>
|
||||
<p>FIXME: needs to be moved to <a class="el" href="keyhash_8h_source.html">keyhash.h</a>.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>A null-terminated char pointer of 17 bytes containing a key-id.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a pointer to a pcp_key_t struture or NULL if no key exists. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga13aae5cf5986e308f1af674bedf0e6fd"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">char* pcpkey_get_art </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>k</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Generate an ASCII art image of the public key part of a secret key. </p>
|
||||
<p>see <a class="el" href="group__KEYS.html#gabdc09d45ad7a6f9f039f9240635a743f" title="Generate an ASCII art image of the public key.">pcppubkey_get_art()</a> for details.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>The secret key structure.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns an allocated char pointer containing the ASCII art image. The caller is responsible to free() it. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaa2678fef0a024456ee82d1bfa60c5fb2"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned char* pcpkey_getchecksum </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>k</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Calculate a checksum of a public key part of the given secret key. </p>
|
||||
<p>See <a class="el" href="group__KEYS.html#ga78309dfa0b19b697ca64d8af2e7d796d" title="Calculate a checksum of a public key.">pcppubkey_getchecksum()</a>.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>The secret key structure.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a pointer to an 32 byte unsigned char. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaecf6a1829b4133350a7cb694c3eca8ad"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a>* pcpkey_new </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Generate a new key structure. </p>
|
||||
<p>Owner and mail field must be filled by the caller. Memory for the returned pointer will be allocated by the function.</p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns pointer to new pcp_key_t structure. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga22c965c007208e860deaa4c145046283"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a>* pcpkey_pub_from_secret </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>key</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Generate a public key structure from a given secret key structure. </p>
|
||||
<p>This function extracts all required fields and fills a newly allocated pcp_pubkey_t structure.</p>
|
||||
<p>The caller is responsible to clear and free() it after use.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>The secret key structure.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a new pcp_pubkey_t structure. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gacad3aeb15a79c5d8d848452d33db08f8"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a>* pcppubkey_exists </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">char * </td>
|
||||
<td class="paramname"><em>id</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Checks if a public key structure is registered in the public key hash. </p>
|
||||
<p>Returns a pointer to a pcp_pubkey_t structure if there exists a public key structure with the given id in the public key hash.</p>
|
||||
<p>FIXME: needs to be moved to <a class="el" href="keyhash_8h_source.html">keyhash.h</a>.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>A null-terminated char pointer of 17 bytes containing a key-id.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a pointer to a pcp_pubkey_t struture or NULL if no key exists. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gabdc09d45ad7a6f9f039f9240635a743f"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">char* pcppubkey_get_art </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td>
|
||||
<td class="paramname"><em>k</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Generate an ASCII art image of the public key. </p>
|
||||
<p>This functions originally appeared in OpenSSH rev 1.70, comitted by Alexander von Gernler, published under the BSD license.</p>
|
||||
<p>Human beings are bad at memorizing numbers, especially large numbers, but we are very good at recognizing images. This function calculates an ascii art image of a public key, which the user shall always see, when used. If the image changes, the user would immediately recognize the change, even unconsciously.</p>
|
||||
<p>Sample random art image from the following public key:</p>
|
||||
<div class="fragment"><div class="line">c308455ed4cf0c140bf48bfb0d87c4999c66e823bbe74ff16e2a9adc8e770747</div>
|
||||
<div class="line"></div>
|
||||
<div class="line">+----------------+</div>
|
||||
<div class="line">| .o.ooo. |</div>
|
||||
<div class="line">| o . o |</div>
|
||||
<div class="line">| . . = |</div>
|
||||
<div class="line">| . o + |</div>
|
||||
<div class="line">| . + |</div>
|
||||
<div class="line">| . |</div>
|
||||
<div class="line">| |</div>
|
||||
<div class="line">| |</div>
|
||||
<div class="line">+----------------+</div>
|
||||
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>The public key structure.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns an allocated char pointer containing the ASCII art image. The caller is responsible to free() it. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga78309dfa0b19b697ca64d8af2e7d796d"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned char* pcppubkey_getchecksum </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td>
|
||||
<td class="paramname"><em>k</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Calculate a checksum of a public key. </p>
|
||||
<p>This function calculates a 32 byte checksum of the encryption public key part of the given pcp_pubkey_t structure using crypto_hash_sha256.</p>
|
||||
<p>The returned pointer will be allocated and it is the responsibility of the caller to free() ist after use.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>The public key structure.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a pointer to an 32 byte unsigned char. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,540 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: PCPSTREAMS</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
<a href="#typedef-members">Typedefs</a> |
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">PCPSTREAMS</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>I/O wrapper for files or buffers.
|
||||
<a href="#details">More...</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||||
Classes</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__stream__t.html">_pcp_stream_t</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">An I/O wrapper object backed by a file or a buffer. <a href="struct__pcp__stream__t.html#details">More...</a><br/></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
|
||||
Typedefs</h2></td></tr>
|
||||
<tr class="memitem:gaec72241f86d5391d5cae7477c66cdd73"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct__pcp__stream__t.html">_pcp_stream_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a></td></tr>
|
||||
<tr class="memdesc:gaec72241f86d5391d5cae7477c66cdd73"><td class="mdescLeft"> </td><td class="mdescRight">The name used everywhere. <a href="#gaec72241f86d5391d5cae7477c66cdd73"></a><br/></td></tr>
|
||||
<tr class="separator:gaec72241f86d5391d5cae7477c66cdd73"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:ga6733979d79704b2e3ce914662b0cebc8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Pcpstream.html#ga6733979d79704b2e3ce914662b0cebc8">ps_new_file</a> (FILE *backendfd)</td></tr>
|
||||
<tr class="memdesc:ga6733979d79704b2e3ce914662b0cebc8"><td class="mdescLeft"> </td><td class="mdescRight">Create a new stream, backed with an open file. <a href="#ga6733979d79704b2e3ce914662b0cebc8"></a><br/></td></tr>
|
||||
<tr class="separator:ga6733979d79704b2e3ce914662b0cebc8"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga1b50c92fdad290e59317af2404460662"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Pcpstream.html#ga1b50c92fdad290e59317af2404460662">ps_new_inbuffer</a> (<a class="el" href="group__Buffer.html#ga2460ea15a51a37433b5f2e1503667e8f">Buffer</a> *b)</td></tr>
|
||||
<tr class="memdesc:ga1b50c92fdad290e59317af2404460662"><td class="mdescLeft"> </td><td class="mdescRight">Create a new input stream, backed with filled a buffer. <a href="#ga1b50c92fdad290e59317af2404460662"></a><br/></td></tr>
|
||||
<tr class="separator:ga1b50c92fdad290e59317af2404460662"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga13ec0245b579949e6d586e1817615d2e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Pcpstream.html#ga13ec0245b579949e6d586e1817615d2e">ps_new_outbuffer</a> ()</td></tr>
|
||||
<tr class="memdesc:ga13ec0245b579949e6d586e1817615d2e"><td class="mdescLeft"> </td><td class="mdescRight">Create a new output stream, backed with a buffer. <a href="#ga13ec0245b579949e6d586e1817615d2e"></a><br/></td></tr>
|
||||
<tr class="separator:ga13ec0245b579949e6d586e1817615d2e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gacfede4b1e9fa1ce0ccd7a55379ff6f15"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Pcpstream.html#gacfede4b1e9fa1ce0ccd7a55379ff6f15">ps_read</a> (<a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *stream, void *buf, size_t readbytes)</td></tr>
|
||||
<tr class="memdesc:gacfede4b1e9fa1ce0ccd7a55379ff6f15"><td class="mdescLeft"> </td><td class="mdescRight">Read bytes into the given buffer from the current stream. <a href="#gacfede4b1e9fa1ce0ccd7a55379ff6f15"></a><br/></td></tr>
|
||||
<tr class="separator:gacfede4b1e9fa1ce0ccd7a55379ff6f15"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gab8e98ef81e802a242fbdb788b4387873"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Pcpstream.html#gab8e98ef81e802a242fbdb788b4387873">ps_write</a> (<a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *stream, void *buf, size_t writebytes)</td></tr>
|
||||
<tr class="memdesc:gab8e98ef81e802a242fbdb788b4387873"><td class="mdescLeft"> </td><td class="mdescRight">Write bytes from the given buffer into the current stream. <a href="#gab8e98ef81e802a242fbdb788b4387873"></a><br/></td></tr>
|
||||
<tr class="separator:gab8e98ef81e802a242fbdb788b4387873"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gafd50eb5e9c8ba399e133b6029eca8856"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Pcpstream.html#gafd50eb5e9c8ba399e133b6029eca8856">ps_print</a> (<a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *stream, const char *fmt,...)</td></tr>
|
||||
<tr class="memdesc:gafd50eb5e9c8ba399e133b6029eca8856"><td class="mdescLeft"> </td><td class="mdescRight">Write a formatted string to the stream. <a href="#gafd50eb5e9c8ba399e133b6029eca8856"></a><br/></td></tr>
|
||||
<tr class="separator:gafd50eb5e9c8ba399e133b6029eca8856"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga72812698d6b6aca964c7289be41eccf8"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Pcpstream.html#ga72812698d6b6aca964c7289be41eccf8">ps_tell</a> (<a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *stream)</td></tr>
|
||||
<tr class="memdesc:ga72812698d6b6aca964c7289be41eccf8"><td class="mdescLeft"> </td><td class="mdescRight">Tell the current read or write offset. <a href="#ga72812698d6b6aca964c7289be41eccf8"></a><br/></td></tr>
|
||||
<tr class="separator:ga72812698d6b6aca964c7289be41eccf8"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga64bc34dfbc1b3951c3d62e82a1ae8c34"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Buffer.html#ga2460ea15a51a37433b5f2e1503667e8f">Buffer</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Pcpstream.html#ga64bc34dfbc1b3951c3d62e82a1ae8c34">ps_buffer</a> (<a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *stream)</td></tr>
|
||||
<tr class="memdesc:ga64bc34dfbc1b3951c3d62e82a1ae8c34"><td class="mdescLeft"> </td><td class="mdescRight">Access the Buffer backend pointer. <a href="#ga64bc34dfbc1b3951c3d62e82a1ae8c34"></a><br/></td></tr>
|
||||
<tr class="separator:ga64bc34dfbc1b3951c3d62e82a1ae8c34"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga4a68da22eca6e9bd854d54467a071d0a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Pcpstream.html#ga4a68da22eca6e9bd854d54467a071d0a">ps_close</a> (<a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *stream)</td></tr>
|
||||
<tr class="memdesc:ga4a68da22eca6e9bd854d54467a071d0a"><td class="mdescLeft"> </td><td class="mdescRight">Close the stream and frees allocated memory. <a href="#ga4a68da22eca6e9bd854d54467a071d0a"></a><br/></td></tr>
|
||||
<tr class="separator:ga4a68da22eca6e9bd854d54467a071d0a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gac845e4dc3677aeef5e4de343d3f8033d"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Pcpstream.html#gac845e4dc3677aeef5e4de343d3f8033d">ps_end</a> (<a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *stream)</td></tr>
|
||||
<tr class="memdesc:gac845e4dc3677aeef5e4de343d3f8033d"><td class="mdescLeft"> </td><td class="mdescRight">Check if EOF have been reached. <a href="#gac845e4dc3677aeef5e4de343d3f8033d"></a><br/></td></tr>
|
||||
<tr class="separator:gac845e4dc3677aeef5e4de343d3f8033d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga97b83164ecda8fd66897863ec7976890"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Pcpstream.html#ga97b83164ecda8fd66897863ec7976890">ps_err</a> (<a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *stream)</td></tr>
|
||||
<tr class="memdesc:ga97b83164ecda8fd66897863ec7976890"><td class="mdescLeft"> </td><td class="mdescRight">Check if an error occurred during a read or write operation. <a href="#ga97b83164ecda8fd66897863ec7976890"></a><br/></td></tr>
|
||||
<tr class="separator:ga97b83164ecda8fd66897863ec7976890"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<p>I/O wrapper for files or buffers. </p>
|
||||
<p>Simple wrapper around FILE streams or Buffers, depending how the user initialized them. The Pcpstream object behaves always the same and it doesn't matter how it's backed.</p>
|
||||
<p>We use it in the lib, e.g. in the crypto routines. That way we can support blockwise crypto on buffers or files.</p>
|
||||
<p>Streams are, just like iostreams in c++, either output or input mode.</p>
|
||||
<p>Sample usage:</p>
|
||||
<div class="fragment"><div class="line"><span class="preprocessor">#include <stdio.h></span></div>
|
||||
<div class="line"><span class="preprocessor">#include <stdlib.h></span></div>
|
||||
<div class="line"><span class="preprocessor">#include <limits.h></span></div>
|
||||
<div class="line"></div>
|
||||
<div class="line"><span class="preprocessor">#include <pcp.h></span></div>
|
||||
<div class="line"></div>
|
||||
<div class="line"><span class="keywordtype">int</span> main() {</div>
|
||||
<div class="line"> <span class="comment">/* create a file with "encrypted" data */</span></div>
|
||||
<div class="line"> FILE *out, *in;</div>
|
||||
<div class="line"> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> clear[8] = <span class="stringliteral">"ABCDEFGH"</span>;</div>
|
||||
<div class="line"> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> key[8] = <span class="stringliteral">"IxD8Lq1K"</span>;</div>
|
||||
<div class="line"> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> crypt[8] = {0};</div>
|
||||
<div class="line"> <span class="keywordtype">int</span> blocks = 8;</div>
|
||||
<div class="line"> <span class="keywordtype">int</span> i = 0;</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <span class="keywordflow">if</span>((out = fopen(<span class="stringliteral">"teststream.out"</span>, <span class="stringliteral">"wb+"</span>)) == NULL) {</div>
|
||||
<div class="line"> fprintf(stderr, <span class="stringliteral">"oops, could not open file!\n"</span>);</div>
|
||||
<div class="line"> <span class="keywordflow">return</span> 1;</div>
|
||||
<div class="line"> }</div>
|
||||
<div class="line"> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *pout = <a class="code" href="group__Pcpstream.html#ga6733979d79704b2e3ce914662b0cebc8" title="Create a new stream, backed with an open file.">ps_new_file</a>(out);</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <span class="comment">/* "encrypt" a couple of times into the file */</span></div>
|
||||
<div class="line"> <span class="keywordflow">for</span>(i=0; i<blocks; i++) {</div>
|
||||
<div class="line"> memcpy(crypt, clear, 8);</div>
|
||||
<div class="line"> <a class="code" href="group__UTILs.html#gaad81054336208b62739f1e20091213a6" title="XOR an input buffer with another buffer.">_xorbuf</a>(key, crypt, 8);</div>
|
||||
<div class="line"> <a class="code" href="group__Pcpstream.html#gab8e98ef81e802a242fbdb788b4387873" title="Write bytes from the given buffer into the current stream.">ps_write</a>(pout, crypt, 8);</div>
|
||||
<div class="line"> }</div>
|
||||
<div class="line"> <a class="code" href="group__Pcpstream.html#ga4a68da22eca6e9bd854d54467a071d0a" title="Close the stream and frees allocated memory.">ps_close</a>(pout);</div>
|
||||
<div class="line"> fclose(out);</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <span class="comment">/* read it in again using an in and an out stream */</span></div>
|
||||
<div class="line"> <span class="keywordflow">if</span>((in = fopen(<span class="stringliteral">"teststream.out"</span>, <span class="stringliteral">"rb"</span>)) == NULL) {</div>
|
||||
<div class="line"> fprintf(stderr, <span class="stringliteral">"oops, could not open file!\n"</span>);</div>
|
||||
<div class="line"> <span class="keywordflow">return</span> 1;</div>
|
||||
<div class="line"> }</div>
|
||||
<div class="line"> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *pin = <a class="code" href="group__Pcpstream.html#ga6733979d79704b2e3ce914662b0cebc8" title="Create a new stream, backed with an open file.">ps_new_file</a>(in);</div>
|
||||
<div class="line"> </div>
|
||||
<div class="line"> <span class="comment">/* we'll use this stream to put the "decrypted" data in.</span></div>
|
||||
<div class="line"><span class="comment"> note, that this could be a file as well. */</span></div>
|
||||
<div class="line"> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *pclear = <a class="code" href="group__Pcpstream.html#ga13ec0245b579949e6d586e1817615d2e" title="Create a new output stream, backed with a buffer.">ps_new_outbuffer</a>();</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <span class="comment">/* read and "decrypt" */</span></div>
|
||||
<div class="line"> <span class="keywordflow">for</span>(i=0; i<blocks; i++) {</div>
|
||||
<div class="line"> <a class="code" href="group__Pcpstream.html#gacfede4b1e9fa1ce0ccd7a55379ff6f15" title="Read bytes into the given buffer from the current stream.">ps_read</a>(pin, crypt, 8);</div>
|
||||
<div class="line"> <a class="code" href="group__UTILs.html#gaad81054336208b62739f1e20091213a6" title="XOR an input buffer with another buffer.">_xorbuf</a>(key, crypt, 8);</div>
|
||||
<div class="line"> <a class="code" href="group__Pcpstream.html#gab8e98ef81e802a242fbdb788b4387873" title="Write bytes from the given buffer into the current stream.">ps_write</a>(pclear, crypt, 8);</div>
|
||||
<div class="line"> }</div>
|
||||
<div class="line"> <a class="code" href="group__Pcpstream.html#ga4a68da22eca6e9bd854d54467a071d0a" title="Close the stream and frees allocated memory.">ps_close</a>(pin);</div>
|
||||
<div class="line"> fclose(in);</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <span class="comment">/* now extract the buffer from the output stream */</span></div>
|
||||
<div class="line"> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *result = <a class="code" href="group__Pcpstream.html#ga64bc34dfbc1b3951c3d62e82a1ae8c34" title="Access the Buffer backend pointer.">ps_buffer</a>(pclear);</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <span class="comment">/* and verify if it's "decrypted" (re-use crypt) */</span></div>
|
||||
<div class="line"> <span class="keywordflow">for</span>(i=0; i<blocks; i++) {</div>
|
||||
<div class="line"> <a class="code" href="group__Buffer.html#gaddf2e52378c6cd765b940617cdef2bd2" title="Read some chunk of data from the Buffer.">buffer_get_chunk</a>(result, crypt, 8);</div>
|
||||
<div class="line"> <span class="keywordflow">if</span>(memcmp(crypt, clear, 8) != 0) {</div>
|
||||
<div class="line"> fprintf(stderr, <span class="stringliteral">"Oops, block %d doesn't match\n"</span>, i);</div>
|
||||
<div class="line"> <span class="keywordflow">goto</span> error;</div>
|
||||
<div class="line"> }</div>
|
||||
<div class="line"> }</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <a class="code" href="group__Pcpstream.html#ga4a68da22eca6e9bd854d54467a071d0a" title="Close the stream and frees allocated memory.">ps_close</a>(pclear);</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> fprintf(stderr, <span class="stringliteral">"done\n"</span>);</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> error:</div>
|
||||
<div class="line"> <a class="code" href="group__Pcpstream.html#ga4a68da22eca6e9bd854d54467a071d0a" title="Close the stream and frees allocated memory.">ps_close</a>(pclear);</div>
|
||||
<div class="line"> <span class="keywordflow">return</span> 1;</div>
|
||||
<div class="line">}</div>
|
||||
</div><!-- fragment --> <h2 class="groupheader">Typedef Documentation</h2>
|
||||
<a class="anchor" id="gaec72241f86d5391d5cae7477c66cdd73"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">typedef struct <a class="el" href="struct__pcp__stream__t.html">_pcp_stream_t</a> <a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>The name used everywhere. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00067">67</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a class="anchor" id="ga64bc34dfbc1b3951c3d62e82a1ae8c34"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__Buffer.html#ga2460ea15a51a37433b5f2e1503667e8f">Buffer</a>* ps_buffer </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>stream</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Access the Buffer backend pointer. </p>
|
||||
<p>Use this function to access the underlying Buffer object of an output stream to access the contents written to it. Only usefull if the stream have been initialized with <a class="el" href="group__Pcpstream.html#ga13ec0245b579949e6d586e1817615d2e" title="Create a new output stream, backed with a buffer.">ps_new_outbuffer()</a>.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">stream</td><td>The stream object.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a pointer to the Buffer object. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga4a68da22eca6e9bd854d54467a071d0a"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void ps_close </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>stream</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Close the stream and frees allocated memory. </p>
|
||||
<p>If the backend of the stream was a FILE stream, close it, unless it is stdin, stdout or stderr.</p>
|
||||
<p>If the backend was a Buffer, clear and free it.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">stream</td><td>The stream to close. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gac845e4dc3677aeef5e4de343d3f8033d"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int ps_end </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>stream</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Check if EOF have been reached. </p>
|
||||
<p>This function can be used to check if there are no more bytes to read. This will happen if we reach EOF with a FILE backed stream or <a class="el" href="group__Buffer.html#ga914506665c6fac92ccb17f92cefd0914" title="Tell if there are no more bytes to read.">buffer_done()</a> with a Buffer backed stream.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">stream</td><td>The stream object.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns 1 if we reached EOF, 0 otherwise </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga97b83164ecda8fd66897863ec7976890"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int ps_err </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>stream</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Check if an error occurred during a read or write operation. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">stream</td><td>The stream object.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns 1 if there were any errors or 0 otherwise. Also check errno() and <a class="el" href="group__FATALS.html#ga0ea01da59af8a06c55258d78da6cb0cb" title="Prints error messages to STDERR, if there are some.">fatals_ifany()</a>. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga6733979d79704b2e3ce914662b0cebc8"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a>* ps_new_file </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">FILE * </td>
|
||||
<td class="paramname"><em>backendfd</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Create a new stream, backed with an open file. </p>
|
||||
<p>The stream used for in- or output.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">backendfd</td><td>An open FILE stream.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a Pcpstream structure. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga1b50c92fdad290e59317af2404460662"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a>* ps_new_inbuffer </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__Buffer.html#ga2460ea15a51a37433b5f2e1503667e8f">Buffer</a> * </td>
|
||||
<td class="paramname"><em>b</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Create a new input stream, backed with filled a buffer. </p>
|
||||
<p>This kind of stream can be used for reading only.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>A Buffer object filled with data.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a Pcpstream structure. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga13ec0245b579949e6d586e1817615d2e"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a>* ps_new_outbuffer </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Create a new output stream, backed with a buffer. </p>
|
||||
<p>The buffer used to write data to will be allocated and filled by the class. You can retrieve it later.</p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a Pcpstream structure. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gafd50eb5e9c8ba399e133b6029eca8856"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">size_t ps_print </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>stream</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">const char * </td>
|
||||
<td class="paramname"><em>fmt</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"> </td>
|
||||
<td class="paramname"><em>...</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Write a formatted string to the stream. </p>
|
||||
<p>Use an printf() style format string to print something out to a stream.</p>
|
||||
<p>Sets err in case of an error. See <a class="el" href="group__Pcpstream.html#ga97b83164ecda8fd66897863ec7976890" title="Check if an error occurred during a read or write operation.">ps_err()</a>.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">stream</td><td>The input stream to read from.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">fmt</td><td>The printf() compatible format description.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">...</td><td>A variable number of arguments for the format string.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns the number of bytes written. in case of errors it returns 0. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gacfede4b1e9fa1ce0ccd7a55379ff6f15"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">size_t ps_read </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>stream</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">void * </td>
|
||||
<td class="paramname"><em>buf</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>readbytes</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Read bytes into the given buffer from the current stream. </p>
|
||||
<p>This function reads 'readbytes' bytes from the stream into given buf. The buffer needs to be properly allocated by the caller in advance to have at least readbytes len.</p>
|
||||
<p>Sets eof=1 if end of file or end of buffer has been reached.</p>
|
||||
<p>Sets err=1 if an error occurred, fatals() maybe set, or errno.</p>
|
||||
<p>See <a class="el" href="group__Pcpstream.html#gac845e4dc3677aeef5e4de343d3f8033d" title="Check if EOF have been reached.">ps_end()</a> and <a class="el" href="group__Pcpstream.html#ga97b83164ecda8fd66897863ec7976890" title="Check if an error occurred during a read or write operation.">ps_err()</a>.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">stream</td><td>The input stream to read from.</td></tr>
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">buf</td><td>The buffer where to put read bytes.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">readbytes</td><td>The number of bytes to read.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns the bytes read, if there's nothing more to read, it returns 0. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga72812698d6b6aca964c7289be41eccf8"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">size_t ps_tell </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>stream</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Tell the current read or write offset. </p>
|
||||
<p>This function works like ftell() on a FILE stream or like Buffer->offset in the Buffer class.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">stream</td><td>The input stream to read from.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns the the number of bytes read/written so far. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gab8e98ef81e802a242fbdb788b4387873"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">size_t ps_write </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
||||
<td class="paramname"><em>stream</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">void * </td>
|
||||
<td class="paramname"><em>buf</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>writebytes</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Write bytes from the given buffer into the current stream. </p>
|
||||
<p>This function writes 'writebytes' bytes from the given buf into the stream</p>
|
||||
<p>Sets err in case of an error. See <a class="el" href="group__Pcpstream.html#ga97b83164ecda8fd66897863ec7976890" title="Check if an error occurred during a read or write operation.">ps_err()</a>.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">stream</td><td>The input stream to write to.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>The buffer containing data to put into the stream.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">writebytes</td><td>The number of bytes to write.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns the number of bytes written. in case of errors it returns 0. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,310 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: KEYEXPORT</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">KEYEXPORT</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Functions to export and import keys in various formats.
|
||||
<a href="#details">More...</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:ga297bca6f73e413db21c5fb1095fc51d5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Buffer.html#ga2460ea15a51a37433b5f2e1503667e8f">Buffer</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PubKeyExport.html#ga297bca6f73e413db21c5fb1095fc51d5">pcp_export_rfc_pub</a> (<a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *sk)</td></tr>
|
||||
<tr class="memdesc:ga297bca6f73e413db21c5fb1095fc51d5"><td class="mdescLeft"> </td><td class="mdescRight">RFC4880 alike public key export with some modifications. <a href="#ga297bca6f73e413db21c5fb1095fc51d5"></a><br/></td></tr>
|
||||
<tr class="separator:ga297bca6f73e413db21c5fb1095fc51d5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gabfb1403cf523240b3b3192a9611b0e84"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Buffer.html#ga2460ea15a51a37433b5f2e1503667e8f">Buffer</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PubKeyExport.html#gabfb1403cf523240b3b3192a9611b0e84">pcp_export_pbp_pub</a> (<a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *sk)</td></tr>
|
||||
<tr class="memdesc:gabfb1403cf523240b3b3192a9611b0e84"><td class="mdescLeft"> </td><td class="mdescRight">Export a public key in PBP format. <a href="#gabfb1403cf523240b3b3192a9611b0e84"></a><br/></td></tr>
|
||||
<tr class="separator:gabfb1403cf523240b3b3192a9611b0e84"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga12c5a4abb2ee4a39468a0bce40e1803e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Buffer.html#ga2460ea15a51a37433b5f2e1503667e8f">Buffer</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PubKeyExport.html#ga12c5a4abb2ee4a39468a0bce40e1803e">pcp_export_yaml_pub</a> (<a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *sk)</td></tr>
|
||||
<tr class="memdesc:ga12c5a4abb2ee4a39468a0bce40e1803e"><td class="mdescLeft"> </td><td class="mdescRight">Export a public key in yaml format. <a href="#ga12c5a4abb2ee4a39468a0bce40e1803e"></a><br/></td></tr>
|
||||
<tr class="separator:ga12c5a4abb2ee4a39468a0bce40e1803e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga76abbe52369932afe6b929ddebabb3a5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Buffer.html#ga2460ea15a51a37433b5f2e1503667e8f">Buffer</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PubKeyExport.html#ga76abbe52369932afe6b929ddebabb3a5">pcp_export_perl_pub</a> (<a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *sk)</td></tr>
|
||||
<tr class="memdesc:ga76abbe52369932afe6b929ddebabb3a5"><td class="mdescLeft"> </td><td class="mdescRight">Export a public key in perl code format. <a href="#ga76abbe52369932afe6b929ddebabb3a5"></a><br/></td></tr>
|
||||
<tr class="separator:ga76abbe52369932afe6b929ddebabb3a5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga10025040f3c5c93644aab02673346723"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Buffer.html#ga2460ea15a51a37433b5f2e1503667e8f">Buffer</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PubKeyExport.html#ga10025040f3c5c93644aab02673346723">pcp_export_c_pub</a> (<a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *sk)</td></tr>
|
||||
<tr class="memdesc:ga10025040f3c5c93644aab02673346723"><td class="mdescLeft"> </td><td class="mdescRight">Export a public key in C code format. <a href="#ga10025040f3c5c93644aab02673346723"></a><br/></td></tr>
|
||||
<tr class="separator:ga10025040f3c5c93644aab02673346723"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gae702b541366d32ae73e76e4810928bd9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Buffer.html#ga2460ea15a51a37433b5f2e1503667e8f">Buffer</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PubKeyExport.html#gae702b541366d32ae73e76e4810928bd9">pcp_export_secret</a> (<a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *sk, char *passphrase)</td></tr>
|
||||
<tr class="memdesc:gae702b541366d32ae73e76e4810928bd9"><td class="mdescLeft"> </td><td class="mdescRight">Export secret key. <a href="#gae702b541366d32ae73e76e4810928bd9"></a><br/></td></tr>
|
||||
<tr class="separator:gae702b541366d32ae73e76e4810928bd9"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<p>Functions to export and import keys in various formats. </p>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a class="anchor" id="ga10025040f3c5c93644aab02673346723"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__Buffer.html#ga2460ea15a51a37433b5f2e1503667e8f">Buffer</a>* pcp_export_c_pub </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>sk</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Export a public key in C code format. </p>
|
||||
<p>Export a public key in C code format.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">sk</td><td>a secret key structure of type pcp_key_t. The secret keys in there have to be already decrypted.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>the function returns a Buffer object containing the binary blob containing a C code string. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gabfb1403cf523240b3b3192a9611b0e84"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__Buffer.html#ga2460ea15a51a37433b5f2e1503667e8f">Buffer</a>* pcp_export_pbp_pub </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>sk</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Export a public key in PBP format. </p>
|
||||
<p>Export a public key in the format described at <a href="https://github.com/stef/pbp/blob/master/doc/fileformats.txt">https://github.com/stef/pbp/blob/master/doc/fileformats.txt</a></p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">sk</td><td>a secret key structure of type pcp_key_t. The secret keys in there have to be already decrypted.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>the function returns a Buffer object containing the binary blob in the format described above. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga76abbe52369932afe6b929ddebabb3a5"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__Buffer.html#ga2460ea15a51a37433b5f2e1503667e8f">Buffer</a>* pcp_export_perl_pub </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>sk</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Export a public key in perl code format. </p>
|
||||
<p>Export a public key in perl code format.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">sk</td><td>a secret key structure of type pcp_key_t. The secret keys in there have to be already decrypted.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>the function returns a Buffer object containing the binary blob containing a perl code string (a hash definition). </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga297bca6f73e413db21c5fb1095fc51d5"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__Buffer.html#ga2460ea15a51a37433b5f2e1503667e8f">Buffer</a>* pcp_export_rfc_pub </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>sk</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>RFC4880 alike public key export with some modifications. </p>
|
||||
<p>RFC4880 alike public key export with the following modifications:</p>
|
||||
<ul>
|
||||
<li>Key material is native to us and not specified in the rfc for curve25519/ed25519. Therefore we're doing it like so: mp|sp|cp where mp = master keysigning public key (ed25519), 32 bytes sp = signing public key (ed25519), 32 bytes cp = encryption public key (curve25519), 32 bytes</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>The various cipher (algorithm) id's are unspecified for our native ciphers. Therefore I created them, starting at 33 (afaik 22 is the last officially assigned one). Once those cipher numbers become official, I'll use them instead of my own.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>The exported public key packet contains a signature. We're filling out all required fields. A signature has a variable number of sig sub packets. We use only these types: <pre class="fragment"> 2 = Signature Creation Time (4 byte)
|
||||
3 = Signature Expiration Time (4 byte)
|
||||
9 = Key Expiration Time (4 bytes)
|
||||
20 = Notation Data (4 byte flags, N bytes name+value)
|
||||
27 = Key Flags (1 byte, use 0x02, 0x08 and 0x80
|
||||
</pre></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>We use 3 notation fields: "owner", which contains the owner name, if set "mail", which contains the emailaddress, if set "serial", which contains the 32bit serial number</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>The actual signature field consists of the blake2 hash of (mp|sp|cp|keysig) followed by the nacl signature. However, we do not put an extra 16byte value of the hash, since the nacl signature already contains the full hash. So, an implementation could simply pull the fist 16 bytes of said hash to get the same result.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>The mp keypair will be used for signing. The recipient can verify the signature, since mp is included.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>While we put expiration dates for the key and the signature into the export as the rfc demands, we ignore them. Key expiring is not implemented in PCP yet.</li>
|
||||
</ul>
|
||||
<p>So, a full pubkey export looks like this </p>
|
||||
<pre class="fragment"> version
|
||||
ctime
|
||||
cipher
|
||||
3 x raw keys \
|
||||
sigheader > calc hash from this
|
||||
sigsubs (header+data) /
|
||||
hash
|
||||
signature
|
||||
</pre><p>We use big-endian always.</p>
|
||||
<p>Unlike RC4880 public key exports, we're using Z85 encoding if armoring have been requested by the user. Armored output has a header and a footer line, however they are ignored by the parser and are therefore optional. Newlines, if present, are optional as well.</p>
|
||||
<p><a href="http://tools.ietf.org/html/rfc4880#section-5.2.3">http://tools.ietf.org/html/rfc4880#section-5.2.3</a></p>
|
||||
<p>The key sig blob will be saved in the Vault if we import a public key unaltered, so we can verify the signature at will anytime. When exporting a foreign public key, we will just put out that key sig blob to the export untouched.</p>
|
||||
<p>Currently PCP only support self-signed public key exports.</p>
|
||||
<p>We only support one key signature per key. However, it would be easily possible to support foreign keysigs as well in the future.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">sk</td><td>a secret key structure of type pcp_key_t. The secret keys in there have to be already decrypted.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>the function returns a Buffer object containing the binary blob in the format described above. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gae702b541366d32ae73e76e4810928bd9"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__Buffer.html#ga2460ea15a51a37433b5f2e1503667e8f">Buffer</a>* pcp_export_secret </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>sk</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">char * </td>
|
||||
<td class="paramname"><em>passphrase</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Export secret key. </p>
|
||||
<p>Export a secret key.</p>
|
||||
<p>Secret key are exported in proprietary format.</p>
|
||||
<p>The exported binary blob is symmetrically encrypted using the NACL function crypto_secret(). The passphrase will be used to derive an encryption key using the STAR function scrypt().</p>
|
||||
<p>The binary data before encryption consists of:</p>
|
||||
<ul>
|
||||
<li>ED25519 master signing secret</li>
|
||||
<li>Curve25519 encryption secret</li>
|
||||
<li>ED25519 signing secret</li>
|
||||
<li>ED25519 master signing public</li>
|
||||
<li>Curve25519 encryption public</li>
|
||||
<li>ED25519 signing public</li>
|
||||
<li>Optional notations, currently supported are the 'owner' and 'mail' attributes. If an attribute is empty, the len field contains zero.<ol type="1">
|
||||
<li>len(VAL) (2 byte uint)</li>
|
||||
<li>VAL (string without trailing zero)</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>8 byte creation time (epoch)</li>
|
||||
<li>4 byte key version</li>
|
||||
<li>4 byte serial number</li>
|
||||
</ul>
|
||||
<p>The encrypted cipher will be prepended with the random nonce used to encrypt the data and looks after encryption as such:</p>
|
||||
<p>Nonce | Cipher</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">sk</td><td>a secret key structure of type pcp_key_t. The secret keys in there have to be already decrypted.</td></tr>
|
||||
<tr><td class="paramname">passphrase</td><td>the passphrase to be used to encrypt the export, a null terminated char array.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>the function returns a Buffer object containing the binary blob in the format described above. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga12c5a4abb2ee4a39468a0bce40e1803e"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__Buffer.html#ga2460ea15a51a37433b5f2e1503667e8f">Buffer</a>* pcp_export_yaml_pub </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
||||
<td class="paramname"><em>sk</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Export a public key in yaml format. </p>
|
||||
<p>Export a public key in yaml format.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">sk</td><td>a secret key structure of type pcp_key_t. The secret keys in there have to be already decrypted.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>the function returns a Buffer object containing the binary blob containing a YAML string. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,239 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: UTILS</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">UTILS</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Various useful helper functions.
|
||||
<a href="#details">More...</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:ga16a91a0ad754a3662f0091e71529fb50"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__UTILs.html#ga16a91a0ad754a3662f0091e71529fb50">_lc</a> (char *in)</td></tr>
|
||||
<tr class="memdesc:ga16a91a0ad754a3662f0091e71529fb50"><td class="mdescLeft"> </td><td class="mdescRight">Convert a char array to lowercase. <a href="#ga16a91a0ad754a3662f0091e71529fb50"></a><br/></td></tr>
|
||||
<tr class="separator:ga16a91a0ad754a3662f0091e71529fb50"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga20509d081da3e4fefbf7785d318d456a"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__UTILs.html#ga20509d081da3e4fefbf7785d318d456a">_findoffset</a> (unsigned char *bin, size_t binlen, char *sigstart, size_t hlen)</td></tr>
|
||||
<tr class="memdesc:ga20509d081da3e4fefbf7785d318d456a"><td class="mdescLeft"> </td><td class="mdescRight">Find the offset of some offset marker in some arbitrary data. <a href="#ga20509d081da3e4fefbf7785d318d456a"></a><br/></td></tr>
|
||||
<tr class="separator:ga20509d081da3e4fefbf7785d318d456a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gaad81054336208b62739f1e20091213a6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__UTILs.html#gaad81054336208b62739f1e20091213a6">_xorbuf</a> (unsigned char *iv, unsigned char *buf, size_t xlen)</td></tr>
|
||||
<tr class="memdesc:gaad81054336208b62739f1e20091213a6"><td class="mdescLeft"> </td><td class="mdescRight">XOR an input buffer with another buffer. <a href="#gaad81054336208b62739f1e20091213a6"></a><br/></td></tr>
|
||||
<tr class="separator:gaad81054336208b62739f1e20091213a6"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga3dcb1fcb0f840869eab341598da50b55"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__UTILs.html#ga3dcb1fcb0f840869eab341598da50b55">_dump</a> (char *n, unsigned char *d, size_t s)</td></tr>
|
||||
<tr class="memdesc:ga3dcb1fcb0f840869eab341598da50b55"><td class="mdescLeft"> </td><td class="mdescRight">Dump binary data as hex to stderr. <a href="#ga3dcb1fcb0f840869eab341598da50b55"></a><br/></td></tr>
|
||||
<tr class="separator:ga3dcb1fcb0f840869eab341598da50b55"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<p>Various useful helper functions. </p>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a class="anchor" id="ga3dcb1fcb0f840869eab341598da50b55"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void _dump </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">char * </td>
|
||||
<td class="paramname"><em>n</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>d</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>s</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Dump binary data as hex to stderr. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Description, string.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">d</td><td>Data to print.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>Size of d. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga20509d081da3e4fefbf7785d318d456a"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">size_t _findoffset </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>bin</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>binlen</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">char * </td>
|
||||
<td class="paramname"><em>sigstart</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>hlen</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Find the offset of some offset marker in some arbitrary data. </p>
|
||||
<p>Sample input: </p>
|
||||
<div class="fragment"><div class="line">ABABABABnacl-98a7sd98a7das98d7</div>
|
||||
</div><!-- fragment --><p>If you look for the offset of "nacl" within that data, the function will return 9, which is the position within the data where the marker starts.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">bin</td><td>Aribrary data where to look for the marker.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">binlen</td><td>The size of the data.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">sigstart</td><td>The offset marker.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">hlen</td><td>Size of the offset marker.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns the offset or -1 of the offset were not found. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga16a91a0ad754a3662f0091e71529fb50"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">char* _lc </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">char * </td>
|
||||
<td class="paramname"><em>in</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Convert a char array to lowercase. </p>
|
||||
<p>The supplied char array will be directly modified. Use a copy if you want to retain the original.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in,out]</td><td class="paramname">in</td><td>The char array to convert.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns the pointer to the char array. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaad81054336208b62739f1e20091213a6"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void _xorbuf </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>iv</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>buf</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>xlen</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>XOR an input buffer with another buffer. </p>
|
||||
<p>Both buffers have to have the same size. The input buffer will bei modified directly.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">iv</td><td>The buffer to XOR with.</td></tr>
|
||||
<tr><td class="paramdir">[in,out]</td><td class="paramname">buf</td><td>The buffer which will be XORed with 'iv'.</td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">xlen</td><td>The size of the buffers (they must have the same size). </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,368 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: VAULT</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
<a href="#typedef-members">Typedefs</a> |
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">VAULT</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>The vault file is used to store keys and key-signatures on disk.
|
||||
<a href="#details">More...</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||||
Classes</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__vault__t.html">_vault_t</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">This structure represents a vault. <a href="struct__vault__t.html#details">More...</a><br/></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__vault__header__t.html">_vault_header_t</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Defines the vault header. <a href="struct__vault__header__t.html#details">More...</a><br/></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__vault__item__header__t.html">_vault_item_header_t</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">An item header. <a href="struct__vault__item__header__t.html#details">More...</a><br/></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
|
||||
Typedefs</h2></td></tr>
|
||||
<tr class="memitem:ga98977ca195f87fe0c70521c07e01ef64"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct__vault__t.html">_vault_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__VAULT.html#ga98977ca195f87fe0c70521c07e01ef64">vault_t</a></td></tr>
|
||||
<tr class="memdesc:ga98977ca195f87fe0c70521c07e01ef64"><td class="mdescLeft"> </td><td class="mdescRight">Name of the struct. <a href="#ga98977ca195f87fe0c70521c07e01ef64"></a><br/></td></tr>
|
||||
<tr class="separator:ga98977ca195f87fe0c70521c07e01ef64"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gaeeeef6ec087f97f2d73ddd6863db7eba"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct__vault__header__t.html">_vault_header_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__VAULT.html#gaeeeef6ec087f97f2d73ddd6863db7eba">vault_header_t</a></td></tr>
|
||||
<tr class="memdesc:gaeeeef6ec087f97f2d73ddd6863db7eba"><td class="mdescLeft"> </td><td class="mdescRight">Name of the struct. <a href="#gaeeeef6ec087f97f2d73ddd6863db7eba"></a><br/></td></tr>
|
||||
<tr class="separator:gaeeeef6ec087f97f2d73ddd6863db7eba"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga3b5f740c6dd319d7876f61c93b7ab72c"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct__vault__item__header__t.html">_vault_item_header_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__VAULT.html#ga3b5f740c6dd319d7876f61c93b7ab72c">vault_item_header_t</a></td></tr>
|
||||
<tr class="memdesc:ga3b5f740c6dd319d7876f61c93b7ab72c"><td class="mdescLeft"> </td><td class="mdescRight">Name of the struct. <a href="#ga3b5f740c6dd319d7876f61c93b7ab72c"></a><br/></td></tr>
|
||||
<tr class="separator:ga3b5f740c6dd319d7876f61c93b7ab72c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:ga6c4f1297f284440089536a038fdf3376"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__VAULT.html#ga98977ca195f87fe0c70521c07e01ef64">vault_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__VAULT.html#ga6c4f1297f284440089536a038fdf3376">pcpvault_init</a> (char *filename)</td></tr>
|
||||
<tr class="memdesc:ga6c4f1297f284440089536a038fdf3376"><td class="mdescLeft"> </td><td class="mdescRight">Open a vault file. <a href="#ga6c4f1297f284440089536a038fdf3376"></a><br/></td></tr>
|
||||
<tr class="separator:ga6c4f1297f284440089536a038fdf3376"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gad4cf9423cb397da3cd379127f7291faa"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__VAULT.html#gad4cf9423cb397da3cd379127f7291faa">pcpvault_additem</a> (<a class="el" href="group__VAULT.html#ga98977ca195f87fe0c70521c07e01ef64">vault_t</a> *vault, void *item, size_t itemsize, uint8_t type)</td></tr>
|
||||
<tr class="memdesc:gad4cf9423cb397da3cd379127f7291faa"><td class="mdescLeft"> </td><td class="mdescRight">Add an item to the vault. <a href="#gad4cf9423cb397da3cd379127f7291faa"></a><br/></td></tr>
|
||||
<tr class="separator:gad4cf9423cb397da3cd379127f7291faa"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gaa4ff722fbe407da88fdb893a5c40f7ed"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__VAULT.html#gaa4ff722fbe407da88fdb893a5c40f7ed">pcpvault_addkey</a> (<a class="el" href="group__VAULT.html#ga98977ca195f87fe0c70521c07e01ef64">vault_t</a> *vault, void *item, uint8_t type)</td></tr>
|
||||
<tr class="memdesc:gaa4ff722fbe407da88fdb893a5c40f7ed"><td class="mdescLeft"> </td><td class="mdescRight">Add a key to the vault. <a href="#gaa4ff722fbe407da88fdb893a5c40f7ed"></a><br/></td></tr>
|
||||
<tr class="separator:gaa4ff722fbe407da88fdb893a5c40f7ed"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gaf0696f85075e0e7c8056e42e2e6a31e6"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__VAULT.html#gaf0696f85075e0e7c8056e42e2e6a31e6">pcpvault_close</a> (<a class="el" href="group__VAULT.html#ga98977ca195f87fe0c70521c07e01ef64">vault_t</a> *vault)</td></tr>
|
||||
<tr class="memdesc:gaf0696f85075e0e7c8056e42e2e6a31e6"><td class="mdescLeft"> </td><td class="mdescRight">Close a vault file. <a href="#gaf0696f85075e0e7c8056e42e2e6a31e6"></a><br/></td></tr>
|
||||
<tr class="separator:gaf0696f85075e0e7c8056e42e2e6a31e6"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga303629777a5b784b71ca718c8cda8dbf"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__VAULT.html#ga303629777a5b784b71ca718c8cda8dbf">pcpvault_fetchall</a> (<a class="el" href="group__VAULT.html#ga98977ca195f87fe0c70521c07e01ef64">vault_t</a> *vault)</td></tr>
|
||||
<tr class="memdesc:ga303629777a5b784b71ca718c8cda8dbf"><td class="mdescLeft"> </td><td class="mdescRight">Reads in the vault contents. <a href="#ga303629777a5b784b71ca718c8cda8dbf"></a><br/></td></tr>
|
||||
<tr class="separator:ga303629777a5b784b71ca718c8cda8dbf"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<p>The vault file is used to store keys and key-signatures on disk. </p>
|
||||
<p>It works like a keyring.</p>
|
||||
<h1><a class="anchor" id="vformat"></a>
|
||||
Vault File Format</h1>
|
||||
<p>The vault file contains all public and secret keys. It's a portable binary file.</p>
|
||||
<p>The file starts with a header:</p>
|
||||
<div class="fragment"><div class="line">+-------------------------------------------+</div>
|
||||
<div class="line">| Field Size Description |</div>
|
||||
<div class="line">+-------------------------------------------+</div>
|
||||
<div class="line">| File ID | 1 | Vault Identifier 0xC4 |</div>
|
||||
<div class="line">+-------------------------------------------+</div>
|
||||
<div class="line">| Version | 4 | Big endian, <a class="code" href="struct__vault__item__header__t.html#a5d3634c7c9d5050f60444326e0a9eea7" title="Version of the item.">version</a> |</div>
|
||||
<div class="line">+-------------------------------------------+</div>
|
||||
<div class="line">| Checksum | 32 | SHA256 Checksum |</div>
|
||||
<div class="line">+-------------------------------------------+</div>
|
||||
</div><!-- fragment --><p>The checksum is a checksum of all keys.</p>
|
||||
<p>The header is followed by the keys. Each key is preceded by an item header which looks like this:</p>
|
||||
<div class="fragment"><div class="line">+--------------------------------------------+</div>
|
||||
<div class="line">| Field Size Description |</div>
|
||||
<div class="line">+--------------------------------------------+</div>
|
||||
<div class="line">| Type | 1 | Key <a class="code" href="struct__vault__item__header__t.html#a300141ad03ff5f6cb79aafd9984e5e0e" title="Item type (secret key, public, key, keysig,.">type</a> (S,P,M) |</div>
|
||||
<div class="line">+--------------------------------------------+</div>
|
||||
<div class="line">| Size | 4 | Big endian, keysize |</div>
|
||||
<div class="line">+--------------------------------------------+</div>
|
||||
<div class="line">| Version | 4 | Big endian, keyversion |</div>
|
||||
<div class="line">+--------------------------------------------+</div>
|
||||
<div class="line">| Checksum | 32 | SHA256 Key Checksum |</div>
|
||||
<div class="line">+--------------------------------------------+</div>
|
||||
</div><!-- fragment --><p>Type can be one of:</p>
|
||||
<ul>
|
||||
<li>PCP_KEY_TYPE_MAINSECRET 0x01</li>
|
||||
<li>PCP_KEY_TYPE_SECRET 0x02</li>
|
||||
<li>PCP_KEY_TYPE_PUBLIC 0x03</li>
|
||||
</ul>
|
||||
<p>The item header is followed by the actual key contents. </p>
|
||||
<h2 class="groupheader">Typedef Documentation</h2>
|
||||
<a class="anchor" id="gaeeeef6ec087f97f2d73ddd6863db7eba"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">typedef struct <a class="el" href="struct__vault__header__t.html">_vault_header_t</a> <a class="el" href="group__VAULT.html#gaeeeef6ec087f97f2d73ddd6863db7eba">vault_header_t</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Name of the struct. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00119">119</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga3b5f740c6dd319d7876f61c93b7ab72c"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">typedef struct <a class="el" href="struct__vault__item__header__t.html">_vault_item_header_t</a> <a class="el" href="group__VAULT.html#ga3b5f740c6dd319d7876f61c93b7ab72c">vault_item_header_t</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Name of the struct. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00131">131</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga98977ca195f87fe0c70521c07e01ef64"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">typedef struct <a class="el" href="struct__vault__t.html">_vault_t</a> <a class="el" href="group__VAULT.html#ga98977ca195f87fe0c70521c07e01ef64">vault_t</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Name of the struct. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00108">108</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a class="anchor" id="gad4cf9423cb397da3cd379127f7291faa"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int pcpvault_additem </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__VAULT.html#ga98977ca195f87fe0c70521c07e01ef64">vault_t</a> * </td>
|
||||
<td class="paramname"><em>vault</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">void * </td>
|
||||
<td class="paramname"><em>item</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>itemsize</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">uint8_t </td>
|
||||
<td class="paramname"><em>type</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Add an item to the vault. </p>
|
||||
<p>Adds <em>item</em> with the size <em>itemsize</em> and type <em>type</em> to the vault. Generates the item header and the checksum of the item.</p>
|
||||
<p>This function writes directly into the vault file. Use with care. To be safe, use <a class="el" href="group__VAULT.html#gaa4ff722fbe407da88fdb893a5c40f7ed" title="Add a key to the vault.">pcpvault_addkey()</a> instead.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">vault</td><td>The vault object. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">item</td><td>The item to write. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">itemsize</td><td>Size of the item. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>Type of the item. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__KEYS.html#ga19da9fe7a497dcd854feff4d29e4472d" title="Internal key types.">_PCP_KEY_TYPES</a>.</dd></dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns the number of bytes written or 0 in case of an error. Check fatals_if_any(). </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaa4ff722fbe407da88fdb893a5c40f7ed"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int pcpvault_addkey </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__VAULT.html#ga98977ca195f87fe0c70521c07e01ef64">vault_t</a> * </td>
|
||||
<td class="paramname"><em>vault</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">void * </td>
|
||||
<td class="paramname"><em>item</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">uint8_t </td>
|
||||
<td class="paramname"><em>type</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Add a key to the vault. </p>
|
||||
<p>This function determines the size of the item to write based on the given type. It converts the internal structure to a binary blob and converty multibyte values to big endian.</p>
|
||||
<p>It copies the given vault file to a temporary vault file, adds the item and if this went ok, copies the temporary file back to the original location. It then re-calculates the vault checksum and puts it into the vault header.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">vault</td><td>The vault object. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">item</td><td>The item to write (a key or keysig) </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>Type of the item. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__KEYS.html#ga19da9fe7a497dcd854feff4d29e4472d" title="Internal key types.">_PCP_KEY_TYPES</a>.</dd></dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns 0 on success or 1 in case of errors. Check fatals_if_any(). </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaf0696f85075e0e7c8056e42e2e6a31e6"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int pcpvault_close </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__VAULT.html#ga98977ca195f87fe0c70521c07e01ef64">vault_t</a> * </td>
|
||||
<td class="paramname"><em>vault</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Close a vault file. </p>
|
||||
<p>If the vault is in unsafed state, write everything to disk and close the vault. Before overwriting the current vault file a backup will be made. If anything fails during writing the backup file will be retained and the error message will contain the filename of the backup file, so that the user doesn't loose data.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">vault</td><td>The vault object.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns 0. Check fatals_if_any() anyway. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga303629777a5b784b71ca718c8cda8dbf"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int pcpvault_fetchall </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="group__VAULT.html#ga98977ca195f87fe0c70521c07e01ef64">vault_t</a> * </td>
|
||||
<td class="paramname"><em>vault</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Reads in the vault contents. </p>
|
||||
<p>This function reads the open vault contents and puts them into the apropriate hashes. </p>
|
||||
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__KEYHASH.html" title="Uthashes of secret and public key structures.">KEYHASH</a>.</dd></dl>
|
||||
<p>Currently only known types can be read. If your're saving unknown types to the vault, an error will occur. </p>
|
||||
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__KEYS.html#ga19da9fe7a497dcd854feff4d29e4472d" title="Internal key types.">_PCP_KEY_TYPES</a>.</dd></dl>
|
||||
<p>Each item will be converted put into the aproprieate structure, multibyte values will be converted to host endianess. It also calculates the checksum of the vault contents and compares it with the one stored in the vault header. If it doesn't match an error will be thrown.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[out]</td><td class="paramname">vault</td><td>The vault object.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns 0 on success or -1 in case of errors. Check fatals_if_any(). </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga6c4f1297f284440089536a038fdf3376"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__VAULT.html#ga98977ca195f87fe0c70521c07e01ef64">vault_t</a>* pcpvault_init </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">char * </td>
|
||||
<td class="paramname"><em>filename</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Open a vault file. </p>
|
||||
<p>If the file doesn't exist, it will be created.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">filename</td><td>The filename of the vault file.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a vault object. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,308 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: Z85</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">Z85</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Z85 Encoding functions.
|
||||
<a href="#details">More...</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:ga53084383405976192b642f4cdf8f0f7b"><td class="memItemLeft" align="right" valign="top">unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Z85.html#ga53084383405976192b642f4cdf8f0f7b">pcp_padfour</a> (unsigned char *src, size_t srclen, size_t *dstlen)</td></tr>
|
||||
<tr class="memdesc:ga53084383405976192b642f4cdf8f0f7b"><td class="mdescLeft"> </td><td class="mdescRight">Zero-pad some input data. <a href="#ga53084383405976192b642f4cdf8f0f7b"></a><br/></td></tr>
|
||||
<tr class="separator:ga53084383405976192b642f4cdf8f0f7b"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga71e7c229ead7f5294c6694f1c0ed9b1e"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Z85.html#ga71e7c229ead7f5294c6694f1c0ed9b1e">pcp_unpadfour</a> (unsigned char *src, size_t srclen)</td></tr>
|
||||
<tr class="memdesc:ga71e7c229ead7f5294c6694f1c0ed9b1e"><td class="mdescLeft"> </td><td class="mdescRight">Unpad padded input data. <a href="#ga71e7c229ead7f5294c6694f1c0ed9b1e"></a><br/></td></tr>
|
||||
<tr class="separator:ga71e7c229ead7f5294c6694f1c0ed9b1e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga9dacad0a9799e2b467d8725ef53d71dd"><td class="memItemLeft" align="right" valign="top">unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Z85.html#ga9dacad0a9799e2b467d8725ef53d71dd">pcp_z85_decode</a> (char *z85block, size_t *dstlen)</td></tr>
|
||||
<tr class="memdesc:ga9dacad0a9799e2b467d8725ef53d71dd"><td class="mdescLeft"> </td><td class="mdescRight">Decode data from Z85 encoding. <a href="#ga9dacad0a9799e2b467d8725ef53d71dd"></a><br/></td></tr>
|
||||
<tr class="separator:ga9dacad0a9799e2b467d8725ef53d71dd"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga1e2ba864abfab7902b3779b048f9eacf"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Z85.html#ga1e2ba864abfab7902b3779b048f9eacf">pcp_z85_encode</a> (unsigned char *raw, size_t srclen, size_t *dstlen)</td></tr>
|
||||
<tr class="memdesc:ga1e2ba864abfab7902b3779b048f9eacf"><td class="mdescLeft"> </td><td class="mdescRight">Encode data to Z85 encoding. <a href="#ga1e2ba864abfab7902b3779b048f9eacf"></a><br/></td></tr>
|
||||
<tr class="separator:ga1e2ba864abfab7902b3779b048f9eacf"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ga28321ec07e0f34765349eadd30668275"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Z85.html#ga28321ec07e0f34765349eadd30668275">pcp_readz85file</a> (FILE *infile)</td></tr>
|
||||
<tr class="memdesc:ga28321ec07e0f34765349eadd30668275"><td class="mdescLeft"> </td><td class="mdescRight">Read a Z85 encoded file. <a href="#ga28321ec07e0f34765349eadd30668275"></a><br/></td></tr>
|
||||
<tr class="separator:ga28321ec07e0f34765349eadd30668275"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:gab16e85136e20e707c559e851d04e083c"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Z85.html#gab16e85136e20e707c559e851d04e083c">pcp_readz85string</a> (unsigned char *input, size_t bufsize)</td></tr>
|
||||
<tr class="memdesc:gab16e85136e20e707c559e851d04e083c"><td class="mdescLeft"> </td><td class="mdescRight">Read a Z85 encoded string. <a href="#gab16e85136e20e707c559e851d04e083c"></a><br/></td></tr>
|
||||
<tr class="separator:gab16e85136e20e707c559e851d04e083c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<p>Z85 Encoding functions. </p>
|
||||
<p>The Z85 encoding format is described here: <a href="http://rfc.zeromq.org/spec:32">ZeroMQ Spec.32</a>. It's part of <a href="http://zeromq.org">ZeroMQ</a>. Z85 is based on ASCII85 with a couple of modifications (portability, readability etc).</p>
|
||||
<p>To fulfil the requirements of the ZeroMQ Z85 functions, PCP does some additional preparations of raw input before actually doing the encoding, since the input for zmq_z85_encode() must be divisible by 4. Therefore we pad the input with zeroes and remove them after decoding. </p>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a class="anchor" id="ga53084383405976192b642f4cdf8f0f7b"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned char* pcp_padfour </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>src</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>srclen</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t * </td>
|
||||
<td class="paramname"><em>dstlen</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Zero-pad some input data. </p>
|
||||
<p>This function allocates new memory for the returned data. It puts the original pointer into it and adds a number of zeros so that the result has a size divisable by 4.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>Unpadded data. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">srclen</td><td>Size of unpadded data. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">dstlen</td><td>Returned size of padded data (pointer to int).</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a pointer to the padded data. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga28321ec07e0f34765349eadd30668275"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">char* pcp_readz85file </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">FILE * </td>
|
||||
<td class="paramname"><em>infile</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Read a Z85 encoded file. </p>
|
||||
<p>Reads a file and returns the raw Z85 encoded string. It ignores newlines, comments and Headerstrings.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">infile</td><td>FILE stream to read from.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Raw Z85 encoded string with comments, headers and newlines removed. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gab16e85136e20e707c559e851d04e083c"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">char* pcp_readz85string </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>input</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>bufsize</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Read a Z85 encoded string. </p>
|
||||
<p>Parses the given input string and returns the raw Z85 encoded string. It ignores newlines, comments and Headerstrings.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>Z85 encoded string. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">bufsize</td><td>Size of the string.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Raw Z85 encoded string with comments, headers and newlines removed. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga71e7c229ead7f5294c6694f1c0ed9b1e"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">size_t pcp_unpadfour </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>src</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>srclen</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Unpad padded input data. </p>
|
||||
<p>It just calculates the size of the unpadded result (size - all trailing zeroes). Doesn't allocate any memory or modify anything.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>Padded data. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">srclen</td><td>Size of padded data.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns the unpadded size of the data. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga9dacad0a9799e2b467d8725ef53d71dd"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned char* pcp_z85_decode </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">char * </td>
|
||||
<td class="paramname"><em>z85block</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t * </td>
|
||||
<td class="paramname"><em>dstlen</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Decode data from Z85 encoding. </p>
|
||||
<p>The input <em>z85block</em> may contain newlines which will be removed.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">z85block</td><td>The Z85 encoded string. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">dstlen</td><td>Returned size of decoded data (pointer to int).</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a newly allocated pointer to the decoded data. If decoding failed, returns NULL. Check fatals_if_any(). </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga1e2ba864abfab7902b3779b048f9eacf"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">char* pcp_z85_encode </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">unsigned char * </td>
|
||||
<td class="paramname"><em>raw</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>srclen</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t * </td>
|
||||
<td class="paramname"><em>dstlen</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Encode data to Z85 encoding. </p>
|
||||
<p>Beside Z85 encoding it also adds a newline everiy 72 characters.</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">raw</td><td>Pointer to raw data. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">srclen</td><td>Size of the data. </td></tr>
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">dstlen</td><td>Returned size of encoded data (pointer to int).</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>Returns a string (char array) containing the Z85 encoded data. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,130 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: Main Page</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li class="current"><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">libpcp Documentation</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock"><h1><a class="anchor" id="intro_sec"></a>
|
||||
Introduction</h1>
|
||||
<p>This is the API documentation of libpcp, the library behind <a href="/PrettyCurvedPrivacy">Pretty Curved Privacy (pcp)</a>. The library can be used independently of pcp to manage keys and to encrypt or sign files or buffers.</p>
|
||||
<p>For most actual crypto related things, libpcp uses <a href="https://github.com/jedisct1/libsodium">libsodium, the portable NaCL library</a>.</p>
|
||||
<h1><a class="anchor" id="sample_sec"></a>
|
||||
Sample usage</h1>
|
||||
<p>Example use of the libpcp library:</p>
|
||||
<div class="fragment"><div class="line"><span class="preprocessor">#include <pcp.h></span></div>
|
||||
<div class="line"></div>
|
||||
<div class="line"><span class="keywordtype">int</span> main() {</div>
|
||||
<div class="line"> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *inbuf;</div>
|
||||
<div class="line"> <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *alice, *bob;</div>
|
||||
<div class="line"> <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *alicepub, *bobpub, *pubhash;</div>
|
||||
<div class="line"> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *clear_in, *crypt_out, *clear_out;</div>
|
||||
<div class="line"> <span class="keywordtype">char</span> message[] = <span class="stringliteral">"hello world"</span>; </div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <span class="comment">/* generate the keypairs for both */</span></div>
|
||||
<div class="line"> alice = <a class="code" href="group__KEYS.html#gaecf6a1829b4133350a7cb694c3eca8ad" title="Generate a new key structure.">pcpkey_new</a>();</div>
|
||||
<div class="line"> bob = <a class="code" href="group__KEYS.html#gaecf6a1829b4133350a7cb694c3eca8ad" title="Generate a new key structure.">pcpkey_new</a>();</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <span class="comment">/* get the public parts of them */</span></div>
|
||||
<div class="line"> alicepub = <a class="code" href="group__KEYS.html#ga22c965c007208e860deaa4c145046283" title="Generate a public key structure from a given secret key structure.">pcpkey_pub_from_secret</a>(alice);</div>
|
||||
<div class="line"> bobpub = <a class="code" href="group__KEYS.html#ga22c965c007208e860deaa4c145046283" title="Generate a public key structure from a given secret key structure.">pcpkey_pub_from_secret</a>(bob);</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <span class="comment">/* put the clear text message into the stream */</span></div>
|
||||
<div class="line"> inbuf = <a class="code" href="group__Buffer.html#ga55e468b36750f28308b7fa5dfea5b564" title="Create a new buffer.">buffer_new</a>(32, <span class="stringliteral">"a"</span>);</div>
|
||||
<div class="line"> <a class="code" href="group__Buffer.html#ga5b99c0ae55b2e279339c745b6fd7bb21" title="Add a formated string to the buffer.">buffer_add_str</a>(inbuf, message);</div>
|
||||
<div class="line"> clear_in = <a class="code" href="group__Pcpstream.html#ga1b50c92fdad290e59317af2404460662" title="Create a new input stream, backed with filled a buffer.">ps_new_inbuffer</a>(inbuf);</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <span class="comment">/* create the output stream as buffer */</span></div>
|
||||
<div class="line"> crypt_out = <a class="code" href="group__Pcpstream.html#ga13ec0245b579949e6d586e1817615d2e" title="Create a new output stream, backed with a buffer.">ps_new_outbuffer</a>();</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <span class="comment">/* prepare the pubkey recipient list (only 1 recipient: Bob) */</span></div>
|
||||
<div class="line"> pubhash = NULL;</div>
|
||||
<div class="line"> strncpy(bobpub-><a class="code" href="struct__pcp__pubkey__t.html#ad10eadcb9325538e71c9fd8b140dbdd2" title="key-id, used internally only, jenhash of public keys">id</a>, <a class="code" href="group__KEYS.html#gab16e85cdb769465c8ce8808b581c7a3d" title="Calculate a key-id from public key fields.">pcp_getpubkeyid</a>(bobpub), 17);</div>
|
||||
<div class="line"> HASH_ADD_STR( pubhash, <span class="keywordtype">id</span>, bobpub);</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <span class="comment">/* actually encrypt the message, don't sign it</span></div>
|
||||
<div class="line"><span class="comment"> Alice is the sender, Bob is the recipient */</span></div>
|
||||
<div class="line"> <a class="code" href="group__CRYPTO.html#gadbdb839246cac65ff20ef63902041597" title="Asymmetrically encrypt a file or a buffer stream.">pcp_encrypt_stream</a>(clear_in, crypt_out, alice, pubhash, 0);</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <span class="comment">/* now, print the encrypted result */</span></div>
|
||||
<div class="line"> fprintf(stderr, <span class="stringliteral">"Alice encrypted %ld bytes for Bob:\n"</span>, strlen(message));</div>
|
||||
<div class="line"> <a class="code" href="group__Buffer.html#ga0e0f433cbd077d3048ebdda35aa9ccb6" title="Dump the Buffer contents to stderr in hex form.">buffer_dump</a>(<a class="code" href="group__Pcpstream.html#ga64bc34dfbc1b3951c3d62e82a1ae8c34" title="Access the Buffer backend pointer.">ps_buffer</a>(crypt_out));</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <span class="comment">/* ---- encryption don, now decrypt ---- */</span></div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <span class="comment">/* prepare the output buffer stream */</span></div>
|
||||
<div class="line"> clear_out = <a class="code" href="group__Pcpstream.html#ga13ec0245b579949e6d586e1817615d2e" title="Create a new output stream, backed with a buffer.">ps_new_outbuffer</a>();</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <span class="comment">/* in order for the decryptor find the senders public key,</span></div>
|
||||
<div class="line"><span class="comment"> we need to put it into the global hash. this step can be</span></div>
|
||||
<div class="line"><span class="comment"> omitted when using a Vault. */</span></div>
|
||||
<div class="line"> <a class="code" href="group__KEYHASH.html#ga2953fd446079220a948693dfab5d6055" title="Global hash for public keys.">pcppubkey_hash</a> = NULL;</div>
|
||||
<div class="line"> HASH_ADD_STR( <a class="code" href="group__KEYHASH.html#ga2953fd446079220a948693dfab5d6055" title="Global hash for public keys.">pcppubkey_hash</a> , <span class="keywordtype">id</span>, alicepub);</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <span class="comment">/* try to decrypt the message */</span></div>
|
||||
<div class="line"> <span class="keywordflow">if</span>(<a class="code" href="group__CRYPTO.html#gaeb1196ed4a3edc911e77d1d15612c539" title="Asymmetrically decrypt a file or a buffer stream.">pcp_decrypt_stream</a>(crypt_out, clear_out, bob, NULL, 0) == 0)</div>
|
||||
<div class="line"> <a class="code" href="group__FATALS.html#ga0ea01da59af8a06c55258d78da6cb0cb" title="Prints error messages to STDERR, if there are some.">fatals_ifany</a>();</div>
|
||||
<div class="line"> <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"> <span class="comment">/* and finally print out the decrypted message */</span></div>
|
||||
<div class="line"> fprintf(stderr, <span class="stringliteral">"Bob decrypted %ld bytes from Alice:\n"</span>, <a class="code" href="group__Buffer.html#ga714b0a831d0f31a33e66e8ef76a26e46" title="Tell how much data there is in the buffer available.">buffer_size</a>(<a class="code" href="group__Pcpstream.html#ga64bc34dfbc1b3951c3d62e82a1ae8c34" title="Access the Buffer backend pointer.">ps_buffer</a>(crypt_out)));</div>
|
||||
<div class="line"> printf(<span class="stringliteral">"Decrypted message: %s\n"</span>, <a class="code" href="group__Buffer.html#ga8c89e4ab5d03dff079b7b861a1e04a7f" title="Read the whole Buffer content as string.">buffer_get_str</a>(<a class="code" href="group__Pcpstream.html#ga64bc34dfbc1b3951c3d62e82a1ae8c34" title="Access the Buffer backend pointer.">ps_buffer</a>(clear_out)));</div>
|
||||
<div class="line"> }</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <a class="code" href="group__Pcpstream.html#ga4a68da22eca6e9bd854d54467a071d0a" title="Close the stream and frees allocated memory.">ps_close</a>(clear_in);</div>
|
||||
<div class="line"> <a class="code" href="group__Pcpstream.html#ga4a68da22eca6e9bd854d54467a071d0a" title="Close the stream and frees allocated memory.">ps_close</a>(crypt_out);</div>
|
||||
<div class="line"> <a class="code" href="group__Pcpstream.html#ga4a68da22eca6e9bd854d54467a071d0a" title="Close the stream and frees allocated memory.">ps_close</a>(clear_out);</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> free(alice);</div>
|
||||
<div class="line"> free(alicepub);</div>
|
||||
<div class="line"> free(bob);</div>
|
||||
<div class="line"> free(bobpub);</div>
|
||||
<div class="line"></div>
|
||||
<div class="line"> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line">}</div>
|
||||
</div><!-- fragment --><p>To compile the example, use the following commands:</p>
|
||||
<div class="fragment"><div class="line">g++ -c sample.o `pkg-config --cflags libpcp1`</div>
|
||||
<div class="line">g++ sample.o `pkg-config --libs libpcp1` -o sample</div>
|
||||
</div><!-- fragment --> </div></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
8
man/html/jquery.js
vendored
@@ -1,227 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: key.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">key.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> This file is part of Pretty Curved Privacy (pcp1).</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> Copyright (C) 2013-2014 T.v.Dein.</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> This program is free software: you can redistribute it and/or modify</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> it under the terms of the GNU General Public License as published by</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> the Free Software Foundation, either version 3 of the License, or</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> (at your option) any later version.</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> This program is distributed in the hope that it will be useful,</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> GNU General Public License for more details.</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> You should have received a copy of the GNU General Public License</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> You can contact me by mail: <tom AT vondein DOT org>.</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">*/</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#ifndef _HAVE_PCP_KEYPAIR_H</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"></span><span class="preprocessor">#define _HAVE_PCP_KEYPAIR_H</span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <sodium.h></span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <string.h></span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <stdio.h></span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <time.h></span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "defines.h"</span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "platform.h"</span></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "mem.h"</span></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "mac.h"</span></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "randomart.h"</span></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "version.h"</span></div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "z85.h"</span></div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "uthash.h"</span></div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "jenhash.h"</span></div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "scrypt.h"</span></div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include "keysig.h"</span></div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"><a class="code" href="struct__pcp__key__t.html"> 93</a></span> <span class="keyword">struct </span><a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">_pcp_key_t</a> {</div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"><a class="code" href="struct__pcp__key__t.html#a776b37491c8bfd98de8f239bb9a41695"> 94</a></span>  byte <a class="code" href="struct__pcp__key__t.html#a776b37491c8bfd98de8f239bb9a41695" title="ED25519 master public key signing key.">masterpub</a>[32]; </div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"><a class="code" href="struct__pcp__key__t.html#a0df2e9e13765ae54213fb0e9cad65173"> 95</a></span>  byte <a class="code" href="struct__pcp__key__t.html#a0df2e9e13765ae54213fb0e9cad65173" title="ED25519 master secret key signing key.">mastersecret</a>[64]; </div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"><a class="code" href="struct__pcp__key__t.html#abf48278152e33968e634a4a5aea1076c"> 96</a></span>  byte <a class="code" href="struct__pcp__key__t.html#abf48278152e33968e634a4a5aea1076c" title="Curve25519 encryption public key.">pub</a>[32]; </div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"><a class="code" href="struct__pcp__key__t.html#a6d2a4ac0d698bc759b2a814f28d15282"> 97</a></span>  byte <a class="code" href="struct__pcp__key__t.html#a6d2a4ac0d698bc759b2a814f28d15282" title="Curve25519 encryption secret key.">secret</a>[32]; </div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"><a class="code" href="struct__pcp__key__t.html#a5fbb76c6d2988ee039966c19e64440ef"> 98</a></span>  byte <a class="code" href="struct__pcp__key__t.html#a5fbb76c6d2988ee039966c19e64440ef" title="ED25519 public signing key.">edpub</a>[32]; </div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"><a class="code" href="struct__pcp__key__t.html#a420b3fd1bc46d668c088c8360a53838d"> 99</a></span>  byte <a class="code" href="struct__pcp__key__t.html#a420b3fd1bc46d668c088c8360a53838d" title="ED25519 secret signing key.">edsecret</a>[64]; </div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"><a class="code" href="struct__pcp__key__t.html#a4363b752a7242f0d789ec8ca75e1c426"> 100</a></span>  byte <a class="code" href="struct__pcp__key__t.html#a4363b752a7242f0d789ec8ca75e1c426" title="random nonce used to encrypt secret keys">nonce</a>[24]; </div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"><a class="code" href="struct__pcp__key__t.html#a1da3d67421a27665dfe207403364a349"> 101</a></span>  byte <a class="code" href="struct__pcp__key__t.html#a1da3d67421a27665dfe207403364a349" title="concatenated and encrypted secret keys">encrypted</a>[176]; </div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"><a class="code" href="struct__pcp__key__t.html#a058c2dce0c18939b2b6b7b0272a7095d"> 102</a></span>  <span class="keywordtype">char</span> <a class="code" href="struct__pcp__key__t.html#a058c2dce0c18939b2b6b7b0272a7095d" title="the key owner, string">owner</a>[255]; </div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"><a class="code" href="struct__pcp__key__t.html#a6259d3e70f1ae793398e2e83eba9ae6d"> 103</a></span>  <span class="keywordtype">char</span> <a class="code" href="struct__pcp__key__t.html#a6259d3e70f1ae793398e2e83eba9ae6d" title="mail address of the owner, string">mail</a>[255]; </div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"><a class="code" href="struct__pcp__key__t.html#a99e0435c5d7a074e5969e7a83bc93f67"> 104</a></span>  <span class="keywordtype">char</span> <span class="keywordtype">id</span>[17]; </div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"><a class="code" href="struct__pcp__key__t.html#a5cefa1a4a2d1a49361aac5a3fb8d988f"> 105</a></span>  uint8_t <a class="code" href="struct__pcp__key__t.html#a5cefa1a4a2d1a49361aac5a3fb8d988f" title="key type: MASTER_SECRET or SECRET">type</a>; </div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"><a class="code" href="struct__pcp__key__t.html#ac848ee41e72b2d4da0a85288f90165fa"> 106</a></span>  uint64_t <a class="code" href="struct__pcp__key__t.html#ac848ee41e72b2d4da0a85288f90165fa" title="creation time, epoch">ctime</a>; </div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"><a class="code" href="struct__pcp__key__t.html#af9f00779fcbbedaf0b17caa3f3a6fa30"> 107</a></span>  uint32_t <a class="code" href="struct__pcp__key__t.html#af9f00779fcbbedaf0b17caa3f3a6fa30" title="key version">version</a>; </div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="struct__pcp__key__t.html#a06aa6c7284118608fd6573a54372e263"> 108</a></span>  uint32_t <a class="code" href="struct__pcp__key__t.html#a06aa6c7284118608fd6573a54372e263" title="serial number of the key, randomly generated">serial</a>; </div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  UT_hash_handle hh;</div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> };</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"><a class="code" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732"> 113</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">_pcp_key_t</a> <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a>;</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"><a class="code" href="struct__pcp__pubkey__t.html"> 122</a></span> <span class="keyword">struct </span><a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">_pcp_pubkey_t</a> {</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"><a class="code" href="struct__pcp__pubkey__t.html#a0c503b0cdf8a331d54f3affb18fd068e"> 123</a></span>  byte <a class="code" href="struct__pcp__pubkey__t.html#a0c503b0cdf8a331d54f3affb18fd068e" title="ED25519 master public key signing key.">masterpub</a>[32]; </div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"><a class="code" href="struct__pcp__pubkey__t.html#a7e6b30f39e7107c4b3b7cd67cdc019f9"> 124</a></span>  byte <a class="code" href="struct__pcp__pubkey__t.html#a7e6b30f39e7107c4b3b7cd67cdc019f9" title="ED25519 public signing key.">sigpub</a>[32]; </div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"><a class="code" href="struct__pcp__pubkey__t.html#a10cb7717fbf5cc0ba9584fd3c1d7bb33"> 125</a></span>  byte <a class="code" href="struct__pcp__pubkey__t.html#a10cb7717fbf5cc0ba9584fd3c1d7bb33" title="Curve25519 encryption public key.">pub</a>[32]; </div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"><a class="code" href="struct__pcp__pubkey__t.html#a7d4d53e88c0ca2b09364394cf1dee200"> 126</a></span>  byte <a class="code" href="struct__pcp__pubkey__t.html#a7d4d53e88c0ca2b09364394cf1dee200" title="ED25519 public signing key (FIXME: huh? 2 of them???)">edpub</a>[32]; </div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"><a class="code" href="struct__pcp__pubkey__t.html#a1cc906382ef13dc456e9a15b84843a79"> 127</a></span>  <span class="keywordtype">char</span> <a class="code" href="struct__pcp__pubkey__t.html#a1cc906382ef13dc456e9a15b84843a79" title="the key owner, string">owner</a>[255]; </div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"><a class="code" href="struct__pcp__pubkey__t.html#a5d4e99518b3c0edcccd2917274e7cc29"> 128</a></span>  <span class="keywordtype">char</span> <a class="code" href="struct__pcp__pubkey__t.html#a5d4e99518b3c0edcccd2917274e7cc29" title="mail address of the owner, string">mail</a>[255]; </div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"><a class="code" href="struct__pcp__pubkey__t.html#ad10eadcb9325538e71c9fd8b140dbdd2"> 129</a></span>  <span class="keywordtype">char</span> <span class="keywordtype">id</span>[17]; </div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"><a class="code" href="struct__pcp__pubkey__t.html#a2154caabdc447e21106e117205c1259d"> 130</a></span>  uint8_t <a class="code" href="struct__pcp__pubkey__t.html#a2154caabdc447e21106e117205c1259d" title="key type: MASTER_SECRET or SECRET">type</a>; </div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"><a class="code" href="struct__pcp__pubkey__t.html#a9ac602791697d90bf56ecb0a7a7c3714"> 131</a></span>  uint64_t <a class="code" href="struct__pcp__pubkey__t.html#a9ac602791697d90bf56ecb0a7a7c3714" title="creation time, epoch">ctime</a>; </div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"><a class="code" href="struct__pcp__pubkey__t.html#aaebe0105dd79f3d22575dd29ff1d7356"> 132</a></span>  uint32_t <a class="code" href="struct__pcp__pubkey__t.html#aaebe0105dd79f3d22575dd29ff1d7356" title="key version">version</a>; </div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"><a class="code" href="struct__pcp__pubkey__t.html#afd1941bc57da1a65f8038b47e3ccd21d"> 133</a></span>  uint32_t <a class="code" href="struct__pcp__pubkey__t.html#afd1941bc57da1a65f8038b47e3ccd21d" title="serial number of the key, randomly generated">serial</a>; </div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"><a class="code" href="struct__pcp__pubkey__t.html#af93af4b3e259d6fa9e05009e564be8f7"> 134</a></span>  uint8_t <a class="code" href="struct__pcp__pubkey__t.html#af93af4b3e259d6fa9e05009e564be8f7" title="1 if import signature verified, 0 if not">valid</a>; </div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"><a class="code" href="struct__pcp__pubkey__t.html#ad6952d39d4ebc81d0677649e5f369013"> 135</a></span>  byte <a class="code" href="struct__pcp__pubkey__t.html#ad6952d39d4ebc81d0677649e5f369013" title="raw binary blob of pubkey export signature">signature</a>[crypto_generichash_BYTES_MAX + crypto_sign_BYTES]; </div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  UT_hash_handle hh;</div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> };</div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"><a class="code" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746"> 140</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">_pcp_pubkey_t</a> <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a>;</div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment">/* the PBP public key format */</span></div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="comment">/* keys.mp+keys.cp+keys.sp+keys.name */</span></div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">struct </span>_pbp_pubkey_t {</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  byte sigpub[crypto_sign_PUBLICKEYBYTES];</div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  byte edpub[crypto_sign_PUBLICKEYBYTES];</div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  byte pub[crypto_box_PUBLICKEYBYTES];</div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordtype">char</span> iso_ctime[32];</div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordtype">char</span> iso_expire[32];</div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordtype">char</span> name[1024];</div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> };</div>
|
||||
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
|
||||
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>_pbp_pubkey_t pbp_pubkey_t;</div>
|
||||
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
|
||||
<div class="line"><a name="l00166"></a><span class="lineno"><a class="code" href="struct__pcp__rec__t.html"> 166</a></span> <span class="keyword">struct </span><a class="code" href="struct__pcp__rec__t.html" title="Encrypted recipient list.">_pcp_rec_t</a> {</div>
|
||||
<div class="line"><a name="l00167"></a><span class="lineno"><a class="code" href="struct__pcp__rec__t.html#a1e3bc60866c85b917b284ed6590e4145"> 167</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="struct__pcp__rec__t.html#a1e3bc60866c85b917b284ed6590e4145" title="the size of the encrypted recipient list">ciphersize</a>; </div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"><a class="code" href="struct__pcp__rec__t.html#a5ee9ab68d084ed116bb81bd773122ada"> 168</a></span>  byte *<a class="code" href="struct__pcp__rec__t.html#a5ee9ab68d084ed116bb81bd773122ada" title="contains the whole encrypted recipient list">cipher</a>; </div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"><a class="code" href="struct__pcp__rec__t.html#a0167577bf19d9845c4f16c83878f74c8"> 169</a></span>  <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *<a class="code" href="struct__pcp__rec__t.html#a0167577bf19d9845c4f16c83878f74c8" title="the secret key of the recipient for signing">secret</a>; </div>
|
||||
<div class="line"><a name="l00170"></a><span class="lineno"><a class="code" href="struct__pcp__rec__t.html#ac8918a7a90e23d54ca5d1873c6fbcd02"> 170</a></span>  <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *<a class="code" href="struct__pcp__rec__t.html#ac8918a7a90e23d54ca5d1873c6fbcd02" title="if verification were ok, contains the public key of the signer">pub</a>; </div>
|
||||
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> };</div>
|
||||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div>
|
||||
<div class="line"><a name="l00174"></a><span class="lineno"><a class="code" href="group__KEYS.html#gab69d94a862952b046c6f340d3c701dd0"> 174</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__pcp__rec__t.html" title="Encrypted recipient list.">_pcp_rec_t</a> <a class="code" href="struct__pcp__rec__t.html" title="Encrypted recipient list.">pcp_rec_t</a>;</div>
|
||||
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
|
||||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor">#define PCP_RAW_KEYSIZE sizeof(pcp_key_t) - sizeof(UT_hash_handle)</span></div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor"></span><span class="preprocessor">#define PCP_RAW_PUBKEYSIZE sizeof(pcp_pubkey_t) - sizeof(UT_hash_handle)</span></div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
|
||||
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *<a class="code" href="group__KEYS.html#gaecf6a1829b4133350a7cb694c3eca8ad" title="Generate a new key structure.">pcpkey_new</a> ();</div>
|
||||
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
|
||||
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="keywordtype">void</span> pcp_keypairs(byte *msk, byte *mpk, byte *csk, byte *cpk, byte *esk, byte *epk);</div>
|
||||
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
|
||||
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="keywordtype">char</span> *<a class="code" href="group__KEYS.html#gabdc09d45ad7a6f9f039f9240635a743f" title="Generate an ASCII art image of the public key.">pcppubkey_get_art</a>(<a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *k);</div>
|
||||
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div>
|
||||
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="keywordtype">char</span> *<a class="code" href="group__KEYS.html#ga13aae5cf5986e308f1af674bedf0e6fd" title="Generate an ASCII art image of the public key part of a secret key.">pcpkey_get_art</a>(<a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *k);</div>
|
||||
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div>
|
||||
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *<a class="code" href="group__KEYS.html#ga30c2d289b43fe80562fc74068f2566ae" title="Encrypt a secret key structure.">pcpkey_encrypt</a>(<a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *key, <span class="keywordtype">char</span> *passphrase);</div>
|
||||
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div>
|
||||
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *<a class="code" href="group__KEYS.html#gad91934413b36cfe316458c90ceb1eb99" title="Decrypt a secret key structure.">pcpkey_decrypt</a>(<a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *key, <span class="keywordtype">char</span> *passphrase);</div>
|
||||
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> </div>
|
||||
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *<a class="code" href="group__KEYS.html#ga22c965c007208e860deaa4c145046283" title="Generate a public key structure from a given secret key structure.">pcpkey_pub_from_secret</a>(<a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *key);</div>
|
||||
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div>
|
||||
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div>
|
||||
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="keywordtype">char</span> *<a class="code" href="group__KEYS.html#gaac64db4cd21af0cf79512ea0ea43261f" title="Calculate a key-id from public key fields.">pcp_getkeyid</a>(<a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *k);</div>
|
||||
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div>
|
||||
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div>
|
||||
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="keywordtype">char</span> *<a class="code" href="group__KEYS.html#gab16e85cdb769465c8ce8808b581c7a3d" title="Calculate a key-id from public key fields.">pcp_getpubkeyid</a>(<a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *k);</div>
|
||||
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div>
|
||||
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="group__KEYS.html#ga78309dfa0b19b697ca64d8af2e7d796d" title="Calculate a checksum of a public key.">pcppubkey_getchecksum</a>(<a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *k);</div>
|
||||
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div>
|
||||
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="group__KEYS.html#gaa2678fef0a024456ee82d1bfa60c5fb2" title="Calculate a checksum of a public key part of the given secret key.">pcpkey_getchecksum</a>(<a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *k);</div>
|
||||
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div>
|
||||
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div>
|
||||
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *<a class="code" href="group__KEYS.html#ga2cea694131a6a86a9ba76c2514ef1bff" title="Checks if a secret key structure is registered in the secret key hash.">pcpkey_exists</a>(<span class="keywordtype">char</span> *<span class="keywordtype">id</span>);</div>
|
||||
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div>
|
||||
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *<a class="code" href="group__KEYS.html#gacad3aeb15a79c5d8d848452d33db08f8" title="Checks if a public key structure is registered in the public key hash.">pcppubkey_exists</a>(<span class="keywordtype">char</span> *<span class="keywordtype">id</span>);</div>
|
||||
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div>
|
||||
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> * key2be(<a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *k);</div>
|
||||
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *key2native(<a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *k);</div>
|
||||
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> * pubkey2be(<a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *k);</div>
|
||||
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *pubkey2native(<a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *k);</div>
|
||||
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> </div>
|
||||
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> * <a class="code" href="group__KEYS.html#ga201b09819c67a813de56bee423dce5c9" title="Generate a nonce.">pcp_gennonce</a>();</div>
|
||||
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div>
|
||||
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="comment">/* use scrypt() to create a key from a passphrase and a nonce</span></div>
|
||||
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="comment"> FIXME: use pure scrypt() instead.</span></div>
|
||||
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="comment">*/</span></div>
|
||||
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pcp_derivekey(<span class="keywordtype">char</span> *passphrase, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *nonce);</div>
|
||||
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> </div>
|
||||
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="comment">/* FIXME: abandon and use Buffer instead */</span></div>
|
||||
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="keywordtype">void</span> pcp_seckeyblob(<span class="keywordtype">void</span> *blob, <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *k);</div>
|
||||
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="keywordtype">void</span> pcp_pubkeyblob(<span class="keywordtype">void</span> *blob, <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *k);</div>
|
||||
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="keywordtype">void</span> *pcp_keyblob(<span class="keywordtype">void</span> *k, <span class="keywordtype">int</span> type); <span class="comment">/* allocates blob */</span></div>
|
||||
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div>
|
||||
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="keywordtype">int</span> <a class="code" href="group__KEYS.html#gafd7aed4591ab1ef769e5d061fe77a3de" title="Make a sanity check of the given public key structure.">pcp_sanitycheck_pub</a>(<a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *key);</div>
|
||||
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> </div>
|
||||
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="keywordtype">int</span> <a class="code" href="group__KEYS.html#ga749e28028744cf7206492911564c559a" title="Make a sanity check of the given secret key structure.">pcp_sanitycheck_key</a>(<a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *key);</div>
|
||||
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> </div>
|
||||
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="keywordtype">void</span> <a class="code" href="group__KEYS.html#ga8aa66f20f7671d80e75d7b05a7e692c4" title="Dump a secret key structure to stderr.">pcp_dumpkey</a>(<a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *k);</div>
|
||||
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div>
|
||||
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="keywordtype">void</span> <a class="code" href="group__KEYS.html#gaf37d43db0d210b3fbeab0929e3a76ebf" title="Dump a public key structure to stderr.">pcp_dumppubkey</a>(<a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *k);</div>
|
||||
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> </div>
|
||||
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> </div>
|
||||
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="preprocessor">#endif </span><span class="comment">/* _HAVE_PCP_KEYPAIR_H */</span><span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,133 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: keyhash.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">keyhash.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> This file is part of Pretty Curved Privacy (pcp1).</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> Copyright (C) 2013 T.Linden.</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> This program is free software: you can redistribute it and/or modify</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> it under the terms of the GNU General Public License as published by</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> the Free Software Foundation, either version 3 of the License, or</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> (at your option) any later version.</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> This program is distributed in the hope that it will be useful,</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> GNU General Public License for more details.</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> You should have received a copy of the GNU General Public License</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> You can contact me by mail: <tlinden AT cpan DOT org>.</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">*/</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifndef _HAVE_KEYHASH_H</span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"></span><span class="preprocessor">#define _HAVE_KEYHASH_H</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "uthash.h"</span></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "key.h"</span></div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">/* storage of keys in a global hash */</span></div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">extern</span> <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *<a class="code" href="group__KEYHASH.html#ga816334866b4b71819101952713f957d3" title="Global hash for secret keys.">pcpkey_hash</a>;</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">extern</span> <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *<a class="code" href="group__KEYHASH.html#ga2953fd446079220a948693dfab5d6055" title="Global hash for public keys.">pcppubkey_hash</a>;</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">extern</span> <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *__k;</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">extern</span> <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *__p;</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">/* wrapper for HASH_ITER */</span></div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"><a class="code" href="group__KEYHASH.html#ga67612ac824c9cd2bf19ef54463aa03d6"> 64</a></span> <span class="preprocessor">#define pcphash_iterate(key) \</span></div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"> __k = NULL; \</span></div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"> HASH_ITER(hh, pcpkey_hash, key, __k)</span></div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"><a class="code" href="group__KEYHASH.html#gadf7bf61c0ae9de0800550e66649cbe74"> 83</a></span> <span class="preprocessor">#define pcphash_iteratepub(key) \</span></div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor"> __p = NULL; \</span></div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor"> HASH_ITER(hh, pcppubkey_hash, key, __p)</span></div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keywordtype">void</span> <a class="code" href="group__KEYHASH.html#ga032631be7ae7bfda7a7d3a6ec6c470e9" title="Initialize the global hashes.">pcphash_init</a>();</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keywordtype">void</span> <a class="code" href="group__KEYHASH.html#ga6ec2d68ebc58d0291f1a3df489f60137" title="Delete an entry from a hash.">pcphash_del</a>(<span class="keywordtype">void</span> *key, <span class="keywordtype">int</span> type);</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keywordtype">void</span> <a class="code" href="group__KEYHASH.html#ga29bb3dbb781b383f0ded40ee149b8917" title="Frees the memory allocated by the hashes.">pcphash_clean</a>();</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *<a class="code" href="group__KEYHASH.html#ga16be3ae351e715ae60801e9bae56a672" title="Check if a secret key with a given key-id exists in the hash.">pcphash_keyexists</a>(<span class="keywordtype">char</span> *<span class="keywordtype">id</span>);</div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *<a class="code" href="group__KEYHASH.html#gad8bdc1bfa1e646032ff7ceadbec0b2b1" title="Check if a publickey with a given key-id exists in the hash.">pcphash_pubkeyexists</a>(<span class="keywordtype">char</span> *<span class="keywordtype">id</span>);</div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="keywordtype">void</span> <a class="code" href="group__KEYHASH.html#ga334bc5afda6c8bfa53d9c73390a4743f" title="Add a key structure to the hash list.">pcphash_add</a>(<span class="keywordtype">void</span> *key, <span class="keywordtype">int</span> type);</div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keywordtype">int</span> <a class="code" href="group__KEYHASH.html#gabf4f54f18a5ad15606ce8a43ea4b1d89" title="Returns the number of secret keys in the hash.">pcphash_count</a>();</div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keywordtype">int</span> <a class="code" href="group__KEYHASH.html#gababf062b31ee773f739d1411b2b72317" title="Returns the number of public keys in the hash.">pcphash_countpub</a>();</div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">extern</span> pcp_keysig_t *<a class="code" href="group__KEYHASH.html#gaf35ca454e8baae8101c5efae0e8f8da0" title="Global hash for key signatures.">pcpkeysig_hash</a>;</div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">extern</span> pcp_keysig_t *__s;</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor">#define pcphash_iteratekeysig(key) \</span></div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor"> __s = NULL; \</span></div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor"> HASH_ITER(hh, pcpkeysig_hash, key, __s)</span></div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> pcp_keysig_t *pcphash_keysigexists(<span class="keywordtype">char</span> *<span class="keywordtype">id</span>);</div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
|
||||
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="preprocessor">#endif </span><span class="comment">/* _HAVE_KEYHASH_H */</span><span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,119 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: keysig.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">keysig.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> This file is part of Pretty Curved Privacy (pcp1).</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> Copyright (C) 2013-2014 T.v.Dein.</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> This program is free software: you can redistribute it and/or modify</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> it under the terms of the GNU General Public License as published by</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> the Free Software Foundation, either version 3 of the License, or</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> (at your option) any later version.</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> This program is distributed in the hope that it will be useful,</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> GNU General Public License for more details.</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> You should have received a copy of the GNU General Public License</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> You can contact me by mail: <tom AT vondein DOT org>.</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">*/</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#ifndef _HAVE_PCP_KEYSIG_H</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"></span><span class="preprocessor">#define _HAVE_PCP_KEYSIG_H</span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <string.h></span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <stdio.h></span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "defines.h"</span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "platform.h"</span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "mem.h"</span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "buffer.h"</span></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "key.h"</span></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#define PCP_RAW_KEYSIGSIZE sizeof(pcp_keysig_t) - sizeof(UT_hash_handle)</span></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">/* holds a public key signature */</span></div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">struct </span>_pcp_keysig_t {</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  uint8_t type;</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  uint32_t size;</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordtype">char</span> belongs[17];</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  byte checksum[32];</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  byte *blob;</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  UT_hash_handle hh;</div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> };</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>_pcp_keysig_t pcp_keysig_t;</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> pcp_keysig_t *keysig2be(pcp_keysig_t *s);</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> pcp_keysig_t *keysig2native(pcp_keysig_t *s);</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment">/* put a keysig into a buffer, convert to big endian while at it */</span></div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *pcp_keysig2blob(pcp_keysig_t *s);</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">/* fetch a keysig from a buffer, usually loaded from vault */</span></div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> pcp_keysig_t *pcp_keysig_new(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *blob);</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#endif </span><span class="comment">/* _HAVE_PCP_KEYSIG_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,113 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: mac.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">mac.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> This file is part of Pretty Curved Privacy (pcp1).</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> Copyright (C) 2013 T.Linden.</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> This program is free software: you can redistribute it and/or modify</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> it under the terms of the GNU General Public License as published by</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> the Free Software Foundation, either version 3 of the License, or</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> (at your option) any later version.</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> This program is distributed in the hope that it will be useful,</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> GNU General Public License for more details.</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> You should have received a copy of the GNU General Public License</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> You can contact me by mail: <tlinden AT cpan DOT org>.</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">*/</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#ifndef _HAVE_PCP_MAC</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"></span><span class="preprocessor">#define _HAVE_PCP_MAC</span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <strings.h></span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <stdlib.h></span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <errno.h></span></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <sodium.h></span></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "pad.h"</span></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "mem.h"</span></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">/* how many times do we hash the passphrase */</span></div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#define HCYCLES 128000</span></div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keywordtype">size_t</span> <a class="code" href="group__CRYPTO.html#gaf9ec9f99af7315fa9f1a5f9649f27347" title="Symmetrically encrypt a message.">pcp_sodium_mac</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **cipher,</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *cleartext,</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordtype">size_t</span> clearsize,</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *nonce,</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key);</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keywordtype">int</span> <a class="code" href="group__CRYPTO.html#ga6475f85713c66641097d26bc9121bf70" title="Decrypt a symmetrically encrypted message.">pcp_sodium_verify_mac</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **cleartext,</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* message,</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordtype">size_t</span> messagesize,</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *nonce,</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key);</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor">#endif </span><span class="comment">/* _HAVE_PCP_MAC */</span><span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,107 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: mem.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">mem.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> This file is part of Pretty Curved Privacy (pcp1).</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> Copyright (C) 2013 T.Linden.</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> This program is free software: you can redistribute it and/or modify</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> it under the terms of the GNU General Public License as published by</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> the Free Software Foundation, either version 3 of the License, or</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> (at your option) any later version.</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> This program is distributed in the hope that it will be useful,</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> GNU General Public License for more details.</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> You should have received a copy of the GNU General Public License</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> You can contact me by mail: <tlinden AT cpan DOT org>.</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">*/</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#ifndef _HAVE_PCP_MEM</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"></span><span class="preprocessor">#define _HAVE_PCP_MEM</span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <string.h></span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <stdlib.h></span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "platform.h"</span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">/* simple malloc() wrapper */</span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">/* behaves like calloc(), which */</span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">/* I don't have here. */</span></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">/* */</span></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">/* exits if there's no more memory */</span></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">/* available. */</span></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keywordtype">void</span> *ucmalloc(<span class="keywordtype">size_t</span> s);</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">/* the same but it fills the pointer with random values */</span></div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keywordtype">void</span> *urmalloc(<span class="keywordtype">size_t</span> s);</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">/* resize a a pointer and fill the added remainder with zeroes */</span></div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keywordtype">void</span> *ucrealloc(<span class="keywordtype">void</span> *d, <span class="keywordtype">size_t</span> oldlen, <span class="keywordtype">size_t</span> newlen);</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">/* clear and free */</span></div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keywordtype">void</span> ucfree(<span class="keywordtype">void</span> *d, <span class="keywordtype">size_t</span> len);</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#endif </span><span class="comment">/* _HAVE_PCP_MEM */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,199 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: mgmt.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">mgmt.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> This file is part of Pretty Curved Privacy (pcp1).</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> Copyright (C) 2014 T.v.Dein.</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> This program is free software: you can redistribute it and/or modify</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> it under the terms of the GNU General Public License as published by</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> the Free Software Foundation, either version 3 of the License, or</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> (at your option) any later version.</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> This program is distributed in the hope that it will be useful,</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> GNU General Public License for more details.</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> You should have received a copy of the GNU General Public License</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> You can contact me by mail: <tom AT vondein DOT org>.</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">*/</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> key management, namely import and export routines.</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> we're working with buffers only, no direct file i/o */</span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#ifndef _HAVE_PCP_MGMT_H</span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"></span><span class="preprocessor">#define _HAVE_PCP_MGMT_H</span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <sodium.h></span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <string.h></span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <stdio.h></span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <time.h></span></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "defines.h"</span></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "platform.h"</span></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "mem.h"</span></div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "ed.h"</span></div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "key.h"</span></div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "keysig.h"</span></div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "buffer.h"</span></div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include "scrypt.h"</span></div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">/* key management api, export, import, yaml and stuff */</span></div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">/* various helper structs, used internally only */</span></div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">struct </span>_pcp_rfc_pubkey_header_t {</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  uint8_t version;</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  uint32_t ctime;</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  uint8_t cipher;</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> };</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">struct </span>_pcp_rfc_pubkey_0x21_t {</div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  byte sig_ed25519_pub[crypto_sign_PUBLICKEYBYTES];</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  byte ed25519_pub[crypto_sign_PUBLICKEYBYTES];</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  byte curve25519_pub[crypto_box_PUBLICKEYBYTES];</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> };</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">struct </span>_pcp_rfc_pubkey_sigheader_0x21_t {</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  uint8_t version;</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  uint8_t type;</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  uint8_t pkcipher;</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  uint8_t hashcipher;</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  uint16_t numsubs;</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> };</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">struct </span>_pcp_rfc_pubkey_sigsub_0x21_t {</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  uint32_t size;</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  uint8_t type;</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> };</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>_pcp_rfc_pubkey_header_t rfc_pub_h;</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>_pcp_rfc_pubkey_0x21_t rfc_pub_k;</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>_pcp_rfc_pubkey_sigheader_0x21_t rfc_pub_sig_h;</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>_pcp_rfc_pubkey_sigsub_0x21_t rfc_pub_sig_s;</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">struct </span>_pcp_ks_bundle_t {</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="struct__pcp__pubkey__t.html" title="PCP public key structure.">pcp_pubkey_t</a> *p;</div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  pcp_keysig_t *s;</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> };</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>_pcp_ks_bundle_t pcp_ks_bundle_t;</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor">#define EXP_PK_CIPHER 0x21</span></div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor"></span><span class="preprocessor">#define EXP_PK_CIPHER_NAME "CURVE25519-ED25519-POLY1305-SALSA20"</span></div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor">#define EXP_HASH_CIPHER 0x22</span></div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor"></span><span class="preprocessor">#define EXP_HASH_NAME "BLAKE2"</span></div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor">#define EXP_SIG_CIPHER 0x23</span></div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor"></span><span class="preprocessor">#define EXP_SIG_CIPHER_NAME "ED25519"</span></div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor">#define EXP_SIG_VERSION 0x01</span></div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor"></span><span class="preprocessor">#define EXP_SIG_TYPE 0x1F </span><span class="comment">/* self signed */</span><span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">/* sig sub notiation we support */</span></div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor">#define EXP_SIG_SUB_CTIME 2</span></div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor"></span><span class="preprocessor">#define EXP_SIG_SUB_SIGEXPIRE 3</span></div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor"></span><span class="preprocessor">#define EXP_SIG_SUB_KEYEXPIRE 9</span></div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor"></span><span class="preprocessor">#define EXP_SIG_SUB_NOTATION 20</span></div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor"></span><span class="preprocessor">#define EXP_SIG_SUB_KEYFLAGS 27</span></div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment">/* in armored mode, we're using the usual head+foot */</span></div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor">#define EXP_PK_HEADER "-----BEGIN ED25519-CURVE29915 PUBLIC KEY-----"</span></div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor"></span><span class="preprocessor">#define EXP_PK_FOOTER "------END ED25519-CURVE29915 PUBLIC KEY------"</span></div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor"></span><span class="preprocessor">#define EXP_SK_HEADER "-----BEGIN ED25519-CURVE29915 PRIVATE KEY-----"</span></div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor"></span><span class="preprocessor">#define EXP_SK_FOOTER "------END ED25519-CURVE29915 PRIVATE KEY------"</span></div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment">/* pubkey export formats */</span></div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor">#define EXP_FORMAT_NATIVE 1</span></div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor"></span><span class="preprocessor">#define EXP_FORMAT_PBP 2</span></div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor"></span><span class="preprocessor">#define EXP_FORMAT_YAML 3</span></div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="preprocessor"></span><span class="preprocessor">#define EXP_FORMAT_C 4</span></div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="preprocessor"></span><span class="preprocessor">#define EXP_FORMAT_PY 5</span></div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="preprocessor"></span><span class="preprocessor">#define EXP_FORMAT_PERL 6</span></div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *<a class="code" href="group__PubKeyExport.html#ga297bca6f73e413db21c5fb1095fc51d5" title="RFC4880 alike public key export with some modifications.">pcp_export_rfc_pub</a> (<a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *sk);</div>
|
||||
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
|
||||
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div>
|
||||
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *<a class="code" href="group__PubKeyExport.html#gabfb1403cf523240b3b3192a9611b0e84" title="Export a public key in PBP format.">pcp_export_pbp_pub</a>(<a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *sk);</div>
|
||||
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div>
|
||||
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *<a class="code" href="group__PubKeyExport.html#ga12c5a4abb2ee4a39468a0bce40e1803e" title="Export a public key in yaml format.">pcp_export_yaml_pub</a>(<a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *sk);</div>
|
||||
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div>
|
||||
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *<a class="code" href="group__PubKeyExport.html#ga76abbe52369932afe6b929ddebabb3a5" title="Export a public key in perl code format.">pcp_export_perl_pub</a>(<a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *sk);</div>
|
||||
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
|
||||
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *<a class="code" href="group__PubKeyExport.html#ga10025040f3c5c93644aab02673346723" title="Export a public key in C code format.">pcp_export_c_pub</a>(<a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *sk);</div>
|
||||
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div>
|
||||
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *<a class="code" href="group__PubKeyExport.html#gae702b541366d32ae73e76e4810928bd9" title="Export secret key.">pcp_export_secret</a>(<a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *sk, <span class="keywordtype">char</span> *passphrase);</div>
|
||||
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div>
|
||||
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> pcp_ks_bundle_t *pcp_import_pub(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *raw, <span class="keywordtype">size_t</span> rawsize);</div>
|
||||
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> pcp_ks_bundle_t *pcp_import_pub_rfc(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *blob);</div>
|
||||
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> pcp_ks_bundle_t *pcp_import_pub_pbp(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *blob);</div>
|
||||
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div>
|
||||
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="comment">/* import secret key */</span></div>
|
||||
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *pcp_import_secret(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *raw, <span class="keywordtype">size_t</span> rawsize, <span class="keywordtype">char</span> *passphrase);</div>
|
||||
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <a class="code" href="struct__pcp__key__t.html" title="PCP private key structure.">pcp_key_t</a> *pcp_import_secret_native(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *cipher, <span class="keywordtype">char</span> *passphrase);</div>
|
||||
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> </div>
|
||||
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor">#endif // _HAVE_PCP_MGMT_H</span></div>
|
||||
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,66 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: Modules</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">Modules</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="textblock">Here is a list of all modules:</div><div class="directory">
|
||||
<table class="directory">
|
||||
<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__Buffer.html" target="_self">BUFFER</a></td><td class="desc">Flexible buffer management, idea from openssh/buffer.c</td></tr>
|
||||
<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__CRYPTO.html" target="_self">CRYPTO</a></td><td class="desc">Functions for symmetrical or asymmetrical encryption using NaCL</td></tr>
|
||||
<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__FATALS.html" target="_self">FATALS</a></td><td class="desc">A couple of functions to catch errors and display them</td></tr>
|
||||
<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__ED.html" target="_self">SIGNING</a></td><td class="desc">ED25519 signature functions</td></tr>
|
||||
<tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__KEYS.html" target="_self">KEYS</a></td><td class="desc">PCP public and secret key functions</td></tr>
|
||||
<tr id="row_5_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__KEYHASH.html" target="_self">KEYHASH</a></td><td class="desc">Uthashes of secret and public key structures</td></tr>
|
||||
<tr id="row_6_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__PubKeyExport.html" target="_self">KEYEXPORT</a></td><td class="desc">Functions to export and import keys in various formats</td></tr>
|
||||
<tr id="row_7_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__Pcpstream.html" target="_self">PCPSTREAMS</a></td><td class="desc">I/O wrapper for files or buffers</td></tr>
|
||||
<tr id="row_8_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__UTILs.html" target="_self">UTILS</a></td><td class="desc">Various useful helper functions</td></tr>
|
||||
<tr id="row_9_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__VAULT.html" target="_self">VAULT</a></td><td class="desc">The vault file is used to store keys and key-signatures on disk</td></tr>
|
||||
<tr id="row_10_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group__Z85.html" target="_self">Z85</a></td><td class="desc">Z85 Encoding functions</td></tr>
|
||||
</table>
|
||||
</div><!-- directory -->
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
|
Before Width: | Height: | Size: 153 B |
|
Before Width: | Height: | Size: 95 B |
|
Before Width: | Height: | Size: 98 B |
|
Before Width: | Height: | Size: 123 B |
@@ -1,158 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: pad.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">pad.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> This file is part of Pretty Curved Privacy (pcp1).</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> Copyright (C) 2013 T.Linden.</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> This program is free software: you can redistribute it and/or modify</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> it under the terms of the GNU General Public License as published by</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> the Free Software Foundation, either version 3 of the License, or</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> (at your option) any later version.</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> This program is distributed in the hope that it will be useful,</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> GNU General Public License for more details.</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> You should have received a copy of the GNU General Public License</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> You can contact me by mail: <tlinden AT cpan DOT org>.</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">*/</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#ifndef _HAVE_PCP_ZPADDING</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"></span><span class="preprocessor">#define _HAVE_PCP_ZPADDING</span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <stdio.h></span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <string.h></span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <stdlib.h></span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <stdlib.h></span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <limits.h></span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "mem.h"</span></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#ifdef DEBUG</span></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"></span><span class="preprocessor">#define ZPADCHAR 48</span></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"></span><span class="preprocessor">#define ZPADCHAR 0</span></div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">/* prepends a binary stream with a number of */</span></div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">/* \0's as required by the secret_box and */</span></div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">/* secret_box_open functions of libsodium. */</span></div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">/* */</span></div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">/* parameters: */</span></div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">/* */</span></div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">/* padded: destination array (ref) */</span></div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">/* unpadded: source array without padding */</span></div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">/* padlen: length of padding */</span></div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">/* unpadlen: length of source array */</span></div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">/* */</span></div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">/* turns "efa5" into "00000000efa5" with padlen 8 */</span></div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment">/* */</span></div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">/* if DEBUG is set, destination will be padded with */</span></div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">/* the character '0', NOT the integer 0. */</span></div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">/* */</span></div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">/* allocates memory for padded and it is up to the */</span></div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment">/* user to free it after use. */</span></div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">/* */</span></div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">/* sample call: */</span></div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">/* */</span></div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">/* char unpadded[] = {0xef, 0xa5}; */</span></div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">/* unsigned char *padded; */</span></div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment">/* pcp_pad_prepend(&padded, unpadded, 8, 2); */</span></div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment">/* */</span></div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment">/* the result, padded, would be 10 bytes long, 8 */</span></div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment">/* bytes for the leading zeros and 2 for the content */</span></div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment">/* of the original unpadded. */</span></div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keywordtype">void</span> pcp_pad_prepend(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **padded, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *unpadded,</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordtype">size_t</span> padlen, <span class="keywordtype">size_t</span> unpadlen);</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment">/* removes zero's of a binary stream, which is */</span></div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment">/* the reverse of pcp_pad_prepend(). */</span></div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment">/* */</span></div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment">/* parameters: */</span></div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment">/* */</span></div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment">/* unpadded: destination array (ref), with padding removed */</span></div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment">/* padded: source array with padding */</span></div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment">/* padlen: length of padding */</span></div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment">/* unpadlen: length of source array */</span></div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment">/* */</span></div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment">/* turns "00000000efa5" into "efa5" with padlen 8 */</span></div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment">/* */</span></div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment">/* allocates memory for unpadded and it is up to the */</span></div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment">/* user to free it after use. */</span></div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment">/* */</span></div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment">/* sample call: */</span></div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment">/* */</span></div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment">/* char padded[] = {0x0, 0x0, 0x0, 0x0, 0xef, 0xa5}; */</span></div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment">/* unsigned char *unpadded; */</span></div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment">/* pcp_pad_remove(unpadded, padded, 4, 2); */</span></div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment">/* */</span></div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment">/* the result, unpadded would be 2 bytes long containing */</span></div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment">/* only the 2 bytes we want to have with zeros removed. */</span></div>
|
||||
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keywordtype">void</span> pcp_pad_remove(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **unpadded, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *padded,</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordtype">size_t</span> padlen, <span class="keywordtype">size_t</span> unpadlen);</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor">#endif </span><span class="comment">/* _HAVE_PCP_ZPADDING */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,131 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: pcpstream.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">pcpstream.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> This file is part of Pretty Curved Privacy (pcp1).</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> Copyright (C) 2013-2014 T.v.Dein.</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> This program is free software: you can redistribute it and/or modify</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> it under the terms of the GNU General Public License as published by</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> the Free Software Foundation, either version 3 of the License, or</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> (at your option) any later version.</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> This program is distributed in the hope that it will be useful,</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> GNU General Public License for more details.</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> You should have received a copy of the GNU General Public License</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> You can contact me by mail: <tom AT vondein DOT org>.</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">*/</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifndef HAVE_PCP_PCPSTEAM_H</span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"></span><span class="preprocessor">#define HAVE_PCP_PCPSTEAM_H</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <stdarg.h></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <stdio.h></span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "mem.h"</span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "util.h"</span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "defines.h"</span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "buffer.h"</span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"><a class="code" href="struct__pcp__stream__t.html"> 58</a></span> <span class="keyword">struct </span><a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">_pcp_stream_t</a> {</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"><a class="code" href="struct__pcp__stream__t.html#ab3be4b7b5c57f456ed996cb0b5d53f27"> 59</a></span>  FILE *<a class="code" href="struct__pcp__stream__t.html#ab3be4b7b5c57f456ed996cb0b5d53f27" title="The backend FILE stream.">fd</a>; </div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"><a class="code" href="struct__pcp__stream__t.html#a320a3c593ebcf0a651700f9263e5d9b4"> 60</a></span>  <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *<a class="code" href="struct__pcp__stream__t.html#a320a3c593ebcf0a651700f9263e5d9b4" title="The backend Buffer object.">b</a>; </div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="struct__pcp__stream__t.html#a5fc108c71fb18d9835f7083e1b2ff5fa"> 61</a></span>  uint8_t <a class="code" href="struct__pcp__stream__t.html#a5fc108c71fb18d9835f7083e1b2ff5fa" title="Set to 1 if the backend is a Buffer.">is_buffer</a>; </div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="struct__pcp__stream__t.html#a4b0242f83eec494ee19ad41e08e924af"> 62</a></span>  uint8_t <a class="code" href="struct__pcp__stream__t.html#a4b0242f83eec494ee19ad41e08e924af" title="Set to 1 if EOF reached.">eof</a>; </div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"><a class="code" href="struct__pcp__stream__t.html#aaed1bd389ba84b3cd87839088b4057ea"> 63</a></span>  uint8_t <a class="code" href="struct__pcp__stream__t.html#aaed1bd389ba84b3cd87839088b4057ea" title="Set to 1 if an error occured.">err</a>; </div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> };</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73"> 67</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">_pcp_stream_t</a> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a>;</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment">/* initialize a new empty stream */</span></div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *ps_init(<span class="keywordtype">void</span>);</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *<a class="code" href="group__Pcpstream.html#ga6733979d79704b2e3ce914662b0cebc8" title="Create a new stream, backed with an open file.">ps_new_file</a>(FILE *backendfd);</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *<a class="code" href="group__Pcpstream.html#ga1b50c92fdad290e59317af2404460662" title="Create a new input stream, backed with filled a buffer.">ps_new_inbuffer</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *<a class="code" href="struct__pcp__stream__t.html#a320a3c593ebcf0a651700f9263e5d9b4" title="The backend Buffer object.">b</a>);</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *<a class="code" href="group__Pcpstream.html#ga13ec0245b579949e6d586e1817615d2e" title="Create a new output stream, backed with a buffer.">ps_new_outbuffer</a>();</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keywordtype">size_t</span> <a class="code" href="group__Pcpstream.html#gacfede4b1e9fa1ce0ccd7a55379ff6f15" title="Read bytes into the given buffer from the current stream.">ps_read</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream, <span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> readbytes);</div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keywordtype">size_t</span> <a class="code" href="group__Pcpstream.html#gab8e98ef81e802a242fbdb788b4387873" title="Write bytes from the given buffer into the current stream.">ps_write</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream, <span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> writebytes);</div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
|
||||
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="keywordtype">size_t</span> <a class="code" href="group__Pcpstream.html#gafd50eb5e9c8ba399e133b6029eca8856" title="Write a formatted string to the stream.">ps_print</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream, <span class="keyword">const</span> <span class="keywordtype">char</span> * fmt, ...);</div>
|
||||
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
|
||||
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="keywordtype">size_t</span> <a class="code" href="group__Pcpstream.html#ga72812698d6b6aca964c7289be41eccf8" title="Tell the current read or write offset.">ps_tell</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream);</div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
|
||||
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *<a class="code" href="group__Pcpstream.html#ga64bc34dfbc1b3951c3d62e82a1ae8c34" title="Access the Buffer backend pointer.">ps_buffer</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream);</div>
|
||||
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
|
||||
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="keywordtype">void</span> <a class="code" href="group__Pcpstream.html#ga4a68da22eca6e9bd854d54467a071d0a" title="Close the stream and frees allocated memory.">ps_close</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream);</div>
|
||||
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div>
|
||||
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="keywordtype">int</span> <a class="code" href="group__Pcpstream.html#gac845e4dc3677aeef5e4de343d3f8033d" title="Check if EOF have been reached.">ps_end</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream);</div>
|
||||
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
|
||||
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keywordtype">int</span> <a class="code" href="group__Pcpstream.html#ga97b83164ecda8fd66897863ec7976890" title="Check if an error occurred during a read or write operation.">ps_err</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream);</div>
|
||||
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div>
|
||||
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div>
|
||||
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="preprocessor">#endif // HAVE_PCP_PCPSTEAM_H</span></div>
|
||||
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,136 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: plist.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">plist.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> This file is part of Pretty Curved Privacy (pcp1).</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> Copyright (C) 2013 T. von Dein.</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> This program is free software: you can redistribute it and/or modify</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> it under the terms of the GNU General Public License as published by</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> the Free Software Foundation, either version 3 of the License, or</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> (at your option) any later version.</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> This program is distributed in the hope that it will be useful,</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> GNU General Public License for more details.</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> You should have received a copy of the GNU General Public License</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> You can contact me by mail: <tlinden AT cpan DOT org>.</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">*/</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> Simple linked list wrappers,</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> used for recipient- or keyid lists</span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment">*/</span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#ifndef _HAVE_PCP_PLIST_H</span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"></span><span class="preprocessor">#define _HAVE_PCP_PLIST_H</span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <stdlib.h></span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <stdio.h></span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">struct </span>_plist_t {</div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keywordtype">char</span> *value;</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">struct </span>_plist_t *next;</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">struct </span>_plist_t *first;</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> };</div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>_plist_t plist_t;</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> p_add(plist_t **lst, <span class="keywordtype">char</span> *value) {</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  plist_t *newitem;</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  plist_t *iter = *lst;</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  newitem = (plist_t *)malloc(<span class="keyword">sizeof</span>(plist_t));</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  newitem->value = (<span class="keywordtype">char</span> *)malloc(strlen(value) + 1);</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  strncpy(newitem->value, value, strlen(value) + 1);</div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  newitem->next = NULL;</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">if</span> ( iter != NULL ) {</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">while</span> (iter->next != NULL ) {</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  iter = iter->next;</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  newitem->first = iter->first;</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  iter->next = newitem;</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  }</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">else</span> {</div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  newitem->first = newitem;</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  *lst = newitem;</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  }</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> }</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> p_clean(plist_t *lst) {</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  plist_t *iter = lst->first;</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  plist_t *tmp;</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">while</span> (iter != NULL) {</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  tmp = iter;</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  iter = iter->next;</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  free(tmp->value);</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  free(tmp);</div>
|
||||
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> }</div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor">#endif </span><span class="comment">/* _HAVE_PCP_PLIST_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,114 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: randomart.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">randomart.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* $OpenBSD: key.c,v 1.70 2008/06/11 21:01:35 grunk Exp $ */</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * read_bignum():</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * As far as I am concerned, the code I have written for this software</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * can be used freely for any purpose. Any derived versions of this</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * software must be clearly marked as such, and if the derived work is</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * incompatible with the protocol description in the RFC file, it must be</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * called by a name other than "ssh" or "Secure Shell".</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> *</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved.</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> *</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * modification, are permitted provided that the following conditions</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * are met:</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * documentation and/or other materials provided with the distribution.</span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> *</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR</span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES</span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.</span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,</span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT</span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF</span></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment"> * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment"> */</span></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">/* key_fingerprint_randomart comitted by Alexander von Gernler in rev 1.70 */</span></div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#ifndef _HAVE_PCP_RANDOMART_H</span></div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"></span><span class="preprocessor">#define _HAVE_PCP_RANDOMART_H</span></div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include "mem.h"</span></div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include <string.h></span></div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">/* from openssh key.c */</span></div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#ifndef MAX</span></div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor"></span><span class="preprocessor"># define MAX(a,b) (((a)>(b))?(a):(b))</span></div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"></span><span class="preprocessor"># define MIN(a,b) (((a)<(b))?(a):(b))</span></div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keywordtype">char</span> *key_fingerprint_randomart(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *dgst_raw, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dgst_raw_len);</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#endif </span><span class="comment">/* _HAVE_PCP_RANDOMART_H */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,102 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: scrypt.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">scrypt.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> This file is part of Pretty Curved Privacy (pcp1).</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> Copyright (C) 2013 T.Linden.</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> This program is free software: you can redistribute it and/or modify</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> it under the terms of the GNU General Public License as published by</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> the Free Software Foundation, either version 3 of the License, or</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> (at your option) any later version.</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> This program is distributed in the hope that it will be useful,</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> GNU General Public License for more details.</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> You should have received a copy of the GNU General Public License</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> You can contact me by mail: <tlinden AT cpan DOT org>.</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">*/</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#ifndef _HAVE_PCP_SCRYPT_H</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"></span><span class="preprocessor">#define _HAVE_PCP_SCRYPT_H</span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <sys/types.h></span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <stdint.h></span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <stdio.h></span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <stdlib.h></span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <string.h></span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <errno.h></span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <sodium.h></span></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "crypto_scrypt.h"</span></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "mem.h"</span></div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "defines.h"</span></div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> * pcp_scrypt(<span class="keywordtype">char</span> *passwd, <span class="keywordtype">size_t</span> passwdlen, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *nonce, <span class="keywordtype">size_t</span> noncelen);</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#endif </span><span class="comment">/* _HAVE_PCP_SCRYPT_H */</span><span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,68 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: Member List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">_pcp_buffer Member List</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>This is the complete list of members for <a class="el" href="struct__pcp__buffer.html">_pcp_buffer</a>, including all inherited members.</p>
|
||||
<table class="directory">
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__buffer.html#a48fee003c319d92f8d9a5e4c2c735e6f">allocated</a></td><td class="entry"><a class="el" href="struct__pcp__buffer.html">_pcp_buffer</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__buffer.html#a7fdd9e4a9ed7abfc5eec36cb1eca281a">blocksize</a></td><td class="entry"><a class="el" href="struct__pcp__buffer.html">_pcp_buffer</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__buffer.html#a8d80e52785446bcc9e2fd4456c97daf5">buf</a></td><td class="entry"><a class="el" href="struct__pcp__buffer.html">_pcp_buffer</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__buffer.html#acad944641be2d2e4c4109f83b6a6609f">end</a></td><td class="entry"><a class="el" href="struct__pcp__buffer.html">_pcp_buffer</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__buffer.html#aa1e4c60e982f39498ce66af85325bab6">isstring</a></td><td class="entry"><a class="el" href="struct__pcp__buffer.html">_pcp_buffer</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__buffer.html#aa45619703bed4597d1ac7a45c40b92e3">name</a></td><td class="entry"><a class="el" href="struct__pcp__buffer.html">_pcp_buffer</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__buffer.html#a0ea19798e2cd04c152980bd7caac5d10">offset</a></td><td class="entry"><a class="el" href="struct__pcp__buffer.html">_pcp_buffer</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__buffer.html#a8bf9eb28e7fa878847212133ece0c482">size</a></td><td class="entry"><a class="el" href="struct__pcp__buffer.html">_pcp_buffer</a></td><td class="entry"></td></tr>
|
||||
</table></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,230 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: _pcp_buffer Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#pub-attribs">Public Attributes</a> |
|
||||
<a href="struct__pcp__buffer-members.html">List of all members</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">_pcp_buffer Struct Reference<div class="ingroups"><a class="el" href="group__Buffer.html">BUFFER</a></div></div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>A flexible buffer object wich automatically resizes, if neccessary.
|
||||
<a href="struct__pcp__buffer.html#details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="buffer_8h_source.html">buffer.h</a>></code></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
|
||||
Public Attributes</h2></td></tr>
|
||||
<tr class="memitem:aa45619703bed4597d1ac7a45c40b92e3"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__buffer.html#aa45619703bed4597d1ac7a45c40b92e3">name</a></td></tr>
|
||||
<tr class="memdesc:aa45619703bed4597d1ac7a45c40b92e3"><td class="mdescLeft"> </td><td class="mdescRight">just for convenience in error messages and the like, so we know which buffer cause trouble <a href="#aa45619703bed4597d1ac7a45c40b92e3"></a><br/></td></tr>
|
||||
<tr class="separator:aa45619703bed4597d1ac7a45c40b92e3"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a48fee003c319d92f8d9a5e4c2c735e6f"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__buffer.html#a48fee003c319d92f8d9a5e4c2c735e6f">allocated</a></td></tr>
|
||||
<tr class="memdesc:a48fee003c319d92f8d9a5e4c2c735e6f"><td class="mdescLeft"> </td><td class="mdescRight">marks the buffer as allocated <a href="#a48fee003c319d92f8d9a5e4c2c735e6f"></a><br/></td></tr>
|
||||
<tr class="separator:a48fee003c319d92f8d9a5e4c2c735e6f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a7fdd9e4a9ed7abfc5eec36cb1eca281a"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__buffer.html#a7fdd9e4a9ed7abfc5eec36cb1eca281a">blocksize</a></td></tr>
|
||||
<tr class="memdesc:a7fdd9e4a9ed7abfc5eec36cb1eca281a"><td class="mdescLeft"> </td><td class="mdescRight">the blocksize to use when resizing, also used for initial malloc() <a href="#a7fdd9e4a9ed7abfc5eec36cb1eca281a"></a><br/></td></tr>
|
||||
<tr class="separator:a7fdd9e4a9ed7abfc5eec36cb1eca281a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a8bf9eb28e7fa878847212133ece0c482"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__buffer.html#a8bf9eb28e7fa878847212133ece0c482">size</a></td></tr>
|
||||
<tr class="memdesc:a8bf9eb28e7fa878847212133ece0c482"><td class="mdescLeft"> </td><td class="mdescRight">stores the current allocated size of the object <a href="#a8bf9eb28e7fa878847212133ece0c482"></a><br/></td></tr>
|
||||
<tr class="separator:a8bf9eb28e7fa878847212133ece0c482"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a0ea19798e2cd04c152980bd7caac5d10"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__buffer.html#a0ea19798e2cd04c152980bd7caac5d10">offset</a></td></tr>
|
||||
<tr class="memdesc:a0ea19798e2cd04c152980bd7caac5d10"><td class="mdescLeft"> </td><td class="mdescRight">current read position <a href="#a0ea19798e2cd04c152980bd7caac5d10"></a><br/></td></tr>
|
||||
<tr class="separator:a0ea19798e2cd04c152980bd7caac5d10"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:acad944641be2d2e4c4109f83b6a6609f"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__buffer.html#acad944641be2d2e4c4109f83b6a6609f">end</a></td></tr>
|
||||
<tr class="memdesc:acad944641be2d2e4c4109f83b6a6609f"><td class="mdescLeft"> </td><td class="mdescRight">current write position, data end. <a href="#acad944641be2d2e4c4109f83b6a6609f"></a><br/></td></tr>
|
||||
<tr class="separator:acad944641be2d2e4c4109f83b6a6609f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa1e4c60e982f39498ce66af85325bab6"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__buffer.html#aa1e4c60e982f39498ce66af85325bab6">isstring</a></td></tr>
|
||||
<tr class="memdesc:aa1e4c60e982f39498ce66af85325bab6"><td class="mdescLeft"> </td><td class="mdescRight">treat as char array/string <a href="#aa1e4c60e982f39498ce66af85325bab6"></a><br/></td></tr>
|
||||
<tr class="separator:aa1e4c60e982f39498ce66af85325bab6"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a8d80e52785446bcc9e2fd4456c97daf5"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__buffer.html#a8d80e52785446bcc9e2fd4456c97daf5">buf</a></td></tr>
|
||||
<tr class="memdesc:a8d80e52785446bcc9e2fd4456c97daf5"><td class="mdescLeft"> </td><td class="mdescRight">the actual storage buffer <a href="#a8d80e52785446bcc9e2fd4456c97daf5"></a><br/></td></tr>
|
||||
<tr class="separator:a8d80e52785446bcc9e2fd4456c97daf5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>A flexible buffer object wich automatically resizes, if neccessary. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="buffer_8h_source.html#l00050">50</a> of file <a class="el" href="buffer_8h_source.html">buffer.h</a>.</p>
|
||||
</div><h2 class="groupheader">Member Data Documentation</h2>
|
||||
<a class="anchor" id="a48fee003c319d92f8d9a5e4c2c735e6f"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint8_t _pcp_buffer::allocated</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>marks the buffer as allocated </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="buffer_8h_source.html#l00052">52</a> of file <a class="el" href="buffer_8h_source.html">buffer.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a7fdd9e4a9ed7abfc5eec36cb1eca281a"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">size_t _pcp_buffer::blocksize</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>the blocksize to use when resizing, also used for initial malloc() </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="buffer_8h_source.html#l00053">53</a> of file <a class="el" href="buffer_8h_source.html">buffer.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a8d80e52785446bcc9e2fd4456c97daf5"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void* _pcp_buffer::buf</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>the actual storage buffer </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="buffer_8h_source.html#l00058">58</a> of file <a class="el" href="buffer_8h_source.html">buffer.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="acad944641be2d2e4c4109f83b6a6609f"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">size_t _pcp_buffer::end</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>current write position, data end. </p>
|
||||
<p>maybe less than size. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="buffer_8h_source.html#l00056">56</a> of file <a class="el" href="buffer_8h_source.html">buffer.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="aa1e4c60e982f39498ce66af85325bab6"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint8_t _pcp_buffer::isstring</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>treat as char array/string </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="buffer_8h_source.html#l00057">57</a> of file <a class="el" href="buffer_8h_source.html">buffer.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="aa45619703bed4597d1ac7a45c40b92e3"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">char* _pcp_buffer::name</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>just for convenience in error messages and the like, so we know which buffer cause trouble </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="buffer_8h_source.html#l00051">51</a> of file <a class="el" href="buffer_8h_source.html">buffer.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a0ea19798e2cd04c152980bd7caac5d10"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">size_t _pcp_buffer::offset</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>current read position </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="buffer_8h_source.html#l00055">55</a> of file <a class="el" href="buffer_8h_source.html">buffer.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a8bf9eb28e7fa878847212133ece0c482"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">size_t _pcp_buffer::size</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>stores the current allocated size of the object </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="buffer_8h_source.html#l00054">54</a> of file <a class="el" href="buffer_8h_source.html">buffer.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
<li><a class="el" href="buffer_8h_source.html">buffer.h</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,75 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: Member List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">_pcp_key_t Member List</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>This is the complete list of members for <a class="el" href="struct__pcp__key__t.html">_pcp_key_t</a>, including all inherited members.</p>
|
||||
<table class="directory">
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__key__t.html#ac848ee41e72b2d4da0a85288f90165fa">ctime</a></td><td class="entry"><a class="el" href="struct__pcp__key__t.html">_pcp_key_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__key__t.html#a5fbb76c6d2988ee039966c19e64440ef">edpub</a></td><td class="entry"><a class="el" href="struct__pcp__key__t.html">_pcp_key_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__key__t.html#a420b3fd1bc46d668c088c8360a53838d">edsecret</a></td><td class="entry"><a class="el" href="struct__pcp__key__t.html">_pcp_key_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__key__t.html#a1da3d67421a27665dfe207403364a349">encrypted</a></td><td class="entry"><a class="el" href="struct__pcp__key__t.html">_pcp_key_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__key__t.html#a99e0435c5d7a074e5969e7a83bc93f67">id</a></td><td class="entry"><a class="el" href="struct__pcp__key__t.html">_pcp_key_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__key__t.html#a6259d3e70f1ae793398e2e83eba9ae6d">mail</a></td><td class="entry"><a class="el" href="struct__pcp__key__t.html">_pcp_key_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__key__t.html#a776b37491c8bfd98de8f239bb9a41695">masterpub</a></td><td class="entry"><a class="el" href="struct__pcp__key__t.html">_pcp_key_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__key__t.html#a0df2e9e13765ae54213fb0e9cad65173">mastersecret</a></td><td class="entry"><a class="el" href="struct__pcp__key__t.html">_pcp_key_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__key__t.html#a4363b752a7242f0d789ec8ca75e1c426">nonce</a></td><td class="entry"><a class="el" href="struct__pcp__key__t.html">_pcp_key_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__key__t.html#a058c2dce0c18939b2b6b7b0272a7095d">owner</a></td><td class="entry"><a class="el" href="struct__pcp__key__t.html">_pcp_key_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__key__t.html#abf48278152e33968e634a4a5aea1076c">pub</a></td><td class="entry"><a class="el" href="struct__pcp__key__t.html">_pcp_key_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__key__t.html#a6d2a4ac0d698bc759b2a814f28d15282">secret</a></td><td class="entry"><a class="el" href="struct__pcp__key__t.html">_pcp_key_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__key__t.html#a06aa6c7284118608fd6573a54372e263">serial</a></td><td class="entry"><a class="el" href="struct__pcp__key__t.html">_pcp_key_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__key__t.html#a5cefa1a4a2d1a49361aac5a3fb8d988f">type</a></td><td class="entry"><a class="el" href="struct__pcp__key__t.html">_pcp_key_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__key__t.html#af9f00779fcbbedaf0b17caa3f3a6fa30">version</a></td><td class="entry"><a class="el" href="struct__pcp__key__t.html">_pcp_key_t</a></td><td class="entry"></td></tr>
|
||||
</table></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,373 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: _pcp_key_t Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#pub-attribs">Public Attributes</a> |
|
||||
<a href="struct__pcp__key__t-members.html">List of all members</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">_pcp_key_t Struct Reference<div class="ingroups"><a class="el" href="group__KEYS.html">KEYS</a></div></div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>PCP private key structure.
|
||||
<a href="struct__pcp__key__t.html#details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="key_8h_source.html">key.h</a>></code></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
|
||||
Public Attributes</h2></td></tr>
|
||||
<tr class="memitem:a776b37491c8bfd98de8f239bb9a41695"><td class="memItemLeft" align="right" valign="top">byte </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__key__t.html#a776b37491c8bfd98de8f239bb9a41695">masterpub</a> [32]</td></tr>
|
||||
<tr class="memdesc:a776b37491c8bfd98de8f239bb9a41695"><td class="mdescLeft"> </td><td class="mdescRight">ED25519 master public key signing key. <a href="#a776b37491c8bfd98de8f239bb9a41695"></a><br/></td></tr>
|
||||
<tr class="separator:a776b37491c8bfd98de8f239bb9a41695"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a0df2e9e13765ae54213fb0e9cad65173"><td class="memItemLeft" align="right" valign="top">byte </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__key__t.html#a0df2e9e13765ae54213fb0e9cad65173">mastersecret</a> [64]</td></tr>
|
||||
<tr class="memdesc:a0df2e9e13765ae54213fb0e9cad65173"><td class="mdescLeft"> </td><td class="mdescRight">ED25519 master secret key signing key. <a href="#a0df2e9e13765ae54213fb0e9cad65173"></a><br/></td></tr>
|
||||
<tr class="separator:a0df2e9e13765ae54213fb0e9cad65173"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:abf48278152e33968e634a4a5aea1076c"><td class="memItemLeft" align="right" valign="top">byte </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__key__t.html#abf48278152e33968e634a4a5aea1076c">pub</a> [32]</td></tr>
|
||||
<tr class="memdesc:abf48278152e33968e634a4a5aea1076c"><td class="mdescLeft"> </td><td class="mdescRight">Curve25519 encryption public key. <a href="#abf48278152e33968e634a4a5aea1076c"></a><br/></td></tr>
|
||||
<tr class="separator:abf48278152e33968e634a4a5aea1076c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a6d2a4ac0d698bc759b2a814f28d15282"><td class="memItemLeft" align="right" valign="top">byte </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__key__t.html#a6d2a4ac0d698bc759b2a814f28d15282">secret</a> [32]</td></tr>
|
||||
<tr class="memdesc:a6d2a4ac0d698bc759b2a814f28d15282"><td class="mdescLeft"> </td><td class="mdescRight">Curve25519 encryption secret key. <a href="#a6d2a4ac0d698bc759b2a814f28d15282"></a><br/></td></tr>
|
||||
<tr class="separator:a6d2a4ac0d698bc759b2a814f28d15282"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a5fbb76c6d2988ee039966c19e64440ef"><td class="memItemLeft" align="right" valign="top">byte </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__key__t.html#a5fbb76c6d2988ee039966c19e64440ef">edpub</a> [32]</td></tr>
|
||||
<tr class="memdesc:a5fbb76c6d2988ee039966c19e64440ef"><td class="mdescLeft"> </td><td class="mdescRight">ED25519 public signing key. <a href="#a5fbb76c6d2988ee039966c19e64440ef"></a><br/></td></tr>
|
||||
<tr class="separator:a5fbb76c6d2988ee039966c19e64440ef"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a420b3fd1bc46d668c088c8360a53838d"><td class="memItemLeft" align="right" valign="top">byte </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__key__t.html#a420b3fd1bc46d668c088c8360a53838d">edsecret</a> [64]</td></tr>
|
||||
<tr class="memdesc:a420b3fd1bc46d668c088c8360a53838d"><td class="mdescLeft"> </td><td class="mdescRight">ED25519 secret signing key. <a href="#a420b3fd1bc46d668c088c8360a53838d"></a><br/></td></tr>
|
||||
<tr class="separator:a420b3fd1bc46d668c088c8360a53838d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a4363b752a7242f0d789ec8ca75e1c426"><td class="memItemLeft" align="right" valign="top">byte </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__key__t.html#a4363b752a7242f0d789ec8ca75e1c426">nonce</a> [24]</td></tr>
|
||||
<tr class="memdesc:a4363b752a7242f0d789ec8ca75e1c426"><td class="mdescLeft"> </td><td class="mdescRight">random nonce used to encrypt secret keys <a href="#a4363b752a7242f0d789ec8ca75e1c426"></a><br/></td></tr>
|
||||
<tr class="separator:a4363b752a7242f0d789ec8ca75e1c426"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a1da3d67421a27665dfe207403364a349"><td class="memItemLeft" align="right" valign="top">byte </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__key__t.html#a1da3d67421a27665dfe207403364a349">encrypted</a> [176]</td></tr>
|
||||
<tr class="memdesc:a1da3d67421a27665dfe207403364a349"><td class="mdescLeft"> </td><td class="mdescRight">concatenated and encrypted secret keys <a href="#a1da3d67421a27665dfe207403364a349"></a><br/></td></tr>
|
||||
<tr class="separator:a1da3d67421a27665dfe207403364a349"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a058c2dce0c18939b2b6b7b0272a7095d"><td class="memItemLeft" align="right" valign="top">char </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__key__t.html#a058c2dce0c18939b2b6b7b0272a7095d">owner</a> [255]</td></tr>
|
||||
<tr class="memdesc:a058c2dce0c18939b2b6b7b0272a7095d"><td class="mdescLeft"> </td><td class="mdescRight">the key owner, string <a href="#a058c2dce0c18939b2b6b7b0272a7095d"></a><br/></td></tr>
|
||||
<tr class="separator:a058c2dce0c18939b2b6b7b0272a7095d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a6259d3e70f1ae793398e2e83eba9ae6d"><td class="memItemLeft" align="right" valign="top">char </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__key__t.html#a6259d3e70f1ae793398e2e83eba9ae6d">mail</a> [255]</td></tr>
|
||||
<tr class="memdesc:a6259d3e70f1ae793398e2e83eba9ae6d"><td class="mdescLeft"> </td><td class="mdescRight">mail address of the owner, string <a href="#a6259d3e70f1ae793398e2e83eba9ae6d"></a><br/></td></tr>
|
||||
<tr class="separator:a6259d3e70f1ae793398e2e83eba9ae6d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a99e0435c5d7a074e5969e7a83bc93f67"><td class="memItemLeft" align="right" valign="top">char </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__key__t.html#a99e0435c5d7a074e5969e7a83bc93f67">id</a> [17]</td></tr>
|
||||
<tr class="memdesc:a99e0435c5d7a074e5969e7a83bc93f67"><td class="mdescLeft"> </td><td class="mdescRight">key-id, used internally only, jenhash of public keys <a href="#a99e0435c5d7a074e5969e7a83bc93f67"></a><br/></td></tr>
|
||||
<tr class="separator:a99e0435c5d7a074e5969e7a83bc93f67"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a5cefa1a4a2d1a49361aac5a3fb8d988f"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__key__t.html#a5cefa1a4a2d1a49361aac5a3fb8d988f">type</a></td></tr>
|
||||
<tr class="memdesc:a5cefa1a4a2d1a49361aac5a3fb8d988f"><td class="mdescLeft"> </td><td class="mdescRight">key type: MASTER_SECRET or SECRET <a href="#a5cefa1a4a2d1a49361aac5a3fb8d988f"></a><br/></td></tr>
|
||||
<tr class="separator:a5cefa1a4a2d1a49361aac5a3fb8d988f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac848ee41e72b2d4da0a85288f90165fa"><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__key__t.html#ac848ee41e72b2d4da0a85288f90165fa">ctime</a></td></tr>
|
||||
<tr class="memdesc:ac848ee41e72b2d4da0a85288f90165fa"><td class="mdescLeft"> </td><td class="mdescRight">creation time, epoch <a href="#ac848ee41e72b2d4da0a85288f90165fa"></a><br/></td></tr>
|
||||
<tr class="separator:ac848ee41e72b2d4da0a85288f90165fa"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:af9f00779fcbbedaf0b17caa3f3a6fa30"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__key__t.html#af9f00779fcbbedaf0b17caa3f3a6fa30">version</a></td></tr>
|
||||
<tr class="memdesc:af9f00779fcbbedaf0b17caa3f3a6fa30"><td class="mdescLeft"> </td><td class="mdescRight">key version <a href="#af9f00779fcbbedaf0b17caa3f3a6fa30"></a><br/></td></tr>
|
||||
<tr class="separator:af9f00779fcbbedaf0b17caa3f3a6fa30"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a06aa6c7284118608fd6573a54372e263"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__key__t.html#a06aa6c7284118608fd6573a54372e263">serial</a></td></tr>
|
||||
<tr class="memdesc:a06aa6c7284118608fd6573a54372e263"><td class="mdescLeft"> </td><td class="mdescRight">serial number of the key, randomly generated <a href="#a06aa6c7284118608fd6573a54372e263"></a><br/></td></tr>
|
||||
<tr class="separator:a06aa6c7284118608fd6573a54372e263"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>PCP private key structure. </p>
|
||||
<p>Most fields are self explanatory.</p>
|
||||
<p>Some notes:</p>
|
||||
<p>'encrypted' contains the encrypted secret keys (contatenated mastersecret, secret and edsecret). If it's set, the field 'secret' which contains the clear secret key will be zeroed with random values, the first byte will be 0. Same for the field 'edsecret'.</p>
|
||||
<p>'nonce' contains the nonce required to decrypt the encrypted secret, if set.</p>
|
||||
<p>'serial' is a random number.</p>
|
||||
<p>'id' is a string containing the hex values of the CRC32 checksum of the public and secret key.</p>
|
||||
<p>Upon creation everything will be filled with random bytes. String fields will contain a string followed by 0 followed by the rest of the pre-filled random bytes. To denote a string field as empty, the first byte will be set to 0.</p>
|
||||
<p>There are dynamically calculated attributes as well:</p>
|
||||
<p>'checksum' is a 256 bit SHA hash of the public key returned by <a class="el" href="group__KEYS.html#gaa2678fef0a024456ee82d1bfa60c5fb2" title="Calculate a checksum of a public key part of the given secret key.">pcpkey_getchecksum()</a> or <a class="el" href="group__KEYS.html#ga78309dfa0b19b697ca64d8af2e7d796d" title="Calculate a checksum of a public key.">pcppubkey_getchecksum()</a>.</p>
|
||||
<p>'random id' is a random art ascii image returned by <a class="el" href="group__KEYS.html#gabdc09d45ad7a6f9f039f9240635a743f" title="Generate an ASCII art image of the public key.">pcppubkey_get_art()</a> or <a class="el" href="group__KEYS.html#ga13aae5cf5986e308f1af674bedf0e6fd" title="Generate an ASCII art image of the public key part of a secret key.">pcpkey_get_art()</a>, calculated from the public key.</p>
|
||||
<p>If exported to a single file or printed, the structure will be encoded using Z85 encoding. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00093">93</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
</div><h2 class="groupheader">Member Data Documentation</h2>
|
||||
<a class="anchor" id="ac848ee41e72b2d4da0a85288f90165fa"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint64_t _pcp_key_t::ctime</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>creation time, epoch </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00106">106</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a5fbb76c6d2988ee039966c19e64440ef"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">byte _pcp_key_t::edpub[32]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>ED25519 public signing key. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00098">98</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a420b3fd1bc46d668c088c8360a53838d"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">byte _pcp_key_t::edsecret[64]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>ED25519 secret signing key. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00099">99</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a1da3d67421a27665dfe207403364a349"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">byte _pcp_key_t::encrypted[176]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>concatenated and encrypted secret keys </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00101">101</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a99e0435c5d7a074e5969e7a83bc93f67"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">char _pcp_key_t::id[17]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>key-id, used internally only, jenhash of public keys </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00104">104</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a6259d3e70f1ae793398e2e83eba9ae6d"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">char _pcp_key_t::mail[255]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>mail address of the owner, string </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00103">103</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a776b37491c8bfd98de8f239bb9a41695"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">byte _pcp_key_t::masterpub[32]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>ED25519 master public key signing key. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00094">94</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a0df2e9e13765ae54213fb0e9cad65173"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">byte _pcp_key_t::mastersecret[64]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>ED25519 master secret key signing key. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00095">95</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a4363b752a7242f0d789ec8ca75e1c426"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">byte _pcp_key_t::nonce[24]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>random nonce used to encrypt secret keys </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00100">100</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a058c2dce0c18939b2b6b7b0272a7095d"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">char _pcp_key_t::owner[255]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>the key owner, string </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00102">102</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="abf48278152e33968e634a4a5aea1076c"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">byte _pcp_key_t::pub[32]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Curve25519 encryption public key. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00096">96</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a6d2a4ac0d698bc759b2a814f28d15282"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">byte _pcp_key_t::secret[32]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Curve25519 encryption secret key. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00097">97</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a06aa6c7284118608fd6573a54372e263"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint32_t _pcp_key_t::serial</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>serial number of the key, randomly generated </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00108">108</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a5cefa1a4a2d1a49361aac5a3fb8d988f"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint8_t _pcp_key_t::type</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>key type: MASTER_SECRET or SECRET </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00105">105</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="af9f00779fcbbedaf0b17caa3f3a6fa30"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint32_t _pcp_key_t::version</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>key version </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00107">107</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
<li><a class="el" href="key_8h_source.html">key.h</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,73 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: Member List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">_pcp_pubkey_t Member List</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>This is the complete list of members for <a class="el" href="struct__pcp__pubkey__t.html">_pcp_pubkey_t</a>, including all inherited members.</p>
|
||||
<table class="directory">
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html#a9ac602791697d90bf56ecb0a7a7c3714">ctime</a></td><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html">_pcp_pubkey_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html#a7d4d53e88c0ca2b09364394cf1dee200">edpub</a></td><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html">_pcp_pubkey_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html#ad10eadcb9325538e71c9fd8b140dbdd2">id</a></td><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html">_pcp_pubkey_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html#a5d4e99518b3c0edcccd2917274e7cc29">mail</a></td><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html">_pcp_pubkey_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html#a0c503b0cdf8a331d54f3affb18fd068e">masterpub</a></td><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html">_pcp_pubkey_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html#a1cc906382ef13dc456e9a15b84843a79">owner</a></td><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html">_pcp_pubkey_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html#a10cb7717fbf5cc0ba9584fd3c1d7bb33">pub</a></td><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html">_pcp_pubkey_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html#afd1941bc57da1a65f8038b47e3ccd21d">serial</a></td><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html">_pcp_pubkey_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html#ad6952d39d4ebc81d0677649e5f369013">signature</a></td><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html">_pcp_pubkey_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html#a7e6b30f39e7107c4b3b7cd67cdc019f9">sigpub</a></td><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html">_pcp_pubkey_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html#a2154caabdc447e21106e117205c1259d">type</a></td><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html">_pcp_pubkey_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html#af93af4b3e259d6fa9e05009e564be8f7">valid</a></td><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html">_pcp_pubkey_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html#aaebe0105dd79f3d22575dd29ff1d7356">version</a></td><td class="entry"><a class="el" href="struct__pcp__pubkey__t.html">_pcp_pubkey_t</a></td><td class="entry"></td></tr>
|
||||
</table></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,325 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: _pcp_pubkey_t Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#pub-attribs">Public Attributes</a> |
|
||||
<a href="struct__pcp__pubkey__t-members.html">List of all members</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">_pcp_pubkey_t Struct Reference<div class="ingroups"><a class="el" href="group__KEYS.html">KEYS</a></div></div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>PCP public key structure.
|
||||
<a href="struct__pcp__pubkey__t.html#details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="key_8h_source.html">key.h</a>></code></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
|
||||
Public Attributes</h2></td></tr>
|
||||
<tr class="memitem:a0c503b0cdf8a331d54f3affb18fd068e"><td class="memItemLeft" align="right" valign="top">byte </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__pubkey__t.html#a0c503b0cdf8a331d54f3affb18fd068e">masterpub</a> [32]</td></tr>
|
||||
<tr class="memdesc:a0c503b0cdf8a331d54f3affb18fd068e"><td class="mdescLeft"> </td><td class="mdescRight">ED25519 master public key signing key. <a href="#a0c503b0cdf8a331d54f3affb18fd068e"></a><br/></td></tr>
|
||||
<tr class="separator:a0c503b0cdf8a331d54f3affb18fd068e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a7e6b30f39e7107c4b3b7cd67cdc019f9"><td class="memItemLeft" align="right" valign="top">byte </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__pubkey__t.html#a7e6b30f39e7107c4b3b7cd67cdc019f9">sigpub</a> [32]</td></tr>
|
||||
<tr class="memdesc:a7e6b30f39e7107c4b3b7cd67cdc019f9"><td class="mdescLeft"> </td><td class="mdescRight">ED25519 public signing key. <a href="#a7e6b30f39e7107c4b3b7cd67cdc019f9"></a><br/></td></tr>
|
||||
<tr class="separator:a7e6b30f39e7107c4b3b7cd67cdc019f9"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a10cb7717fbf5cc0ba9584fd3c1d7bb33"><td class="memItemLeft" align="right" valign="top">byte </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__pubkey__t.html#a10cb7717fbf5cc0ba9584fd3c1d7bb33">pub</a> [32]</td></tr>
|
||||
<tr class="memdesc:a10cb7717fbf5cc0ba9584fd3c1d7bb33"><td class="mdescLeft"> </td><td class="mdescRight">Curve25519 encryption public key. <a href="#a10cb7717fbf5cc0ba9584fd3c1d7bb33"></a><br/></td></tr>
|
||||
<tr class="separator:a10cb7717fbf5cc0ba9584fd3c1d7bb33"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a7d4d53e88c0ca2b09364394cf1dee200"><td class="memItemLeft" align="right" valign="top">byte </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__pubkey__t.html#a7d4d53e88c0ca2b09364394cf1dee200">edpub</a> [32]</td></tr>
|
||||
<tr class="memdesc:a7d4d53e88c0ca2b09364394cf1dee200"><td class="mdescLeft"> </td><td class="mdescRight">ED25519 public signing key (FIXME: huh? 2 of them???) <a href="#a7d4d53e88c0ca2b09364394cf1dee200"></a><br/></td></tr>
|
||||
<tr class="separator:a7d4d53e88c0ca2b09364394cf1dee200"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a1cc906382ef13dc456e9a15b84843a79"><td class="memItemLeft" align="right" valign="top">char </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__pubkey__t.html#a1cc906382ef13dc456e9a15b84843a79">owner</a> [255]</td></tr>
|
||||
<tr class="memdesc:a1cc906382ef13dc456e9a15b84843a79"><td class="mdescLeft"> </td><td class="mdescRight">the key owner, string <a href="#a1cc906382ef13dc456e9a15b84843a79"></a><br/></td></tr>
|
||||
<tr class="separator:a1cc906382ef13dc456e9a15b84843a79"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a5d4e99518b3c0edcccd2917274e7cc29"><td class="memItemLeft" align="right" valign="top">char </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__pubkey__t.html#a5d4e99518b3c0edcccd2917274e7cc29">mail</a> [255]</td></tr>
|
||||
<tr class="memdesc:a5d4e99518b3c0edcccd2917274e7cc29"><td class="mdescLeft"> </td><td class="mdescRight">mail address of the owner, string <a href="#a5d4e99518b3c0edcccd2917274e7cc29"></a><br/></td></tr>
|
||||
<tr class="separator:a5d4e99518b3c0edcccd2917274e7cc29"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ad10eadcb9325538e71c9fd8b140dbdd2"><td class="memItemLeft" align="right" valign="top">char </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__pubkey__t.html#ad10eadcb9325538e71c9fd8b140dbdd2">id</a> [17]</td></tr>
|
||||
<tr class="memdesc:ad10eadcb9325538e71c9fd8b140dbdd2"><td class="mdescLeft"> </td><td class="mdescRight">key-id, used internally only, jenhash of public keys <a href="#ad10eadcb9325538e71c9fd8b140dbdd2"></a><br/></td></tr>
|
||||
<tr class="separator:ad10eadcb9325538e71c9fd8b140dbdd2"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2154caabdc447e21106e117205c1259d"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__pubkey__t.html#a2154caabdc447e21106e117205c1259d">type</a></td></tr>
|
||||
<tr class="memdesc:a2154caabdc447e21106e117205c1259d"><td class="mdescLeft"> </td><td class="mdescRight">key type: MASTER_SECRET or SECRET <a href="#a2154caabdc447e21106e117205c1259d"></a><br/></td></tr>
|
||||
<tr class="separator:a2154caabdc447e21106e117205c1259d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a9ac602791697d90bf56ecb0a7a7c3714"><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__pubkey__t.html#a9ac602791697d90bf56ecb0a7a7c3714">ctime</a></td></tr>
|
||||
<tr class="memdesc:a9ac602791697d90bf56ecb0a7a7c3714"><td class="mdescLeft"> </td><td class="mdescRight">creation time, epoch <a href="#a9ac602791697d90bf56ecb0a7a7c3714"></a><br/></td></tr>
|
||||
<tr class="separator:a9ac602791697d90bf56ecb0a7a7c3714"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aaebe0105dd79f3d22575dd29ff1d7356"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__pubkey__t.html#aaebe0105dd79f3d22575dd29ff1d7356">version</a></td></tr>
|
||||
<tr class="memdesc:aaebe0105dd79f3d22575dd29ff1d7356"><td class="mdescLeft"> </td><td class="mdescRight">key version <a href="#aaebe0105dd79f3d22575dd29ff1d7356"></a><br/></td></tr>
|
||||
<tr class="separator:aaebe0105dd79f3d22575dd29ff1d7356"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:afd1941bc57da1a65f8038b47e3ccd21d"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__pubkey__t.html#afd1941bc57da1a65f8038b47e3ccd21d">serial</a></td></tr>
|
||||
<tr class="memdesc:afd1941bc57da1a65f8038b47e3ccd21d"><td class="mdescLeft"> </td><td class="mdescRight">serial number of the key, randomly generated <a href="#afd1941bc57da1a65f8038b47e3ccd21d"></a><br/></td></tr>
|
||||
<tr class="separator:afd1941bc57da1a65f8038b47e3ccd21d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:af93af4b3e259d6fa9e05009e564be8f7"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__pubkey__t.html#af93af4b3e259d6fa9e05009e564be8f7">valid</a></td></tr>
|
||||
<tr class="memdesc:af93af4b3e259d6fa9e05009e564be8f7"><td class="mdescLeft"> </td><td class="mdescRight">1 if import signature verified, 0 if not <a href="#af93af4b3e259d6fa9e05009e564be8f7"></a><br/></td></tr>
|
||||
<tr class="separator:af93af4b3e259d6fa9e05009e564be8f7"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ad6952d39d4ebc81d0677649e5f369013"><td class="memItemLeft" align="right" valign="top">byte </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__pubkey__t.html#ad6952d39d4ebc81d0677649e5f369013">signature</a> [crypto_generichash_BYTES_MAX+crypto_sign_BYTES]</td></tr>
|
||||
<tr class="memdesc:ad6952d39d4ebc81d0677649e5f369013"><td class="mdescLeft"> </td><td class="mdescRight">raw binary blob of pubkey export signature <a href="#ad6952d39d4ebc81d0677649e5f369013"></a><br/></td></tr>
|
||||
<tr class="separator:ad6952d39d4ebc81d0677649e5f369013"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>PCP public key structure. </p>
|
||||
<p>This structure contains a subset of the pcp_key_t structure without the secret and nonce fields. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00122">122</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
</div><h2 class="groupheader">Member Data Documentation</h2>
|
||||
<a class="anchor" id="a9ac602791697d90bf56ecb0a7a7c3714"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint64_t _pcp_pubkey_t::ctime</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>creation time, epoch </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00131">131</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a7d4d53e88c0ca2b09364394cf1dee200"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">byte _pcp_pubkey_t::edpub[32]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>ED25519 public signing key (FIXME: huh? 2 of them???) </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00126">126</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ad10eadcb9325538e71c9fd8b140dbdd2"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">char _pcp_pubkey_t::id[17]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>key-id, used internally only, jenhash of public keys </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00129">129</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a5d4e99518b3c0edcccd2917274e7cc29"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">char _pcp_pubkey_t::mail[255]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>mail address of the owner, string </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00128">128</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a0c503b0cdf8a331d54f3affb18fd068e"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">byte _pcp_pubkey_t::masterpub[32]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>ED25519 master public key signing key. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00123">123</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a1cc906382ef13dc456e9a15b84843a79"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">char _pcp_pubkey_t::owner[255]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>the key owner, string </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00127">127</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a10cb7717fbf5cc0ba9584fd3c1d7bb33"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">byte _pcp_pubkey_t::pub[32]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Curve25519 encryption public key. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00125">125</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="afd1941bc57da1a65f8038b47e3ccd21d"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint32_t _pcp_pubkey_t::serial</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>serial number of the key, randomly generated </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00133">133</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ad6952d39d4ebc81d0677649e5f369013"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">byte _pcp_pubkey_t::signature[crypto_generichash_BYTES_MAX+crypto_sign_BYTES]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>raw binary blob of pubkey export signature </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00135">135</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a7e6b30f39e7107c4b3b7cd67cdc019f9"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">byte _pcp_pubkey_t::sigpub[32]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>ED25519 public signing key. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00124">124</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a2154caabdc447e21106e117205c1259d"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint8_t _pcp_pubkey_t::type</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>key type: MASTER_SECRET or SECRET </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00130">130</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="af93af4b3e259d6fa9e05009e564be8f7"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint8_t _pcp_pubkey_t::valid</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>1 if import signature verified, 0 if not </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00134">134</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="aaebe0105dd79f3d22575dd29ff1d7356"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint32_t _pcp_pubkey_t::version</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>key version </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00132">132</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
<li><a class="el" href="key_8h_source.html">key.h</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,64 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: Member List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">_pcp_rec_t Member List</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>This is the complete list of members for <a class="el" href="struct__pcp__rec__t.html">_pcp_rec_t</a>, including all inherited members.</p>
|
||||
<table class="directory">
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__rec__t.html#a5ee9ab68d084ed116bb81bd773122ada">cipher</a></td><td class="entry"><a class="el" href="struct__pcp__rec__t.html">_pcp_rec_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__rec__t.html#a1e3bc60866c85b917b284ed6590e4145">ciphersize</a></td><td class="entry"><a class="el" href="struct__pcp__rec__t.html">_pcp_rec_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__rec__t.html#ac8918a7a90e23d54ca5d1873c6fbcd02">pub</a></td><td class="entry"><a class="el" href="struct__pcp__rec__t.html">_pcp_rec_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__rec__t.html#a0167577bf19d9845c4f16c83878f74c8">secret</a></td><td class="entry"><a class="el" href="struct__pcp__rec__t.html">_pcp_rec_t</a></td><td class="entry"></td></tr>
|
||||
</table></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,155 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: _pcp_rec_t Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#pub-attribs">Public Attributes</a> |
|
||||
<a href="struct__pcp__rec__t-members.html">List of all members</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">_pcp_rec_t Struct Reference<div class="ingroups"><a class="el" href="group__KEYS.html">KEYS</a></div></div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Encrypted recipient list.
|
||||
<a href="struct__pcp__rec__t.html#details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="key_8h_source.html">key.h</a>></code></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
|
||||
Public Attributes</h2></td></tr>
|
||||
<tr class="memitem:a1e3bc60866c85b917b284ed6590e4145"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__rec__t.html#a1e3bc60866c85b917b284ed6590e4145">ciphersize</a></td></tr>
|
||||
<tr class="memdesc:a1e3bc60866c85b917b284ed6590e4145"><td class="mdescLeft"> </td><td class="mdescRight">the size of the encrypted recipient list <a href="#a1e3bc60866c85b917b284ed6590e4145"></a><br/></td></tr>
|
||||
<tr class="separator:a1e3bc60866c85b917b284ed6590e4145"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a5ee9ab68d084ed116bb81bd773122ada"><td class="memItemLeft" align="right" valign="top">byte * </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__rec__t.html#a5ee9ab68d084ed116bb81bd773122ada">cipher</a></td></tr>
|
||||
<tr class="memdesc:a5ee9ab68d084ed116bb81bd773122ada"><td class="mdescLeft"> </td><td class="mdescRight">contains the whole encrypted recipient list <a href="#a5ee9ab68d084ed116bb81bd773122ada"></a><br/></td></tr>
|
||||
<tr class="separator:a5ee9ab68d084ed116bb81bd773122ada"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a0167577bf19d9845c4f16c83878f74c8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__rec__t.html#a0167577bf19d9845c4f16c83878f74c8">secret</a></td></tr>
|
||||
<tr class="memdesc:a0167577bf19d9845c4f16c83878f74c8"><td class="mdescLeft"> </td><td class="mdescRight">the secret key of the recipient for signing <a href="#a0167577bf19d9845c4f16c83878f74c8"></a><br/></td></tr>
|
||||
<tr class="separator:a0167577bf19d9845c4f16c83878f74c8"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ac8918a7a90e23d54ca5d1873c6fbcd02"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__rec__t.html#ac8918a7a90e23d54ca5d1873c6fbcd02">pub</a></td></tr>
|
||||
<tr class="memdesc:ac8918a7a90e23d54ca5d1873c6fbcd02"><td class="mdescLeft"> </td><td class="mdescRight">if verification were ok, contains the public key of the signer <a href="#ac8918a7a90e23d54ca5d1873c6fbcd02"></a><br/></td></tr>
|
||||
<tr class="separator:ac8918a7a90e23d54ca5d1873c6fbcd02"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>Encrypted recipient list. </p>
|
||||
<p>Encrypted recipient list, required for crypt+sign contains the encrypted recipients and the secret key required for signing the message+recipients.</p>
|
||||
<p>Used internally only. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00166">166</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
</div><h2 class="groupheader">Member Data Documentation</h2>
|
||||
<a class="anchor" id="a5ee9ab68d084ed116bb81bd773122ada"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">byte* _pcp_rec_t::cipher</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>contains the whole encrypted recipient list </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00168">168</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a1e3bc60866c85b917b284ed6590e4145"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">size_t _pcp_rec_t::ciphersize</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>the size of the encrypted recipient list </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00167">167</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ac8918a7a90e23d54ca5d1873c6fbcd02"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a>* _pcp_rec_t::pub</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>if verification were ok, contains the public key of the signer </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00170">170</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a0167577bf19d9845c4f16c83878f74c8"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a>* _pcp_rec_t::secret</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>the secret key of the recipient for signing </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="key_8h_source.html#l00169">169</a> of file <a class="el" href="key_8h_source.html">key.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
<li><a class="el" href="key_8h_source.html">key.h</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,65 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: Member List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">_pcp_stream_t Member List</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>This is the complete list of members for <a class="el" href="struct__pcp__stream__t.html">_pcp_stream_t</a>, including all inherited members.</p>
|
||||
<table class="directory">
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__stream__t.html#a320a3c593ebcf0a651700f9263e5d9b4">b</a></td><td class="entry"><a class="el" href="struct__pcp__stream__t.html">_pcp_stream_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__stream__t.html#a4b0242f83eec494ee19ad41e08e924af">eof</a></td><td class="entry"><a class="el" href="struct__pcp__stream__t.html">_pcp_stream_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__stream__t.html#aaed1bd389ba84b3cd87839088b4057ea">err</a></td><td class="entry"><a class="el" href="struct__pcp__stream__t.html">_pcp_stream_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__pcp__stream__t.html#ab3be4b7b5c57f456ed996cb0b5d53f27">fd</a></td><td class="entry"><a class="el" href="struct__pcp__stream__t.html">_pcp_stream_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__pcp__stream__t.html#a5fc108c71fb18d9835f7083e1b2ff5fa">is_buffer</a></td><td class="entry"><a class="el" href="struct__pcp__stream__t.html">_pcp_stream_t</a></td><td class="entry"></td></tr>
|
||||
</table></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,172 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: _pcp_stream_t Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#pub-attribs">Public Attributes</a> |
|
||||
<a href="struct__pcp__stream__t-members.html">List of all members</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">_pcp_stream_t Struct Reference<div class="ingroups"><a class="el" href="group__Pcpstream.html">PCPSTREAMS</a></div></div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>An I/O wrapper object backed by a file or a buffer.
|
||||
<a href="struct__pcp__stream__t.html#details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>></code></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
|
||||
Public Attributes</h2></td></tr>
|
||||
<tr class="memitem:ab3be4b7b5c57f456ed996cb0b5d53f27"><td class="memItemLeft" align="right" valign="top">FILE * </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__stream__t.html#ab3be4b7b5c57f456ed996cb0b5d53f27">fd</a></td></tr>
|
||||
<tr class="memdesc:ab3be4b7b5c57f456ed996cb0b5d53f27"><td class="mdescLeft"> </td><td class="mdescRight">The backend FILE stream. <a href="#ab3be4b7b5c57f456ed996cb0b5d53f27"></a><br/></td></tr>
|
||||
<tr class="separator:ab3be4b7b5c57f456ed996cb0b5d53f27"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a320a3c593ebcf0a651700f9263e5d9b4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__Buffer.html#ga2460ea15a51a37433b5f2e1503667e8f">Buffer</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__stream__t.html#a320a3c593ebcf0a651700f9263e5d9b4">b</a></td></tr>
|
||||
<tr class="memdesc:a320a3c593ebcf0a651700f9263e5d9b4"><td class="mdescLeft"> </td><td class="mdescRight">The backend Buffer object. <a href="#a320a3c593ebcf0a651700f9263e5d9b4"></a><br/></td></tr>
|
||||
<tr class="separator:a320a3c593ebcf0a651700f9263e5d9b4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a5fc108c71fb18d9835f7083e1b2ff5fa"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__stream__t.html#a5fc108c71fb18d9835f7083e1b2ff5fa">is_buffer</a></td></tr>
|
||||
<tr class="memdesc:a5fc108c71fb18d9835f7083e1b2ff5fa"><td class="mdescLeft"> </td><td class="mdescRight">Set to 1 if the backend is a Buffer. <a href="#a5fc108c71fb18d9835f7083e1b2ff5fa"></a><br/></td></tr>
|
||||
<tr class="separator:a5fc108c71fb18d9835f7083e1b2ff5fa"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a4b0242f83eec494ee19ad41e08e924af"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__stream__t.html#a4b0242f83eec494ee19ad41e08e924af">eof</a></td></tr>
|
||||
<tr class="memdesc:a4b0242f83eec494ee19ad41e08e924af"><td class="mdescLeft"> </td><td class="mdescRight">Set to 1 if EOF reached. <a href="#a4b0242f83eec494ee19ad41e08e924af"></a><br/></td></tr>
|
||||
<tr class="separator:a4b0242f83eec494ee19ad41e08e924af"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aaed1bd389ba84b3cd87839088b4057ea"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__pcp__stream__t.html#aaed1bd389ba84b3cd87839088b4057ea">err</a></td></tr>
|
||||
<tr class="memdesc:aaed1bd389ba84b3cd87839088b4057ea"><td class="mdescLeft"> </td><td class="mdescRight">Set to 1 if an error occured. <a href="#aaed1bd389ba84b3cd87839088b4057ea"></a><br/></td></tr>
|
||||
<tr class="separator:aaed1bd389ba84b3cd87839088b4057ea"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>An I/O wrapper object backed by a file or a buffer. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00058">58</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
||||
</div><h2 class="groupheader">Member Data Documentation</h2>
|
||||
<a class="anchor" id="a320a3c593ebcf0a651700f9263e5d9b4"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="group__Buffer.html#ga2460ea15a51a37433b5f2e1503667e8f">Buffer</a>* _pcp_stream_t::b</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>The backend Buffer object. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00060">60</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a4b0242f83eec494ee19ad41e08e924af"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint8_t _pcp_stream_t::eof</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Set to 1 if EOF reached. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00062">62</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="aaed1bd389ba84b3cd87839088b4057ea"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint8_t _pcp_stream_t::err</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Set to 1 if an error occured. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00063">63</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ab3be4b7b5c57f456ed996cb0b5d53f27"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">FILE* _pcp_stream_t::fd</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>The backend FILE stream. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00059">59</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a5fc108c71fb18d9835f7083e1b2ff5fa"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint8_t _pcp_stream_t::is_buffer</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Set to 1 if the backend is a Buffer. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00061">61</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
<li><a class="el" href="pcpstream_8h_source.html">pcpstream.h</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,63 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: Member List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">_vault_header_t Member List</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>This is the complete list of members for <a class="el" href="struct__vault__header__t.html">_vault_header_t</a>, including all inherited members.</p>
|
||||
<table class="directory">
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__vault__header__t.html#a60589e0cbf3ff9495e5c8d3b7f799e8d">checksum</a></td><td class="entry"><a class="el" href="struct__vault__header__t.html">_vault_header_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__vault__header__t.html#a1d8383b18710635ad2a99ffcb7fa0592">fileid</a></td><td class="entry"><a class="el" href="struct__vault__header__t.html">_vault_header_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__vault__header__t.html#a325f9343b65fde4984639a8ed564fd0d">version</a></td><td class="entry"><a class="el" href="struct__vault__header__t.html">_vault_header_t</a></td><td class="entry"></td></tr>
|
||||
</table></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,135 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: _vault_header_t Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#pub-attribs">Public Attributes</a> |
|
||||
<a href="struct__vault__header__t-members.html">List of all members</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">_vault_header_t Struct Reference<div class="ingroups"><a class="el" href="group__VAULT.html">VAULT</a></div></div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Defines the vault header.
|
||||
<a href="struct__vault__header__t.html#details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="vault_8h_source.html">vault.h</a>></code></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
|
||||
Public Attributes</h2></td></tr>
|
||||
<tr class="memitem:a1d8383b18710635ad2a99ffcb7fa0592"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__vault__header__t.html#a1d8383b18710635ad2a99ffcb7fa0592">fileid</a></td></tr>
|
||||
<tr class="memdesc:a1d8383b18710635ad2a99ffcb7fa0592"><td class="mdescLeft"> </td><td class="mdescRight">File id, proprietary. <a href="#a1d8383b18710635ad2a99ffcb7fa0592"></a><br/></td></tr>
|
||||
<tr class="separator:a1d8383b18710635ad2a99ffcb7fa0592"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a325f9343b65fde4984639a8ed564fd0d"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__vault__header__t.html#a325f9343b65fde4984639a8ed564fd0d">version</a></td></tr>
|
||||
<tr class="memdesc:a325f9343b65fde4984639a8ed564fd0d"><td class="mdescLeft"> </td><td class="mdescRight">File version. <a href="#a325f9343b65fde4984639a8ed564fd0d"></a><br/></td></tr>
|
||||
<tr class="separator:a325f9343b65fde4984639a8ed564fd0d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a60589e0cbf3ff9495e5c8d3b7f799e8d"><td class="memItemLeft" align="right" valign="top">byte </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__vault__header__t.html#a60589e0cbf3ff9495e5c8d3b7f799e8d">checksum</a> [32]</td></tr>
|
||||
<tr class="memdesc:a60589e0cbf3ff9495e5c8d3b7f799e8d"><td class="mdescLeft"> </td><td class="mdescRight">SHA256 checksum over the whole vault. <a href="#a60589e0cbf3ff9495e5c8d3b7f799e8d"></a><br/></td></tr>
|
||||
<tr class="separator:a60589e0cbf3ff9495e5c8d3b7f799e8d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>Defines the vault header. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00112">112</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
</div><h2 class="groupheader">Member Data Documentation</h2>
|
||||
<a class="anchor" id="a60589e0cbf3ff9495e5c8d3b7f799e8d"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">byte _vault_header_t::checksum[32]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>SHA256 checksum over the whole vault. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00115">115</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a1d8383b18710635ad2a99ffcb7fa0592"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint8_t _vault_header_t::fileid</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>File id, proprietary. </p>
|
||||
<p>Marks the vault as a vault </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00113">113</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a325f9343b65fde4984639a8ed564fd0d"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint32_t _vault_header_t::version</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>File version. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00114">114</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
<li><a class="el" href="vault_8h_source.html">vault.h</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,64 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: Member List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">_vault_item_header_t Member List</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>This is the complete list of members for <a class="el" href="struct__vault__item__header__t.html">_vault_item_header_t</a>, including all inherited members.</p>
|
||||
<table class="directory">
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__vault__item__header__t.html#a5169dbce0f216fe38f89a214e8217c56">checksum</a></td><td class="entry"><a class="el" href="struct__vault__item__header__t.html">_vault_item_header_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__vault__item__header__t.html#a54e8da230087325ceec0f286de377b8f">size</a></td><td class="entry"><a class="el" href="struct__vault__item__header__t.html">_vault_item_header_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__vault__item__header__t.html#a300141ad03ff5f6cb79aafd9984e5e0e">type</a></td><td class="entry"><a class="el" href="struct__vault__item__header__t.html">_vault_item_header_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__vault__item__header__t.html#a5d3634c7c9d5050f60444326e0a9eea7">version</a></td><td class="entry"><a class="el" href="struct__vault__item__header__t.html">_vault_item_header_t</a></td><td class="entry"></td></tr>
|
||||
</table></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,154 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: _vault_item_header_t Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#pub-attribs">Public Attributes</a> |
|
||||
<a href="struct__vault__item__header__t-members.html">List of all members</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">_vault_item_header_t Struct Reference<div class="ingroups"><a class="el" href="group__VAULT.html">VAULT</a></div></div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>An item header.
|
||||
<a href="struct__vault__item__header__t.html#details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="vault_8h_source.html">vault.h</a>></code></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
|
||||
Public Attributes</h2></td></tr>
|
||||
<tr class="memitem:a300141ad03ff5f6cb79aafd9984e5e0e"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__vault__item__header__t.html#a300141ad03ff5f6cb79aafd9984e5e0e">type</a></td></tr>
|
||||
<tr class="memdesc:a300141ad03ff5f6cb79aafd9984e5e0e"><td class="mdescLeft"> </td><td class="mdescRight">Item type (secret key, public, key, keysig,. <a href="#a300141ad03ff5f6cb79aafd9984e5e0e"></a><br/></td></tr>
|
||||
<tr class="separator:a300141ad03ff5f6cb79aafd9984e5e0e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a54e8da230087325ceec0f286de377b8f"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__vault__item__header__t.html#a54e8da230087325ceec0f286de377b8f">size</a></td></tr>
|
||||
<tr class="memdesc:a54e8da230087325ceec0f286de377b8f"><td class="mdescLeft"> </td><td class="mdescRight">Size of the item. <a href="#a54e8da230087325ceec0f286de377b8f"></a><br/></td></tr>
|
||||
<tr class="separator:a54e8da230087325ceec0f286de377b8f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a5d3634c7c9d5050f60444326e0a9eea7"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__vault__item__header__t.html#a5d3634c7c9d5050f60444326e0a9eea7">version</a></td></tr>
|
||||
<tr class="memdesc:a5d3634c7c9d5050f60444326e0a9eea7"><td class="mdescLeft"> </td><td class="mdescRight">Version of the item. <a href="#a5d3634c7c9d5050f60444326e0a9eea7"></a><br/></td></tr>
|
||||
<tr class="separator:a5d3634c7c9d5050f60444326e0a9eea7"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a5169dbce0f216fe38f89a214e8217c56"><td class="memItemLeft" align="right" valign="top">byte </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__vault__item__header__t.html#a5169dbce0f216fe38f89a214e8217c56">checksum</a> [32]</td></tr>
|
||||
<tr class="memdesc:a5169dbce0f216fe38f89a214e8217c56"><td class="mdescLeft"> </td><td class="mdescRight">SHA256 checksum of the item. <a href="#a5169dbce0f216fe38f89a214e8217c56"></a><br/></td></tr>
|
||||
<tr class="separator:a5169dbce0f216fe38f89a214e8217c56"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>An item header. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00123">123</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
</div><h2 class="groupheader">Member Data Documentation</h2>
|
||||
<a class="anchor" id="a5169dbce0f216fe38f89a214e8217c56"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">byte _vault_item_header_t::checksum[32]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>SHA256 checksum of the item. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00127">127</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a54e8da230087325ceec0f286de377b8f"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint32_t _vault_item_header_t::size</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Size of the item. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00125">125</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a300141ad03ff5f6cb79aafd9984e5e0e"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint8_t _vault_item_header_t::type</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Item type (secret key, public, key, keysig,. </p>
|
||||
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__KEYS.html#ga19da9fe7a497dcd854feff4d29e4472d" title="Internal key types.">_PCP_KEY_TYPES</a> </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00124">124</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a5d3634c7c9d5050f60444326e0a9eea7"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint32_t _vault_item_header_t::version</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Version of the item. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00126">126</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
<li><a class="el" href="vault_8h_source.html">vault.h</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,69 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: Member List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">_vault_t Member List</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>This is the complete list of members for <a class="el" href="struct__vault__t.html">_vault_t</a>, including all inherited members.</p>
|
||||
<table class="directory">
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__vault__t.html#a39fb3dfd4fe6aaafdbfb9a3e88f4f09e">checksum</a></td><td class="entry"><a class="el" href="struct__vault__t.html">_vault_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__vault__t.html#aeb36f1f7c2c1a5ee5dfa15e0047a851c">fd</a></td><td class="entry"><a class="el" href="struct__vault__t.html">_vault_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__vault__t.html#a0ac0cd4db869ca11128eeebf4e44ab1f">filename</a></td><td class="entry"><a class="el" href="struct__vault__t.html">_vault_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__vault__t.html#ada18cb30c8ef3aa4976b431a99a1d170">isnew</a></td><td class="entry"><a class="el" href="struct__vault__t.html">_vault_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__vault__t.html#a763b363f077e9656ecb4dc2c58ad006b">mode</a></td><td class="entry"><a class="el" href="struct__vault__t.html">_vault_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__vault__t.html#a6f8062cda1f43dacd6960c6edf7317f3">modified</a></td><td class="entry"><a class="el" href="struct__vault__t.html">_vault_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__vault__t.html#aedf5d37e686a68b527bf44534398e113">size</a></td><td class="entry"><a class="el" href="struct__vault__t.html">_vault_t</a></td><td class="entry"></td></tr>
|
||||
<tr><td class="entry"><a class="el" href="struct__vault__t.html#aabb4ba4d964189e84e80b843abe8b7bf">unsafed</a></td><td class="entry"><a class="el" href="struct__vault__t.html">_vault_t</a></td><td class="entry"></td></tr>
|
||||
<tr class="even"><td class="entry"><a class="el" href="struct__vault__t.html#a3c19b6b1629efb8504272bbeb62d97ed">version</a></td><td class="entry"><a class="el" href="struct__vault__t.html">_vault_t</a></td><td class="entry"></td></tr>
|
||||
</table></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,248 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: _vault_t Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#pub-attribs">Public Attributes</a> |
|
||||
<a href="struct__vault__t-members.html">List of all members</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">_vault_t Struct Reference<div class="ingroups"><a class="el" href="group__VAULT.html">VAULT</a></div></div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>This structure represents a vault.
|
||||
<a href="struct__vault__t.html#details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="vault_8h_source.html">vault.h</a>></code></p>
|
||||
<table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
|
||||
Public Attributes</h2></td></tr>
|
||||
<tr class="memitem:a0ac0cd4db869ca11128eeebf4e44ab1f"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__vault__t.html#a0ac0cd4db869ca11128eeebf4e44ab1f">filename</a></td></tr>
|
||||
<tr class="memdesc:a0ac0cd4db869ca11128eeebf4e44ab1f"><td class="mdescLeft"> </td><td class="mdescRight">The filename of the vault (full path) <a href="#a0ac0cd4db869ca11128eeebf4e44ab1f"></a><br/></td></tr>
|
||||
<tr class="separator:a0ac0cd4db869ca11128eeebf4e44ab1f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aeb36f1f7c2c1a5ee5dfa15e0047a851c"><td class="memItemLeft" align="right" valign="top">FILE * </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__vault__t.html#aeb36f1f7c2c1a5ee5dfa15e0047a851c">fd</a></td></tr>
|
||||
<tr class="memdesc:aeb36f1f7c2c1a5ee5dfa15e0047a851c"><td class="mdescLeft"> </td><td class="mdescRight">Filehandle if opened. <a href="#aeb36f1f7c2c1a5ee5dfa15e0047a851c"></a><br/></td></tr>
|
||||
<tr class="separator:aeb36f1f7c2c1a5ee5dfa15e0047a851c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aabb4ba4d964189e84e80b843abe8b7bf"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__vault__t.html#aabb4ba4d964189e84e80b843abe8b7bf">unsafed</a></td></tr>
|
||||
<tr class="memdesc:aabb4ba4d964189e84e80b843abe8b7bf"><td class="mdescLeft"> </td><td class="mdescRight">Flag to tell if the file needs to be written. <a href="#aabb4ba4d964189e84e80b843abe8b7bf"></a><br/></td></tr>
|
||||
<tr class="separator:aabb4ba4d964189e84e80b843abe8b7bf"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ada18cb30c8ef3aa4976b431a99a1d170"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__vault__t.html#ada18cb30c8ef3aa4976b431a99a1d170">isnew</a></td></tr>
|
||||
<tr class="memdesc:ada18cb30c8ef3aa4976b431a99a1d170"><td class="mdescLeft"> </td><td class="mdescRight">Flag to tell if the vault has been newly created. <a href="#ada18cb30c8ef3aa4976b431a99a1d170"></a><br/></td></tr>
|
||||
<tr class="separator:ada18cb30c8ef3aa4976b431a99a1d170"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aedf5d37e686a68b527bf44534398e113"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__vault__t.html#aedf5d37e686a68b527bf44534398e113">size</a></td></tr>
|
||||
<tr class="memdesc:aedf5d37e686a68b527bf44534398e113"><td class="mdescLeft"> </td><td class="mdescRight">Filesize. <a href="#aedf5d37e686a68b527bf44534398e113"></a><br/></td></tr>
|
||||
<tr class="separator:aedf5d37e686a68b527bf44534398e113"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a6f8062cda1f43dacd6960c6edf7317f3"><td class="memItemLeft" align="right" valign="top">time_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__vault__t.html#a6f8062cda1f43dacd6960c6edf7317f3">modified</a></td></tr>
|
||||
<tr class="memdesc:a6f8062cda1f43dacd6960c6edf7317f3"><td class="mdescLeft"> </td><td class="mdescRight">mtime <a href="#a6f8062cda1f43dacd6960c6edf7317f3"></a><br/></td></tr>
|
||||
<tr class="separator:a6f8062cda1f43dacd6960c6edf7317f3"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a763b363f077e9656ecb4dc2c58ad006b"><td class="memItemLeft" align="right" valign="top">mode_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__vault__t.html#a763b363f077e9656ecb4dc2c58ad006b">mode</a></td></tr>
|
||||
<tr class="memdesc:a763b363f077e9656ecb4dc2c58ad006b"><td class="mdescLeft"> </td><td class="mdescRight">File mode. <a href="#a763b363f077e9656ecb4dc2c58ad006b"></a><br/></td></tr>
|
||||
<tr class="separator:a763b363f077e9656ecb4dc2c58ad006b"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a3c19b6b1629efb8504272bbeb62d97ed"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__vault__t.html#a3c19b6b1629efb8504272bbeb62d97ed">version</a></td></tr>
|
||||
<tr class="memdesc:a3c19b6b1629efb8504272bbeb62d97ed"><td class="mdescLeft"> </td><td class="mdescRight">Vault version. <a href="#a3c19b6b1629efb8504272bbeb62d97ed"></a><br/></td></tr>
|
||||
<tr class="separator:a3c19b6b1629efb8504272bbeb62d97ed"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a39fb3dfd4fe6aaafdbfb9a3e88f4f09e"><td class="memItemLeft" align="right" valign="top">byte </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__vault__t.html#a39fb3dfd4fe6aaafdbfb9a3e88f4f09e">checksum</a> [32]</td></tr>
|
||||
<tr class="memdesc:a39fb3dfd4fe6aaafdbfb9a3e88f4f09e"><td class="mdescLeft"> </td><td class="mdescRight">SHA256 checksum over the whole vault. <a href="#a39fb3dfd4fe6aaafdbfb9a3e88f4f09e"></a><br/></td></tr>
|
||||
<tr class="separator:a39fb3dfd4fe6aaafdbfb9a3e88f4f09e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>This structure represents a vault. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00095">95</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
</div><h2 class="groupheader">Member Data Documentation</h2>
|
||||
<a class="anchor" id="a39fb3dfd4fe6aaafdbfb9a3e88f4f09e"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">byte _vault_t::checksum[32]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>SHA256 checksum over the whole vault. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00104">104</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="aeb36f1f7c2c1a5ee5dfa15e0047a851c"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">FILE* _vault_t::fd</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Filehandle if opened. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00097">97</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a0ac0cd4db869ca11128eeebf4e44ab1f"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">char* _vault_t::filename</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>The filename of the vault (full path) </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00096">96</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ada18cb30c8ef3aa4976b431a99a1d170"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint8_t _vault_t::isnew</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Flag to tell if the vault has been newly created. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00099">99</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a763b363f077e9656ecb4dc2c58ad006b"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">mode_t _vault_t::mode</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>File mode. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00102">102</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a6f8062cda1f43dacd6960c6edf7317f3"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">time_t _vault_t::modified</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>mtime </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00101">101</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="aedf5d37e686a68b527bf44534398e113"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint32_t _vault_t::size</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Filesize. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00100">100</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="aabb4ba4d964189e84e80b843abe8b7bf"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint8_t _vault_t::unsafed</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Flag to tell if the file needs to be written. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00098">98</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a3c19b6b1629efb8504272bbeb62d97ed"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint32_t _vault_t::version</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Vault version. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="vault_8h_source.html#l00103">103</a> of file <a class="el" href="vault_8h_source.html">vault.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
<li><a class="el" href="vault_8h_source.html">vault.h</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
|
Before Width: | Height: | Size: 853 B |
|
Before Width: | Height: | Size: 845 B |
|
Before Width: | Height: | Size: 142 B |
|
Before Width: | Height: | Size: 170 B |
|
Before Width: | Height: | Size: 177 B |
|
Before Width: | Height: | Size: 184 B |
@@ -1,60 +0,0 @@
|
||||
.tabs, .tabs2, .tabs3 {
|
||||
background-image: url('tab_b.png');
|
||||
width: 100%;
|
||||
z-index: 101;
|
||||
font-size: 13px;
|
||||
font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
|
||||
}
|
||||
|
||||
.tabs2 {
|
||||
font-size: 10px;
|
||||
}
|
||||
.tabs3 {
|
||||
font-size: 9px;
|
||||
}
|
||||
|
||||
.tablist {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: table;
|
||||
}
|
||||
|
||||
.tablist li {
|
||||
float: left;
|
||||
display: table-cell;
|
||||
background-image: url('tab_b.png');
|
||||
line-height: 36px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.tablist a {
|
||||
display: block;
|
||||
padding: 0 20px;
|
||||
font-weight: bold;
|
||||
background-image:url('tab_s.png');
|
||||
background-repeat:no-repeat;
|
||||
background-position:right;
|
||||
color: #283A5D;
|
||||
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.tabs3 .tablist a {
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
.tablist a:hover {
|
||||
background-image: url('tab_h.png');
|
||||
background-repeat:repeat-x;
|
||||
color: #fff;
|
||||
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.tablist li.current a {
|
||||
background-image: url('tab_a.png');
|
||||
background-repeat:repeat-x;
|
||||
color: #fff;
|
||||
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
|
||||
}
|
||||
@@ -1,106 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: util.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">util.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> This file is part of Pretty Curved Privacy (pcp1).</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> Copyright (C) 2013 T. von Dein.</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> This program is free software: you can redistribute it and/or modify</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> it under the terms of the GNU General Public License as published by</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> the Free Software Foundation, either version 3 of the License, or</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> (at your option) any later version.</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> This program is distributed in the hope that it will be useful,</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> GNU General Public License for more details.</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> You should have received a copy of the GNU General Public License</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> You can contact me by mail: <tlinden AT cpan DOT org>.</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">*/</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/* various helpers, too small to put into own c */</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifndef _HAVE_PCP_UTIL_H</span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor"></span><span class="preprocessor">#define _HAVE_PCP_UTIL_H</span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <ctype.h></span></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <wctype.h></span></div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <stdlib.h></span></div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <string.h></span></div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <stdio.h></span></div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keywordtype">char</span> *<a class="code" href="group__UTILs.html#ga16a91a0ad754a3662f0091e71529fb50" title="Convert a char array to lowercase.">_lc</a>(<span class="keywordtype">char</span> *in);</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keywordtype">size_t</span> <a class="code" href="group__UTILs.html#ga20509d081da3e4fefbf7785d318d456a" title="Find the offset of some offset marker in some arbitrary data.">_findoffset</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *bin, <span class="keywordtype">size_t</span> binlen, <span class="keywordtype">char</span> *sigstart, <span class="keywordtype">size_t</span> hlen);</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keywordtype">void</span> <a class="code" href="group__UTILs.html#gaad81054336208b62739f1e20091213a6" title="XOR an input buffer with another buffer.">_xorbuf</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *iv, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> xlen);</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keywordtype">void</span> <a class="code" href="group__UTILs.html#ga3dcb1fcb0f840869eab341598da50b55" title="Dump binary data as hex to stderr.">_dump</a>(<span class="keywordtype">char</span> *n, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *d, <span class="keywordtype">size_t</span> s);</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor">#endif </span><span class="comment">/* _HAVE_PCP_UTIL_H */</span><span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,179 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: vault.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">vault.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> This file is part of Pretty Curved Privacy (pcp1).</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> Copyright (C) 2013-2014 T.v.Dein.</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> This program is free software: you can redistribute it and/or modify</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> it under the terms of the GNU General Public License as published by</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> the Free Software Foundation, either version 3 of the License, or</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> (at your option) any later version.</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> This program is distributed in the hope that it will be useful,</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> GNU General Public License for more details.</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> You should have received a copy of the GNU General Public License</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> You can contact me by mail: <tom AT vondein DOT org>.</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">*/</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#ifndef _HAVE_PCP_VAULT</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"></span><span class="preprocessor">#define _HAVE_PCP_VAULT</span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#include <sys/types.h></span></div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor">#include <sys/stat.h></span></div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#include <stdio.h></span></div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor">#include <sodium.h></span></div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor">#include <unistd.h></span></div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#include "defines.h"</span></div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor">#include "platform.h"</span></div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor">#include "mem.h"</span></div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor">#include "key.h"</span></div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor">#include "uthash.h"</span></div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor">#include "buffer.h"</span></div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor">#include "keysig.h"</span></div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"><a class="code" href="struct__vault__t.html"> 95</a></span> <span class="keyword">struct </span><a class="code" href="struct__vault__t.html" title="This structure represents a vault.">_vault_t</a> {</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"><a class="code" href="struct__vault__t.html#a0ac0cd4db869ca11128eeebf4e44ab1f"> 96</a></span>  <span class="keywordtype">char</span> *<a class="code" href="struct__vault__t.html#a0ac0cd4db869ca11128eeebf4e44ab1f" title="The filename of the vault (full path)">filename</a>; </div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"><a class="code" href="struct__vault__t.html#aeb36f1f7c2c1a5ee5dfa15e0047a851c"> 97</a></span>  FILE *<a class="code" href="struct__vault__t.html#aeb36f1f7c2c1a5ee5dfa15e0047a851c" title="Filehandle if opened.">fd</a>; </div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"><a class="code" href="struct__vault__t.html#aabb4ba4d964189e84e80b843abe8b7bf"> 98</a></span>  uint8_t <a class="code" href="struct__vault__t.html#aabb4ba4d964189e84e80b843abe8b7bf" title="Flag to tell if the file needs to be written.">unsafed</a>; </div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"><a class="code" href="struct__vault__t.html#ada18cb30c8ef3aa4976b431a99a1d170"> 99</a></span>  uint8_t <a class="code" href="struct__vault__t.html#ada18cb30c8ef3aa4976b431a99a1d170" title="Flag to tell if the vault has been newly created.">isnew</a>; </div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"><a class="code" href="struct__vault__t.html#aedf5d37e686a68b527bf44534398e113"> 100</a></span>  uint32_t <a class="code" href="struct__vault__t.html#aedf5d37e686a68b527bf44534398e113" title="Filesize.">size</a>; </div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"><a class="code" href="struct__vault__t.html#a6f8062cda1f43dacd6960c6edf7317f3"> 101</a></span>  time_t <a class="code" href="struct__vault__t.html#a6f8062cda1f43dacd6960c6edf7317f3" title="mtime">modified</a>; </div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"><a class="code" href="struct__vault__t.html#a763b363f077e9656ecb4dc2c58ad006b"> 102</a></span>  mode_t <a class="code" href="struct__vault__t.html#a763b363f077e9656ecb4dc2c58ad006b" title="File mode.">mode</a>; </div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"><a class="code" href="struct__vault__t.html#a3c19b6b1629efb8504272bbeb62d97ed"> 103</a></span>  uint32_t <a class="code" href="struct__vault__t.html#a3c19b6b1629efb8504272bbeb62d97ed" title="Vault version.">version</a>; </div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"><a class="code" href="struct__vault__t.html#a39fb3dfd4fe6aaafdbfb9a3e88f4f09e"> 104</a></span>  byte <a class="code" href="struct__vault__t.html#a39fb3dfd4fe6aaafdbfb9a3e88f4f09e" title="SHA256 checksum over the whole vault.">checksum</a>[32]; </div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> };</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
|
||||
<div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="group__VAULT.html#ga98977ca195f87fe0c70521c07e01ef64"> 108</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__vault__t.html" title="This structure represents a vault.">_vault_t</a> <a class="code" href="struct__vault__t.html" title="This structure represents a vault.">vault_t</a>;</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"><a class="code" href="struct__vault__header__t.html"> 112</a></span> <span class="keyword">struct </span><a class="code" href="struct__vault__header__t.html" title="Defines the vault header.">_vault_header_t</a> {</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"><a class="code" href="struct__vault__header__t.html#a1d8383b18710635ad2a99ffcb7fa0592"> 113</a></span>  uint8_t <a class="code" href="struct__vault__header__t.html#a1d8383b18710635ad2a99ffcb7fa0592" title="File id, proprietary.">fileid</a>; </div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"><a class="code" href="struct__vault__header__t.html#a325f9343b65fde4984639a8ed564fd0d"> 114</a></span>  uint32_t <a class="code" href="struct__vault__header__t.html#a325f9343b65fde4984639a8ed564fd0d" title="File version.">version</a>; </div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"><a class="code" href="struct__vault__header__t.html#a60589e0cbf3ff9495e5c8d3b7f799e8d"> 115</a></span>  byte <a class="code" href="struct__vault__header__t.html#a60589e0cbf3ff9495e5c8d3b7f799e8d" title="SHA256 checksum over the whole vault.">checksum</a>[32]; </div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> };</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"><a class="code" href="group__VAULT.html#gaeeeef6ec087f97f2d73ddd6863db7eba"> 119</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__vault__header__t.html" title="Defines the vault header.">_vault_header_t</a> <a class="code" href="struct__vault__header__t.html" title="Defines the vault header.">vault_header_t</a>;</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"><a class="code" href="struct__vault__item__header__t.html"> 123</a></span> <span class="keyword">struct </span><a class="code" href="struct__vault__item__header__t.html" title="An item header.">_vault_item_header_t</a> {</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"><a class="code" href="struct__vault__item__header__t.html#a300141ad03ff5f6cb79aafd9984e5e0e"> 124</a></span>  uint8_t <a class="code" href="struct__vault__item__header__t.html#a300141ad03ff5f6cb79aafd9984e5e0e" title="Item type (secret key, public, key, keysig,.">type</a>; </div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"><a class="code" href="struct__vault__item__header__t.html#a54e8da230087325ceec0f286de377b8f"> 125</a></span>  uint32_t <a class="code" href="struct__vault__item__header__t.html#a54e8da230087325ceec0f286de377b8f" title="Size of the item.">size</a>; </div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"><a class="code" href="struct__vault__item__header__t.html#a5d3634c7c9d5050f60444326e0a9eea7"> 126</a></span>  uint32_t <a class="code" href="struct__vault__item__header__t.html#a5d3634c7c9d5050f60444326e0a9eea7" title="Version of the item.">version</a>; </div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"><a class="code" href="struct__vault__item__header__t.html#a5169dbce0f216fe38f89a214e8217c56"> 127</a></span>  byte <a class="code" href="struct__vault__item__header__t.html#a5169dbce0f216fe38f89a214e8217c56" title="SHA256 checksum of the item.">checksum</a>[32]; </div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> };</div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"><a class="code" href="group__VAULT.html#ga3b5f740c6dd319d7876f61c93b7ab72c"> 131</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__vault__item__header__t.html" title="An item header.">_vault_item_header_t</a> <a class="code" href="struct__vault__item__header__t.html" title="An item header.">vault_item_header_t</a>;</div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <a class="code" href="struct__vault__t.html" title="This structure represents a vault.">vault_t</a> *<a class="code" href="group__VAULT.html#ga6c4f1297f284440089536a038fdf3376" title="Open a vault file.">pcpvault_init</a>(<span class="keywordtype">char</span> *filename);</div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
|
||||
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment">/* Creates a new vault file. Called internally only.</span></div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="comment"> If is_tmp If set to 1, create a temporary vault file.</span></div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="comment"> */</span></div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <a class="code" href="struct__vault__t.html" title="This structure represents a vault.">vault_t</a> *pcpvault_new(<span class="keywordtype">char</span> *filename, <span class="keywordtype">int</span> is_tmp);</div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="comment">/* Writes the initial vault header to the vault.</span></div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="comment"> Called internally only. */</span></div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keywordtype">int</span> pcpvault_create(<a class="code" href="struct__vault__t.html" title="This structure represents a vault.">vault_t</a> *vault);</div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
|
||||
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
|
||||
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keywordtype">int</span> <a class="code" href="group__VAULT.html#gad4cf9423cb397da3cd379127f7291faa" title="Add an item to the vault.">pcpvault_additem</a>(<a class="code" href="struct__vault__t.html" title="This structure represents a vault.">vault_t</a> *vault, <span class="keywordtype">void</span> *item, <span class="keywordtype">size_t</span> itemsize, uint8_t <a class="code" href="struct__vault__item__header__t.html#a300141ad03ff5f6cb79aafd9984e5e0e" title="Item type (secret key, public, key, keysig,.">type</a>);</div>
|
||||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
|
||||
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="keywordtype">int</span> <a class="code" href="group__VAULT.html#gaa4ff722fbe407da88fdb893a5c40f7ed" title="Add a key to the vault.">pcpvault_addkey</a>(<a class="code" href="struct__vault__t.html" title="This structure represents a vault.">vault_t</a> *vault, <span class="keywordtype">void</span> *item, uint8_t <a class="code" href="struct__vault__item__header__t.html#a300141ad03ff5f6cb79aafd9984e5e0e" title="Item type (secret key, public, key, keysig,.">type</a>);</div>
|
||||
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
|
||||
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div>
|
||||
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="keywordtype">int</span> <a class="code" href="group__VAULT.html#gaf0696f85075e0e7c8056e42e2e6a31e6" title="Close a vault file.">pcpvault_close</a>(<a class="code" href="struct__vault__t.html" title="This structure represents a vault.">vault_t</a> *vault);</div>
|
||||
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div>
|
||||
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
|
||||
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="keywordtype">int</span> <a class="code" href="group__VAULT.html#ga303629777a5b784b71ca718c8cda8dbf" title="Reads in the vault contents.">pcpvault_fetchall</a>(<a class="code" href="struct__vault__t.html" title="This structure represents a vault.">vault_t</a> *vault);</div>
|
||||
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
|
||||
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div>
|
||||
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="comment">/* Write everything back to disk. */</span></div>
|
||||
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="keywordtype">int</span> pcpvault_writeall(<a class="code" href="struct__vault__t.html" title="This structure represents a vault.">vault_t</a> *vault);</div>
|
||||
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
|
||||
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="comment">/* copy a vault to another file */</span></div>
|
||||
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="keywordtype">int</span> pcpvault_copy(<a class="code" href="struct__vault__t.html" title="This structure represents a vault.">vault_t</a> *tmp, <a class="code" href="struct__vault__t.html" title="This structure represents a vault.">vault_t</a> *vault);</div>
|
||||
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div>
|
||||
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="comment">/* delete a vault file */</span></div>
|
||||
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="keywordtype">void</span> pcpvault_unlink(<a class="code" href="struct__vault__t.html" title="This structure represents a vault.">vault_t</a> *tmp);</div>
|
||||
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div>
|
||||
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="comment">/* calculate the vault checksum */</span></div>
|
||||
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pcpvault_create_checksum(<a class="code" href="struct__vault__t.html" title="This structure represents a vault.">vault_t</a> *vault);</div>
|
||||
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div>
|
||||
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="comment">/* write the new checksum to the header of the current vault */</span></div>
|
||||
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="keywordtype">void</span> pcpvault_update_checksum(<a class="code" href="struct__vault__t.html" title="This structure represents a vault.">vault_t</a> *vault);</div>
|
||||
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
|
||||
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="comment">/* bigendian converters */</span></div>
|
||||
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <a class="code" href="struct__vault__header__t.html" title="Defines the vault header.">vault_header_t</a> * vh2be(<a class="code" href="struct__vault__header__t.html" title="Defines the vault header.">vault_header_t</a> *h);</div>
|
||||
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <a class="code" href="struct__vault__header__t.html" title="Defines the vault header.">vault_header_t</a> * vh2native(<a class="code" href="struct__vault__header__t.html" title="Defines the vault header.">vault_header_t</a> *h);</div>
|
||||
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <a class="code" href="struct__vault__item__header__t.html" title="An item header.">vault_item_header_t</a> * ih2be(<a class="code" href="struct__vault__item__header__t.html" title="An item header.">vault_item_header_t</a> *h);</div>
|
||||
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <a class="code" href="struct__vault__item__header__t.html" title="An item header.">vault_item_header_t</a> * ih2native(<a class="code" href="struct__vault__item__header__t.html" title="An item header.">vault_item_header_t</a> *h);</div>
|
||||
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div>
|
||||
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="preprocessor">#endif </span><span class="comment">/* _HAVE_PCP_VAULT */</span><span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,97 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: version.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">version.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> This file is part of Pretty Curved Privacy (pcp1).</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> Copyright (C) 2013 T.Linden.</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> This program is free software: you can redistribute it and/or modify</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> it under the terms of the GNU General Public License as published by</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> the Free Software Foundation, either version 3 of the License, or</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> (at your option) any later version.</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> This program is distributed in the hope that it will be useful,</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> GNU General Public License for more details.</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> You should have received a copy of the GNU General Public License</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> You can contact me by mail: <tlinden AT cpan DOT org>.</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">*/</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#ifndef _HAVE_PCP_VERSION</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"></span><span class="preprocessor">#define _HAVE_PCP_VERSION</span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#define PCP_VERSION_MAJOR 0</span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"></span><span class="preprocessor">#define PCP_VERSION_MINOR 2</span></div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"></span><span class="preprocessor">#define PCP_VERSION_PATCH 1</span></div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#define PCP_MAKE_VERSION(major, minor, patch) \</span></div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor"> ((major) * 10000 + (minor) * 100 + (patch))</span></div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"></span><span class="preprocessor">#define PCP_VERSION \</span></div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"> PCP_MAKE_VERSION(PCP_VERSION_MAJOR, PCP_VERSION_MINOR, PCP_VERSION_PATCH)</span></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keywordtype">int</span> pcp_version();</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#endif </span><span class="comment">/* _HAVE_PCP_VERSION */</span><span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,109 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<title>libpcp: z85.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="dynsections.js"></script>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td style="padding-left: 0.5em;">
|
||||
<div id="projectname">libpcp
|
||||
 <span id="projectnumber">0.2.1</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="nav-path" class="navpath">
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_76e3dfa7802a76391b3a5cc4012b4dd7.html">pcp</a></li> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="headertitle">
|
||||
<div class="title">z85.h</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> This file is part of Pretty Curved Privacy (pcp1).</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> Copyright (C) 2013-2014 T.v.Dein.</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> This program is free software: you can redistribute it and/or modify</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> it under the terms of the GNU General Public License as published by</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> the Free Software Foundation, either version 3 of the License, or</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> (at your option) any later version.</span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> This program is distributed in the hope that it will be useful,</span></div>
|
||||
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
|
||||
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> GNU General Public License for more details.</span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> You should have received a copy of the GNU General Public License</span></div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"></span></div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> You can contact me by mail: <tom AT vondein DOT org>.</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">*/</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/* from https://github.com/tlinden/curve-keygen/ */</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef _HAVE_PCP_Z85_H</span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include <ctype.h></span></div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include "defines.h"</span></div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "zmq_z85.h"</span></div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "mem.h"</span></div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "buffer.h"</span></div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="group__Z85.html#ga53084383405976192b642f4cdf8f0f7b" title="Zero-pad some input data.">pcp_padfour</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *src, <span class="keywordtype">size_t</span> srclen, <span class="keywordtype">size_t</span> *dstlen);</div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keywordtype">size_t</span> <a class="code" href="group__Z85.html#ga71e7c229ead7f5294c6694f1c0ed9b1e" title="Unpad padded input data.">pcp_unpadfour</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *src, <span class="keywordtype">size_t</span> srclen);</div>
|
||||
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="group__Z85.html#ga9dacad0a9799e2b467d8725ef53d71dd" title="Decode data from Z85 encoding.">pcp_z85_decode</a>(<span class="keywordtype">char</span> *z85block, <span class="keywordtype">size_t</span> *dstlen);</div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keywordtype">char</span> *<a class="code" href="group__Z85.html#ga1e2ba864abfab7902b3779b048f9eacf" title="Encode data to Z85 encoding.">pcp_z85_encode</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *raw, <span class="keywordtype">size_t</span> srclen, <span class="keywordtype">size_t</span> *dstlen);</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keywordtype">char</span> *<a class="code" href="group__Z85.html#ga28321ec07e0f34765349eadd30668275" title="Read a Z85 encoded file.">pcp_readz85file</a>(FILE *infile);</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="keywordtype">char</span> *<a class="code" href="group__Z85.html#gab16e85136e20e707c559e851d04e083c" title="Read a Z85 encoded string.">pcp_readz85string</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *input, <span class="keywordtype">size_t</span> bufsize);</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keywordtype">size_t</span> _buffer_is_binary(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> len);</div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="preprocessor">#endif </span><span class="comment">/* _HAVE_PCP_Z85_H */</span><span class="preprocessor"></span></div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor"></span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.2
|
||||
</small></address>
|
||||
</body>
|
||||
</html>
|
||||
@@ -20,7 +20,7 @@
|
||||
#
|
||||
|
||||
AM_CFLAGS = -I../include/pcp -I../src -I../libpcp/scrypt/crypto -Wall -g
|
||||
check_PROGRAMS = col invalidkeys pwhashes gencheader statictest cpptest buffertest sample
|
||||
check_PROGRAMS = col invalidkeys pwhashes gencheader statictest cpptest buffertest sample streamtest
|
||||
|
||||
gencheader_LDADD = ../libpcp/.libs/libpcp1.a
|
||||
gencheader_SOURCES = gencheader.c
|
||||
@@ -34,7 +34,8 @@ buffertest_SOURCES = buffertest.c
|
||||
sample_LDADD = ../libpcp/.libs/libpcp1.a
|
||||
sample_SOURCES = sample.c
|
||||
|
||||
|
||||
streamtest_LDADD = ../libpcp/.libs/libpcp1.a
|
||||
streamtest_SOURCES = streamtest.c
|
||||
|
||||
col_LDADD = ../libpcp/.libs/libpcp1.a
|
||||
col_SOURCES = collisions.c ../src/compat_getopt.c
|
||||
|
||||
@@ -9,8 +9,8 @@ int main() {
|
||||
FILE *out, *in;
|
||||
unsigned char clear[8] = "ABCDEFGH";
|
||||
unsigned char key[8] = "IxD8Lq1K";
|
||||
unsigned char crypt[8] = {0};
|
||||
int blocks = 8;
|
||||
unsigned char crypt[11] = {0};
|
||||
int blocks = 24;
|
||||
int i = 0;
|
||||
|
||||
if((out = fopen("teststream.out", "wb+")) == NULL) {
|
||||
@@ -18,6 +18,7 @@ int main() {
|
||||
return 1;
|
||||
}
|
||||
Pcpstream *pout = ps_new_file(out);
|
||||
ps_armor(pout);
|
||||
|
||||
/* "encrypt" a couple of times into the file */
|
||||
for(i=0; i<blocks; i++) {
|
||||
@@ -34,14 +35,15 @@ int main() {
|
||||
return 1;
|
||||
}
|
||||
Pcpstream *pin = ps_new_file(in);
|
||||
|
||||
ps_determine(pin);
|
||||
|
||||
/* we'll use this stream to put the "decrypted" data in.
|
||||
note, that this could be a file as well. */
|
||||
Pcpstream *pclear = ps_new_outbuffer();
|
||||
|
||||
/* read and "decrypt" */
|
||||
for(i=0; i<blocks; i++) {
|
||||
ps_read(pin, crypt, 8);
|
||||
ps_read(pin, crypt, 10);
|
||||
_xorbuf(key, crypt, 8);
|
||||
ps_write(pclear, crypt, 8);
|
||||
}
|
||||
@@ -54,6 +56,7 @@ int main() {
|
||||
/* and verify if it's "decrypted" (re-use crypt) */
|
||||
for(i=0; i<blocks; i++) {
|
||||
buffer_get_chunk(result, crypt, 8);
|
||||
_dump("chunk", crypt, 8);
|
||||
if(memcmp(crypt, clear, 8) != 0) {
|
||||
fprintf(stderr, "Oops, block %d doesn't match\n", i);
|
||||
goto error;
|
||||
|
||||