GMimeは多目的インターネットメール拡張(MIME)を使用してメッセージを解析し、作成するためのユーティリティのセットです。
電子メールクライアントの開発者及び利用者として、私は、電子メールクライアント·ソリューションの大半はより少なくより十分なMIMEの実装を持っていたことを実現するために来ていた。たいていの場合、これらの電子メールクライアントが壊れたMIMEメッセージを作成し、および/または正しく機能しないので、MIMEを提供するために意図された完全な利点から差し引くMIMEメッセージを解析しようとするだろう。 GMimeも非常に使いやすいアプリケーションプログラミングインタフェースを持つプログラマを提供しながら、MIME仕様に従うことによって、この問題に対処するものとする。
のこのリリースのの新機能:ます。
- このバージョンの修正システムロケール文字セットの検出とは、libiconvがのGNUのWin32バージョンが設定されているようだ(ただし、文書化されていません)のiconv()、からERANGEエラーを処理します。
のバージョン2.2.27のの新機能:2.2.27にぶつかったバージョン:
- configure.in
- gmime / gmime-GPG-context.c(gpg_ctx_parse_status):。その中でGOODSIG / BADSIGステータスメッセージと同じEXPSIG、EXPKEYSIG、およびREVKEYSIGトリートそれらのすべてが新しい署名者情報を表します。
- gmime / gmimeストリーム-mem.c(stream_write):bound_endがあるときに正しくストリームの最後の境界を計算する-1 。
- gmime / gmime-utils.h(GMIME_QP_ENCODE_LENを):ACOUNTに72 +文字のラインラップを強制することの可能性を取るために修正しました。 。
- (GMIME_UUENCODE_LEN):可能なバッファオーバーフローを防ぐために修正しました。 。
のバージョン2.4.22のの新機能:
- README:ぶつかったバージョンます。
- configure.in:2.4.22にバージョンをぶつけます。
- ビルド/ VS2008 / gmime.vcproj:ぶつかったバージョン 。
- gmime / gmimeストリーム-mem.c(stream_write):bound_endがあるときに正しくストリームの最後の境界を計算する-1 。
のバージョン2.5.4でのの新機能:
- gmime /インターネット-address.c(decode_address) : エッジケースを処理
- 不正な形式のアドレスします。
- MIME / gmime-PKCS7-context.c(pkcs7_get_validity):李>を作り直し
<李>署名者の状態を計算するためのロジック。また、ドロップされます。 - GMimeSignatureStatusロジックます。
- gmime / gmime-GPG-context.c(gpg_verify):削除しました(壊れた)
- GMimeSignatureStatusの計算ロジックします。
- (gpg_decrypt):同じ 。
- (gpg_ctx_parse_signer_info):g_mime_signer_new用に更新()
- APIの変更します。
- gmime / gmime-暗号context.c(g_mime_signature_validity_new):いいえます。
- は長いGMimeSignatureStatusメンバーを初期化します。
- (g_mime_signature_validity_get_status):削除しました。 。
- (g_mime_signature_validity_set_status):削除しました。 。
- (g_mime_signer_newは):今GMimeSignerStatusをとり、私はできるようにします。
- は、デフォルトのNONEの状態を取り除くます。
- gmime / gmime-暗号context.h(GMimeSignatureStatus):削除しました。 。
- gmime / gmime-暗号context.c(g_mime_signer_new):初期化します。
- pubkey_algoとhash_algoます。
- (et_pubkey_algo g_mime_signer_ [S G、]):実装します。
- (g_mime_signer_ [G、S] et_hash_algo):[G、S] et_hash(から改名さ) 。
- gmime / gmime-暗号context.h(GMimeCryptoPubKeyAlgo):定義されます。
- 列挙します。
- gmime / gmime-PKCS7-context.c(pkcs7_get_validity):李>を記録します
GMimeSignerで使用される - ハッシュとpubkeyでアルゴリズムます。
- gmime / gmime-GPG-context.c(gpg_ctx_parse_signer_info):レコードます。
- 署名者によって使用されるpubkeyでアルゴリズムます。
- gmime / gmime-マルチパート-encrypted.c(g_mime_multipart_encrypted_encrypt):
- は今ではに沿って通過するハッシュアルゴリズムの引数を取ります。
- g_mime_crypto_context_encrypt()します。
- gmime / gmime-GPG-context.c(gpg_ctx_get_argv):署名したときます。
- 暗号化する、コマンドラインでのgpgするダイジェストアルゴリズムを渡します。
- (gpg_encrypt):。GpgCtx上のハッシュIDを設定します。
- gmime / gmime-暗号context.c(g_mime_crypto_context_encrypt):
- 次にハッシュアルゴリズム引数を取ります。
- gmime / gmime-GPG-context.c(gpg_hash_from_id):新機能ます。
- GPGがGMimeCryptoHashに使用する数値のハッシュIDをマッピングします。
- のidます。
- (gpg_ctx_parse_signer_info):で使用されるハッシュアルゴリズムを抽出します。
- 署名者します。
- (gpg_ctx_parse_status):gpg_hash_from_id()を使用するように更新します。 。
- gmime / gmime-暗号context.c(g_mime_signer_set_hash):新規
- 関数は、署名者によって使用されるハッシュアルゴリズムを設定します。
- (g_mime_signer_get_hash):ハッシュアルゴリズムを取得するための新機能します。
- は署名者によって使用されます。
- gmime / gmime-暗号コンテキスト[C、H]:。。。gmime-暗号-コンテキストから名前が変更された[C、H]
- gmime / gmime-マルチパート-encrypted.c(g_mime_multipart_encrypted_decrypt):
- は、より一貫しているエラーメッセージを更新しました。
- gmime / gmime-マルチパート-signed.c(g_mime_multipart_signed_verify):
- NULLを返すすべての場合にエラーを設定してくださいます。
- gmime / gmime-暗号-context.c(g_mime_signer_get_ *):これらます。
- の機能は、すべての今* constのGMimeSignerを取るます。
- gmime / gmime-GPG-context.c(GpgCtxは):いいえ長いsigfileを持っています。
- メンバー。代わりにsigstreamが含まれており、passwd_fdが今の名前が変更されます。
- secret_fdとします。 として送信するのgpgユーザーのpasswdの両方に使用する
- だけでなく、検証時にデジタル署名を送信するためのgpgます。
- (gpg_ctx_new):新しい構造体のメンバーのために更新されます。 。
- (gpg_ctx_set_sigstreamは):)(gpg_ctx_set_sigfileを置き換えます。 。
- (gpg_ctx_free):新しい構造体のメンバーのために更新されます。
- (gpg_ctx_get_argv):私たちは になるよう私たちの--verifyコマンドラインを変更します。
- は、最初の にそれを記述することなく、デジタル署名GPG PASできる
- ディスク。また、にGPtrArrayの代わりに** char型を返すように変更します。
- 物事を単純化します。
- (gpg_ctx_op_start):またVERIFY中のパイプます。 を作成するように変更
- モードます。
- (gpg_ctx_op_step):にデジタル署名をストリーミングするために変更されます。
- GPGます。
- (gpg_verify):ディスクにデジタル署名を記述しないでください - 代わりに、
- 我々は今GPGに直接ストリーミングします。
- gmime / gmime-message.c(g_mime_message_get_body):新機能します。
- 李>を表す部分(またはマルチパート/代替)試してみて、推測
- メッセージ本文ます。
- はgmime /文字セット-map.c:rfc1557によると、それが示唆されます。
- EUC-KRは、ヘッダーに使用される
- base64でまたはquoted-printableでエンコードされたISO-2022-KR。これに基づき及びます。
- バグ#629235は、私はちょうど、ISO-2022-KRをドロップするつもります。
- gmime / gmime-あるutils.c(g_mime_utils_header_decode_text): で
- 回避策ケース、我々は終了マーカーが見つからない場合は、リセットする私たちのINPTRます。
- *プラス2 *(スキップする
- 大手&QUOT;?=&QUOT;)、しない入力テキストの始まり。また、必要がします。
- ます。
- (g_mime_utils_header_decode_phrase):この問題を回避するケースでは、我々はします。 をした場合
- の先頭に私たちのINPTRをリセットし、終了マーカーが見つからない
- 最新の単語*プラス2 *、スキップするリーディング&QUOT;?=&QUOT;ます。
- gmime / gmime-encodings.c(g_mime_encoding_quoted_encode_close):
- 、&QUOTを追加。シーケンスします。
- gmime / gmime-charset.c:マークがknown_iconv_charsets []のようにします。
- 静的。また、などの様々なプライベート構造体の文字列メンバーをマークします。
- のconstます。
- configure.ac:用のglibのバージョン要件をバンプします。
- g_set_error_literal()します。
- gmime /インターネット-address.c(group_to_string): がクラッシュしないでください
- グループ名が設定されていない。このパッチのダミアンPietrasに感謝します。
- gmime / gmime-あるutils.c(g_mime_utils_header_decode_phrase):
- で見つかったものと同じRFC2047-回避策ハックを実装します。
- g_mime_utils_header_decode_text()します。
- gmime / gmime-encodings.c(g_mime_encoding_base64_decode_step):
- = 'sの私たちがバックアップされてきた数を追跡するために状態を維持する必要があります。
- は出オーバーの場合に、バッファ境界を越えます。
- gmime / gmime-param.c(decode_tokenは):するために、より少ない厳しいことを確認します。
- を含む引用符で囲まれていない境界値を処理 '='(およびその他の違法ます。
- 文字)します。
- gmime /インターネット-address.c(_internet_address_set_name):しないでください。
- デコード/名前を引用終わり。 呼び出すすべての関数のドキュメント
- これは、名前の文字列が既にその復号された形であると仮定します。
- (_ internet_address_decode_name): 新しい内部機能
- は、文字列をデコードしたInternetAddress上の名前として設定します。
- (decode_address):さらに多くのリベラルであることに書き換え何それます。
- 受け入れます。
- gmime / gmime-マルチパート-encrypted.c(g_mime_multipart_encrypted_decrypt):
- 暗号化されたコンテンツのMIMEパートオブジェクトをUNREFないときます。
- のcontent-typeがapplication / octet-streamと一致していない、します。
- g_mime_multipart_get_part()が返すの部品をrefはありません。また、我々ます。
- この問題が発生したときにエラーを設定する必要があります。
INPTRはのために途中で入力文字列の最後に達する
多くの韓国のメーラーがします。を扱うことができないので、
最も最近の単語の先頭に
私たちのアスキー状態をリセットするには
= N&QUOT、最後の入力文字が nのでない場合は
のバージョン2.4.21のの新機能:
- gmime /インターネット-address.c(decode_address) : エッジケースを処理
- 不正な形式のアドレスします。
- gmime / gmime-マルチパート-encrypted.c(g_mime_multipart_encrypted_decrypt):
- は、より一貫しているエラーメッセージを更新しました。
- gmime / gmime-マルチパート-signed.c(g_mime_multipart_signed_verify):
- NULLを返すすべての場合にエラーを設定してくださいます。
- gmime / gmime-暗号-context.c(g_mime_signer_get_ *):これらます。
- の機能は、すべての今* constのGMimeSignerを取るます。
- gmime / gmime-GPG-context.c(GpgCtxは):いいえ長いsigfileを持っています。
- メンバー。代わりにsigstreamが含まれており、passwd_fdが今の名前が変更されます。
- secret_fdとします。 として送信するのgpgユーザーのpasswdの両方に使用する
- だけでなく、検証時にデジタル署名を送信するためのgpgます。
- (gpg_ctx_new):新しい構造体のメンバーのために更新されます。 。
- (gpg_ctx_set_sigstreamは):)(gpg_ctx_set_sigfileを置き換えます。 。
- (gpg_ctx_free):新しい構造体のメンバーのために更新されます。
- (gpg_ctx_get_argv):私たちは になるよう私たちの--verifyコマンドラインを変更します。
- は、最初の にそれを記述することなく、デジタル署名GPG PASできる
- ディスク。また、にGPtrArrayの代わりに** char型を返すように変更します。
- 物事を単純化します。
- (gpg_ctx_op_start):またVERIFY中のパイプます。 を作成するように変更
- モードます。
- (gpg_ctx_op_step):にデジタル署名をストリーミングするために変更されます。
- GPGます。
- (gpg_verify):ディスクにデジタル署名を記述しないでください - 代わりに、
- 我々は今GPGに直接ストリーミングします。
INPTRはのために途中で入力文字列の最後に達する
のバージョン2.4.19にの新しいは何をされます:
- このリリースは、古いバージョンの上に構築するために修正されましたGLibの(にまでさかのぼる2.12など)をします。
- は回避策が壊れRFC2047でエンコードされた電子メールアドレスのために実施したします。
- エッジケースをbase64デコーダのバグも修正されました。
の要件の
- 口が達者&GT; = 1.2.xの
コメントが見つかりません