Changeset 284890 in webkit
- Timestamp:
- Oct 26, 2021, 12:50:30 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 7 edited
-
Source/WTF/ChangeLog (modified) (1 diff)
-
Source/WTF/wtf/PlatformHave.h (modified) (1 diff)
-
Tools/ChangeLog (modified) (1 diff)
-
Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj (modified) (4 diffs)
-
Tools/TestWebKitAPI/Tests/WebCore/ASN1Utilities.cpp (added)
-
Tools/TestWebKitAPI/Tests/WebCore/ASN1Utilities.h (added)
-
Tools/TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp (modified) (1 diff)
-
Tools/TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm (modified) (2 diffs)
-
Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WTF/ChangeLog
r284857 r284890 1 2021-10-26 Alex Christensen <achristensen@webkit.org> 2 3 Update PCM test public key to one with RSA-PSS OID 4 https://bugs.webkit.org/show_bug.cgi?id=231048 5 6 Reviewed by John Wilander. 7 8 * wtf/PlatformHave.h: 9 1 10 2021-10-26 Fujii Hironori <Hironori.Fujii@sony.com> 2 11 -
trunk/Source/WTF/wtf/PlatformHave.h
r284823 r284890 935 935 #endif 936 936 937 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 120400) \ 938 || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 150400) \ 939 || (PLATFORM(APPLETV) && __TV_OS_VERSION_MAX_ALLOWED >= 150400) \ 940 || (PLATFORM(WATCHOS) && __WATCH_OS_VERSION_MAX_ALLOWED >= 80400) 941 #define HAVE_RSA_PSS_OID 1 942 #endif 943 937 944 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101600) \ 938 945 || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 140000) \ -
trunk/Tools/ChangeLog
r284888 r284890 1 2021-10-26 Alex Christensen <achristensen@webkit.org> 2 3 Update PCM test public key to one with RSA-PSS OID 4 https://bugs.webkit.org/show_bug.cgi?id=231048 5 6 Reviewed by John Wilander. 7 8 In rdar://79069615 support for public keys with rsaEncryption OIDs was removed as stated on the blog at 9 https://webkit.org/blog/11940/pcm-click-fraud-prevention-and-attribution-sent-to-advertiser/ 10 This implements enough ASN1 serialization to serialize a public key in the form accepted by WebKit now, 11 which is described at https://datatracker.ietf.org/doc/html/rfc8017#appendix-A.2.3 12 13 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: 14 * TestWebKitAPI/Tests/WebCore/ASN1Utilities.cpp: Added. 15 (ASN1::Object::sizeSerializedSize const): 16 (ASN1::Object::serializeSize const): 17 (ASN1::ObjectIdentifier::ObjectIdentifier): 18 (ASN1::ObjectIdentifier::bytes const): 19 (ASN1::Sequence::create): 20 (ASN1::Sequence::Sequence): 21 (ASN1::Sequence::elementEncodedLengthBytes const): 22 (ASN1::IndexWrapper::IndexWrapper): 23 (ASN1::Integer::Integer): 24 (ASN1::BitString::BitString): 25 (TestWebKitAPI::wrapPublicKeyWithRSAPSSOID): 26 * TestWebKitAPI/Tests/WebCore/ASN1Utilities.h: Added. 27 * TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp: 28 (TestWebKitAPI::TEST): 29 * TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm: 30 (TestWebKitAPI::TEST): 31 * TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm: 32 (TestWebKitAPI::TEST): 33 1 34 2021-10-26 Tim Horton <timothy_horton@apple.com> 2 35 -
trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
r284786 r284890 1151 1151 D34E08761E4E42E1005FF14A /* WKWebViewGetContents.mm in Sources */ = {isa = PBXBuildFile; fileRef = D3BE5E341E4CE85E00FD563A /* WKWebViewGetContents.mm */; }; 1152 1152 DF4B273921A47728009BD1CA /* WKNSDictionaryEmptyDictionaryCrash.mm in Sources */ = {isa = PBXBuildFile; fileRef = DF4B273821A47727009BD1CA /* WKNSDictionaryEmptyDictionaryCrash.mm */; }; 1153 DF6580942722168900B3F1C1 /* ASN1Utilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF6580922722168900B3F1C1 /* ASN1Utilities.cpp */; }; 1153 1154 DFB80E38261512C1002D4771 /* TestAwakener.mm in Sources */ = {isa = PBXBuildFile; fileRef = DFB80E362615124E002D4771 /* TestAwakener.mm */; }; 1154 1155 DFB8FF322492F52400F00B0D /* Preconnect.mm in Sources */ = {isa = PBXBuildFile; fileRef = DFB8FF312492F51A00F00B0D /* Preconnect.mm */; }; … … 3012 3013 DC69AA621CF77C6500C6272F /* ScopedLambda.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScopedLambda.cpp; sourceTree = "<group>"; }; 3013 3014 DF4B273821A47727009BD1CA /* WKNSDictionaryEmptyDictionaryCrash.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKNSDictionaryEmptyDictionaryCrash.mm; sourceTree = "<group>"; }; 3015 DF6580922722168900B3F1C1 /* ASN1Utilities.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ASN1Utilities.cpp; sourceTree = "<group>"; }; 3016 DF6580932722168900B3F1C1 /* ASN1Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASN1Utilities.h; sourceTree = "<group>"; }; 3014 3017 DF6BC46F2534E120008F63CC /* TestDownloadDelegate.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = TestDownloadDelegate.mm; path = cocoa/TestDownloadDelegate.mm; sourceTree = "<group>"; }; 3015 3018 DF6BC4702534E120008F63CC /* TestDownloadDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = TestDownloadDelegate.h; path = cocoa/TestDownloadDelegate.h; sourceTree = "<group>"; }; … … 3784 3787 57152B5D21CC2045000C37CA /* ApduTest.cpp */, 3785 3788 6354F4D01F7C3AB500D89DF3 /* ApplicationManifestParser.cpp */, 3789 DF6580922722168900B3F1C1 /* ASN1Utilities.cpp */, 3790 DF6580932722168900B3F1C1 /* ASN1Utilities.h */, 3786 3791 93A720E518F1A0E800A848E1 /* CalculationValue.cpp */, 3787 3792 07C046C91E42573E007201E7 /* CARingBuffer.cpp */, … … 5455 5460 6354F4D11F7C3AB500D89DF3 /* ApplicationManifestParser.cpp in Sources */, 5456 5461 49EF6AD52677C0BE007967DC /* AppPrivacyReport.mm in Sources */, 5462 DF6580942722168900B3F1C1 /* ASN1Utilities.cpp in Sources */, 5457 5463 51B40D9E23AC962400E05241 /* AsyncFunction.mm in Sources */, 5458 5464 834138C7203261CA00F26960 /* AsyncPolicyForNavigationResponse.mm in Sources */, -
trunk/Tools/TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp
r283313 r284890 302 302 TEST(PrivateClickMeasurement, InvalidBlindedSecret) 303 303 { 304 #if HAVE(RSA_PSS_OID) 305 const char serverPublicKeyBase64URL[] = "MIICUjA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAqEaMBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgKiAwIBMAOCAg8AMIICCgKCAgEAoGhU5Mgsbb51ZbJVPHSgf8c93TJdtkxeKfyxQ5fCpwE2Fe9xJ7tByExdGKj4XO-HFi7npmtEPzR4cRXdsAL7YcH5UXNbVhXmVcbFCBXks-Ih-jqLwfNac0wPLG5K1Zzhf1gZ--JBzVjw87zvqpWrzzxviuV__0sn_u7f01E1OdaD83110fhfiXp_Ex62Q2uhcek0hqbqEvyKlLVBOjlJFJc2FLyw-l8-9xd7GcX1ZRyPx4lITvYG7KIbSMrFTfuQNOyJf4DlO97qq08R6Utl249AnBfLe3ZDbWBnl0fDOwkJgBmbaa7EnRlQ3p6Ir2SY1hNTnzW-p2ceytIMYwTMSES7-j21oeTUC-OmcC_5g05AgxROzUJPZdyY33m4Q7lqkHkLAYtdN2TVCP79MuswS-fJJQOD_dDCqq_hk0MySLCbnUGe5lyFBoO5vBMH5k38LjSQuN6jfP7quYA6cOONzmn842eLT61tIjRoX2czeUJrSmx89SfY8WnFE2fhk9G52cXp6L2Vzr5IV7rOws3ZPw-RnjKnZZaejs0bKGOXC1-jl-u4A5ip55ohlUjm7lvDtKFAeJ7gajJBtiNnq3s3m_IMkv7ztCQpv0pBxst6MmvNOO0jOQvYkzQbGooI1_qjeDup0BYY67xxyNRaA9V4CKEJ7j_hznrAmjSiz0LSqTkCAwEAAQ=="; 306 #else 304 307 const char serverPublicKeyBase64URL[] = "MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzb1dThrtYwVh46SjInegKhAqpbJwm1XnTBCvybSK8zk53R0Am1hG33AVF5J1lqYf36wp663GasclHtqzvxFZIvDA1DUSH4aZz_fDHCTTxEeJVPORS3zNN2UjWwbtnwsh4BmDTi-z_cDn0LAz2JuZyKlyFt5GgVLAQvL9H3VLHU9_XHNK-uboyXfcHRTtrDnpu3c6wvX5dd-AJoLmIQTZBEJfVkxBGznk1qKHjc6nASAirKF_wJCnuwAK8C6BAcjNcwUWCeKp0YECzCXU--JXd2OEU-QhxPC67faiDOh3V0vlfqZLtrlbnanUCKrvhw7GaGOGYotIrnZtuNfxC14d_XNVd1FS8nHjRTHnEgw_jnlSssfgStz0uJtcmkfgoJBvOE4mIRpi7iSlRfXNkKsWX1J-gwcnCVo5u0uJEW6X6NyvEGYJ8w5BPfwsQuK9y-4Z7ikt9IOucEHY7ThDmi9TNNhHBVj0Gu4wGoSjq3a6vL5N10ZSHXoq1XgfGPrmHhhL90cjvWonoyOXsUqlXEzTjD2W9897Q-Mx9BUNrGQPqmIx8F5MwxWcOrye8WRp4Q88n2YSUnV7C8ayld3v1Fh7N5jeSqeVmtDVRYTn2sVfNqgXrzgdigJcQR8vFENu6nzFPwsrXPMaCiLUnZNUmQ1ZSLQeQyhYXxHqRJrnuCDWXLkCAwEAAQ"; 308 #endif 305 309 306 310 WebCore::PrivateClickMeasurement pcm( -
trunk/Tools/TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm
r283313 r284890 29 29 #if HAVE(RSA_BSSA) 30 30 31 #include "ASN1Utilities.h" 31 32 #include "CoreCryptoSPI.h" 32 33 33 #include <WebCore/PrivateClickMeasurement.h> 34 34 #include <wtf/spi/cocoa/SecuritySPI.h> 35 35 36 namespace TestWebKitAPI { 36 37 using namespace WebCore; 37 38 namespace TestWebKitAPI {39 38 40 39 TEST(PrivateClickMeasurement, ValidBlindedSecret) … … 71 70 72 71 size_t exportSize = ccder_encode_rsa_pub_size(rsaPublicKey); 73 auto publicKey = adoptNS([[NSMutableData alloc] initWithLength:exportSize]);74 ccder_encode_rsa_pub(rsaPublicKey, static_cast<uint8_t*>([publicKey mutableBytes]), static_cast<uint8_t*>([publicKey mutableBytes]) + [publicKey length]);72 Vector<uint8_t> rawKeyBytes(exportSize); 73 ccder_encode_rsa_pub(rsaPublicKey, rawKeyBytes.data(), rawKeyBytes.data() + exportSize); 75 74 76 auto secKey = adoptCF(SecKeyCreateWithData((__bridge CFDataRef)publicKey.get(), (__bridge CFDictionaryRef)@{ 77 (__bridge id)kSecAttrKeyType: (__bridge id)kSecAttrKeyTypeRSA, 78 (__bridge id)kSecAttrKeyClass: (__bridge id)kSecAttrKeyClassPublic 79 }, nil)); 80 EXPECT_NOT_NULL(secKey); 81 82 auto spkiData = adoptCF(SecKeyCopySubjectPublicKeyInfo(secKey.get())); 83 auto *nsSpkiData = (__bridge NSData *)spkiData.get(); 75 auto wrappedKeyBytes = wrapPublicKeyWithRSAPSSOID(WTFMove(rawKeyBytes)); 84 76 85 77 // Continue the test. 86 auto errorMessage = pcm.calculateAndUpdateSourceUnlinkableToken(base64URLEncodeToString( nsSpkiData.bytes, nsSpkiData.length));78 auto errorMessage = pcm.calculateAndUpdateSourceUnlinkableToken(base64URLEncodeToString(wrappedKeyBytes.data(), wrappedKeyBytes.size())); 87 79 EXPECT_FALSE(errorMessage); 80 88 81 auto sourceUnlinkableToken = pcm.tokenSignatureJSON(); 89 82 EXPECT_EQ(sourceUnlinkableToken->asObject()->size(), 4ul); -
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm
r284474 r284890 26 26 #import "config.h" 27 27 28 #import "ASN1Utilities.h" 28 29 #import "DaemonTestUtilities.h" 29 30 #import "HTTPServer.h" … … 217 218 (__bridge id)kSecAttrKeyClass: (__bridge id)kSecAttrKeyClassPublic 218 219 }, nil)); 219 220 auto spkiData = adoptCF(SecKeyCopySubjectPublicKeyInfo(secKey.get())); 221 auto *nsSpkiData = (__bridge NSData *)spkiData.get(); 222 223 auto keyData = base64URLEncodeToString(nsSpkiData.bytes, nsSpkiData.length); 220 Vector<uint8_t> rawKeyBytes(static_cast<const uint8_t*>(publicKey.get().bytes), publicKey.get().length); 221 auto wrappedKeyBytes = wrapPublicKeyWithRSAPSSOID(WTFMove(rawKeyBytes)); 222 223 auto keyData = base64URLEncodeToString(wrappedKeyBytes.data(), wrappedKeyBytes.size()); 224 224 225 225 // The server.
Note:
See TracChangeset
for help on using the changeset viewer.