Skip to content
  1. Apr 29, 2024
  2. Apr 18, 2024
  3. Apr 02, 2024
  4. Mar 31, 2024
  5. Mar 29, 2024
  6. Mar 15, 2024
  7. Mar 13, 2024
  8. Mar 12, 2024
  9. Mar 11, 2024
  10. Mar 10, 2024
  11. Mar 09, 2024
  12. Mar 08, 2024
  13. Mar 05, 2024
  14. Mar 03, 2024
  15. Mar 02, 2024
  16. Feb 29, 2024
  17. Feb 28, 2024
  18. Feb 27, 2024
  19. Feb 26, 2024
  20. Feb 25, 2024
  21. Feb 24, 2024
  22. Feb 22, 2024
  23. Feb 20, 2024
  24. Feb 19, 2024
    • Balázs Úr's avatar
      Update Hungarian translation · a5acd61f
      Balázs Úr authored and Administrator's avatar Administrator committed
      a5acd61f
    • Michael Catanzaro's avatar
      Reduce unnecessary trust list creation · 5f469123
      Michael Catanzaro authored and Marge Bot's avatar Marge Bot committed
      We have discovered that trust list initialization is a massive
      performance bottleneck when loading websites:
      
      https://bugs.webkit.org/show_bug.cgi?id=251336
      https://gitlab.com/gnutls/gnutls/-/issues/1528
      
      At first, I thought there was not much we can do about this, because the
      gnutls_certificate_credentials_t object takes ownership of the
      gnutls_x509_trust_list object that we pass to it, meaning we definitely
      need to create a new trust list each time we create a new credentials
      object. But I eventually realized that we can safely cache and reuse the
      gnutls_certificate_credentials_t instead.
      
      With this, we now only need to populate the trust list twice per
      connection.
      
      We need to do it twice because we cannot share the priv->trust_list that
      we use in g_tls_database_gnutls_verify_chain() with the one that is given
      to the credentials object, since, again, the credentials object takes
      ownership.
      
      We could alternatively always create priv->credentials when initializing
      the database and instead create priv->trust_list lazily only when the
      first first verify_chain() operation is requested, which would get us
      down to one initialization in the usual case. (Normally, the application
      will never call g_tls_database_gnutls_verify_chain(), because
      GTlsConnectionGnutls will never do this, because it defers certificate
      verification to the GTlsDatabase only when it is not a GTlsDatabaseGnutls).
      But I think it's slightly easier to read this way. Twice isn't so bad.
      We can always change it in the future if desired, but it would have the
      disadvantage that the GTlsDatabaseGnutls's private data would no longer
      be read-only after initialization, which doesn't seem worth it. That
      rule makes it easier to reason about correctness.
      
      Part-of: <!249>
      5f469123
  25. Feb 18, 2024
  26. Feb 17, 2024
  27. Feb 16, 2024