File: camel-CamelMultipartSigned.html

package info (click to toggle)
evolution-data-server 2.30.3-2%2Bsqueeze1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 45,704 kB
  • ctags: 26,968
  • sloc: ansic: 223,692; sh: 10,413; makefile: 2,646; xml: 386; perl: 204; python: 30
file content (160 lines) | stat: -rw-r--r-- 8,548 bytes parent folder | download
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-&gt;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>