<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>259934</bug_id>
          
          <creation_ts>2023-08-08 10:30:08 -0700</creation_ts>
          <short_desc>[WebAuthn] Implement PRF extension + hmac-secret</short_desc>
          <delta_ts>2026-01-08 23:37:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="pascoe@apple.com">pascoe</reporter>
          <assigned_to name="pascoe@apple.com">pascoe</assigned_to>
          <cc>andrey</cc>
    
    <cc>bsoft</cc>
    
    <cc>pascoe</cc>
    
    <cc>rew.islam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1970111</commentid>
    <comment_count>0</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2023-08-08 10:30:08 -0700</bug_when>
    <thetext>We currently do not support the PRF extension or the necessary CTAP extension for it, hmac-secret. This bug is to implement both of those.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1970112</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-08-08 10:30:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/113572812&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1970113</commentid>
    <comment_count>2</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2023-08-08 10:30:41 -0700</bug_when>
    <thetext>explainer: https://github.com/w3c/webauthn/wiki/Explainer:-PRF-extension</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2106118</commentid>
    <comment_count>3</comment_count>
    <who name="Rew Islam @ Dashlane">rew.islam</who>
    <bug_when>2025-03-26 06:28:35 -0700</bug_when>
    <thetext>It would be great to also see support for hmac-secret-mc:
https://fidoalliance.org/specs/fido-v2.2-ps-20250228/fido-client-to-authenticator-protocol-v2.2-ps-20250228.html#sctn-hmac-secret-make-cred-extension</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2157870</commentid>
    <comment_count>4</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2025-11-11 00:26:57 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/53734</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2160641</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-11-21 10:54:21 -0800</bug_when>
    <thetext>Committed 303406@main (a305a458493c): &lt;https://commits.webkit.org/303406@main&gt;

Reviewed commits have been landed. Closing PR #53734 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2167511</commentid>
    <comment_count>6</comment_count>
    <who name="Berni">bsoft</who>
    <bug_when>2025-12-20 00:17:53 -0800</bug_when>
    <thetext>Crashes on Safari TP 234
&quot;exceptionReason&quot; : {&quot;arguments&quot;:[&quot;%s&quot;,&quot;setPrf:&quot;,&quot;0xb03edc930&quot;],&quot;format_string&quot;:&quot;-[%s %s]: unrecognized selector sent to instance %p&quot;,&quot;name&quot;:&quot;NSInvalidArgumentException&quot;,&quot;type&quot;:&quot;objc-exception&quot;,&quot;composed_message&quot;:&quot;-[%s setPrf:]: unrecognized selector sent to instance 0xb03edc930&quot;,&quot;class&quot;:&quot;NSException&quot;},

Platform authenticator PRF support is well implemented in released Safari, but not for hardware keys (HMAC over CTAP) what this pull request should essentially solve. Can be regression in Safari TP, now any request for PRF extension in await navigator.credentials.create will crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2167512</commentid>
    <comment_count>7</comment_count>
    <who name="Berni">bsoft</who>
    <bug_when>2025-12-20 00:30:41 -0800</bug_when>
    <thetext>Such features should be clearly marked in STP release notes to require also a dedicated OS beta version, for this case where setPrf selector is available.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2167522</commentid>
    <comment_count>8</comment_count>
    <who name="Berni">bsoft</who>
    <bug_when>2025-12-20 02:58:34 -0800</bug_when>
    <thetext>Tested with latest macOS Tahoe 26.3 Beta. Same issue. @pascoe@apple.com Your release process is fairly useless for such features that need proper platform support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2170261</commentid>
    <comment_count>9</comment_count>
    <who name="Rew Islam @ Dashlane">rew.islam</who>
    <bug_when>2026-01-08 06:58:08 -0800</bug_when>
    <thetext>I can confirm the crash on Safari TP 234 (running on 26.2 (25C56))

Process:             Safari Technology Preview [97404]
Path:                /Applications/Safari Technology Preview.app/Contents/MacOS/Safari Technology Preview
Identifier:          com.apple.SafariTechnologyPreview
Version:             26.0 (21624.1.6.19.3)
Build Info:          Safari-7624001006019003~2
Code Type:           ARM-64 (Native)
Role:                Foreground
Parent Process:      launchd [1]
Coalition:           com.apple.SafariTechnologyPreview [47295]
User ID:             502

Date/Time:           2026-01-08 15:54:50.0541 +0100
Launch Time:         2026-01-08 15:53:51.4472 +0100
Hardware Model:      MacBookPro18,2
OS Version:          macOS 26.2 (25C56)
Release Type:        User

Crash Reporter Key:  7EB201A4-6F6D-1A1C-38A5-1BEB294BB4CD
Incident Identifier: EC4EE0B7-84EA-4FD5-BC36-371C1E028C9F

Sleep/Wake UUID:       F31CC780-500F-495C-8D10-3C4317D191F7

Time Awake Since Boot: 430000 seconds
Time Since Wake:       3731 seconds

System Integrity Protection: enabled

Triggered by Thread: 0, Dispatch Queue: com.apple.main-thread

Exception Type:    EXC_CRASH (SIGABRT)
Exception Codes:   0x0000000000000000, 0x0000000000000000
Exception Reason:  -[%s setPrf:]: unrecognized selector sent to instance 0x90845cb60

Termination Reason:  Namespace SIGNAL, Code 6, Abort trap: 6
Terminating Process: Safari Technology Preview [97404]


Application Specific Information:
abort() called</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2170576</commentid>
    <comment_count>10</comment_count>
    <who name="Rew Islam @ Dashlane">rew.islam</who>
    <bug_when>2026-01-08 23:37:45 -0800</bug_when>
    <thetext>The above crash was produced with these steps:

1. Visit https://demo.wwwallet.org/login
2. Click &quot;Sign Up&quot;
3. Enter a name
4. Click &quot;Passkey on a security key&quot;

Expected: System prompt for a security key (via CTAP)

Actual: The above crash</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>