GMime est un ensemble d'utilitaires pour analyser et créer des messages en utilisant le Multipurpose Internet Mail Extension (MIME).
En tant que développeur et l'utilisateur des clients de messagerie électronique, je étais venu à réaliser que la grande majorité des solutions de client e-mail avait moins que satisfaisants implémentations MIME. Plus souvent qu'autrement, ces clients E-Mail créés brisées messages MIME et / ou seraient mal essayer d'analyser un message MIME soustrayant ainsi de tous les avantages que MIME est censée fournir. GMime vise à résoudre ce problème en suivant la spécification MIME tout en offrant aux programmeurs une interface de programmation d'application extrêmement facile à utiliser
Ce qui est nouveau dans cette version:.
- Ce lieu de système de détection de charset Version des correctifs et maintenant gère les erreurs de eRange de iconv (), qui Win32 version GNU de libiconv semble fixer (mais ne est pas documentée).
Quoi de neuf dans la version 2.2.27:
- configure.in: Version Bumped à 2.2.27
- gmime / gmime-GPG-context.c (gpg_ctx_parse_status):. Traiter EXPSIG, EXPKEYSIG et REVKEYSIG le même que GOODSIG / Badsig messages d'état à ce que tous d'entre eux désignent une nouvelle info signataire
- gmime / gmime-stream-mem.c (stream_write): calculer correctement la limite du courant de fin quand bound_end est -1 .
- gmime / gmime-utils.h (GMIME_QP_ENCODE_LEN):. Correction de prendre en acount la possibilité d'avoir à forcer-wrap lignes à 72 caractères +
- (GMIME_UUENCODE_LEN): fixe pour éviter les dépassements de tampon possibles .
Ce qui est nouveau dans la version 2.4.22:
- README: Bumped la version
- configure.in: Bumped la version 2.4.22 à
- construire / VS2008 / gmime.vcproj:. Bumped la version
- gmime / gmime-stream-mem.c (stream_write): calculer correctement la limite du courant de fin quand bound_end est -1 .
Ce qui est nouveau dans la version 2.5.4:
- gmime / Internet address.c (decode_address) : cas de pointe de la poignée
- où inptr atteint la fin de la chaîne d'entrée prématurément en raison de
- une adresse incorrecte.
- mime / gmime-pkcs7-context.c (pkcs7_get_validity): retravaillé
- logique pour calculer le statut de signataire. Également chuté
- logique GMimeSignatureStatus.
- gmime / gmime-GPG-context.c (gpg_verify): Suppression de la (cassé)
- logique de calcul d'une GMimeSignatureStatus.
- (gpg_decrypt):. Même
- (gpg_ctx_parse_signer_info): Mise à jour pour le g_mime_signer_new ()
- Changement API.
- gmime / gmime-crypto-context.c (g_mime_signature_validity_new): Non
- initialise plus membre GMimeSignatureStatus.
- (g_mime_signature_validity_get_status):. Suppression
- (g_mime_signature_validity_set_status):. Suppression
- (g_mime_signer_new): Maintenant prend un GMimeSignerStatus pour que je puisse
- se débarrasser de l'état NONE par défaut.
- gmime / gmime-crypto-Context.h (GMimeSignatureStatus):. Suppression
- gmime / gmime-crypto-context.c (g_mime_signer_new): Initialisation
- pubkey_algo et hash_algo.
- (g_mime_signer_ [g, s] et_pubkey_algo):. Mise en œuvre
- (g_mime_signer_ [g, s] et_hash_algo):. Nouveau nom de [g, s] et_hash ()
- gmime / gmime-crypto-Context.h (GMimeCryptoPubKeyAlgo): Défini
- énumération.
- gmime / gmime-pkcs7-context.c (pkcs7_get_validity): Notez le
- hachage et pubkey algorithmes utilisés dans le GMimeSigner.
- gmime / gmime-GPG-context.c (gpg_ctx_parse_signer_info): Record
- l'algorithme de pubkey utilisé par le signataire.
- gmime / gmime-multipart-encrypted.c (g_mime_multipart_encrypted_encrypt):
- prend maintenant un argument de algorithme de hachage qui passe le long de
- g_mime_crypto_context_encrypt ().
- gmime / gmime-GPG-context.c (gpg_ctx_get_argv): Lors de la signature et
- cryptage, l'algorithme passe à digérer gpg sur la ligne de commande.
- (gpg_encrypt): Configure l'identifiant de hachage sur le GpgCtx .
- gmime / gmime-crypto-context.c (g_mime_crypto_context_encrypt):
- prend maintenant un argument de l'algorithme de hachage.
- gmime / gmime-GPG-context.c (gpg_hash_from_id): Nouvelle fonction
- cartographier les ID numérique de hachage de gpg qui utilise pour GMimeCryptoHash
- ids.
- (gpg_ctx_parse_signer_info): Extraire l'algorithme de hachage utilisé par
- le signataire.
- (gpg_ctx_parse_status): Mise à jour à utiliser gpg_hash_from_id () .
- gmime / gmime-crypto-context.c (g_mime_signer_set_hash): Nouveau
- fonction pour régler l'algorithme de hachage utilisé par le signataire.
- (g_mime_signer_get_hash): Nouvelle fonction pour obtenir l'algorithme de hachage
- utilisé par le signataire.
- gmime / gmime-crypto-cadre [c, h]:... Nouveau nom de gmime-cipher-cadre [c, h]
- gmime / gmime-multipart-encrypted.c (g_mime_multipart_encrypted_decrypt):
- Messages d'erreur mis à jour pour être plus cohérente.
- gmime / gmime-multipart-signed.c (g_mime_multipart_signed_verify):
- Veillez à régler une erreur dans tous les cas de retour NULL.
- gmime / gmime-cipher-context.c (g_mime_signer_get_ *): Ces
- toutes les fonctions maintenant prendre une GMimeSigner const *.
- gmime / gmime-GPG-context.c (GpgCtx): n'a plus de sigfile
- membre. Au lieu de cela contient un sigstream et passwd_fd est maintenant renommé
- pour secret_fd et utilisé pour l'envoi gpg le passwd de l'utilisateur comme
- ainsi que pour l'envoi de gpg la signature numérique lors de la vérification.
- (gpg_ctx_new): Mise à jour pour les nouveaux membres struct .
- (gpg_ctx_set_sigstream):. Remplace gpg_ctx_set_sigfile ()
- (gpg_ctx_free):. Mise à jour pour les nouveaux membres struct
- (gpg_ctx_get_argv): Modifier notre ligne de commande --verify afin que nous
- peut pas gpg la signature numérique, sans l'avoir écrit à
- disque. Également modifié pour revenir char ** au lieu d'un GPtrArray à
- simplifier les choses.
- (gpg_ctx_op_start): modification de créer aussi plusieurs tuyaux Dans Vérifier
- Mode.
- (gpg_ctx_op_step): modification pour écouter la signature numérique
- gpg.
- (gpg_verify): Ne pas écrire la signature numérique sur le disque - à la place,
- stream Maintenant, nous avons directement à gpg.
- gmime / gmime-message.c (g_mime_message_get_body): Nouvelle fonction pour
- essayer de deviner quelle partie (ou multipart / alternative) représente le
- corps du message.
- gmime / charset-map.c: Selon rfc1557, il est suggéré que
- euc-kr être utilisé pour têtes puisque de nombreux expéditeurs coréens ne peuvent pas gérer
- base64 ou quoted-printable codé iso-2022-KR. Sur cette base et
- bug # 629235, je vais juste laisser tomber iso-2022-KR.
- gmime / gmime-utils.c (g_mime_utils_header_decode_text): Dans le
- cas de contournement, si nous ne trouvons pas un marqueur de fin, réinitialiser notre inptr
- au début du mot le plus récent *, ainsi que 2 * (pour sauter
- le premier & quot;? = & Quot;), pas le début de la saisie de texte. Ont également besoin
- pour réinitialiser notre état ascii.
- (g_mime_utils_header_decode_phrase): Dans le cas de contournement, si nous
- ne trouvent pas un marqueur de fin, réinitialiser notre inptr au début de la
- la plus récente mot *, ainsi que 2 *, pour sauter le premier & quot;? = & Quot;.
- gmime / gmime-encodings.c (g_mime_encoding_quoted_encode_close):
- Si le dernier caractère d'entrée ne est pas un n, ajoutez un & quot; = n & quot; séquence.
- gmime / gmime-charset.c: Mark known_iconv_charsets [] comme
- statique. Marquez également les membres de la chaîne de diverses structs privés que
- const.
- configure.ac: Bump Version glib exigence
- g_set_error_literal ().
- gmime / Internet address.c (group_to_string): Ne pas planter si le
- nom de groupe est à l'arrêt. Merci à Damian Pietras pour ce patch.
- gmime / gmime-utils.c (g_mime_utils_header_decode_phrase):
- Mettre en œuvre la même astuce RFC2047-solution que l'on trouve dans
- g_mime_utils_header_decode_text ().
- gmime / gmime-encodings.c (g_mime_encoding_base64_decode_step):
- Besoin de garder l'état de garder une trace du nombre de s '= nous avons soutenus
- au-dessus au cas où il traverse les frontières de tampons.
- gmime / gmime-param.c (decode_token): Faire moins stricte pour
- gérer les valeurs limites non cotées contenant '=' (et d'autres illégale
- caractères).
- gmime / Internet address.c (_internet_address_set_name): Ne pas
- décodage / FIN DE CITATION le nom. Les docs pour toutes les fonctions qui appellent
- cette assumer la chaîne de nom est dans sa forme décodé déjà.
- (_ internet_address_decode_name): Nouvelle fonction interne qui
- décode une chaîne et la définit comme le nom sur la InternetAddress.
- (decode_address): Réécriture d'être encore plus libérale dans ce qu'elle
- accepte.
- gmime / gmime-multipart-encrypted.c (g_mime_multipart_encrypted_decrypt):
- Ne pas UNREF le contenu crypté objet de partie MIME lorsque le
- type de contenu ne correspond pas à l'application / octet-stream,
- g_mime_multipart_get_part () ne ref pas les pièces qu'il renvoie. Nous avons également
- besoin de mettre une erreur quand cela arrive.
Ce qui est nouveau dans la version 2.4.21:
- gmime / Internet address.c (decode_address) : cas de pointe de la poignée
- où inptr atteint la fin de la chaîne d'entrée prématurément en raison de
- une adresse incorrecte.
- gmime / gmime-multipart-encrypted.c (g_mime_multipart_encrypted_decrypt):
- Messages d'erreur mis à jour pour être plus cohérente.
- gmime / gmime-multipart-signed.c (g_mime_multipart_signed_verify):
- Veillez à régler une erreur dans tous les cas de retour NULL.
- gmime / gmime-cipher-context.c (g_mime_signer_get_ *): Ces
- toutes les fonctions maintenant prendre une GMimeSigner const *.
- gmime / gmime-GPG-context.c (GpgCtx): n'a plus de sigfile
- membre. Au lieu de cela contient un sigstream et passwd_fd est maintenant renommé
- pour secret_fd et utilisé pour l'envoi gpg le passwd de l'utilisateur comme
- ainsi que pour l'envoi de gpg la signature numérique lors de la vérification.
- (gpg_ctx_new): Mise à jour pour les nouveaux membres struct .
- (gpg_ctx_set_sigstream):. Remplace gpg_ctx_set_sigfile ()
- (gpg_ctx_free):. Mise à jour pour les nouveaux membres struct
- (gpg_ctx_get_argv): Modifier notre ligne de commande --verify afin que nous
- peut pas gpg la signature numérique, sans l'avoir écrit à
- disque. Également modifié pour revenir char ** au lieu d'un GPtrArray à
- simplifier les choses.
- (gpg_ctx_op_start): modification de créer aussi plusieurs tuyaux Dans Vérifier
- Mode.
- (gpg_ctx_op_step): modification pour écouter la signature numérique
- gpg.
- (gpg_verify): Ne pas écrire la signature numérique sur le disque - à la place,
- stream Maintenant, nous avons directement à gpg.
Ce qui est nouveau dans la version 2.4.19:
- Cette version a été fixé à construire sur les anciennes versions de GLib (aussi loin que 2,12).
- Solutions de contournement ont été mis en œuvre pour les adresses email RFC2047 codé cassés.
- Un décodeur base64 bug bord de cas a également été fixé.
Exigences :
- Glib & gt; = 1.2.x
Commentaires non trouvées