Changeset 249927 in webkit


Ignore:
Timestamp:
Sep 16, 2019 4:28:10 PM (5 years ago)
Author:
jiewen_tan@apple.com
Message:

[WebAuthn] Support more than two FIDO protocol versions
https://bugs.webkit.org/show_bug.cgi?id=198408
<rdar://problem/51292176>

Reviewed by Chris Dumez.

Source/WebCore:

Covered by new API tests.

  • Modules/webauthn/fido/DeviceResponseConverter.cpp:

(fido::readCTAPGetInfoResponse):
Remove the check for the array size.

Tools:

Adds a new test case that includes a FIDO_2_1_PRE version string.

  • TestWebKitAPI/Tests/WebCore/CtapResponseTest.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/FidoTestData.h:
Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r249921 r249927  
     12019-09-16  Jiewen Tan  <jiewen_tan@apple.com>
     2
     3        [WebAuthn] Support more than two FIDO protocol versions
     4        https://bugs.webkit.org/show_bug.cgi?id=198408
     5        <rdar://problem/51292176>
     6
     7        Reviewed by Chris Dumez.
     8
     9        Covered by new API tests.
     10
     11        * Modules/webauthn/fido/DeviceResponseConverter.cpp:
     12        (fido::readCTAPGetInfoResponse):
     13        Remove the check for the array size.
     14
    1152019-09-16  Brent Fulgham  <bfulgham@apple.com>
    216
  • trunk/Source/WebCore/Modules/webauthn/fido/DeviceResponseConverter.cpp

    r245638 r249927  
    196196
    197197    auto it = responseMap.find(CBOR(1));
    198     if (it == responseMap.end() || !it->second.isArray() || it->second.getArray().size() > 2)
     198    if (it == responseMap.end() || !it->second.isArray())
    199199        return WTF::nullopt;
    200200    StdSet<ProtocolVersion> protocolVersions;
  • trunk/Tools/ChangeLog

    r249924 r249927  
     12019-09-16  Jiewen Tan  <jiewen_tan@apple.com>
     2
     3        [WebAuthn] Support more than two FIDO protocol versions
     4        https://bugs.webkit.org/show_bug.cgi?id=198408
     5        <rdar://problem/51292176>
     6
     7        Reviewed by Chris Dumez.
     8
     9        Adds a new test case that includes a FIDO_2_1_PRE version string.
     10
     11        * TestWebKitAPI/Tests/WebCore/CtapResponseTest.cpp:
     12        (TestWebKitAPI::TEST):
     13        * TestWebKitAPI/Tests/WebCore/FidoTestData.h:
     14
    1152019-09-16  Jonathan Bedard  <jbedard@apple.com>
    216
  • trunk/Tools/TestWebKitAPI/Tests/WebCore/CtapResponseTest.cpp

    r239752 r249927  
    573573}
    574574
     575TEST(CTAPResponseTest, TestReadGetInfoResponse2)
     576{
     577    auto getInfoResponse = readCTAPGetInfoResponse(convertBytesToVector(TestData::kTestGetInfoResponsePlatformDevice2, sizeof(TestData::kTestGetInfoResponsePlatformDevice2)));
     578    ASSERT_TRUE(getInfoResponse);
     579    ASSERT_TRUE(getInfoResponse->maxMsgSize());
     580    EXPECT_EQ(*getInfoResponse->maxMsgSize(), 1200u);
     581    EXPECT_NE(getInfoResponse->versions().find(ProtocolVersion::kCtap), getInfoResponse->versions().end());
     582    EXPECT_NE(getInfoResponse->versions().find(ProtocolVersion::kU2f), getInfoResponse->versions().end());
     583    EXPECT_TRUE(getInfoResponse->options().isPlatformDevice());
     584    EXPECT_TRUE(getInfoResponse->options().supportsResidentKey());
     585    EXPECT_TRUE(getInfoResponse->options().userPresenceRequired());
     586    EXPECT_EQ(AuthenticatorSupportedOptions::UserVerificationAvailability::kSupportedAndConfigured, getInfoResponse->options().userVerificationAvailability());
     587    EXPECT_EQ(AuthenticatorSupportedOptions::ClientPinAvailability::kSupportedButPinNotSet, getInfoResponse->options().clientPinAvailability());
     588}
     589
    575590TEST(CTAPResponseTest, TestReadGetInfoResponseWithIncorrectFormat)
    576591{
  • trunk/Tools/TestWebKitAPI/Tests/WebCore/FidoTestData.h

    r243193 r249927  
    605605};
    606606
     607constexpr uint8_t kTestGetInfoResponsePlatformDevice2[] = {
     608    0x00, 0xA6, 0x01, 0x83, 0x68, 0x46, 0x49, 0x44, 0x4F, 0x5F, 0x32, 0x5F,
     609    0x30, 0x66, 0x55, 0x32, 0x46, 0x5F, 0x56, 0x32, 0x6C, 0x46, 0x49, 0x44,
     610    0x4F, 0x5F, 0x32, 0x5F, 0x31, 0x5F, 0x50, 0x52, 0x45, 0x02, 0x82, 0x63,
     611    0x75, 0x76, 0x6D, 0x6B, 0x68, 0x6D, 0x61, 0x63, 0x2D, 0x73, 0x65, 0x63,
     612    0x72, 0x65, 0x74, 0x03, 0x50, 0xF8, 0xA0, 0x11, 0xF3, 0x8C, 0x0A, 0x4D,
     613    0x15, 0x80, 0x06, 0x17, 0x11, 0x1F, 0x9E, 0xDC, 0x7D, 0x04, 0xA5, 0x62,
     614    0x72, 0x6B, 0xF5, 0x62, 0x75, 0x70, 0xF5, 0x62, 0x75, 0x76, 0xF5, 0x64,
     615    0x70,
     616    // platform device : true
     617    0x6C, 0x61, 0x74, 0xF5,
     618    // End of platform_device setting.
     619    0x69, 0x63, 0x6C, 0x69, 0x65, 0x6E, 0x74, 0x50, 0x69, 0x6E, 0xF4, 0x05,
     620    0x19, 0x04, 0xB0, 0x06, 0x81, 0x01,
     621};
     622
     623
    607624// A Sample well formed response to CTAP MakeCredential request.
    608625constexpr uint8_t kTestMakeCredentialResponse[] = {
Note: See TracChangeset for help on using the changeset viewer.