Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a305a458493c0d4b7835f5fee17cc70295221d38
https://github.com/WebKit/WebKit/commit/a305a458493c0d4b7835f5fee17cc70295221d38
Author: Pascoe <[email protected]>
Date: 2025-11-21 (Fri, 21 Nov 2025)
Changed paths:
M
LayoutTests/http/wpt/webauthn/public-key-credential-create-success-hid.https-expected.txt
M
LayoutTests/http/wpt/webauthn/public-key-credential-create-success-hid.https.html
M
LayoutTests/http/wpt/webauthn/public-key-credential-get-success-hid.https-expected.txt
M
LayoutTests/http/wpt/webauthn/public-key-credential-get-success-hid.https.html
M LayoutTests/http/wpt/webauthn/resources/util.js
M Source/WebCore/Modules/webauthn/AuthenticatorAssertionResponse.cpp
M Source/WebCore/Modules/webauthn/AuthenticatorAssertionResponse.h
M Source/WebCore/Modules/webauthn/AuthenticatorAttestationResponse.cpp
M Source/WebCore/Modules/webauthn/AuthenticatorAttestationResponse.h
M Source/WebCore/Modules/webauthn/AuthenticatorResponse.cpp
M Source/WebCore/Modules/webauthn/WebAuthenticationConstants.h
M Source/WebCore/Modules/webauthn/cbor/CBORReader.cpp
M Source/WebCore/Modules/webauthn/cbor/CBORReader.h
M Source/WebCore/Modules/webauthn/fido/DeviceRequestConverter.cpp
M Source/WebCore/Modules/webauthn/fido/DeviceRequestConverter.h
M Source/WebCore/Modules/webauthn/fido/DeviceResponseConverter.cpp
M Source/WebCore/Modules/webauthn/fido/FidoConstants.h
M Source/WebCore/Modules/webauthn/fido/Pin.cpp
M Source/WebCore/Modules/webauthn/fido/Pin.h
M
Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientInputs.h
M
Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientInputs.mm
M
Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientOutputs.h
M
Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientOutputs.mm
M
Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientOutputsInternal.h
M Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm
M
Source/WebKit/UIProcess/WebAuthentication/Cocoa/AuthenticationServicesForwardDeclarations.h
M
Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm
M Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp
M Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.h
M Tools/TestWebKitAPI/Tests/WebCore/CtapPinTest.cpp
M Tools/TestWebKitAPI/Tests/WebCore/CtapRequestTest.cpp
M Tools/TestWebKitAPI/Tests/WebCore/CtapResponseTest.cpp
M Tools/TestWebKitAPI/Tests/WebCore/FidoTestData.h
Log Message:
-----------
[WebAuthn] Implement PRF extension + hmac-secret
rdar://113572812
https://bugs.webkit.org/show_bug.cgi?id=259934
Reviewed by Brent Fulgham.
Implements the PRF extension for WebAuthn to enable deriving cryptographic
secrets from credentials. The prf extension maps to the CTAP hmac-secret
extension, supporting both credential creation and authentication flows with
salt evaluation. This enables use cases like credential-bound encrypted
storage.
Tests: Tools/TestWebKitAPI/Tests/WebCore/CtapPinTest.cpp
Tools/TestWebKitAPI/Tests/WebCore/CtapRequestTest.cpp
Tools/TestWebKitAPI/Tests/WebCore/CtapResponseTest.cpp
Tools/TestWebKitAPI/Tests/WebCore/FidoTestData.h
*
LayoutTests/http/wpt/webauthn/public-key-credential-create-success-hid.https-expected.txt:
*
LayoutTests/http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
*
LayoutTests/http/wpt/webauthn/public-key-credential-get-success-hid.https-expected.txt:
*
LayoutTests/http/wpt/webauthn/public-key-credential-get-success-hid.https.html:
* LayoutTests/http/wpt/webauthn/resources/util.js:
* Source/WebCore/Modules/webauthn/AuthenticatorAssertionResponse.cpp:
(WebCore::AuthenticatorAssertionResponse::create):
* Source/WebCore/Modules/webauthn/AuthenticatorAssertionResponse.h:
* Source/WebCore/Modules/webauthn/AuthenticatorAttestationResponse.cpp:
(WebCore::AuthenticatorAttestationResponse::create):
* Source/WebCore/Modules/webauthn/AuthenticatorAttestationResponse.h:
* Source/WebCore/Modules/webauthn/AuthenticatorResponse.cpp:
(WebCore::AuthenticatorResponse::extensions const):
* Source/WebCore/Modules/webauthn/cbor/CBORReader.cpp:
(cbor::CBORReader::readWithBytesConsumed):
* Source/WebCore/Modules/webauthn/cbor/CBORReader.h:
* Source/WebCore/Modules/webauthn/fido/DeviceRequestConverter.cpp:
(fido::encodeMakeCredentialRequestAsCBOR):
(fido::encodeGetAssertionRequestAsCBOR):
* Source/WebCore/Modules/webauthn/fido/DeviceRequestConverter.h:
* Source/WebCore/Modules/webauthn/fido/DeviceResponseConverter.cpp:
(fido::parseAuthenticatorDataExtensions):
(fido::readCTAPMakeCredentialResponse):
(fido::readCTAPGetAssertionResponse):
* Source/WebCore/Modules/webauthn/fido/FidoConstants.h:
* Source/WebCore/Modules/webauthn/fido/Pin.cpp:
(fido::pin::decryptForProtocol):
(fido::pin::TokenResponse::parse):
(fido::pin::HmacSecretRequest::HmacSecretRequest):
(fido::pin::HmacSecretRequest::create):
(fido::pin::HmacSecretResponse::HmacSecretResponse):
(fido::pin::HmacSecretResponse::parse):
(fido::pin::HmacSecretResponse::output const):
* Source/WebCore/Modules/webauthn/fido/Pin.h:
(fido::pin::HmacSecretRequest::sharedKey const):
(fido::pin::HmacSecretRequest::coseKey const):
(fido::pin::HmacSecretRequest::saltEnc const):
(fido::pin::HmacSecretRequest::saltAuth const):
(fido::pin::HmacSecretRequest::protocol const):
* Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientInputs.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientInputs.mm:
(-[_WKAuthenticationExtensionsClientInputs dealloc]):
* Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientOutputs.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientOutputs.mm:
(-[_WKAuthenticationExtensionsClientOutputs initWithAppid:]):
(-[_WKAuthenticationExtensionsClientOutputs
initWithAppid:prfEnabled:prfFirst:prfSecond:]):
(-[_WKAuthenticationExtensionsClientOutputs prfFirst]):
(-[_WKAuthenticationExtensionsClientOutputs prfSecond]):
*
Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientOutputsInternal.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(authenticationExtensionsClientInputs):
* Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:
(WebKit::CtapAuthenticator::continueMakeCredentialAfterCheckExcludedCredentials):
(WebKit::CtapAuthenticator::continueGetAssertionAfterCheckAllowCredentials):
* Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.h:
* Tools/TestWebKitAPI/Tests/WebCore/CtapPinTest.cpp:
(TestWebKitAPI::TEST(CtapPinTest, TestHmacSecretRequestCreate)):
(TestWebKitAPI::TEST(CtapPinTest, TestHmacSecretRequestInvalidSalts)):
(TestWebKitAPI::TEST(CtapPinTest, TestHmacSecretResponseRoundTrip)):
(TestWebKitAPI::TEST(CtapPinTest, TestHmacSecretResponseInvalidSize)):
* Tools/TestWebKitAPI/Tests/WebCore/CtapRequestTest.cpp:
(TestWebKitAPI::TEST(CTAPRequestTest,
TestConstructMakeCredentialRequestWithHmacSecret)):
(TestWebKitAPI::TEST(CTAPRequestTest,
TestConstructGetAssertionRequestWithHmacSecret)):
* Tools/TestWebKitAPI/Tests/WebCore/CtapResponseTest.cpp:
(TestWebKitAPI::TEST(CTAPResponseTest,
TestReadMakeCredentialResponseWithHmacSecret)):
(TestWebKitAPI::TEST(CTAPResponseTest,
TestReadGetAssertionResponseWithHmacSecret)):
(TestWebKitAPI::TEST(CTAPResponseTest,
TestReadGetAssertionResponseWithHmacSecret64)):
* Tools/TestWebKitAPI/Tests/WebCore/FidoTestData.h:
(TestWebKitAPI::TestData::std::to_array<uint8_t>):
Canonical link: https://commits.webkit.org/303406@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications