Initialize the gmime for upstream
[platform/upstream/gmime.git] / docs / reference / changes-2.6.sgml
1 <refentry id="gmime-changes-2-6" revision="06 Feb 2010">
2   <refmeta>
3     <refentrytitle>Changes from 2.4 to 2.6</refentrytitle>
4     <manvolnum>3</manvolnum>
5     <refmiscinfo>Changes from 2.4 to 2.6</refmiscinfo>
6   </refmeta>
7   <refnamediv>
8     <refname>Changes from 2.4 to 2.6</refname>
9     <refpurpose>Changes made between version 2.4 and version 2.6</refpurpose>
10   </refnamediv>
11   <refsect1>
12     <title>Changes from 2.4 to 2.6</title>
13     <para>After releasing GMime 2.4, it was discovered that
14 g_mime_stream_length() still returned ssize_t which, on 32bit systems,
15 meant that the function was useless if the actual stream was larger
16 than 2GB (which could happen if GMime was built with large file
17 support).</para>
18     <para>As I fixed this, I also found some API inconsistencies which I felt I
19 might as well fix up since I had to break API/ABI compatibility with
20 2.4 anyway.</para>
21     <para>Most notable in GMime 2.6 is the lack of GMimeSession which has been
22 dropped in favor of a much simpler callback
23 mechanism. GMimeCipherContexts constructors now take a
24 password_request callback function rather than forcing you to subclass
25 GMimeSession to get this functionality.</para>
26     <para>Other API changes include:</para>
27     <itemizedlist>
28       <listitem><para>GMimeBestEncoding has been renamed to
29       GMimeEncodingConstraint</para></listitem>
30       <listitem><para>GMimeSignatureValidity has been dropped in favor
31       of GMimeSignatureList which is simply a collection of
32       signatures.
33       </para></listitem>
34       <listitem><para>GMimeSigner has been replaced by GMimeSignature
35       and GMimeCertificate which added a number of new fields and
36       accessors making it much more complete.
37       </para></listitem>
38       <listitem><para>GMimeCipherContext has been renamed to
39       GMimeCryptoContext and the method names for this class have also
40       been renamed in a similar fashion.
41       </para></listitem>
42       <listitem><para><function>g_mime_crypto_context_encrypt()</function>
43       now takes a digest algorithm argument which is used when the
44       'sign' argument is TRUE.
45       </para></listitem>
46       <listitem><para><function>g_mime_multipart_encrypted_encrypt()</function>
47       also now takes a digest algorithm argument which it passes along
48       to <function>g_mime_crypto_context_encrypt()</function>.
49       </para></listitem>
50       <listitem><para><function>g_mime_crypto_context_decrypt()</function>
51       now returns a GMimeDecryptResult which contains a list of
52       signatures (if signed), a list of recipients that the stream had
53       been encrypted to, and also the cipher and digest algorithms
54       used.
55       </para></listitem>
56       <listitem><para><function>g_mime_multipart_encrypted_decrypt()</function>
57       no longer caches the decrypted part and also now takes a
58       GMimeSignatureList** output argument which it sets in place of
59       having to call
60       <function>g_mime_multipart_encrypted_get_signature_validity()</function>
61       afterward.
62       </para></listitem>
63     </itemizedlist>
64   </refsect1>
65 </refentry>