• 2 Posts
  • 44 Comments
Joined 2 years ago
cake
Cake day: June 1st, 2023

help-circle

  • So I am not entirely sure. I did find the code for it however if you want to take a look.

    In Firefox it uses the variable for the neqo library, which is the the Mozilla Firefox implementation of QUIC in Rust.

    Line #284: https://github.com/mozilla-firefox/firefox/blob/57e6d88cb3ad7f9777145f2d4fba11d4fc9de369/netwerk/socket/neqo_glue/src/lib.rs#L284

    code:

    let mut params = ConnectionParameters::default()
        .versions(quic_version, version_list)
        .cc_algorithm(cc_algorithm)
        .max_data(max_data)
        .max_stream_data(StreamType::BiDi, false, max_stream_data)
        .grease(static_prefs::pref!("security.tls.grease_http3_enable"))
        .sni_slicing(static_prefs::pref!("network.http.http3.sni-slicing"))
        .idle_timeout(Duration::from_secs(idle_timeout.into()))
        // Disabled on OpenBSD. See <https://bugzilla.mozilla.org/show_bug.cgi?id=1952304>.
        .pmtud_iface_mtu(cfg!(not(target_os = "openbsd")))
        // MLKEM support is configured further below. By default, disable it.
        .mlkem(false);
    

    In the neqo library it’s used here: https://github.com/mozilla/neqo/blob/9e52e922343609dba5171c0adb869cff7bd8d3a0/neqo-transport/src/crypto.rs#L1594

    code:

    let written = if sni_slicing && offset == 0 {
        if let Some(sni) = find_sni(data) {
            // Cut the crypto data in two at the midpoint of the SNI and swap the chunks.
            let mid = sni.start + (sni.end - sni.start) / 2;
            let (left, right) = data.split_at(mid);
    
            // Truncate the chunks so we can fit them into roughly evenly-filled packets.
            let packets_needed = data.len().div_ceil(builder.limit());
            let limit = data.len() / packets_needed;
            let ((left_offset, left), (right_offset, right)) =
                limit_chunks((offset, left), (offset + mid as u64, right), limit);
            (
                write_chunk(right_offset, right, builder),
                write_chunk(left_offset, left, builder),
            )
        } else {
            // No SNI found, write the entire data.
            (write_chunk(offset, data, builder), None)
        }
    } else {
        // SNI slicing disabled or data not at offset 0, write the entire data.
        (write_chunk(offset, data, builder), None)
    };
    



  • From the Nobara changelog: https://nobaraproject.org/category/changelog/

    plasma-discover and gnome-software have both now been replaced with flatpost. Flatpost is a new in-house developed one-stop shop for flatpaks. It is able to handle installation, removal, upgrading, and permissions of flatpaks as well as flatpak repository management. You should find it provides all of the same permission toggles as flatseal. It is a simple application built on python and gtk, and is meant to be a desktop environment agnostic solution (meaning it should run in any DE). We did this because while we only support Gnome and KDE, we understand users still want to install their own environments and will do so regardless of whether or not it’s supported. If they are going to do that, again we prefer users to install flatpaks where possible for their software needs, and not all environments have a flatpak shop. For example if I’m using hyprland or labwc, now I have a shop I can use with them: https://github.com/GloriousEggroll/flatpost. Users can still manually install plasma-discover or gnome-software if they prefer.