GMime to zestaw narzędzi do analizowania i tworzenia wiadomości przy użyciu Multipurpose Internet Mail Extension (MIME).
Jako deweloper i użytkownik klientów poczty elektronicznej, ja sobie sprawę, że większość rozwiązań klienta e-mail miał mniej niż zadowalające implementacje MIME. Nie częściej niż ci klienci e-mail utworzony uszkodzony wiadomości MIME i / lub będzie nieprawidłowo spróbować analizować wiadomość MIME zatem odjęcie od pełnych korzyści MIME obiecywało dostarczyć. GMime ma rozwiązać ten problem zgodnie ze specyfikacją MIME, a także zapewnienie programistom z bardzo łatwy w użyciu interfejs programowania aplikacji
Co nowego w tym wydaniu:.
- Ta wersja naprawia system wykrywania locale charset i obsługuje teraz błędy eRange z iconv (), co wydaje Win32 wersji GNU z libiconv ustawić (ale nie jest udokumentowane).
Co nowego w wersji 2.2.27:
- configure.in: Bumped wersja do 02.02.27
- gmime / gmime-gpg-context.c (gpg_ctx_parse_status). Traktuj EXPSIG, EXPKEYSIG i REVKEYSIG same jak komunikaty o stanie GOODSIG / Badsig w nich, że wszystkie nowe informacje oznaczają osoby podpisującej
- gmime / gmime-stream-mem.c (stream_write): poprawnie obliczyć granicę końcową strumienia, gdy bound_end -1 .
- gmime / gmime-utils.h (GMIME_QP_ENCODE_LEN). Poprawiono wziąć pod acount możliwość zmuszania-oblewania linii po 72 znaków +
- (GMIME_UUENCODE_LEN): Stała, aby zapobiec przepełnieniu bufora, .
Co nowego w wersji 2.4.22:
- README: Bumped wersja
- configure.in: Bumped wersję do 04.02.22
- budować / VS2008 / gmime.vcproj. Bumped wersji
- gmime / gmime-stream-mem.c (stream_write): poprawnie obliczyć granicę końcową strumienia, gdy bound_end -1 .
Co nowego w wersji 2.5.4:
- gmime / internet-address.c (decode_address) : przypadki krawędzi Uchwyt
- gdzie inptr dojdzie do końca ciągu wejściowego przedwcześnie z powodu
- nieprawidłowy adres.
- mim / gmime-PKCS7-context.c (pkcs7_get_validity): przerobione
- logiki obliczania status osoby podpisującej. Spadła również
- Logika GMimeSignatureStatus.
- gmime / gmime-gpg-context.c (gpg_verify): Usunięto (uszkodzony),
- logiki obliczania GMimeSignatureStatus.
- (gpg_decrypt). Tak samo,
- (gpg_ctx_parse_signer_info): Aktualizacja dla g_mime_signer_new ()
- Zmiana API.
- gmime / gmime-krypto-context.c (g_mime_signature_validity_new): Nie
- już inicjuje członka GMimeSignatureStatus.
- (g_mime_signature_validity_get_status):. Usunięto
- (g_mime_signature_validity_set_status):. Usunięto
- (g_mime_signer_new): Teraz trwa GMimeSignerStatus tak, że mogłem,
- pozbyć się statusu domyślna NIE.
- gmime / gmime-krypto-context.h (GMimeSignatureStatus):. Usunięto
- gmime / gmime-krypto-context.c (g_mime_signer_new): Inicjalizacja
- pubkey_algo i hash_algo.
- (g_mime_signer_ [g, s] et_pubkey_algo). Wdrożone
- (g_mime_signer_ [g, s] et_hash_algo). Zmieniono nazwę z [g, s] et_hash ()
- gmime / gmime-krypto-context.h (GMimeCryptoPubKeyAlgo): Zdefiniowane
- enum.
- gmime / gmime-PKCS7-context.c (pkcs7_get_validity): Zapisz
- hash i pubkey algorytmy stosowane w GMimeSigner.
- gmime / gmime-gpg-context.c (gpg_ctx_parse_signer_info): Rekord
- Algorytm pubkey używane przez podpisującego.
- gmime / gmime-wieloczęściowy-encrypted.c (g_mime_multipart_encrypted_encrypt):
- Teraz bierze argument algorytmu skrótu, które przechodzi wzdłuż
- g_mime_crypto_context_encrypt ().
- gmime / gmime-gpg-context.c (gpg_ctx_get_argv): Przy podpisywaniu i
- szyfrowanie, przekazać algorytm skrótu do gpg na linii poleceń.
- (gpg_encrypt): Ustaw identyfikator skrótu na GpgCtx .
- gmime / gmime-krypto-context.c (g_mime_crypto_context_encrypt):
- Teraz bierze argument algorytmu skrótu.
- gmime / gmime-gpg-context.c (gpg_hash_from_id): Nowa funkcja
- tworzenie map numerycznych id cebulą, że gpg używa do GMimeCryptoHash
- identyfikatory.
- (gpg_ctx_parse_signer_info): Wyciąg algorytm mieszania używany przez
- osoby podpisującej.
- (gpg_ctx_parse_status): Aktualizacja do korzystania gpg_hash_from_id () .
- gmime / gmime-krypto-context.c (g_mime_signer_set_hash): Nowy
- Funkcja ustawić algorytm mieszania używany przez osoby podpisującej.
- (g_mime_signer_get_hash): Nowa funkcja dostać algorytmu skrótu
- używane przez podpisującego.
- gmime / gmime-krypto-context [c, h]:... Zmieniono nazwę z gmime-szyfr kontekście [c, h]
- gmime / gmime-wieloczęściowy-encrypted.c (g_mime_multipart_encrypted_decrypt):
- Zaktualizowane komunikaty o błędach, aby być bardziej spójne.
- gmime / gmime-wieloczęściowy-signed.c (g_mime_multipart_signed_verify):
- Upewnij się, że ustawienie błąd we wszystkich przypadkach powrotu NULL.
- gmime / gmime-szyfr context.c (g_mime_signer_get_ *): To,
- Funkcje wszystko teraz podjąć const GMimeSigner *.
- gmime / gmime-gpg-context.c (GpgCtx): Nie ma już sigfile
- członkiem. Zamiast zawiera sigstream i passwd_fd zmieniono nazwę
- do secret_fd i stosowane zarówno wysyłanie gpg passwd użytkownika jako
- również do wysyłania gpg podpisu cyfrowego podczas weryfikacji.
- (gpg_ctx_new): Aktualizacja dla nowych członków struct .
- (gpg_ctx_set_sigstream). Zastępuje gpg_ctx_set_sigfile ()
- (gpg_ctx_free). Aktualizacja dla nowych członków struct
- (gpg_ctx_get_argv): Modyfikacja naszą --verify wiersza polecenia tak, że
- można pas gpg podpis cyfrowy, bez uprzedniego pisząc go,
- na dysku. Zmodyfikowano również powrócić char ** zamiast GPtrArray do
- uprościć.
- (gpg_ctx_op_start): Zmodyfikowane również utworzyć więcej rur w SPRAWDZIĆ
- Tryb.
- (gpg_ctx_op_step): Zmodyfikowane strumień cyfrowy podpis do
- gpg.
- (gpg_verify): Nie pisz podpisu cyfrowego na dysku - zamiast tego,
- teraz strumieniowo bezpośrednio do gpg.
- gmime / gmime-message.c (g_mime_message_get_body): Nowa funkcja
- spróbować odgadnąć, która część (lub wieloczęściowy / alternatywa) reprezentuje
- treści wiadomości.
- gmime / charset-map.c: Według rfc1557, sugeruje się,
- euc-kr być stosowane dla nagłówków, ponieważ wiele koreańskich koperty nie może obsłużyć
- base64 i quoted-printable zakodowanych iso-2022-kr. Na tej podstawie i
- bug # 629235, jestem po prostu będzie spadać iso-2022-kr.
- gmime / gmime-utils.c (g_mime_utils_header_decode_text): W
- W przypadku obejścia, jeśli nie znajdziesz znacznika końca, zresetować nasze inptr
- na początku ostatniego słowa * plus 2 * (pominąć,
- wiodącym & quot;? = & Quot;), a nie na początku tekstu wejściowego. Należy również
- , aby przywrócić stan naszej ascii.
- (g_mime_utils_header_decode_phrase): W przypadku rozwiązania alternatywnego, jeżeli
- nie znaleźć znacznika końca, przywrócić naszą inptr na początku
- ostatnie słowo * plus 2 *, przeskoczyć wiodącym & quot;? = & Rdquo;.
- gmime / gmime-encodings.c (g_mime_encoding_quoted_encode_close):
- Jeśli ostatni znak wejściowy nie jest n, dołącz & quot; = n & quot; sekwencji.
- gmime / gmime-charset.c: Mark known_iconv_charsets [] jako
- statyczne. Również zaznaczyć członków ciąg różnych prywatnych strukturach jak
- const.
- configure.ac: Bump glib wymóg wersji dla
- g_set_error_literal ().
- gmime / internet-address.c (group_to_string): Nie upaść, jeśli
- Nazwa grupy jest wyłączony. Dzięki Damian Pietras dla tej poprawki.
- gmime / gmime-utils.c (g_mime_utils_header_decode_phrase):
- Wdrożenie sam rfc2047-obejście hack, jak znajdujący się w
- g_mime_utils_header_decode_text ().
- gmime / gmime-encodings.c (g_mime_encoding_base64_decode_step):
- Potrzebujesz zachować stan śledzić liczbę = 's my wspierane
- nad w przypadku, gdy przekracza granice buforowych.
- gmime / gmime-param.c (decode_token): Dodać mniej rygorystyczne w celu
- nienotowane wartości brzegowe obsługi zawierające '=' (i inne nielegalne
- znaków).
- gmime / internet-address.c (_internet_address_set_name): Nie,
- dekodowania / koniec cytatu nazwę. Docs dla wszystkich funkcji, które wymagają,
- to zakładamy łańcuch imię jest w jego dekodowane postaci już.
- (_ internet_address_decode_name): Nowa funkcja wewnętrzna, że
- dekoduje ciąg i ustawia go jako nazwę na InternetAddress.
- (decode_address): Przepisany być jeszcze bardziej liberalne, co to
- akceptuje.
- gmime / gmime-wieloczęściowy-encrypted.c (g_mime_multipart_encrypted_decrypt):
- Nie unref zaszyfrowaną treść częścią MIME obiektu po
- Content-Type nie pasuje application / octet-stream,
- g_mime_multipart_get_part () nie zwraca części ref. My także,
- Należy ustawić błąd, kiedy to się stanie.
Co nowego w wersji 4.02.21:
- gmime / internet-address.c (decode_address) : przypadki krawędzi Uchwyt
- gdzie inptr dojdzie do końca ciągu wejściowego przedwcześnie z powodu
- nieprawidłowy adres.
- gmime / gmime-wieloczęściowy-encrypted.c (g_mime_multipart_encrypted_decrypt):
- Zaktualizowane komunikaty o błędach, aby być bardziej spójne.
- gmime / gmime-wieloczęściowy-signed.c (g_mime_multipart_signed_verify):
- Upewnij się, że ustawienie błąd we wszystkich przypadkach powrotu NULL.
- gmime / gmime-szyfr context.c (g_mime_signer_get_ *): To,
- Funkcje wszystko teraz podjąć const GMimeSigner *.
- gmime / gmime-gpg-context.c (GpgCtx): Nie ma już sigfile
- członkiem. Zamiast zawiera sigstream i passwd_fd zmieniono nazwę
- do secret_fd i stosowane zarówno wysyłanie gpg passwd użytkownika jako
- również do wysyłania gpg podpisu cyfrowego podczas weryfikacji.
- (gpg_ctx_new): Aktualizacja dla nowych członków struct .
- (gpg_ctx_set_sigstream). Zastępuje gpg_ctx_set_sigfile ()
- (gpg_ctx_free). Aktualizacja dla nowych członków struct
- (gpg_ctx_get_argv): Modyfikacja naszą --verify wiersza polecenia tak, że
- można pas gpg podpis cyfrowy, bez uprzedniego pisząc go,
- na dysku. Zmodyfikowano również powrócić char ** zamiast GPtrArray do
- uprościć.
- (gpg_ctx_op_start): Zmodyfikowane również utworzyć więcej rur w SPRAWDZIĆ
- Tryb.
- (gpg_ctx_op_step): Zmodyfikowane strumień cyfrowy podpis do
- gpg.
- (gpg_verify): Nie pisz podpisu cyfrowego na dysku - zamiast tego,
- teraz strumieniowo bezpośrednio do gpg.
Co nowego w wersji 2.4.19:
- Ta wersja została ustalona budować na starsze wersje GLib (już w 2,12).
- Obejścia realizowane były błędne rfc2047 zakodowane adresów e-mail.
- krawędzi przypadku dekoder base64 błąd został również ustalony.
Wymagania :
- Glib & gt; = 1.2.x
Komentarze nie znaleziono