Changes from 2.4 to 2.6

Changes from 2.4 to 2.6 — Changes made between version 2.4 and version 2.6

Changes from 2.4 to 2.6

After releasing GMime 2.4, it was discovered that g_mime_stream_length() still returned ssize_t which, on 32bit systems, meant that the function was useless if the actual stream was larger than 2GB (which could happen if GMime was built with large file support).

As I fixed this, I also found some API inconsistencies which I felt I might as well fix up since I had to break API/ABI compatibility with 2.4 anyway.

Most notable in GMime 2.6 is the lack of GMimeSession which has been dropped in favor of a much simpler callback mechanism. GMimeCipherContexts constructors now take a password_request callback function rather than forcing you to subclass GMimeSession to get this functionality.

Other API changes include:

  • GMimeBestEncoding has been renamed to GMimeEncodingConstraint

  • GMimeSignatureValidity has been dropped in favor of GMimeSignatureList which is simply a collection of signatures.

  • GMimeSigner has been replaced by GMimeSignature and GMimeCertificate which added a number of new fields and accessors making it much more complete.

  • GMimeCipherContext has been renamed to GMimeCryptoContext and the method names for this class have also been renamed in a similar fashion.

  • g_mime_crypto_context_encrypt() now takes a digest algorithm argument which is used when the 'sign' argument is TRUE.

  • g_mime_multipart_encrypted_encrypt() also now takes a digest algorithm argument which it passes along to g_mime_crypto_context_encrypt().

  • g_mime_crypto_context_decrypt() now returns a GMimeDecryptResult which contains a list of signatures (if signed), a list of recipients that the stream had been encrypted to, and also the cipher and digest algorithms used.

  • g_mime_multipart_encrypted_decrypt() no longer caches the decrypted part and also now takes a GMimeSignatureList** output argument which it sets in place of having to call g_mime_multipart_encrypted_get_signature_validity() afterward.