1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>CamelMultipartSigned</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="Camel Reference Manual">
<link rel="up" href="MIME.html" title="MIME Objects">
<link rel="prev" href="camel-CamelMultipart.html" title="CamelMultipart">
<link rel="next" href="camel-CamelMultipartEncrypted.html" title="CamelMultipartEncrypted">
<meta name="generator" content="GTK-Doc V1.14 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="camel-CamelMultipart.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="MIME.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">Camel Reference Manual</th>
<td><a accesskey="n" href="camel-CamelMultipartEncrypted.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#camel-CamelMultipartSigned.synopsis" class="shortcut">Top</a>
|
<a href="#camel-CamelMultipartSigned.description" class="shortcut">Description</a>
</td></tr>
</table>
<div class="refentry" title="CamelMultipartSigned">
<a name="camel-CamelMultipartSigned"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="camel-CamelMultipartSigned.top_of_page"></a>CamelMultipartSigned</span></h2>
<p>CamelMultipartSigned</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv" title="Synopsis">
<a name="camel-CamelMultipartSigned.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis"> <a class="link" href="camel-CamelMultipartSigned.html#CamelMultipartSigned" title="CamelMultipartSigned">CamelMultipartSigned</a>;
<a class="link" href="camel-CamelMultipartSigned.html#CamelMultipartSigned" title="CamelMultipartSigned"><span class="returnvalue">CamelMultipartSigned</span></a> * <a class="link" href="camel-CamelMultipartSigned.html#camel-multipart-signed-new" title="camel_multipart_signed_new ()">camel_multipart_signed_new</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
<a class="link" href="camel-CamelStream.html#CamelStream" title="struct CamelStream"><span class="returnvalue">CamelStream</span></a> * <a class="link" href="camel-CamelMultipartSigned.html#camel-multipart-signed-get-content-stream" title="camel_multipart_signed_get_content_stream ()">camel_multipart_signed_get_content_stream</a>
(<em class="parameter"><code><a class="link" href="camel-CamelMultipartSigned.html#CamelMultipartSigned" title="CamelMultipartSigned"><span class="type">CamelMultipartSigned</span></a> *mps</code></em>,
<em class="parameter"><code><a class="link" href="camel-camel-exception.html#CamelException" title="struct CamelException"><span class="type">CamelException</span></a> *ex</code></em>);
</pre>
</div>
<div class="refsect1" title="Description">
<a name="camel-CamelMultipartSigned.description"></a><h2>Description</h2>
<p>
</p>
</div>
<div class="refsect1" title="Details">
<a name="camel-CamelMultipartSigned.details"></a><h2>Details</h2>
<div class="refsect2" title="CamelMultipartSigned">
<a name="CamelMultipartSigned"></a><h3>CamelMultipartSigned</h3>
<pre class="programlisting">typedef struct {
CamelMultipart parent_object;
/* these are the client visible parts, decoded forms of our data wrapper content */
CamelMimePart *content;
CamelMimePart *signature;
/* the raw content which must go over the wire, if we have generated it */
/* perhaps this should jsut set data_wrapper->stream and update start1/end1 accordingly, as it is done
for other parts, or visa versa? */
CamelStream *contentraw;
/*int state;*/
/* just cache some info we use */
gchar *protocol;
gchar *micalg;
/* offset pointers of start of boundary in content object */
off_t start1, end1;
off_t start2, end2;
} CamelMultipartSigned;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2" title="camel_multipart_signed_new ()">
<a name="camel-multipart-signed-new"></a><h3>camel_multipart_signed_new ()</h3>
<pre class="programlisting"><a class="link" href="camel-CamelMultipartSigned.html#CamelMultipartSigned" title="CamelMultipartSigned"><span class="returnvalue">CamelMultipartSigned</span></a> * camel_multipart_signed_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
Create a new <a class="link" href="camel-CamelMultipartSigned.html#CamelMultipartSigned" title="CamelMultipartSigned"><span class="type">CamelMultipartSigned</span></a> object.
</p>
<p>
A MultipartSigned should be used to store and create parts of
type "multipart/signed". This is because multipart/signed is
entirely broken-by-design (tm) and uses completely
different semantics to other mutlipart types. It must be treated
as opaque data by any transport. See rfc 3156 for details.
</p>
<p>
There are 3 ways to create the part:
Use construct_from_stream. If this is used, then you must
set the mime_type appropriately to match the data uses, so
that the multiple parts my be extracted.
</p>
<p>
Use construct_from_parser. The parser MUST be in the <span class="type">CAMEL_MIME_PARSER_STATE_HEADER</span>
state, and the current content_type MUST be "multipart/signed" with
the appropriate boundary and it SHOULD include the appropriate protocol
and hash specifiers.
</p>
<p>
Use sign_part. A signature part will automatically be created
and the whole part may be written using write_to_stream to
create a 'transport-safe' version (as safe as can be expected with
such a broken specification).
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a new <a class="link" href="camel-CamelMultipartSigned.html#CamelMultipartSigned" title="CamelMultipartSigned"><span class="type">CamelMultipartSigned</span></a> object
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="camel_multipart_signed_get_content_stream ()">
<a name="camel-multipart-signed-get-content-stream"></a><h3>camel_multipart_signed_get_content_stream ()</h3>
<pre class="programlisting"><a class="link" href="camel-CamelStream.html#CamelStream" title="struct CamelStream"><span class="returnvalue">CamelStream</span></a> * camel_multipart_signed_get_content_stream
(<em class="parameter"><code><a class="link" href="camel-CamelMultipartSigned.html#CamelMultipartSigned" title="CamelMultipartSigned"><span class="type">CamelMultipartSigned</span></a> *mps</code></em>,
<em class="parameter"><code><a class="link" href="camel-camel-exception.html#CamelException" title="struct CamelException"><span class="type">CamelException</span></a> *ex</code></em>);</pre>
<p>
Get the raw signed content stream of the multipart/signed MIME part
suitable for use with verification of the signature.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>mps</code></em> :</span></p></td>
<td>a <span class="type">CamlMultipartSigned</span> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>ex</code></em> :</span></p></td>
<td>a <a class="link" href="camel-camel-exception.html#CamelException" title="struct CamelException"><span class="type">CamelException</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> the signed content stream
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="footer">
<hr>
Generated by GTK-Doc V1.14</div>
</body>
</html>
|