Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 18ea1bb6285663216d95a9cebfe72c6ee10fe88e
https://github.com/WebKit/WebKit/commit/18ea1bb6285663216d95a9cebfe72c6ee10fe88e
Author: Pascoe <[email protected]>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
A
LayoutTests/http/wpt/identity/digital-credential-openid4vp-request-parsing-disabled.https-expected.txt
A
LayoutTests/http/wpt/identity/digital-credential-openid4vp-request-parsing-disabled.https.html
A
LayoutTests/http/wpt/identity/digital-credential-openid4vp-request-parsing.https-expected.txt
A
LayoutTests/http/wpt/identity/digital-credential-openid4vp-request-parsing.https.html
M Source/WebCore/CMakeLists.txt
M Source/WebCore/DerivedSources.make
M Source/WebCore/Headers.cmake
M Source/WebCore/Modules/identity/DigitalCredential.cpp
M
Source/WebCore/Modules/identity/protocols/UnvalidatedDigitalCredentialRequest.h
A
Source/WebCore/Modules/identity/protocols/openid/OpenID4VPMultisignedRequest.h
A
Source/WebCore/Modules/identity/protocols/openid/OpenID4VPMultisignedRequest.idl
A Source/WebCore/Modules/identity/protocols/openid/OpenID4VPSignature.h
A Source/WebCore/Modules/identity/protocols/openid/OpenID4VPSignature.idl
A Source/WebCore/Modules/identity/protocols/openid/OpenID4VPSignedRequest.h
A
Source/WebCore/Modules/identity/protocols/openid/OpenID4VPSignedRequest.idl
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebKit/Shared/WebCoreArgumentCodersAuth.serialization.in
M Source/WebKit/UIProcess/DigitalCredentials/WKDigitalCredentialsPicker.mm
M Source/WebKit/UIProcess/WebPageProxy.h
M
Source/WebKit/WebProcess/DigitalCredentials/DigitalCredentialsCoordinator.messages.in
M
Source/WebKit/WebProcess/cocoa/IdentityDocumentServices/DigitalCredentialsRequestValidatorBridge.h
M
Source/WebKit/WebProcess/cocoa/IdentityDocumentServices/DigitalCredentialsRequestValidatorBridge.mm
Log Message:
-----------
[Digital Credentials] Start to parse OpenID4VP signed and multisigned
requests in the web content process
https://bugs.webkit.org/show_bug.cgi?id=320038
rdar://problem/182968585
Reviewed by Abrar Rahman Protyasha.
Turn the unvalidated digital credential request into a variant so the
OpenID4VP presentation protocols can be represented alongside the
existing ISO 18013 mobile document request, and parse the signed and
multisigned variants entirely in the web content process.
Add IPC-serializable request structs under Modules/identity/protocols/openid/:
OpenID4VPSignedRequest ({ request }, a JWS Compact Serialization) and
OpenID4VPMultisignedRequest ({ payload, signatures }, a JWS JSON
Serialization, whose signatures are OpenID4VPSignature { protected,
signature }). All members are strings/vectors so the unvalidated
request remains serializable across IPC; no JSObject crosses the process
boundary. The "openid4vp-v1-unsigned" protocol is added once its DCQL
request parsing lands.
UnvalidatedDigitalCredentialRequest becomes
Variant<MobileDocumentRequest, OpenID4VPSignedRequest,
OpenID4VPMultisignedRequest>. convertProtocolString() now takes the
document so it can gate the OpenID4VP protocols behind the off-by-default
DigitalCredentialsOpenID4VPEnabled setting, and jsToCredentialRequest()
converts each via convertDictionary() in the web content process. The
request validator and the raw-request handoff to the picker switch over
the variant, handling the mobile document request and skipping the
OpenID4VP requests until their validation and wallet routing land.
Tests: http/wpt/identity/digital-credential-openid4vp-request-parsing.https.html
http/wpt/identity/digital-credential-openid4vp-request-parsing-disabled.https.html
* Source/WebCore/CMakeLists.txt:
* Source/WebCore/DerivedSources.make:
* Source/WebCore/Headers.cmake:
* Source/WebCore/Sources.txt:
* Source/WebCore/Modules/identity/DigitalCredential.cpp:
(WebCore::convertProtocolString):
(WebCore::jsToCredentialRequest):
*
Source/WebCore/Modules/identity/protocols/UnvalidatedDigitalCredentialRequest.h:
*
Source/WebCore/Modules/identity/protocols/openid/OpenID4VPMultisignedRequest.h:
Added.
*
Source/WebCore/Modules/identity/protocols/openid/OpenID4VPMultisignedRequest.idl:
Added.
* Source/WebCore/Modules/identity/protocols/openid/OpenID4VPSignature.h: Added.
* Source/WebCore/Modules/identity/protocols/openid/OpenID4VPSignature.idl:
Added.
* Source/WebCore/Modules/identity/protocols/openid/OpenID4VPSignedRequest.h:
Added.
* Source/WebCore/Modules/identity/protocols/openid/OpenID4VPSignedRequest.idl:
Added.
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebKit/Shared/WebCoreArgumentCodersAuth.serialization.in:
* Source/WebKit/UIProcess/DigitalCredentials/WKDigitalCredentialsPicker.mm:
* Source/WebKit/UIProcess/WebPageProxy.h:
*
Source/WebKit/WebProcess/DigitalCredentials/DigitalCredentialsCoordinator.messages.in:
*
Source/WebKit/WebProcess/cocoa/IdentityDocumentServices/DigitalCredentialsRequestValidatorBridge.h:
*
Source/WebKit/WebProcess/cocoa/IdentityDocumentServices/DigitalCredentialsRequestValidatorBridge.mm:
(WebKit::DigitalCredentials::validateRequests):
*
LayoutTests/http/wpt/identity/digital-credential-openid4vp-request-parsing.https.html:
Added.
*
LayoutTests/http/wpt/identity/digital-credential-openid4vp-request-parsing.https-expected.txt:
Added.
*
LayoutTests/http/wpt/identity/digital-credential-openid4vp-request-parsing-disabled.https.html:
Added.
*
LayoutTests/http/wpt/identity/digital-credential-openid4vp-request-parsing-disabled.https-expected.txt:
Added.
Canonical link: https://commits.webkit.org/318074@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications