jfernandez
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # Igalia Updates for Decentralized Web Grant ## Report w50 2025 - 02 2026 Hello, please find the status reports for weeks 50-02 below. ### Support Extensions in custom protocols * Continue working on the CL with the Navigation Throttling logic - [ MERGED ] https://chromium-review.googlesource.com/c/chromium/src/+/7156864 - Refactoring of the navigation interception browser tests - Additional browser tests - Rebase and merge the patch * Rebase and merge the CL with the Prompt Dialog logic - [ MERGED ] https://chromium-review.googlesource.com/c/chromium/src/+/7031939 - Implementing interactive tests for the new Prompt dialog - Rebase and merge the patch ## Report w46-49 2025 Hello, please find the status reports for weeks 46-49 below. ### Support Extensions in custom protocols * Implement the permission management logic * Navigation interception * [ REVIEW ] https://chromium-review.googlesource.com/c/chromium/src/+/7156864 * Prompt dialog * [ REVIEW ] https://chromium-review.googlesource.com/c/chromium/src/+/7031939 * Both patches are in the final review stages. * The last task would be the UX review and translations. ### Handling pending WebTransport sessions * Continue working on the early-cancellation mitigation - [ MERGED ] https://chromium-review.googlesource.com/c/chromium/src/+/6727715 - This would be the last patch of the tasks, which we could consider completed at this stage. - There are still some issues with the demo, but those would need further analysis on their side and probably changes in how the application manages the available peers. ## Communications ### New blog post: Web Extensions and Protocol Handlers * Still a very early draft ## Report for w42-45 2025 Hello, please find the status reports for weeks 42-45 below. ### Support Extensions in custom protocols * Implement Permissions Management logic - [ REVIEW ] https://chromium-review.googlesource.com/c/chromium/src/+/7031939 - Navigation Interception - Prompt dialog - Remember decision * Cleaning up the dependencies of the //custom_handler component - [ REVERTED ] https://chromium-review.googlesource.com/c/chromium/src/+/7116098 - [ REVIEW ] https://chromium-review.googlesource.com/c/chromium/src/+/7130938 * Updating the design document with the new design proposal for the permission logic - https://docs.google.com/document/d/1e6mSsbjLqBd1_4EAS_AX543vy53oq8SlycNwQ0mZ46g/edit?usp=sharing ### Handling pending WebTransport sessions * Retake the patch to solve the early-cancellation issues - [ REVIEW ] https://chromium-review.googlesource.com/c/chromium/src/+/6727715 * additional debugging of the libp2p app - it seems there are still cases where the same IP, but different port, which are being considered as potential valid peers by the app - this is identified by the current implemented throttling strategy by a clear **port-scanning attack** pattern. * evaluating a potential implementation of a ip+port based key for the handshake failures map - the solution didn't provide a definitive advantage because sometimes I got cases where the same host+port is tried as a potential valid target (!!!) - this is identified by the current implemented throttling strategy by a clear **DoS attack** pattern. ## Report for w38-41 2025 Hello, please find the status reports for weeks 38-41 below. ### Support Extensions in custom protocols * Implementing the API that performs the custom handler registration - [ MERGED ] https://chromium-review.googlesource.com/c/chromium/src/+/6727594 * Implementation of the Permission management logic - [ WIP ] https://chromium-review.googlesource.com/c/chromium/src/+/7031939 - update the design document with some of the changes suggested during the last CL's review + https://docs.google.com/document/d/1e6mSsbjLqBd1_4EAS_AX543vy53oq8SlycNwQ0mZ46g/edit?tab=t.0#heading=h.brfyb0wbqzmg + include different approaches for the implementation of the prompt dialog and the navigation interception ### Handling pending WebTransport sessions * Continue working on the early-cancellation penalties * [ WIP ] https://chromium-review.googlesource.com/c/chromium/src/+/6727715 * Preparing Chrome packages for ARM to perform a pair-programming session with Alex Potsides (Ipshipyard) * Meeting with Alex to analyze the results with the last patch and fine-tuning the p2p app * Analyze the logs, trying to figure out the root cause and/or worst-case scenarios where the max-connection limit is reached. - with some changes in the app, we managed to make the patch for the early-cancellation penalties mitigation to become a promising approach - some changes in the p2p app are still needed: - control the **same ip - different port** cases, as they are legitimately identified as a port-scanning attack. - reduce the number of simultaneous connection attempts from 50 to 25. ## Report for w35-37 2025 Hello, please find the status reports for weeks 35-37 below. ### WebCrypto API maintenance * Updating the latest tests in the generateKey folder from the WPT repo * [ MERGED ] https://github.com/WebKit/WebKit/pull/49674 * Investigate a WebKit bug in the X25519 generateKey method - https://bugs.webkit.org/show_bug.cgi?id=289693 - [ MERGED ] https://github.com/WebKit/WebKit/pull/49923 * Submitted a new PR to fix an issue with the version number of the license header in some WebCrypto related files. - [ MERGED ] https://github.com/WebKit/WebKit/pull/50143 ### Support Extensions in custom protocols * Implementing the API that performs the custom handler registration - [ REVIEW ] https://chromium-review.googlesource.com/c/chromium/src/+/6727594 - Continue with the patch review process driven by Solomon - Got the lgtm - Devlin started his review on the CL and suggested several changes - Implement the startup sanity-checks. - Address the conflict resolution issues during the protocol handler registration. - Implementing additional browser tests - Fixing several test regressions, caused by the lack of TestingFactory support for the ProtocolHandlerRegistryFactory ## Report for w28-34 2025 Hello, please find the status reports for weeks 28-34 below. Bear in mind that the period is longer than usual due to the summer holidays. ### Support Extensions in custom protocols * Implementing the API that performs the custom handler registration - [ REVIEW] https://chromium-review.googlesource.com/c/chromium/src/+/6727594 - Handling the extension enabled/disabled use case - Implemented tests for the extension update use case - Fixed some bugs related to the Extension API's life-cycle. - Fixed a few regressions detected by the bots, caused by the lack of Testing Factories for the ProtocolHandlersRegistry instance. ### Handling pending WebTransport sessions * Rebased the branch with the early-cancellation logic - [ WIP ] https://chromium-review.googlesource.com/c/chromium/src/+/6727715 * Built a new arm package based on 126 for a pair-programming session with Alex ### A Manifest with a Service Worker handling the protocol response This tasks has also the goal of adding support in browsers for the Service Worker Gateway (https://github.com/ipfs/service-worker-gateway) and fix bugs or implement new features in browsers to provide a better integration with the Web Platform. * Start investigating some of the blockers bug in Chrome, preventing this idea to be developed properly - https://issues.chromium.org/issues/40410035 - managed to reproduce the issue and get a reduced test case. * debugging the test case, trying to understand the DownloadManager logic and how it's related with the "fetch" operation. ### WebCrypto API maintenance * Investigate a WebKit bug in the X25519 generateKey method - https://bugs.webkit.org/show_bug.cgi?id=289693 - debugging a basic test case and updating the bug report with information about the issue itself and how to reproduce it. - found the bug and it's an easy patch in the end, so preparing the patch with the fix to ask for a formal review. * Updating the latest tests in the generateKey folder from the WPT repo - submitted a PR for review - https://github.com/WebKit/WebKit/pull/49674 [ REVIEW ] ## Communications ### New blog post: Impact of the Curve25519 algorithms in the IPFS community * Completed the first full-draft and ask for peer-review to different people, from both Igalia and IPFS Foundation - https://docs.google.com/document/d/1JPMHmT0zz2q6KvjFaxbi1gbgVN-4vhUlFVuZ7mTt590/edit?pli=1&tab=t.0 * Shared with Mosh (IPFS Foundation) to get a final review, especially regarding the organizations mentioned in the intro as supporters of the project. - Got LGTM in the monthly meeting held this week, so I'm going to publish the post on Monday, to avoid the "weekend" effect. ## Report w24-27 2025 Hello, please find the status reports for weeks 24-27 below. ### Handling pending WebTransport sessions * Removing the runtime flag from the "about:flags" menu * Adam gave the lgtm (!!) but asked a few additional minor changes - Submitted a new patch to the CL, and asked for review again - [ LANDED ] https://chromium-review.googlesource.com/c/chromium/src/+/5756508 ## Support Extensions in custom protocols * Implementation of the Manifest key parsing logic - [ LANDED ] https://chromium-review.googlesource.com/c/chromium/src/+/6382139 * resume the work to implement the API to perform the actual custom handler registration - rebase the old branch and solve the conflicts - handling the "extension enabled/disabled" cases - improving the extension's life-cycle log ## Communications * Continue working on the draft - https://docs.google.com/document/d/1JPMHmT0zz2q6KvjFaxbi1gbgVN-4vhUlFVuZ7mTt590/edit?pli=1&tab=t.0 * Collect information about IPFS related projects that use the Curver25519 algorithms ## Report w19-23 Hello, please find the status reports for weeks 19-23 below. ### Handling pending WebTransport sessions * Discussion about the early-cancellation penalties - agreed on margin the CL as it is, behind a runtime flag, and working on the mitigation of the early cancellation in a follow-up patch. - [ REVIEW ] https://chromium-review.googlesource.com/c/chromium/src/+/5756508 * Implemented a runtime flag for the _Smart Throttling_ feature. * Investigating the impact of the early cancellation and implemented a few mitigation actions: - If no DNS is needed, we use the IP before the network process is involved, so early cancellations could consider it. - Detecting different scenarios of early cancellation - by the network process after the thorttle_done callaback but before the DNS request has been resolved. - by the network process before the throttle_done callback, probably due to a timeout in the web application. * Working on the CL to define a new runtime flag for the basic throttling feature - [ ABANDONED ] https://chromium-review.googlesource.com/c/chromium/src/+/6512967 * Building Chromium packages for ARM64 architecture and provide them to Alex for testing ## Support Extensions in custom protocols * First CL to implement the Manifest parsing - https://chromium-review.googlesource.com/c/chromium/src/+/6382139 [ REVIEW ] - Working now on the final phase of the review, improving the patch with generated code for the Manfifest key parsing and related checks. ## Communications * Start working on the blog post about the impact of the Curve255129 algorithms in the IPFS community - [ DRAFT ] https://docs.google.com/document/d/1JPMHmT0zz2q6KvjFaxbi1gbgVN-4vhUlFVuZ7mTt590/edit?pli=1&tab=t.0 * Attended the Web Engines Hackfest - Invited Daniel Huges and Anna Weine to talk about the Web Crypto API, current status and future plans - There are 2 new potential tasks that may fit in the project: - Streaming WebCrypto operations - https://github.com/w3c/webcrypto/issues/7 - It seems the WinterCG is also interested - https://github.com/WinterTC55/proposal-webcrypto-streams/blob/main/explainer.md - https://webcrypto-streams.proposal.wintercg.org/ - encrypt / decrypt is controversial, but hashing operations are doable - https://github.com/w3c/webcrypto/issues/250 (old) - https://github.com/w3c/webcrypto/issues/73#issuecomment-455065709 - Firefox bug about lack of EC keys with compression - https://bugzilla.mozilla.org/show_bug.cgi?id=1971499 - Filed by the AtProto team - Maintenance - https://bugzilla.mozilla.org/show_bug.cgi?id=1970321 - Filed by Alex, it seems it's the last issue blocking the use of native Curve25519 algorithms - https://bugzilla.mozilla.org/show_bug.cgi?id=1932396 - Same root cause, also source of a few interop issues in Firefox - Also invited Robin Berjon, who gave a talk about how to fund the web platform - Had interesting conversations about the impact of the Web Crypto API in the IPFS ecosystem - He agrees on that Streaming Hashing would be a very nice feature for IPFS ## Report w15-18 2025 Hello, please find the status reports for weeks 15-18 below. ### Implement the Ed25519 in browsers - Implementing the new "alg" JWK member behavior + Web Platform Tests - https://github.com/web-platform-tests/wpt/pull/51788 [ MERGED ] - https://github.com/web-platform-tests/wpt/pull/51915 [ MERGED ] - Continue the process of shipping the Ed25519 feature + https://chromium-review.googlesource.com/c/chromium/src/+/6440173 [ MERGED ] + shipped enabled by default in Chrome 137 (reach stable around late May) ### Handling pending WebTransport sessions - Continue with the review of the CL to mitigate the throttling penalties + https://chromium-review.googlesource.com/c/chromium/src/+/5756508 [ REVIEW ] + implementing a mechanisms to remove the obsolete entries in the failed_handshake_ map + trying to solve the penalties when the connection is closed before the DNS resolution - investigating the effect of the webtransport-developer-mode flag - investigating the bad results of the last patch, based on the feedback provided by lidel + found out a but in the last patch - generating new packages for Alex and Lidel ## Report w11-14 2025 Hello, please find the status reports for weeks 11-14 below. ### Support extensions in custom protocols * Got the first review to the prototype * https://chromium-review.googlesource.com/c/chromium/src/+/5518971 [REVIEW] * Implementing a runtime flag and browser tests to help with the early review process * Alex Moshchuck (security team) commented in the CL and also on the design document - Addressed the comments in the CL and wrote a new Security Considerations section in the design document, as requested by Alex * Start working on splitting up the prototype's CL while getting feedback about the general approach and the privacy issues - patch with the Manifest parsing logic and unit tests + https://chromium-review.googlesource.com/c/chromium/src/+/6382139 [WIP] - implementing the extension feature description and the related flag + no upstream patch yet - implementation of the new Protocol Handlers API + additional unit and browser tests + no upstream patch yet - start the implementation of the ProtocolHandler logic to provide it a status + this will be the first step towards the runtime permission logic + implementing the new PermissionRequest to confirm the protocol handler + no upstream patch yet ### Implement the Ed25519 in browsers * investigating a few bugs in the WebKitGtk+ implementation * https://bugs.webkit.org/show_bug.cgi?id=279113 * https://bugs.webkit.org/show_bug.cgi?id=288585 * The 'alg' JWK member is again part of the spec, so Investigate the current status of the 3 implementers and WPT * WebKit - https://bugs.webkit.org/show_bug.cgi?id=289535 [FIXED] - https://github.com/WebKit/WebKit/pull/42258 [MERGED] * Blink - https://issues.chromium.org/issues/402138569 [FIXED ] - https://chromium-review.googlesource.com/c/chromium/src/+/6339929 [MERGED] * Gecko - https://bugzilla.mozilla.org/show_bug.cgi?id=1954700 - https://phabricator.services.mozilla.com/D241955 [REVIEW] * Web Platform Tests - https://github.com/web-platform-tests/wpt/pull/51788 [REVIEW] - https://github.com/web-platform-tests/wpt/pull/51915 [REVIEW] * preparing the Ed25519 intent-to-ship request - sent to the mailing list + https://groups.google.com/a/chromium.org/g/blink-dev/c/T2kriFdjXsg/m/ZeD_PoLXBwAJ ### Handling pending WebTransport sessions * Adam finally reviewed the CL and suggested a new approach - https://chromium-review.googlesource.com/c/chromium/src/+/5756508 [REVIEW] * Ideal solution: - global failures + failures for this subnet + failures for this IP * Got a compromise to proceed with your approach, with two adjustments: - Entries that have been forgiven will be removed from the map either when they are looked up and discovered to be forgiven, or from a periodic timer that sweeps the map looking for forgiven entries. + bad bimodal behaviour for client/server architectures where one failure dooms the page to bad behaviour forever - The current logic is much too lenient on cancelled connections, making it trivial for an attacker to bypass most throttling just be cancelling every connection attempt after 2 seconds. + A rapid cancellation should be considered just as suspicious as a failed connection. ## Report 2025 w01-10 Hello, please find the status reports for weeks 01-10 below. ### Support extensions in custom protocols * Continue the discussion with Devlin about the proposal to implement the new procotol_handlers Manifest key. - We have got the Design doc approved finally, although there are still a few issues that would need to be sorted out during the patches review process. * Implementing a PoC feature - https://chromium-review.googlesource.com/c/chromium/src/+/5518971 [ WIP ] - submitted a new version of the patch and asked for an informal review ### Handling pending WebTransport sessions * Implement the subnet based penalties - https://chromium-review.googlesource.com/c/chromium/src/+/5756508 [ REVIEW ] ### Communications - Wrote and published a blog post "[Can I use Secure Curves in the Web Platform?](https://blogs.igalia.com/jfernandez/2025/02/28/can-i-use-secure-curves-in-the-web-platform/)" ## Report 2024 w41-45 Hello, please find the status reports for weeks 41-45 below. ### Implement the Ed25519 in browsers * HKDF interop bug in Chromium - https://issues.chromium.org/issues/352364580 [ WONFIX ] - https://chromium-review.googlesource.com/c/chromium/src/+/5729992 [ ABANDONED ] - David Ben reviewed the CL to solve the HKDF interop issue, but expressed doubts about the change in the spec that motivated the patch - Wrote an email to Daniel to talk about David's reluctance to fix Chrome's behavior - I've filed an issue for the WebCrypto spec to try to get some consensus + https://github.com/w3c/webcrypto/issues/370 [ FIXED ] * WebKit implementation of the change to deal with the length=0 case in ECDH - https://bugs.webkit.org/show_bug.cgi?id=276916 [ FIXED ] * It seems that Apple decided to revert my patch for the bug 276916 - filed bug 282096 as the root cause of the regression that motivated the revert - https://bugs.webkit.org/show_bug.cgi?id=282096 [ FIXED ] - Added new WPT to detect regressions like this, since there were no tests covering the Get Length operation * Investigate the wrap/unwrap WPTs to understand why a change to throw on any truncation is causing failures in WebKit - https://bugs.webkit.org/show_bug.cgi?id=282578 [ WIP ] - https://github.com/WebKit/WebKit/pull/36184 [ REVIEW ] * Update the WPT tests in the WebKit repository - https://bugs.webkit.org/show_bug.cgi?id=280754 [ FIXED ] - https://bugs.webkit.org/show_bug.cgi?id=281572 [ FIXED ] - https://bugs.webkit.org/show_bug.cgi?id=282240 [ FIXED ] - https://bugs.webkit.org/show_bug.cgi?id=282285 [ FIXED ] - https://bugs.webkit.org/show_bug.cgi?id=282293 [ REVIEW ] - https://bugs.webkit.org/show_bug.cgi?id=282296 [ REVIEW ] * Bug in Gecko's X25519 when importing 'raw' keys using just a string for the algorithm parameter - https://bugzilla.mozilla.org/show_bug.cgi?id=1924951 [ FIXED ] - It seems the problem is in the JWK import code of the X25519 algorithm * Gecko implementation of the new X25519 and ECDH behavior when length is zero - https://bugzilla.mozilla.org/show_bug.cgi?id=1922522 [ FIXED ] * Changes in the WPT WebCryptoAPI tests - https://github.com/web-platform-tests/wpt/pull/48471 [ MERGED ] - https://github.com/web-platform-tests/wpt/pull/48645 [ MERGED ] - https://github.com/web-platform-tests/wpt/pull/48852 [ MERGED ] - https://github.com/web-platform-tests/wpt/pull/49048 [ REVIEW ] - https://github.com/web-platform-tests/wpt/pull/49043 [ REVIEW ] * Implementing the change to allow zero n HKDF and PBKDF2 - Gecko - https://bugzilla.mozilla.org/show_bug.cgi?id=1928968 [ REVIEW ] - WebKit - https://bugs.webkit.org/show_bug.cgi?id=282531 [ REVIEW ] - Blink - https://issues.chromium.org/issues/352364580 [ REVIEW ] - David reviewed the CL to change the PBKDF2 behavior on length 0 + https://chromium-review.googlesource.com/c/chromium/src/+/5979996 + Although I've got the LGTM, I'd rather merge the change in the WPT first, so that I can import them in all the engines * Discussing about the Ed25519 small-order checks - Apple has expressed support for implementing the additional checks, aligning with Mozilla - https://github.com/WICG/webcrypto-secure-curves/issues/27#issuecomment-2406625208 - Wrote an email to David to see whether Chrome would align or not * Follow the last comments on the PR to merge the Curve25519 algorithms into the WebCryptoAPI spec - https://github.com/w3c/webcrypto/pull/362 * There was movement on the issues I filed about the lack of interop on HKDF when length is 0 and the PR to merge the Curve25519 - https://github.com/w3c/webcrypto/issues/370 - Got an agreement finally + https://github.com/w3c/webcrypto/pull/380 ## 2024 Weeks 37-40 Hello, please find the status reports for weeks 37-40 below. ### Implement the Ed25519 in browsers - While waiting for reviews began doing some cleanup on the WPTs + [Split up the Curve488 and Curve25519](https://github.com/web-platform-tests/wpt/pull/48195 ), since the former is not implemented and is creating some noise [ MERGED] + Doing the same for the [import/export tests](https://github.com/web-platform-tests/wpt/pull/48206) [ MERGED ] + Working on the [sign / verify tests](https://github.com/web-platform-tests/wpt/pull/48207) [ MERGED ] + [Defining new tests for EC algorithms](https://github.com/web-platform-tests/wpt/pull/48243) [MERGED] with failure test cases + implemented also some refactoring to share some code with the OPK related tests - Bug triage: - Investigated some failures already registered in the expected.txt files of Chrome - Investigated a Chrome [issue 40072218](https://issues.chromium.org/issues/40072218) - Closed as INVALID, since Chrome was working as expected. - Investigated a few bugs related to the EC import / export operations + filed a few bugs in Firefox + [bug id 1919532](https://bugzilla.mozilla.org/show_bug.cgi?id=1919532) + Reviewed a patch to fix the bug + [bug id 1919539](https://bugzilla.mozilla.org/show_bug.cgi?id=1919539) - Investigated a WPT failure on WebKit / Safari related to X25519 import / export + it seems that in the Mac Port the public key generated from the private one is different to what other crypto libraries produce + I'm investigating whether this may be another instance of bug 262499 - Filed [WebKit bug 279963](https://bugs.webkit.org/show_bug.cgi?id=279963) - Attended the TPAC meeting - Discussed the current status of the Curver25519 algorithms - Asked explicitly about the current blockers to merge the [PR#362](https://github.com/w3c/webcrypto/pull/362) - https://github.com/WICG/webcrypto-secure-curves/issues/28 - See the [full Web App Sec meeting minutes](https://github.com/w3c/webappsec/blob/main/meetings/2024/2024-09-23-TPAC-Minutes.md#crypto) - More bug triage based on the WPT failure son the different engines + Filed a few more bugs + [bug 1920672](https://bugzilla.mozilla.org/show_bug.cgi?id=1920672) + [bug 1920705](https://bugzilla.mozilla.org/show_bug.cgi?id=1920705) [ FIXED ] + Some other failures in Firefox are caused by [bug 1917228](https://bugzilla.mozilla.org/show_bug.cgi?id=1917228), recently fixed but still not reached any release - Follow up after TPAC to manage the issues blocking the merge into the WebCrypto spec - Sent [a PR to the secure Curves spec](https://github.com/WICG/webcrypto-secure-curves/pull/29) for the X25519 alg with the changes agreed on the ECDH deriveBits operation - [Discussion in the PR](https://github.com/w3c/webcrypto/pull/351) about throwing on any truncation + Claims that this change would break wrap/unwrap use cases - Start the chrome implementation for X25519 throw-on-truncation spec changes + [DRAFT] https://chromium-review.googlesource.com/c/chromium/src/+/5895196 - Start the WebKit implementation of the throw-on-truncation spec changes + Import the latest change from the WPT WebCrypto suite + [MERGED] https://github.com/WebKit/WebKit/pull/34571 - Fixing WebKit bug on ECDH when length is 0 - [REVIEW] https://bugs.webkit.org/show_bug.cgi?id=276916 - Rebase and clean up the WebKIt PR with the fix for the length = 0 - Submitted [a patch for review](https://github.com/WebKit/WebKit/pull/31146 ) - Start the Gecko implementation to fix the length = 0 behavior - [REVIEW] https://bugzilla.mozilla.org/show_bug.cgi?id=1922522 - Submitted [a patch for review](https://phabricator.services.mozilla.com/D224555 ) - Implemented additional WPT for the derive_bits_length + too long and non-multiple of 8 test cases + [REVIEW] https://github.com/web-platform-tests/wpt/pull/48471 ### Cross-Origin-Embedder policy issue blocking Web Tiles development - Continued studying the spec - Tried to make some examples of how these headers are inherited on iframes - Studied the WPT already defined for similar cases - Found out the root cause of the problem, which is related to how the permission policy is inherited by iframes - this is clearly a bug in the demo - Investigating a bit more how the permission policy inheritance works + Investigate why the "*" allow list doesn't allow the iframe to inherit the value from its parent policy + Submitted my conclusion on the bug initially reported to Chrome - [INVALID] https://issues.chromium.org/issues/346852676 ## 2024 Weeks 32-36 Hello, please find the status for the tasks from weeks 32-36 below. We have included a few relevant bits from early this week (week 37). Please let us know if you have any questions. ### Implement the Ed25519 in browsers * Retaking the patches to address the deriveBit cases with zero value for the length argument - Analyzing previous discussions in GitHub - Preparing a proposal to be discussed with Daniel (WebCrypto spec editor) * Continue working on the proposal to address the deriveBits interop issues with length zero * Reading the relevant sections of the RFCs referenced by the the affected algorithms * Discussing with Daniel via email about my proposal * Scheduled a call for next week (week 37) * Met with Daniel and the following are highlights from the call: * Ed25519 random signatures * not sure if randomizes signatures will be part of an official RFC (likely, will) * TODO: create an issue to gather opinions from Chromium and Firefox * PR to change the WPT * small-order * easiest way is forget about full correctness, as WebKit and Chrome does. * propose this as optional * better to move the discusson to the ITEF and made the changes in the crypto libraries * deriveBits * Implement what it's specicied for PBKDF2 & HKDF (PR#275) * File an issue for ECDH and X25519 so that we throw on any value different than the default curve's length ### Cross-Origin-Embedder policy issue blocking Web Tiles development * Start the investigation of the Cross-Origin-Embedder policy issue * Analysis of the HTML spec sections where this headers are defined * Debugging the test case provided in the bug * Ideally need a more simple test case ## 2024 Weeks 28 - 31 Hello, please find the status for the tasks from weeks 28-31 below. Please let us know if you have any questions. ### Handling pending WebTransport sessions * Implementing a more complete solution, as defined in the design document, based on getting the WebTransport server's IP just after the DNS request is resolved - https://chromium-review.googlesource.com/c/chromium/src/+/5745063 [ REVIEW ] - Added a new argument to the OnHandshakeFailed method of the WebTransport Mojom interface to pass the server address as an IPEndPoint instance from the network process to the browser process. - This patch seems to solve the issues detected in the [libp2p demo](https://libp2p-webtransport-sessions.on.fleek.co/) - During the review, Adam suggested a new approach; we would define a new method OnBeforeConnect to the WebTransport mojom interface to pass the server address just before the UDP connection is created. - https://chromium-review.googlesource.com/c/chromium/src/+/5756508 [ WIP ] ### Implement the Ed25519 in browsers** * Fixing the interoperability issues of the deriveBits operation and it's 'length' parameter - Blink implementation - Make the deriveBits length as optional - https://issues.chromium.org/issues/40265696 - https://chromium-review.googlesource.com/c/chromium/src/+/5686232 \[ REVIEW \] - Implementing a patch for the case of length=0 in HKDF algorithms - https://issues.chromium.org/issues/352364580 - https://chromium-review.googlesource.com/c/chromium/src/+/5729992 \[ REVIEW \] - WebKit implementation - Make the deriveBits length as optional - https://bugs.webkit.org/show_bug.cgi?id=276331 [ FIXED ] - Implementing a patch for the case of length=0 in HKDF algorithms - https://bugs.webkit.org/show_bug.cgi?id=276394 - https://github.com/WebKit/WebKit/pull/30667 \[ REVIEW \] - Gecko implementation - Make the deriveBits length as optional - https://bugzilla.mozilla.org/show_bug.cgi?id=1793429 - https://phabricator.services.mozilla.com/D217532 \[ REVIEW \] ## 2024 Weeks 24 - 27 Hello, please find the status for the tasks from weeks 24-27 below. Please let us know if you have any questions. ### Handling pending WebTransport sessions - Prepared a deb package with the strategy pattern and the runtime flag - ["Consider the origin on the WebTransport throttle" Prototype](https://chromium-review.googlesource.com/c/chromium/src/+/5600351) - Addressing review feedback from Adam (Google) in regards to the MVP patch. - Implemented a small-refactoring in preparation for the origin-based throttling approach - https://chromium-review.googlesource.com/c/chromium/src/+/5664914 [ MERGED ] ### Support Extensions in custom protocols - Completed the [design document](https://docs.google.com/document/d/1e6mSsbjLqBd1_4EAS_AX543vy53oq8SlycNwQ0mZ46g/edit?usp=sharing) with the permissions management and conflict resolutions - Shared the design document with Google for feedback. - Expecting to make more progress with this over the next month. ### Implement the Ed25519 in browsers * Resume the efforts to push forward the issues blocking the intent-to-ship request - https://github.com/w3c/webcrypto/pull/362 + how to manage small-order points + randomized EdDSA signatures - https://github.com/w3c/webcrypto/pull/345 + deriveBits interoperability * Sent emails to Apple, Mozilla and Google about the different issues * The [PR#345](https://github.com/w3c/webcrypto/pull/345) to resolve the interop issues of the deriveBits operation has been merged - update my [PR](https://github.com/web-platform-tests/wpt/pull/43400) with the new tests considering the new behavior * Implementing the changes in the algorithms with the deriveBits operation to support optional length parameter - https://chromium-review.googlesource.com/c/chromium/src/+/5686232 [REVIEW] - https://github.com/WebKit/WebKit/pull/30667 [ REVIEW ] * Google asked to solve the interop issue regarding HKDF and length=0 in a separate issue - The [PR](https://github.com/w3c/webcrypto/pull/275) to change the spec was back in 2021 and both Safari and Firefox implement that behavior ## 2024 Weeks 19 - 23 Hello, Please find below the status summary for the tasks from wk19-23 of 2024. Please let us know if you have any questions. **Support Extensions in custom protocols** * Continue working on the design document - https://docs.google.com/document/d/1e6mSsbjLqBd1_4EAS_AX543vy53oq8SlycNwQ0mZ46g/edit?usp=sharing - permissions management - security considerations - alternatives considered * Shared the design document with google - asking also for early feedback on the Extension API prototype **Handling pending WebTransport sessions** * Prototyping the origin's hashmap as the first mitigation issue - Implementation of strategy pattern, under a runtime flag - https://chromium-review.googlesource.com/c/chromium/src/+/5577378 - https://chromium-review.googlesource.com/c/chromium/src/+/5587497 * Implementation of a MVP and asked Google engineers for an early review - https://chromium-review.googlesource.com/c/chromium/src/+/5600351 * Provided a prebuilt Linux binary of Chromium with my prototype **New blog post about the WebCrypto related work** * First draft of the blog post - Summary about the current status and focus on the blockers for the intent-to-ship ## 2024 Weeks 13 - 18 Hello, Please find below the status summary for the tasks from wk13-18 of 2024. Please let us know if you have any questions. **Support Extensions in custom protocols** * Competed the analysis of the PWAs as Protocol Handlers feature's logic - https://docs.google.com/document/d/1e6mSsbjLqBd1_4EAS_AX543vy53oq8SlycNwQ0mZ46g/edit?userstoinvite=steph.stimac@gmail.com&sharingaction=manageaccess&role=writer#heading=h.brfyb0wbqzmg - permissions before registering the protocol handlers - integration with the Chromium's external handlers logic - OS integration layer * Implemented a prototype - new approach, based on the //components/custom_hadnlers, to share the logic used by the registerProtocolHander HTML API - https://chromium-review.googlesource.com/c/chromium/src/+/5518971 risks/challenges - could be perceived as a origin policy bypass - argument was that pwa can do it - but pwa model is not about redirecting network reqs - maybe custom protocol is less dangerous - visually says it's doing non-http stuff, vs extensions that have cross-origin but have no user interface - sec review is easier/clearer for vendors/market - pwa shim: reduces new stuff to implement by vendors **Implement the Ed25519 in browsers** * Working on the interoperability issues of the deriveBits operation - Fixed a bug in some of the histograms added for this feature + https://chromium-review.googlesource.com/c/chromium/src/+/5328466 \[ LANDED \] * Continue the discussion about the PR to merge the Curve25519 algorithms in the Web Cryptography API specification - https://github.com/w3c/webcrypto/pull/362 ## 2024 Weeks 10 - 12 Hello, Please find below the status summary for the tasks from wk10-12 of 2024. Please let us know if you have any questions. **Implement the Ed25519 in browsers** - recap of the blockers for the intent-to-ship - https://github.com/w3c/webcrypto/pull/362 - refactoring of the EdDSA WPT tests - https://github.com/web-platform-tests/wpt/pull/44719 - Attended the WepAppSec WG meeting to talk about the PR to merge the Curve25519 algorithms **Handling pending WebTransport sessions** - Working on the design document - https://docs.google.com/document/d/1j2NJqLQyAHSBZArW6Iwg8uVId3NGQxnBV7b9LYbd8FM/edit#heading=h.numlu03ovx44 - Sent the email to the blink-networking-dev mailing list - https://groups.google.com/a/chromium.org/d/msgid/blink-network-dev/932783a5-d2cf-4f6a-b7a0-88d7212d9ec1%40igalia.com **Support Extensions in custom protocols** - doing a recap of the proposal lidel outlined to implement a service-worker fetch listener - https://github.com/ipfs/in-web-browsers/issues/212 - Start a new design doc for the implementation of the protocol handler registration at install time - https://docs.google.com/document/d/1e6mSsbjLqBd1_4EAS_AX543vy53oq8SlycNwQ0mZ46g/edit#heading=h.brfyb0wbqzmg - Resume the prototyping efforts (will share the code soon) - Evaluating ways to use the PWAs ManifestManage + discard the use of the PWAs ManifestManager since its architecture (happening on the renderer process) doesn't fix well with how the WebExtensions logic is implemented. - going back to the regular ManifestHander based parsing + focusing now on usins the custom_handlers component and share the PWAs permissions logic if possible **Firefox support for WebTransport transport** - Attending the Web Transport WG meeting to talk about the need of WPT - https://github.com/w3c/webtransport/issues/589 ## 2024 Weeks 08 - 09 Hello, Please find below the status summary for the tasks from wk08-09 of 2024. Please let us know if you have any questions. **Implement the Ed25519 in browsers** * Anne (WebKit) asked me last Friday to bring the Curve25519 algorithms into the WebAppSec WG - he thinks it would be good to unblock the shipment of the feature - Review the PR by Daniel to merge the Curve25519 into the Web Cryptography API specification - https://github.com/w3c/webcrypto/pull/362 * Fixing some wrong tests in the Ed25519 cases - https://github.com/web-platform-tests/wpt/pull/44719 [ REVIEW ] * Filed a bug against BoringSSL to request additional checks for the of small-order points in the Ed25519 algorithm - https://bugs.chromium.org/p/boringssl/issues/detail?id=697& - David Ben replied that this issue is extremely low priority and thinks that the Web Crypto implementation should stick to what the platform's library provides. * Continue working on the deriveBts interoperability issues - investigating a possible bug in the UMAs implementation - https://chromium-review.googlesource.com/c/chromium/src/+/5328466 [ REVIEW ] - The counter for the '0' value seems correct, so the lack of data may imply no usage at all, which would be good news since we want to merge a PR in the spec that would change WebKit's behavior on that use case. - https://chromestatus.com/metrics/feature/timeline/popularity/4745 - https://chromestatus.com/metrics/feature/timeline/popularity/4746 **Firefox support for WebTransport transport** * Review the patch to complete the implementation of the serverCertificateHash feature - https://bugzilla.mozilla.org/show_bug.cgi?id=1873263 - This bug has been fixed by an external contributor and it's been merged already - https://phabricator.services.mozilla.com/D197857 * Still working on the WPT for this feature - Filed an issue for the Web Transport WG - https://github.com/w3c/webtransport/issues/589 - It's going to be discussed in the next meeting - https://www.w3.org/wiki/WebTransport/Meetings2023#WebTransport_Bi-weekly_Virtual_Meeting_#76_early_-_March_12,_2024 **Handling pending WebTransport sessions** * continue with the analysis of the too many pending WebTransport connections issues * Meeting with lidel about the WebTransport bug related to the pending handshake requests - brainstorming about the test case and possible approaches * start working on the design document * https://docs.google.com/document/d/1j2NJqLQyAHSBZArW6Iwg8uVId3NGQxnBV7b9LYbd8FM/edit?usp=sharing ## 2024 Weeks 06 - 07 Hello, Please find below the status summary for the tasks from wk06-07 of 2024. Please let us know if you have any questions. **Implement the Ed25519 in browsers** * Continue the discussion about the interoperability issues related to the deriveKey length - https://github.com/w3c/webcrypto/issues/322 - https://github.com/w3c/webcrypto/issues/329 - New tentative Web Platform Tests - https://github.com/web-platform-tests/wpt/pull/43400 [ REVIEW ] - Conversation with David Ben (Google) about the UMAs we added last year to evaluate the use of the value '0' as deriveKey's length + https://chromestatus.com/metrics/feature/timeline/popularity/4745 + https://chromestatus.com/metrics/feature/timeline/popularity/4746 + It seems there must be a bug, since we've got no data so far * Discussion about the use if small-order key in Ed25519 signatures - New Web Platform tests, thanks to the test vectors found in a paper - https://github.com/web-platform-tests/wpt/pull/43751 [ MERGED ] - Discussed with the spec editor some changes in the spec - https://github.com/WICG/webcrypto-secure-curves/issues/19 - https://github.com/WICG/webcrypto-secure-curves/pull/25 [ MERGED ] * Reactivate the issue about the removal of the 'alg' JWK field from the import operation's logic - https://bugs.webkit.org/show_bug.cgi?id=262613 - https://issues.chromium.org/issues/40074061 **Firefox support for WebTransport transport** * retake the review of the patch to complete the serverCertificateHashes feature - https://bugzilla.mozilla.org/show_bug.cgi?id=1873263 * filed an WebTransposrt issue for the lack of WPT - https://github.com/w3c/webtransport/issues/589 **Handling pending WebTransport sessions** * Preliminary analysis of the demo, the test cases provided and the discussion in the issue tracker * Contacted Google's engineer that owns the bug to ask about the current status and their plans - It seems that there is no plans to do any work on this feature, but they offered help with reviews - They asked for a design do before to discuss any potential approach ## 2024 Weeks 01 - 05 Hello, Please find below the status summary for the tasks from wk01-05 of 2024. Please let us know if you have any questions. **Firefox support for WebTransport transport** - The patch with the serverCertificateHas implementation has landed, but someone filed a bug claiming the implementation is not complete according to the specs - https://bugzilla.mozilla.org/show_bug.cgi?id=1873263 - help with the reviews - Continue working on the WPT - trying to figure out a way to use the WPT HTTP server's certificate from the tests - Investigating why the test fail in Chrome (shows an error during handshaking logic) - the problem was that the spec, which Chrome implements completely, requires a maximum of 14 days validity for the certificate and doesn't allow RSA - discussion in the WPT channel about the problems we have and changes needed in the testing infrastructure - gathering feedback among the browser engineers that own the feature - Exploring the server substitutions to make the hash fingerprint be resolved at execution time ## 2023 Weeks 50 - 52 Hello, Please find below the status summary for the tasks from wk50-52 of 2023. Please let us know if you have any questions. **Implement the Ed25519 in browsers** * Fixing the interoperability issues in the deriveBits method - Change X25519´s behavior to match the current spec + https://chromium-review.googlesource.com/c/chromium/src/+/5013612 [ LANDED ] - There is an ongoing discussion about this that eventually will imply another change in all the algorithms providing the deriveBits implementation (HKDF, PBKDF2, ECDH and X25519) + https://github.com/w3c/webcrypto/issues/322 - Implementing new WPT with new test cases for the deriveBits operation + https://github.com/web-platform-tests/wpt/pull/43400 * Analyzing the discussion in the bug about the "JWK" field removal - https://issues.chromium.org/issues/40074061 - https://bugs.webkit.org/show_bug.cgi?id=262613 - There are patches to fix these 2 bugs, but they are blocked until we get an agreement + https://chromium-review.googlesource.com/c/chromium/src/+/5054207 [ REVIEW ] + https://github.com/WebKit/WebKit/pull/21006 [ REVIEW ] * Additional checks against the use of small-order points in EdDSA signatures - https://issues.chromium.org/issues/40251305 - Working on new WPT for these cases + https://github.com/web-platform-tests/wpt/pull/43751 These 3 issues are the ones blocking the intent-to-ship on Chrome, and probably in Safari as well. **Firefox support for WebTransport transport** * Initial implementation in Firefox of the serverCertificateHash feature of the Web Transport spec - https://phabricator.services.mozilla.com/D195966 [ LANDED ] * Evaluating possible WPT based on Chrome's internal tests - investigating how to deal with the WPT https server certificates - the problem is that the spec, which Chrome implements completely, requires a maximum of 14 days validity for the certificate and doesn't allow RSA - exploring the server substitutions to make the hash fingerprint be resolved at execution time * someone filed a bug claiming the implementation is not complete according to the specs - https://bugzilla.mozilla.org/show_bug.cgi?id=1873263 - The initial implementation was incomplete; we need a specific certificate validators to fulfill the requirements of the spec + https://w3c.github.io/webtransport/#custom-certificate-requirements + the certificate MUST be an X.509v3 certificate as defined in [RFC5280] + the key used in the Subject Public Key field MUST be one of the allowed public key algorithms + the current time MUST be within the validity period of the certificate as defined in Section 4.1.2.5 of [RFC5280] + the total length of the validity period MUST NOT exceed two weeks + Some external contributor is working on it and asked me for reviews * filed an WebTransposrt issue for the lack of WPT - https://github.com/w3c/webtransport/issues/589

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully