diff --git a/libwvdrmengine/cdm/core/test/device_files_unittest.cpp b/libwvdrmengine/cdm/core/test/device_files_unittest.cpp index 5b071c06..ea1819b3 100644 --- a/libwvdrmengine/cdm/core/test/device_files_unittest.cpp +++ b/libwvdrmengine/cdm/core/test/device_files_unittest.cpp @@ -131,109 +131,103 @@ struct LicenseInfo { std::string file_data; }; -size_t kNumberOfLicenses = 3; - // Sample license data and related data for storage and use for offline // playback. The license data and URLs in this test are not real. Test // storage and retrieval of license-related data. -LicenseInfo license_test_data[] = { +const LicenseInfo kLicenseTestData[] = { // license 0 {"ksid54C57C966E23CEF5", DeviceFiles::kLicenseStateActive, a2bs_hex("0801121030313233343536373839414243444546"), - a2bs_hex( - "080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B" - "C4D07A7D507618A5D3A68F05228E023082010A0282010100A947904B8DBD" - "55FB685FDB3025574517CCCC74EE4FEAF6629D5179A52FF85CE7409528EF" - "FA0E5DFC3DE9A34BA5F08BE349553C319A9FB274905A8770ADC9CA4A2CBC" - "D8E556A1587FA18BFD4D286C644A6904F19EAAFBDFADD3B371B306D0B289" - "F459B491C814B5AD1F747610E990A60248A7DA5152F1CCFC047EF4230013" - "1F9C4758F4D9F30579393B860AAD9AD2EE43D721D6DB9F5800EF188386B9" - "4825AE05A883AC976D6970DF43EA6C83B86CE6D0F540207725B9890FCCEC" - "83A49027872DAFD2740B7748E9C3B1752D6F12859CED07E8882969B433EC" - "66F17FFC29AC6FDBEA79230B0FAED5D94CF6B829A420BBE3270323941776" - "EE60DD6BFD660BDDCA870203010001288001300112800250D1F8B1ECF849" - "B60FF93E37C4DEEF09E6FFB10BCFC996A4A24B7AA96928835ED5A72E1584" - "6D0A14015733239BD8B6E6D5E5D229B08394CE1E0692C159C44337CA7CAF" - "88476449B068D9D2FADED8EB1BC0F4B8F0FCAF293E8690E7403209534180" - "3408A0E8279E545945EE97838FDE7812F7171C3CC4F5ECF9418BBF1D336C" - "E58F4CBB1B44D4ADE6BF3364BAE7EC093281846E569E13E7719014030A60" - "59044FE7BBFF3E8F5723AEDD54DC6E0D041B309D7700B55575690E95CE60" - "85D0914F991C5F45E98CBB9C45BA33F47FD0862EBCC7EEBA8E60643C86E8" - "5476B18AEF8DE871571A75681A75F75028A5B58751C09A5296AAE99CEDCD" - "9785E9E2103240D40A1AB6050AB002080112102CE5CCF42200D6B5BCCF33" - "D7CC2D9C7018EAD1B88D05228E023082010A0282010100BE1B661EEC4700" - "DF4B0C83292D02AE029B8A224DD3048125049F74E30E1257FC2BE8D9CFAF" - "0BFFCACAF7305351771C78FA451F13AF5EEBFB360941A4396A805833730D" - "C6E534C62408B7C5076FC22568021C59ED34F98487196DA32078DAFCA37C" - "7CFB8E79612FA384963DF2167D5E87305D7BC92D621C10160672C27B9A69" - "1B1534F60D78C5893E40C5FF8A3F9DF8898612E9A5CCB56F4A0CC2A61A7A" - "EB04A9DCC015D9BC37DEF2AB9EAA9AAFD838869081D9249755F129BB0DBE" - "CA3B894975A65A36FD005CE77CD407E925D3172E33122A11D327968A08F8" - "E771FAEB2540EB52D17C4906405F47C31F60F0AF6C78AF53291B236E692B" - "506A2AF92AF43E3A81020301000128800130011280033A08A60418E5C81B" - "8D71A5C0A28C26999FF4FA992E14107CA8A9E6A2B36259834000FE35DCD8" - "14426F9C5D332418ED94C9C0C992217B1B6DC01C99085A3C3956C8267B87" - "73BABCF3F2C841C67D830F9DBC780DD68BF4E2FE424C6A54123BE4B2A1F7" - "E1F4DB58AB1164DAE9CF75C3392284A44B8CDB85D837E86C6B908243987E" - "552C8693878C9A1B7BEA3759783036F1595C406D6CBBA7F8642A9B3B244D" - "AA1F00531D0B908ADE4B533FD9FAFA21D0FB0C033D2AD5DDF24C60F4FAC3" - "0820758877F2E1A78EB44E9336DCFAFDF572BB22A84A5DEFDF2EB87B61DE" - "26EE9C4CEAA646A2AFDB2BB953845E6D7FE6F79A9501D1C379C96961316B" - "5D2A66F38C222091AF74141B6CAF93507485A5D8F82808025451824F00C8" - "B6A0CD5803F6564584138C8B18BC679B442D837307B5CC90B1FD1FD32288" - "B4A5D18D2D80E5E6A7A9EFD255B8B363038BCC67AF534EAEE4A5903E304E" - "ED4990BB5BE735DB027A6DE35329D321EC051B956C55A5B11674017517FC" - "C3C7FF7397C13A7B7087A1F6AEC7F6761A130A0C636F6D70616E795F6E61" - "6D6512034C47451A150A0A6D6F64656C5F6E616D6512074E657875732034" - "1A200A116172636869746563747572655F6E616D65120B61726D65616269" - "2D7637611A130A0B6465766963655F6E616D6512046D616B6F1A150A0C70" - "726F647563745F6E616D6512056F6363616D1A440A0A6275696C645F696E" - "666F1236676F6F676C652F6F6363616D2F6D616B6F3A342E332F4A425F4D" - "52322F3731343239313A7573657264656275672F6465762D6B6579731A21" - "0A096465766963655F696412144C474D4332303132313030353030363339" - "32373812250A230A14080112103031323334353637383941424344454610" - "021A09393837363534333231180120002A0C333934303739343733370000" - "30151A8002734FBDED946EB74A1B61811C4C4A491214F6BEA125A80F0141" - "65B28AA97AD0AF60E4D129EB7F424AD659F24E5EED4B702BEE328E38B72C" - "A6F38CD0ECFD2E6D7B98147744C9B8A9610B3BDFE17675FF7D584C5BF680" - "64B0FE513FC322C9148795E4C2F2443C3024F5C1F29E6FEFB6D77005DAB2" - "2CD2B63131908DE4D88795BB931CEA38452CC568BE25032245E372F07A12" - "97F51748C7EA02F2C88360AFE7ABBC71DCDD5366126258E5AFA27C2A20B3" - "39FA1E7AE925B494B361F6F7116F20BE8EE6E446146027F4FD4300F4A0B0" - "A3361EE34925F338D0AACF20AE919B4BAE81C1D57A8D2B8FA38732A57697" - "C316C180717C182A971C94E4AC4C7DF8F161CB8CC1"), - a2bs_hex( - "080212CC020A190A0939383736353433323112084B9F26DAB8B06E112002" - "2800124108011801301E4239687474703A2F2F6B69723033666370673137" - "342E7769646576696E652E6E65742F7769646576696E652F6367692D6269" - "6E2F64726D2E6367691A6612102531DFD6CCEA511D00F8C0172F1189AA1A" - "5057FF9D9DBD5A205B1DEB075E4A90467C1E074CDE6071BFF831AD590BD5" - "D117614F33CE2C3CE1824FC0D54B36ECEAE58DF5C8F9347C2FEED17A3327" - "E8F52B8ECA6313A1FA6A042EB9525DD328113C05F920011A7E0A10303132" - "3334353637383941424344454612106D23622142B58F6D1EDD33AF3ECD2C" - "7E1A20884EE13BEA9DECDDBF68B532131C82B11CEC4D23C7FA9F3EF4C5EE" - "172E7C9736200242340A2050BFE71BB1BA683E35E0B49BB33048E5103FBB" - "B9C3E1CD6EBCDA7DD485DBAF431210D69D6F14C95CB6CFDB998E50D00F4D" - "A020DBDFA68F051A20AE5D6895E70F86F42F5FE3C58A505A865D05AB94B1" - "ABAA6CC59C3322F61C458D228002331F2BE95B5C796E0921CC27A7295501" - "DA10044E5CA36C0E2866FF068EA3515A6786BD5D60D74D80C6BA8BE6AAD0" - "85AF967909A143171E9CDDE36EA528402867CD04FB6F97A150CDE55F9B81" - "9F4104BEF48E4280D76645569E10AEF524D34D865B5B9E3EBC66C45EEBBE" - "16AB04493E7AEC4F99E7A99F3FC08FA431BECCC1978A079FA4801DB75E13" - "29A9921604E6F80CB148AA2DD5C8348057E9F4FC2AEA57EA4D215D0A8D48" - "6294860DFB4F4C42D57D9542B76179E179DD4AA23F9F7B2AE432B39E4CE8" - "F156E84877DDA781AAAAFC797FF75AFE2019ADC3A2E419BF0253C705BD47" - "97A96866AC4C059AD8F2E9C6B617C60C6ADCDB894C25F0C7D29252F52FD5"), - a2bs_hex( - "08011231121D1A1B0A190A0939383736353433323112084B9F26DAB8B06E" - "112002280018022A0C31353532333030360000000030151A20C30375683C" - "4D2033E05DCC95DDFB278CFB5125A021C3C043A16ACC933A768A27"), - a2bs_hex( - "0802123B0A190A0939383736353433323112084B9F26DAB8B06E11200228" - "0112001A16200342120A106B63746C0000000000ECDCBE0000000020DBDF" - "A68F051A20182F029E35047A3841FA176C74E5B387350E8D58DEA6878FF0" - "BEA6CABACA1C2C"), + a2bs_hex("080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B" + "C4D07A7D507618A5D3A68F05228E023082010A0282010100A947904B8DBD" + "55FB685FDB3025574517CCCC74EE4FEAF6629D5179A52FF85CE7409528EF" + "FA0E5DFC3DE9A34BA5F08BE349553C319A9FB274905A8770ADC9CA4A2CBC" + "D8E556A1587FA18BFD4D286C644A6904F19EAAFBDFADD3B371B306D0B289" + "F459B491C814B5AD1F747610E990A60248A7DA5152F1CCFC047EF4230013" + "1F9C4758F4D9F30579393B860AAD9AD2EE43D721D6DB9F5800EF188386B9" + "4825AE05A883AC976D6970DF43EA6C83B86CE6D0F540207725B9890FCCEC" + "83A49027872DAFD2740B7748E9C3B1752D6F12859CED07E8882969B433EC" + "66F17FFC29AC6FDBEA79230B0FAED5D94CF6B829A420BBE3270323941776" + "EE60DD6BFD660BDDCA870203010001288001300112800250D1F8B1ECF849" + "B60FF93E37C4DEEF09E6FFB10BCFC996A4A24B7AA96928835ED5A72E1584" + "6D0A14015733239BD8B6E6D5E5D229B08394CE1E0692C159C44337CA7CAF" + "88476449B068D9D2FADED8EB1BC0F4B8F0FCAF293E8690E7403209534180" + "3408A0E8279E545945EE97838FDE7812F7171C3CC4F5ECF9418BBF1D336C" + "E58F4CBB1B44D4ADE6BF3364BAE7EC093281846E569E13E7719014030A60" + "59044FE7BBFF3E8F5723AEDD54DC6E0D041B309D7700B55575690E95CE60" + "85D0914F991C5F45E98CBB9C45BA33F47FD0862EBCC7EEBA8E60643C86E8" + "5476B18AEF8DE871571A75681A75F75028A5B58751C09A5296AAE99CEDCD" + "9785E9E2103240D40A1AB6050AB002080112102CE5CCF42200D6B5BCCF33" + "D7CC2D9C7018EAD1B88D05228E023082010A0282010100BE1B661EEC4700" + "DF4B0C83292D02AE029B8A224DD3048125049F74E30E1257FC2BE8D9CFAF" + "0BFFCACAF7305351771C78FA451F13AF5EEBFB360941A4396A805833730D" + "C6E534C62408B7C5076FC22568021C59ED34F98487196DA32078DAFCA37C" + "7CFB8E79612FA384963DF2167D5E87305D7BC92D621C10160672C27B9A69" + "1B1534F60D78C5893E40C5FF8A3F9DF8898612E9A5CCB56F4A0CC2A61A7A" + "EB04A9DCC015D9BC37DEF2AB9EAA9AAFD838869081D9249755F129BB0DBE" + "CA3B894975A65A36FD005CE77CD407E925D3172E33122A11D327968A08F8" + "E771FAEB2540EB52D17C4906405F47C31F60F0AF6C78AF53291B236E692B" + "506A2AF92AF43E3A81020301000128800130011280033A08A60418E5C81B" + "8D71A5C0A28C26999FF4FA992E14107CA8A9E6A2B36259834000FE35DCD8" + "14426F9C5D332418ED94C9C0C992217B1B6DC01C99085A3C3956C8267B87" + "73BABCF3F2C841C67D830F9DBC780DD68BF4E2FE424C6A54123BE4B2A1F7" + "E1F4DB58AB1164DAE9CF75C3392284A44B8CDB85D837E86C6B908243987E" + "552C8693878C9A1B7BEA3759783036F1595C406D6CBBA7F8642A9B3B244D" + "AA1F00531D0B908ADE4B533FD9FAFA21D0FB0C033D2AD5DDF24C60F4FAC3" + "0820758877F2E1A78EB44E9336DCFAFDF572BB22A84A5DEFDF2EB87B61DE" + "26EE9C4CEAA646A2AFDB2BB953845E6D7FE6F79A9501D1C379C96961316B" + "5D2A66F38C222091AF74141B6CAF93507485A5D8F82808025451824F00C8" + "B6A0CD5803F6564584138C8B18BC679B442D837307B5CC90B1FD1FD32288" + "B4A5D18D2D80E5E6A7A9EFD255B8B363038BCC67AF534EAEE4A5903E304E" + "ED4990BB5BE735DB027A6DE35329D321EC051B956C55A5B11674017517FC" + "C3C7FF7397C13A7B7087A1F6AEC7F6761A130A0C636F6D70616E795F6E61" + "6D6512034C47451A150A0A6D6F64656C5F6E616D6512074E657875732034" + "1A200A116172636869746563747572655F6E616D65120B61726D65616269" + "2D7637611A130A0B6465766963655F6E616D6512046D616B6F1A150A0C70" + "726F647563745F6E616D6512056F6363616D1A440A0A6275696C645F696E" + "666F1236676F6F676C652F6F6363616D2F6D616B6F3A342E332F4A425F4D" + "52322F3731343239313A7573657264656275672F6465762D6B6579731A21" + "0A096465766963655F696412144C474D4332303132313030353030363339" + "32373812250A230A14080112103031323334353637383941424344454610" + "021A09393837363534333231180120002A0C333934303739343733370000" + "30151A8002734FBDED946EB74A1B61811C4C4A491214F6BEA125A80F0141" + "65B28AA97AD0AF60E4D129EB7F424AD659F24E5EED4B702BEE328E38B72C" + "A6F38CD0ECFD2E6D7B98147744C9B8A9610B3BDFE17675FF7D584C5BF680" + "64B0FE513FC322C9148795E4C2F2443C3024F5C1F29E6FEFB6D77005DAB2" + "2CD2B63131908DE4D88795BB931CEA38452CC568BE25032245E372F07A12" + "97F51748C7EA02F2C88360AFE7ABBC71DCDD5366126258E5AFA27C2A20B3" + "39FA1E7AE925B494B361F6F7116F20BE8EE6E446146027F4FD4300F4A0B0" + "A3361EE34925F338D0AACF20AE919B4BAE81C1D57A8D2B8FA38732A57697" + "C316C180717C182A971C94E4AC4C7DF8F161CB8CC1"), + a2bs_hex("080212CC020A190A0939383736353433323112084B9F26DAB8B06E112002" + "2800124108011801301E4239687474703A2F2F6B69723033666370673137" + "342E7769646576696E652E6E65742F7769646576696E652F6367692D6269" + "6E2F64726D2E6367691A6612102531DFD6CCEA511D00F8C0172F1189AA1A" + "5057FF9D9DBD5A205B1DEB075E4A90467C1E074CDE6071BFF831AD590BD5" + "D117614F33CE2C3CE1824FC0D54B36ECEAE58DF5C8F9347C2FEED17A3327" + "E8F52B8ECA6313A1FA6A042EB9525DD328113C05F920011A7E0A10303132" + "3334353637383941424344454612106D23622142B58F6D1EDD33AF3ECD2C" + "7E1A20884EE13BEA9DECDDBF68B532131C82B11CEC4D23C7FA9F3EF4C5EE" + "172E7C9736200242340A2050BFE71BB1BA683E35E0B49BB33048E5103FBB" + "B9C3E1CD6EBCDA7DD485DBAF431210D69D6F14C95CB6CFDB998E50D00F4D" + "A020DBDFA68F051A20AE5D6895E70F86F42F5FE3C58A505A865D05AB94B1" + "ABAA6CC59C3322F61C458D228002331F2BE95B5C796E0921CC27A7295501" + "DA10044E5CA36C0E2866FF068EA3515A6786BD5D60D74D80C6BA8BE6AAD0" + "85AF967909A143171E9CDDE36EA528402867CD04FB6F97A150CDE55F9B81" + "9F4104BEF48E4280D76645569E10AEF524D34D865B5B9E3EBC66C45EEBBE" + "16AB04493E7AEC4F99E7A99F3FC08FA431BECCC1978A079FA4801DB75E13" + "29A9921604E6F80CB148AA2DD5C8348057E9F4FC2AEA57EA4D215D0A8D48" + "6294860DFB4F4C42D57D9542B76179E179DD4AA23F9F7B2AE432B39E4CE8" + "F156E84877DDA781AAAAFC797FF75AFE2019ADC3A2E419BF0253C705BD47" + "97A96866AC4C059AD8F2E9C6B617C60C6ADCDB894C25F0C7D29252F52FD5"), + a2bs_hex("08011231121D1A1B0A190A0939383736353433323112084B9F26DAB8B06E" + "112002280018022A0C31353532333030360000000030151A20C30375683C" + "4D2033E05DCC95DDFB278CFB5125A021C3C043A16ACC933A768A27"), + a2bs_hex("0802123B0A190A0939383736353433323112084B9F26DAB8B06E11200228" + "0112001A16200342120A106B63746C0000000000ECDCBE0000000020DBDF" + "A68F051A20182F029E35047A3841FA176C74E5B387350E8D58DEA6878FF0" + "BEA6CABACA1C2C"), "https://test.google.com/license/GetCencLicense", 0x0, 0x0, 0x0, "", "", 0, a2bs_hex( "0AAE150802100122A7150801121408011210303132333435363738394142434445461" @@ -316,105 +310,100 @@ LicenseInfo license_test_data[] = { "A176C74E5B387350E8D58DEA6878FF0BEA6CABACA1C2C3A2E68747470733A2F2F7465" "73742E676F6F676C652E636F6D2F6C6963656E73652F47657443656E634C6963656E7" "365400048005800620068001220785CE1756656A049E77F28C8449AB2DD115B6C43B2" - "FF232D23F98B72F1DCE96A" - )}, + "FF232D23F98B72F1DCE96A")}, // license 1 {"ksidC8EAA2579A282EB0", DeviceFiles::kLicenseStateReleasing, a2bs_hex("0801121030313233343536373839414243444546"), - a2bs_hex( - "080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B" - "C4D07A7D507618A5D3A68F05228E023082010A0282010100A947904B8DBD" - "55FB685FDB3025574517CCCC74EE4FEAF6629D5179A52FF85CE7409528EF" - "FA0E5DFC3DE9A34BA5F08BE349553C319A9FB274905A8770ADC9CA4A2CBC" - "D8E556A1587FA18BFD4D286C644A6904F19EAAFBDFADD3B371B306D0B289" - "F459B491C814B5AD1F747610E990A60248A7DA5152F1CCFC047EF4230013" - "1F9C4758F4D9F30579393B860AAD9AD2EE43D721D6DB9F5800EF188386B9" - "4825AE05A883AC976D6970DF43EA6C83B86CE6D0F540207725B9890FCCEC" - "83A49027872DAFD2740B7748E9C3B1752D6F12859CED07E8882969B433EC" - "66F17FFC29AC6FDBEA79230B0FAED5D94CF6B829A420BBE3270323941776" - "EE60DD6BFD660BDDCA870203010001288001300112800250D1F8B1ECF849" - "B60FF93E37C4DEEF09E6FFB10BCFC996A4A24B7AA96928835ED5A72E1584" - "6D0A14015733239BD8B6E6D5E5D229B08394CE1E0692C159C44337CA7CAF" - "88476449B068D9D2FADED8EB1BC0F4B8F0FCAF293E8690E7403209534180" - "3408A0E8279E545945EE97838FDE7812F7171C3CC4F5ECF9418BBF1D336C" - "E58F4CBB1B44D4ADE6BF3364BAE7EC093281846E569E13E7719014030A60" - "59044FE7BBFF3E8F5723AEDD54DC6E0D041B309D7700B55575690E95CE60" - "85D0914F991C5F45E98CBB9C45BA33F47FD0862EBCC7EEBA8E60643C86E8" - "5476B18AEF8DE871571A75681A75F75028A5B58751C09A5296AAE99CEDCD" - "9785E9E2103240D40A1AB6050AB002080112102CE5CCF42200D6B5BCCF33" - "D7CC2D9C7018EAD1B88D05228E023082010A0282010100BE1B661EEC4700" - "DF4B0C83292D02AE029B8A224DD3048125049F74E30E1257FC2BE8D9CFAF" - "0BFFCACAF7305351771C78FA451F13AF5EEBFB360941A4396A805833730D" - "C6E534C62408B7C5076FC22568021C59ED34F98487196DA32078DAFCA37C" - "7CFB8E79612FA384963DF2167D5E87305D7BC92D621C10160672C27B9A69" - "1B1534F60D78C5893E40C5FF8A3F9DF8898612E9A5CCB56F4A0CC2A61A7A" - "EB04A9DCC015D9BC37DEF2AB9EAA9AAFD838869081D9249755F129BB0DBE" - "CA3B894975A65A36FD005CE77CD407E925D3172E33122A11D327968A08F8" - "E771FAEB2540EB52D17C4906405F47C31F60F0AF6C78AF53291B236E692B" - "506A2AF92AF43E3A81020301000128800130011280033A08A60418E5C81B" - "8D71A5C0A28C26999FF4FA992E14107CA8A9E6A2B36259834000FE35DCD8" - "14426F9C5D332418ED94C9C0C992217B1B6DC01C99085A3C3956C8267B87" - "73BABCF3F2C841C67D830F9DBC780DD68BF4E2FE424C6A54123BE4B2A1F7" - "E1F4DB58AB1164DAE9CF75C3392284A44B8CDB85D837E86C6B908243987E" - "552C8693878C9A1B7BEA3759783036F1595C406D6CBBA7F8642A9B3B244D" - "AA1F00531D0B908ADE4B533FD9FAFA21D0FB0C033D2AD5DDF24C60F4FAC3" - "0820758877F2E1A78EB44E9336DCFAFDF572BB22A84A5DEFDF2EB87B61DE" - "26EE9C4CEAA646A2AFDB2BB953845E6D7FE6F79A9501D1C379C96961316B" - "5D2A66F38C222091AF74141B6CAF93507485A5D8F82808025451824F00C8" - "B6A0CD5803F6564584138C8B18BC679B442D837307B5CC90B1FD1FD32288" - "B4A5D18D2D80E5E6A7A9EFD255B8B363038BCC67AF534EAEE4A5903E304E" - "ED4990BB5BE735DB027A6DE35329D321EC051B956C55A5B11674017517FC" - "C3C7FF7397C13A7B7087A1F6AEC7F6761A130A0C636F6D70616E795F6E61" - "6D6512034C47451A150A0A6D6F64656C5F6E616D6512074E657875732034" - "1A200A116172636869746563747572655F6E616D65120B61726D65616269" - "2D7637611A130A0B6465766963655F6E616D6512046D616B6F1A150A0C70" - "726F647563745F6E616D6512056F6363616D1A440A0A6275696C645F696E" - "666F1236676F6F676C652F6F6363616D2F6D616B6F3A342E332F4A425F4D" - "52322F3731343239313A7573657264656275672F6465762D6B6579731A21" - "0A096465766963655F696412144C474D4332303132313030353030363339" - "32373812250A230A14080112103031323334353637383941424344454610" - "021A09393837363534333231180120002A0C383837303136333500000000" - "30151A80023F7318E29C5A50C8ADAA4B09ADCD97B75588B17002C5C2BC9A" - "FA35C53098AF22DF5CC300407CD2E84EBE01911C785513649E2CCF4E4290" - "20D3B93F3A54748C11ECFF4D62F562A4D3E96812F663D4F761C00C3E88AB" - "D8A1DC10E017A44DD3E040775FED5F07649090D1142C9D21373CD604219E" - "24935E10F287F20B0E080FDF76B6096B24F82A3E37850DE229DE33EBCE7A" - "0FA53F652C33007EA7027F95A44C36D04CBD676EB5C0BF69508F45E0C322" - "0D1706B0B851B3FCAF7AC2370EAD80C5D1620887633A42024862FCEA9F95" - "A719AAB989C1923C6452ECB0B75AF1CAFBFB06C5EC31BBF0EE4D16ACCC9A" - "F05B77D61C4855491B3D4AC150F3BCB7AE536AF333"), - a2bs_hex( - "080212CC020A190A093938373635343332311208F97F2B3856CBB3DD2002" - "2800124108011801301E4239687474703A2F2F6B69723033666370673137" - "342E7769646576696E652E6E65742F7769646576696E652F6367692D6269" - "6E2F64726D2E6367691A661210C5C43FE0178AEE7B85042F749D5A40251A" - "5013A1501E0F90A64E103336944A37BAAAEAC17E46E880DF6EA23A7A890D" - "A082CBBF82710B8C3982E8AB25A208A89EEFB5250D4B2CCC2F362856E05D" - "1941E387801A19886B1F3AAE60D06EDA400087B06920011A7E0A10303132" - "333435363738394142434445461210A34D2B04D596DFE1DC29CFDF116E39" - "211A2031AD1B369D225842A14B5D5F8366F5FF8EB94AA7CD13EB45BA7291" - "68E19D5F5F200242340A20A0D6D65CC677C12B86A7A99F89F446BCFDA185" - "44B15B2FEF8349ED5C247F7BE91210ED8D58320B0F4F948F960C7D49872C" - "DE2083E5A68F051A207481A2B82C83DF3090D57EDC042711A42CF4F87E79" - "CE136DAFE25F48F4A9068322800256113CA771F4250CAD2928161D07B525" - "61019003DBFBD362F20587D51BD999D57D2B035BC115C54C8B4BC37661A6" - "6A101DE5B42D82E582309AFD8E211C947A2D33CAFB58F89EEE2DA9524614" - "0311134429D8A5D15E03A169B0EB2579DA3BD6E4322D6C46EE964F6931CF" - "9DA52FB59B1D3B9BCC5959211CC23D97690FA8E869ADF68BCDA8A1211DDB" - "EBF967617AF0BFDA73E0AE79D8A7CCED208602EDC72CEF44A02901A52EEB" - "87CF9841D186BC95A65956BAD48F3C9E43F027CC03B73DFF5CAFC0B64727" - "E2D7B3A9CF25F97C475207C8A9DF091A585288A71AE64B7B2089871F7272" - "381CCBEF55EBF3DCB21B134FE48BFD5299DCCA6B01B55EEA61F9F990D0AF"), - a2bs_hex( - "08011231121D1A1B0A190A093938373635343332311208F97F2B3856CBB3" - "DD2002280018022A0C33333932383235393733000030151A209ADE9B0A41" - "1583962BDA31BE5BE937E589BB3DCC06F6F4C48FBE4FAE86DC9ABA"), - a2bs_hex( - "0802123B0A190A093938373635343332311208F97F2B3856CBB3DD200228" - "0112001A16200342120A106B63746C00000000CA3A6A75000000002083E5" - "A68F051A20BDA6A56F7CBFD0942198F87C23A34AA5CBD64AFEB134277774" - "CCF8E789D815DD"), + a2bs_hex("080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B" + "C4D07A7D507618A5D3A68F05228E023082010A0282010100A947904B8DBD" + "55FB685FDB3025574517CCCC74EE4FEAF6629D5179A52FF85CE7409528EF" + "FA0E5DFC3DE9A34BA5F08BE349553C319A9FB274905A8770ADC9CA4A2CBC" + "D8E556A1587FA18BFD4D286C644A6904F19EAAFBDFADD3B371B306D0B289" + "F459B491C814B5AD1F747610E990A60248A7DA5152F1CCFC047EF4230013" + "1F9C4758F4D9F30579393B860AAD9AD2EE43D721D6DB9F5800EF188386B9" + "4825AE05A883AC976D6970DF43EA6C83B86CE6D0F540207725B9890FCCEC" + "83A49027872DAFD2740B7748E9C3B1752D6F12859CED07E8882969B433EC" + "66F17FFC29AC6FDBEA79230B0FAED5D94CF6B829A420BBE3270323941776" + "EE60DD6BFD660BDDCA870203010001288001300112800250D1F8B1ECF849" + "B60FF93E37C4DEEF09E6FFB10BCFC996A4A24B7AA96928835ED5A72E1584" + "6D0A14015733239BD8B6E6D5E5D229B08394CE1E0692C159C44337CA7CAF" + "88476449B068D9D2FADED8EB1BC0F4B8F0FCAF293E8690E7403209534180" + "3408A0E8279E545945EE97838FDE7812F7171C3CC4F5ECF9418BBF1D336C" + "E58F4CBB1B44D4ADE6BF3364BAE7EC093281846E569E13E7719014030A60" + "59044FE7BBFF3E8F5723AEDD54DC6E0D041B309D7700B55575690E95CE60" + "85D0914F991C5F45E98CBB9C45BA33F47FD0862EBCC7EEBA8E60643C86E8" + "5476B18AEF8DE871571A75681A75F75028A5B58751C09A5296AAE99CEDCD" + "9785E9E2103240D40A1AB6050AB002080112102CE5CCF42200D6B5BCCF33" + "D7CC2D9C7018EAD1B88D05228E023082010A0282010100BE1B661EEC4700" + "DF4B0C83292D02AE029B8A224DD3048125049F74E30E1257FC2BE8D9CFAF" + "0BFFCACAF7305351771C78FA451F13AF5EEBFB360941A4396A805833730D" + "C6E534C62408B7C5076FC22568021C59ED34F98487196DA32078DAFCA37C" + "7CFB8E79612FA384963DF2167D5E87305D7BC92D621C10160672C27B9A69" + "1B1534F60D78C5893E40C5FF8A3F9DF8898612E9A5CCB56F4A0CC2A61A7A" + "EB04A9DCC015D9BC37DEF2AB9EAA9AAFD838869081D9249755F129BB0DBE" + "CA3B894975A65A36FD005CE77CD407E925D3172E33122A11D327968A08F8" + "E771FAEB2540EB52D17C4906405F47C31F60F0AF6C78AF53291B236E692B" + "506A2AF92AF43E3A81020301000128800130011280033A08A60418E5C81B" + "8D71A5C0A28C26999FF4FA992E14107CA8A9E6A2B36259834000FE35DCD8" + "14426F9C5D332418ED94C9C0C992217B1B6DC01C99085A3C3956C8267B87" + "73BABCF3F2C841C67D830F9DBC780DD68BF4E2FE424C6A54123BE4B2A1F7" + "E1F4DB58AB1164DAE9CF75C3392284A44B8CDB85D837E86C6B908243987E" + "552C8693878C9A1B7BEA3759783036F1595C406D6CBBA7F8642A9B3B244D" + "AA1F00531D0B908ADE4B533FD9FAFA21D0FB0C033D2AD5DDF24C60F4FAC3" + "0820758877F2E1A78EB44E9336DCFAFDF572BB22A84A5DEFDF2EB87B61DE" + "26EE9C4CEAA646A2AFDB2BB953845E6D7FE6F79A9501D1C379C96961316B" + "5D2A66F38C222091AF74141B6CAF93507485A5D8F82808025451824F00C8" + "B6A0CD5803F6564584138C8B18BC679B442D837307B5CC90B1FD1FD32288" + "B4A5D18D2D80E5E6A7A9EFD255B8B363038BCC67AF534EAEE4A5903E304E" + "ED4990BB5BE735DB027A6DE35329D321EC051B956C55A5B11674017517FC" + "C3C7FF7397C13A7B7087A1F6AEC7F6761A130A0C636F6D70616E795F6E61" + "6D6512034C47451A150A0A6D6F64656C5F6E616D6512074E657875732034" + "1A200A116172636869746563747572655F6E616D65120B61726D65616269" + "2D7637611A130A0B6465766963655F6E616D6512046D616B6F1A150A0C70" + "726F647563745F6E616D6512056F6363616D1A440A0A6275696C645F696E" + "666F1236676F6F676C652F6F6363616D2F6D616B6F3A342E332F4A425F4D" + "52322F3731343239313A7573657264656275672F6465762D6B6579731A21" + "0A096465766963655F696412144C474D4332303132313030353030363339" + "32373812250A230A14080112103031323334353637383941424344454610" + "021A09393837363534333231180120002A0C383837303136333500000000" + "30151A80023F7318E29C5A50C8ADAA4B09ADCD97B75588B17002C5C2BC9A" + "FA35C53098AF22DF5CC300407CD2E84EBE01911C785513649E2CCF4E4290" + "20D3B93F3A54748C11ECFF4D62F562A4D3E96812F663D4F761C00C3E88AB" + "D8A1DC10E017A44DD3E040775FED5F07649090D1142C9D21373CD604219E" + "24935E10F287F20B0E080FDF76B6096B24F82A3E37850DE229DE33EBCE7A" + "0FA53F652C33007EA7027F95A44C36D04CBD676EB5C0BF69508F45E0C322" + "0D1706B0B851B3FCAF7AC2370EAD80C5D1620887633A42024862FCEA9F95" + "A719AAB989C1923C6452ECB0B75AF1CAFBFB06C5EC31BBF0EE4D16ACCC9A" + "F05B77D61C4855491B3D4AC150F3BCB7AE536AF333"), + a2bs_hex("080212CC020A190A093938373635343332311208F97F2B3856CBB3DD2002" + "2800124108011801301E4239687474703A2F2F6B69723033666370673137" + "342E7769646576696E652E6E65742F7769646576696E652F6367692D6269" + "6E2F64726D2E6367691A661210C5C43FE0178AEE7B85042F749D5A40251A" + "5013A1501E0F90A64E103336944A37BAAAEAC17E46E880DF6EA23A7A890D" + "A082CBBF82710B8C3982E8AB25A208A89EEFB5250D4B2CCC2F362856E05D" + "1941E387801A19886B1F3AAE60D06EDA400087B06920011A7E0A10303132" + "333435363738394142434445461210A34D2B04D596DFE1DC29CFDF116E39" + "211A2031AD1B369D225842A14B5D5F8366F5FF8EB94AA7CD13EB45BA7291" + "68E19D5F5F200242340A20A0D6D65CC677C12B86A7A99F89F446BCFDA185" + "44B15B2FEF8349ED5C247F7BE91210ED8D58320B0F4F948F960C7D49872C" + "DE2083E5A68F051A207481A2B82C83DF3090D57EDC042711A42CF4F87E79" + "CE136DAFE25F48F4A9068322800256113CA771F4250CAD2928161D07B525" + "61019003DBFBD362F20587D51BD999D57D2B035BC115C54C8B4BC37661A6" + "6A101DE5B42D82E582309AFD8E211C947A2D33CAFB58F89EEE2DA9524614" + "0311134429D8A5D15E03A169B0EB2579DA3BD6E4322D6C46EE964F6931CF" + "9DA52FB59B1D3B9BCC5959211CC23D97690FA8E869ADF68BCDA8A1211DDB" + "EBF967617AF0BFDA73E0AE79D8A7CCED208602EDC72CEF44A02901A52EEB" + "87CF9841D186BC95A65956BAD48F3C9E43F027CC03B73DFF5CAFC0B64727" + "E2D7B3A9CF25F97C475207C8A9DF091A585288A71AE64B7B2089871F7272" + "381CCBEF55EBF3DCB21B134FE48BFD5299DCCA6B01B55EEA61F9F990D0AF"), + a2bs_hex("08011231121D1A1B0A190A093938373635343332311208F97F2B3856CBB3" + "DD2002280018022A0C33333932383235393733000030151A209ADE9B0A41" + "1583962BDA31BE5BE937E589BB3DCC06F6F4C48FBE4FAE86DC9ABA"), + a2bs_hex("0802123B0A190A093938373635343332311208F97F2B3856CBB3DD200228" + "0112001A16200342120A106B63746C00000000CA3A6A75000000002083E5" + "A68F051A20BDA6A56F7CBFD0942198F87C23A34AA5CBD64AFEB134277774" + "CCF8E789D815DD"), "https://test.google.com/license/GetCencLicense", 0x12345678, 0x12348765, 0x0, "Name1 Value1", a2bs_hex( @@ -509,99 +498,95 @@ LicenseInfo license_test_data[] = { // license 2 {"ksidE8C37662C88DC673", DeviceFiles::kLicenseStateReleasing, a2bs_hex("0801121030313233343536373839414243444546"), - a2bs_hex( - "080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B" - "C4D07A7D507618A5D3A68F05228E023082010A0282010100A947904B8DBD" - "55FB685FDB3025574517CCCC74EE4FEAF6629D5179A52FF85CE7409528EF" - "FA0E5DFC3DE9A34BA5F08BE349553C319A9FB274905A8770ADC9CA4A2CBC" - "D8E556A1587FA18BFD4D286C644A6904F19EAAFBDFADD3B371B306D0B289" - "F459B491C814B5AD1F747610E990A60248A7DA5152F1CCFC047EF4230013" - "1F9C4758F4D9F30579393B860AAD9AD2EE43D721D6DB9F5800EF188386B9" - "4825AE05A883AC976D6970DF43EA6C83B86CE6D0F540207725B9890FCCEC" - "83A49027872DAFD2740B7748E9C3B1752D6F12859CED07E8882969B433EC" - "66F17FFC29AC6FDBEA79230B0FAED5D94CF6B829A420BBE3270323941776" - "EE60DD6BFD660BDDCA870203010001288001300112800250D1F8B1ECF849" - "B60FF93E37C4DEEF09E6FFB10BCFC996A4A24B7AA96928835ED5A72E1584" - "6D0A14015733239BD8B6E6D5E5D229B08394CE1E0692C159C44337CA7CAF" - "88476449B068D9D2FADED8EB1BC0F4B8F0FCAF293E8690E7403209534180" - "3408A0E8279E545945EE97838FDE7812F7171C3CC4F5ECF9418BBF1D336C" - "E58F4CBB1B44D4ADE6BF3364BAE7EC093281846E569E13E7719014030A60" - "59044FE7BBFF3E8F5723AEDD54DC6E0D041B309D7700B55575690E95CE60" - "85D0914F991C5F45E98CBB9C45BA33F47FD0862EBCC7EEBA8E60643C86E8" - "5476B18AEF8DE871571A75681A75F75028A5B58751C09A5296AAE99CEDCD" - "9785E9E2103240D40A1AB6050AB002080112102CE5CCF42200D6B5BCCF33" - "D7CC2D9C7018EAD1B88D05228E023082010A0282010100BE1B661EEC4700" - "DF4B0C83292D02AE029B8A224DD3048125049F74E30E1257FC2BE8D9CFAF" - "0BFFCACAF7305351771C78FA451F13AF5EEBFB360941A4396A805833730D" - "C6E534C62408B7C5076FC22568021C59ED34F98487196DA32078DAFCA37C" - "7CFB8E79612FA384963DF2167D5E87305D7BC92D621C10160672C27B9A69" - "1B1534F60D78C5893E40C5FF8A3F9DF8898612E9A5CCB56F4A0CC2A61A7A" - "EB04A9DCC015D9BC37DEF2AB9EAA9AAFD838869081D9249755F129BB0DBE" - "CA3B894975A65A36FD005CE77CD407E925D3172E33122A11D327968A08F8" - "E771FAEB2540EB52D17C4906405F47C31F60F0AF6C78AF53291B236E692B" - "506A2AF92AF43E3A81020301000128800130011280033A08A60418E5C81B" - "8D71A5C0A28C26999FF4FA992E14107CA8A9E6A2B36259834000FE35DCD8" - "14426F9C5D332418ED94C9C0C992217B1B6DC01C99085A3C3956C8267B87" - "73BABCF3F2C841C67D830F9DBC780DD68BF4E2FE424C6A54123BE4B2A1F7" - "E1F4DB58AB1164DAE9CF75C3392284A44B8CDB85D837E86C6B908243987E" - "552C8693878C9A1B7BEA3759783036F1595C406D6CBBA7F8642A9B3B244D" - "AA1F00531D0B908ADE4B533FD9FAFA21D0FB0C033D2AD5DDF24C60F4FAC3" - "0820758877F2E1A78EB44E9336DCFAFDF572BB22A84A5DEFDF2EB87B61DE" - "26EE9C4CEAA646A2AFDB2BB953845E6D7FE6F79A9501D1C379C96961316B" - "5D2A66F38C222091AF74141B6CAF93507485A5D8F82808025451824F00C8" - "B6A0CD5803F6564584138C8B18BC679B442D837307B5CC90B1FD1FD32288" - "B4A5D18D2D80E5E6A7A9EFD255B8B363038BCC67AF534EAEE4A5903E304E" - "ED4990BB5BE735DB027A6DE35329D321EC051B956C55A5B11674017517FC" - "C3C7FF7397C13A7B7087A1F6AEC7F6761A130A0C636F6D70616E795F6E61" - "6D6512034C47451A150A0A6D6F64656C5F6E616D6512074E657875732034" - "1A200A116172636869746563747572655F6E616D65120B61726D65616269" - "2D7637611A130A0B6465766963655F6E616D6512046D616B6F1A150A0C70" - "726F647563745F6E616D6512056F6363616D1A440A0A6275696C645F696E" - "666F1236676F6F676C652F6F6363616D2F6D616B6F3A342E332F4A425F4D" - "52322F3731343239313A7573657264656275672F6465762D6B6579731A21" - "0A096465766963655F696412144C474D4332303132313030353030363339" - "32373812250A230A14080112103031323334353637383941424344454610" - "021A09393837363534333231180120002A0C313038313531363936380000" - "30151A80027EA7ADEF77500FBC6A6081E739E0C50E1BDE6DE4AB39110938" - "6768A95A04A52BE6693A5A98A25AC8EB9CDD6F40DCCF86A3DA6C700E256A" - "676BD3D7E492090DCF732C57333D9370F6D7AB87661701597099CD45C2BC" - "DFF1D47183E510D7A6D3561EFC7D4EB21814CB2CA0777F26DD491B4D0146" - "9BB81A701545E2D3E98E1ADAB3A3BBD1D0433B312B3B5139E88D3A92520B" - "A399B2BE3489A72C3629745E4D8FC6DF6C8925A8FD8D6C809CA80DBC2903" - "0615A55523305BC64DDFF52A87BD0DE9EEAB6445C5A1847E5E6FE8D640C7" - "B07F3B066B911793F06E973A02FA6EDD274570C4CA982D353F1E72A5B776" - "95D554B4FB554B46F5FA5B3B00805C136A9ED21FC2"), - a2bs_hex( - "080212CC020A190A0939383736353433323112087AD49366C8D919132002" - "2800124108011801301E4239687474703A2F2F6B69723033666370673137" - "342E7769646576696E652E6E65742F7769646576696E652F6367692D6269" - "6E2F64726D2E6367691A6612109161841718D5D0A4C4368820F4D030721A" - "500F94F9BC0FF6B730709C6DEFD88D1CA8C7991A149D470493BDAD89E333" - "AFC949F77D995CEA5E3D3DA5F7DF84E90CD4A9B4E138EA5F7EA75A520A25" - "017D69A9460D46548259F82959304CDEFE41936BE420011A7E0A10303132" - "3334353637383941424344454612104F88BFEECE468B962BF09EA1257DA5" - "0B1A200D48C122E022033C3E67A6ED4DA99B8AEA6F4B9E78634A548C060F" - "49D39D9700200242340A209DE408B6F116F428C8E801C63AF34570A6C31D" - "72180AA11F85D8DD4BC1C4D35412104E73935C2CC38C21408C537B3A5F19" - "8B2081E7A68F051A20BC2696A2A1FBDF425675CAD455DEA2B44040D1F8F0" - "B6C675A28384CACFDF2F132280022D09FDA096972AA77FFEB09EA08AE882" - "E89AC8591B398452CFB1383CCA16611571E223FE8DE82CDE9111557B2A87" - "A253B87B822F037FB492DE4B91B8AD4DB2E2F8B2E81BF1DE36CC7520CB4B" - "B3516E18322777287310257F2EC7110332504756DA8BC873448E93BA05FD" - "1AEB7AD1016D7BBB7FF5E7111987005322E342679F3D241429AE930A479D" - "9F338699D3D6969A6479D1363AEB4AF19BDE9A73B33CD0EBFCF272FCEEC6" - "222AC08DCBD36077E0459D940BAE84ABA584700C02E70F3AE034ED7B764C" - "6EE5E85663D657270C9AB40D3109920AB1C1C5DA1358E384EDF673253C04" - "F20AA6B0CC98F421A4CD86C4C88042B0DE9902D5D00B6AD817B1A313ED5B"), - a2bs_hex( - "08011231121D1A1B0A190A0939383736353433323112087AD49366C8D919" - "132002280018022A0C35333631323234343600000030151A208CC3C7D328" - "DFACD43764C9FB582B858C8FF1D9863FF59C4D983478DB858AC32A"), - a2bs_hex( - "0802123B0A190A0939383736353433323112087AD49366C8D91913200228" - "0112001A16200342120A106B63746C000000001FF4944E000000002082E7" - "A68F051A2041EF0A9267D613D17AA90E1D1DA5BE091860E5E296D41D6D0F" - "75E73660C279B3"), + a2bs_hex("080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B" + "C4D07A7D507618A5D3A68F05228E023082010A0282010100A947904B8DBD" + "55FB685FDB3025574517CCCC74EE4FEAF6629D5179A52FF85CE7409528EF" + "FA0E5DFC3DE9A34BA5F08BE349553C319A9FB274905A8770ADC9CA4A2CBC" + "D8E556A1587FA18BFD4D286C644A6904F19EAAFBDFADD3B371B306D0B289" + "F459B491C814B5AD1F747610E990A60248A7DA5152F1CCFC047EF4230013" + "1F9C4758F4D9F30579393B860AAD9AD2EE43D721D6DB9F5800EF188386B9" + "4825AE05A883AC976D6970DF43EA6C83B86CE6D0F540207725B9890FCCEC" + "83A49027872DAFD2740B7748E9C3B1752D6F12859CED07E8882969B433EC" + "66F17FFC29AC6FDBEA79230B0FAED5D94CF6B829A420BBE3270323941776" + "EE60DD6BFD660BDDCA870203010001288001300112800250D1F8B1ECF849" + "B60FF93E37C4DEEF09E6FFB10BCFC996A4A24B7AA96928835ED5A72E1584" + "6D0A14015733239BD8B6E6D5E5D229B08394CE1E0692C159C44337CA7CAF" + "88476449B068D9D2FADED8EB1BC0F4B8F0FCAF293E8690E7403209534180" + "3408A0E8279E545945EE97838FDE7812F7171C3CC4F5ECF9418BBF1D336C" + "E58F4CBB1B44D4ADE6BF3364BAE7EC093281846E569E13E7719014030A60" + "59044FE7BBFF3E8F5723AEDD54DC6E0D041B309D7700B55575690E95CE60" + "85D0914F991C5F45E98CBB9C45BA33F47FD0862EBCC7EEBA8E60643C86E8" + "5476B18AEF8DE871571A75681A75F75028A5B58751C09A5296AAE99CEDCD" + "9785E9E2103240D40A1AB6050AB002080112102CE5CCF42200D6B5BCCF33" + "D7CC2D9C7018EAD1B88D05228E023082010A0282010100BE1B661EEC4700" + "DF4B0C83292D02AE029B8A224DD3048125049F74E30E1257FC2BE8D9CFAF" + "0BFFCACAF7305351771C78FA451F13AF5EEBFB360941A4396A805833730D" + "C6E534C62408B7C5076FC22568021C59ED34F98487196DA32078DAFCA37C" + "7CFB8E79612FA384963DF2167D5E87305D7BC92D621C10160672C27B9A69" + "1B1534F60D78C5893E40C5FF8A3F9DF8898612E9A5CCB56F4A0CC2A61A7A" + "EB04A9DCC015D9BC37DEF2AB9EAA9AAFD838869081D9249755F129BB0DBE" + "CA3B894975A65A36FD005CE77CD407E925D3172E33122A11D327968A08F8" + "E771FAEB2540EB52D17C4906405F47C31F60F0AF6C78AF53291B236E692B" + "506A2AF92AF43E3A81020301000128800130011280033A08A60418E5C81B" + "8D71A5C0A28C26999FF4FA992E14107CA8A9E6A2B36259834000FE35DCD8" + "14426F9C5D332418ED94C9C0C992217B1B6DC01C99085A3C3956C8267B87" + "73BABCF3F2C841C67D830F9DBC780DD68BF4E2FE424C6A54123BE4B2A1F7" + "E1F4DB58AB1164DAE9CF75C3392284A44B8CDB85D837E86C6B908243987E" + "552C8693878C9A1B7BEA3759783036F1595C406D6CBBA7F8642A9B3B244D" + "AA1F00531D0B908ADE4B533FD9FAFA21D0FB0C033D2AD5DDF24C60F4FAC3" + "0820758877F2E1A78EB44E9336DCFAFDF572BB22A84A5DEFDF2EB87B61DE" + "26EE9C4CEAA646A2AFDB2BB953845E6D7FE6F79A9501D1C379C96961316B" + "5D2A66F38C222091AF74141B6CAF93507485A5D8F82808025451824F00C8" + "B6A0CD5803F6564584138C8B18BC679B442D837307B5CC90B1FD1FD32288" + "B4A5D18D2D80E5E6A7A9EFD255B8B363038BCC67AF534EAEE4A5903E304E" + "ED4990BB5BE735DB027A6DE35329D321EC051B956C55A5B11674017517FC" + "C3C7FF7397C13A7B7087A1F6AEC7F6761A130A0C636F6D70616E795F6E61" + "6D6512034C47451A150A0A6D6F64656C5F6E616D6512074E657875732034" + "1A200A116172636869746563747572655F6E616D65120B61726D65616269" + "2D7637611A130A0B6465766963655F6E616D6512046D616B6F1A150A0C70" + "726F647563745F6E616D6512056F6363616D1A440A0A6275696C645F696E" + "666F1236676F6F676C652F6F6363616D2F6D616B6F3A342E332F4A425F4D" + "52322F3731343239313A7573657264656275672F6465762D6B6579731A21" + "0A096465766963655F696412144C474D4332303132313030353030363339" + "32373812250A230A14080112103031323334353637383941424344454610" + "021A09393837363534333231180120002A0C313038313531363936380000" + "30151A80027EA7ADEF77500FBC6A6081E739E0C50E1BDE6DE4AB39110938" + "6768A95A04A52BE6693A5A98A25AC8EB9CDD6F40DCCF86A3DA6C700E256A" + "676BD3D7E492090DCF732C57333D9370F6D7AB87661701597099CD45C2BC" + "DFF1D47183E510D7A6D3561EFC7D4EB21814CB2CA0777F26DD491B4D0146" + "9BB81A701545E2D3E98E1ADAB3A3BBD1D0433B312B3B5139E88D3A92520B" + "A399B2BE3489A72C3629745E4D8FC6DF6C8925A8FD8D6C809CA80DBC2903" + "0615A55523305BC64DDFF52A87BD0DE9EEAB6445C5A1847E5E6FE8D640C7" + "B07F3B066B911793F06E973A02FA6EDD274570C4CA982D353F1E72A5B776" + "95D554B4FB554B46F5FA5B3B00805C136A9ED21FC2"), + a2bs_hex("080212CC020A190A0939383736353433323112087AD49366C8D919132002" + "2800124108011801301E4239687474703A2F2F6B69723033666370673137" + "342E7769646576696E652E6E65742F7769646576696E652F6367692D6269" + "6E2F64726D2E6367691A6612109161841718D5D0A4C4368820F4D030721A" + "500F94F9BC0FF6B730709C6DEFD88D1CA8C7991A149D470493BDAD89E333" + "AFC949F77D995CEA5E3D3DA5F7DF84E90CD4A9B4E138EA5F7EA75A520A25" + "017D69A9460D46548259F82959304CDEFE41936BE420011A7E0A10303132" + "3334353637383941424344454612104F88BFEECE468B962BF09EA1257DA5" + "0B1A200D48C122E022033C3E67A6ED4DA99B8AEA6F4B9E78634A548C060F" + "49D39D9700200242340A209DE408B6F116F428C8E801C63AF34570A6C31D" + "72180AA11F85D8DD4BC1C4D35412104E73935C2CC38C21408C537B3A5F19" + "8B2081E7A68F051A20BC2696A2A1FBDF425675CAD455DEA2B44040D1F8F0" + "B6C675A28384CACFDF2F132280022D09FDA096972AA77FFEB09EA08AE882" + "E89AC8591B398452CFB1383CCA16611571E223FE8DE82CDE9111557B2A87" + "A253B87B822F037FB492DE4B91B8AD4DB2E2F8B2E81BF1DE36CC7520CB4B" + "B3516E18322777287310257F2EC7110332504756DA8BC873448E93BA05FD" + "1AEB7AD1016D7BBB7FF5E7111987005322E342679F3D241429AE930A479D" + "9F338699D3D6969A6479D1363AEB4AF19BDE9A73B33CD0EBFCF272FCEEC6" + "222AC08DCBD36077E0459D940BAE84ABA584700C02E70F3AE034ED7B764C" + "6EE5E85663D657270C9AB40D3109920AB1C1C5DA1358E384EDF673253C04" + "F20AA6B0CC98F421A4CD86C4C88042B0DE9902D5D00B6AD817B1A313ED5B"), + a2bs_hex("08011231121D1A1B0A190A0939383736353433323112087AD49366C8D919" + "132002280018022A0C35333631323234343600000030151A208CC3C7D328" + "DFACD43764C9FB582B858C8FF1D9863FF59C4D983478DB858AC32A"), + a2bs_hex("0802123B0A190A0939383736353433323112087AD49366C8D91913200228" + "0112001A16200342120A106B63746C000000001FF4944E000000002082E7" + "A68F051A2041EF0A9267D613D17AA90E1D1DA5BE091860E5E296D41D6D0F" + "75E73660C279B3"), "https://test.google.com/license/GetCencLicense", 0x0123456789abcdef, 0x123456789abfedc, 0x0, "Name1 Value1 Name2 Param2", a2bs_hex( @@ -693,108 +678,106 @@ LicenseInfo license_test_data[] = { "8006240000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E" "1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F680" "C12206AA0237760D1F06E5CB78F5AFC3D124BBF7C26921CB3CC2EA44766801E25D34" - "F")}}; + "F")}}; // kLicenseTestData + +constexpr size_t kNumberOfLicenses = ArraySize(kLicenseTestData); // Sample license data and related data for storage and use for offline // playback. The license data and URLs in this test are not real. // The data is used to test license-related functions. -LicenseInfo license_update_test_data[] = { +const LicenseInfo kLicenseUpdateTestData[] = { // active license {"key_set_id_: ksid2A048BC7FAEC885A", DeviceFiles::kLicenseStateActive, a2bs_hex("0801121030313233343536373839414243444546"), - a2bs_hex( - "080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B" - "C4D07A7D5076189EDFB68F05228E023082010A0282010100CC1715C81AD3" - "F6F279C686F826E6D7C8961EB13318367D06B4061BBC57E3C616A226A10F" - "042CAD54D44C6484C725CD721A2A97C088E60AFF0E9C8E03477A1B56B4C5" - "55C27CEAF55024375D8D3FB352DA4AAA2E911C876CB1B36162922E9130CC" - "C5FB72F8DD41D05DE6889C4814A7344BA8C605DE399CA3CBBF1E7DE3411E" - "DFC60F9D3802C0BEE2B98FB71A5AB9C1A3D53FB55599183B84FDDC98AC30" - "96B2EF99C62B545C5DCA3371F4D27DEF2052A23F13DE42DE46B462CED2AB" - "ABB96B610A47E0620AA10D862FEB66BB4F00B13DFE61703AE872F0B4850C" - "39138FC5DE4538E27BEAC8A48CC9526401BE3B42C7C6C5D9624662081D7A" - "5A1C581EB09619DD9DD3020301000128800130011280026AB9AC42F1C17C" - "1ECFB710BF2C35383F41CF7EFAB0DFDCC69090C20DE141CB43055FD707C6" - "11CDAEE700076A1EBA32432D5C2B62A73B8B1672AD2C4303598C02D34823" - "A6BE387046937F55BB65F5B3571FDC6A1F0D947031003BA651F8E48BF33D" - "66B7A32A72CAC75EF66EF280B2D4F14FBCA70ECC508091FE83AD886A680F" - "55AB62F306435BC0043825F6A401BB9C341230127D3298B67F82767050C9" - "5769964B0B5C27A36FA76ED161ABE4B6C18556C807706509A5146ADD958A" - "F79B49EDE48CBCD6320C4DEC0BF564C5DD7E7EBA37A4CD1D27F8D80E1B69" - "31C92AC8E5C3BEC0ADAE621A3B78952485EBFC81A194BA75BBD2C821C28A" - "EB5D21CBE0A270E55E1AB6050AB002080112102CE5CCF42200D6B5BCCF33" - "D7CC2D9C7018EAD1B88D05228E023082010A0282010100BE1B661EEC4700" - "DF4B0C83292D02AE029B8A224DD3048125049F74E30E1257FC2BE8D9CFAF" - "0BFFCACAF7305351771C78FA451F13AF5EEBFB360941A4396A805833730D" - "C6E534C62408B7C5076FC22568021C59ED34F98487196DA32078DAFCA37C" - "7CFB8E79612FA384963DF2167D5E87305D7BC92D621C10160672C27B9A69" - "1B1534F60D78C5893E40C5FF8A3F9DF8898612E9A5CCB56F4A0CC2A61A7A" - "EB04A9DCC015D9BC37DEF2AB9EAA9AAFD838869081D9249755F129BB0DBE" - "CA3B894975A65A36FD005CE77CD407E925D3172E33122A11D327968A08F8" - "E771FAEB2540EB52D17C4906405F47C31F60F0AF6C78AF53291B236E692B" - "506A2AF92AF43E3A81020301000128800130011280033A08A60418E5C81B" - "8D71A5C0A28C26999FF4FA992E14107CA8A9E6A2B36259834000FE35DCD8" - "14426F9C5D332418ED94C9C0C992217B1B6DC01C99085A3C3956C8267B87" - "73BABCF3F2C841C67D830F9DBC780DD68BF4E2FE424C6A54123BE4B2A1F7" - "E1F4DB58AB1164DAE9CF75C3392284A44B8CDB85D837E86C6B908243987E" - "552C8693878C9A1B7BEA3759783036F1595C406D6CBBA7F8642A9B3B244D" - "AA1F00531D0B908ADE4B533FD9FAFA21D0FB0C033D2AD5DDF24C60F4FAC3" - "0820758877F2E1A78EB44E9336DCFAFDF572BB22A84A5DEFDF2EB87B61DE" - "26EE9C4CEAA646A2AFDB2BB953845E6D7FE6F79A9501D1C379C96961316B" - "5D2A66F38C222091AF74141B6CAF93507485A5D8F82808025451824F00C8" - "B6A0CD5803F6564584138C8B18BC679B442D837307B5CC90B1FD1FD32288" - "B4A5D18D2D80E5E6A7A9EFD255B8B363038BCC67AF534EAEE4A5903E304E" - "ED4990BB5BE735DB027A6DE35329D321EC051B956C55A5B11674017517FC" - "C3C7FF7397C13A7B7087A1F6AEC7F6761A130A0C636F6D70616E795F6E61" - "6D6512034C47451A150A0A6D6F64656C5F6E616D6512074E657875732034" - "1A200A116172636869746563747572655F6E616D65120B61726D65616269" - "2D7637611A130A0B6465766963655F6E616D6512046D616B6F1A150A0C70" - "726F647563745F6E616D6512056F6363616D1A440A0A6275696C645F696E" - "666F1236676F6F676C652F6F6363616D2F6D616B6F3A342E332F4A425F4D" - "52322F3731343239313A7573657264656275672F6465762D6B6579731A21" - "0A096465766963655F696412144C474D4332303132313030353030363339" - "32373812250A230A14080112103031323334353637383941424344454610" - "021A09393837363534333231180120002A0C333037383036303230340000" - "30151A8002B5CA9C6B097EF2CBE2F8136C761130F3456ED706127260151B" - "4FF044DE233C1828B8618A312C031A2F844BEF0917F9B8C6B8993A5D33E2" - "4B57B672A6C79D93EC98C46C5263EB8195FF7A5EBEBA08A6F1080C19340A" - "068E575568AE5EBADDD638FB435AC3EEC901E5F250BC974C498D6378C8BC" - "1F4BACCED5725B8B77160444923DA3B729DCB681186565B49EEFFE27CF16" - "31F09EC31E543AAFE9F5996FB0BEAA5F80305D67ECF173A8BD4A3B2CC75C" - "EC3AA5881FF433E80838E1E1FA23CE7F22346DDDF7FEC3DB0CE2C3F845CF" - "9471088A022C8D0A63860764AE558BD0B5F66D78881ADBF2D398F9BA349E" - "FB2532C61E243DD45BB11C99422D13A82B7AAE9671"), - a2bs_hex( - "080212CC020A190A09393837363534333231120892BE96420F0D5BF32002" - "2800124108011801301E4239687474703A2F2F6B69723033666370673137" - "342E7769646576696E652E6E65742F7769646576696E652F6367692D6269" - "6E2F64726D2E6367691A661210BB2E2D2B9C39697794897E08262749B41A" - "50C0DED62431B1701F59E076E07EB0D2D43AEC6C589B35790739EB0B0ED4" - "7236D0ECCE9A5408BE5F46F412334A5F4A4E3E493F202A263E185F06AE37" - "BA4351647BB9E6C997189FE1A03DCBF3FC90F46E5120011A7E0A10303132" - "333435363738394142434445461210319D7FB66154DFEC2AEDB164F29AAC" - "301A207448440734605CB29424FD1DA435A405DEE837757EA6A68C633A65" - "228317843D200242340A207F287706380C8085A4E5F85843D1C3B379F9CE" - "19ED5A2DAAF476B8AFE10488BF12100C8CDB1DA4C9FEBE5BBB530FE0D3DA" - "8720F4DFB68F051A20F4BCCEEEA658C5DD18D7B841E6D8991E616B57B592" - "C44ED67050939B136815272280025CD92AB4672778CB865D528A2EAAAD06" - "435AE9186F1C159AFA1689473C4D8C8A5B8C64400CBBD0A02659EA0271A1" - "F40052030CA285B9C7211791BDD72193D5E01CEE43B0482DEAF034C8E9BD" - "88C7331BFA5CD71C2A3062EBD07CE1C80CCF3C5D7EC2D921D1BC5414D797" - "0CB098889D3FB5BF669EE5283E009CDCC880E79C77A21B12C7C0B8062D66" - "CBDEC2DCFD23885144C776B98C8A7A176C4EA183085EF02D2060904ADA3C" - "B161F4D198A0279DA19D7001EB2D20C70ABAA04B3760CB165006F6CBA4BE" - "0A2628C0C8398C122FF0DCF9292590E3C37BC7DB20F3B0921268F41FE76B" - "D3EE764EBA13A22FDABC170860503FB93CC4A08D61102519D56A25EB9E30"), - a2bs_hex( - "08011231121D1A1B0A190A09393837363534333231120892BE96420F0D5B" - "F32002280018022A0C31393132353333373731000030151A20F4FDBECE54" - "7252D12BB9D488DAD50C76577A2FBCCC73F36D3C6B35096B8A3DC6"), - a2bs_hex( - "0802123B0A190A09393837363534333231120892BE96420F0D5BF3200228" - "0112001A16200342120A106B63746C0000000071FEF30B0000000020F4DF" - "B68F051A2000351030900858FCFD6977B67803ADFD1280AA661E6B0BD30B" - "08B2C467355129"), + a2bs_hex("080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B" + "C4D07A7D5076189EDFB68F05228E023082010A0282010100CC1715C81AD3" + "F6F279C686F826E6D7C8961EB13318367D06B4061BBC57E3C616A226A10F" + "042CAD54D44C6484C725CD721A2A97C088E60AFF0E9C8E03477A1B56B4C5" + "55C27CEAF55024375D8D3FB352DA4AAA2E911C876CB1B36162922E9130CC" + "C5FB72F8DD41D05DE6889C4814A7344BA8C605DE399CA3CBBF1E7DE3411E" + "DFC60F9D3802C0BEE2B98FB71A5AB9C1A3D53FB55599183B84FDDC98AC30" + "96B2EF99C62B545C5DCA3371F4D27DEF2052A23F13DE42DE46B462CED2AB" + "ABB96B610A47E0620AA10D862FEB66BB4F00B13DFE61703AE872F0B4850C" + "39138FC5DE4538E27BEAC8A48CC9526401BE3B42C7C6C5D9624662081D7A" + "5A1C581EB09619DD9DD3020301000128800130011280026AB9AC42F1C17C" + "1ECFB710BF2C35383F41CF7EFAB0DFDCC69090C20DE141CB43055FD707C6" + "11CDAEE700076A1EBA32432D5C2B62A73B8B1672AD2C4303598C02D34823" + "A6BE387046937F55BB65F5B3571FDC6A1F0D947031003BA651F8E48BF33D" + "66B7A32A72CAC75EF66EF280B2D4F14FBCA70ECC508091FE83AD886A680F" + "55AB62F306435BC0043825F6A401BB9C341230127D3298B67F82767050C9" + "5769964B0B5C27A36FA76ED161ABE4B6C18556C807706509A5146ADD958A" + "F79B49EDE48CBCD6320C4DEC0BF564C5DD7E7EBA37A4CD1D27F8D80E1B69" + "31C92AC8E5C3BEC0ADAE621A3B78952485EBFC81A194BA75BBD2C821C28A" + "EB5D21CBE0A270E55E1AB6050AB002080112102CE5CCF42200D6B5BCCF33" + "D7CC2D9C7018EAD1B88D05228E023082010A0282010100BE1B661EEC4700" + "DF4B0C83292D02AE029B8A224DD3048125049F74E30E1257FC2BE8D9CFAF" + "0BFFCACAF7305351771C78FA451F13AF5EEBFB360941A4396A805833730D" + "C6E534C62408B7C5076FC22568021C59ED34F98487196DA32078DAFCA37C" + "7CFB8E79612FA384963DF2167D5E87305D7BC92D621C10160672C27B9A69" + "1B1534F60D78C5893E40C5FF8A3F9DF8898612E9A5CCB56F4A0CC2A61A7A" + "EB04A9DCC015D9BC37DEF2AB9EAA9AAFD838869081D9249755F129BB0DBE" + "CA3B894975A65A36FD005CE77CD407E925D3172E33122A11D327968A08F8" + "E771FAEB2540EB52D17C4906405F47C31F60F0AF6C78AF53291B236E692B" + "506A2AF92AF43E3A81020301000128800130011280033A08A60418E5C81B" + "8D71A5C0A28C26999FF4FA992E14107CA8A9E6A2B36259834000FE35DCD8" + "14426F9C5D332418ED94C9C0C992217B1B6DC01C99085A3C3956C8267B87" + "73BABCF3F2C841C67D830F9DBC780DD68BF4E2FE424C6A54123BE4B2A1F7" + "E1F4DB58AB1164DAE9CF75C3392284A44B8CDB85D837E86C6B908243987E" + "552C8693878C9A1B7BEA3759783036F1595C406D6CBBA7F8642A9B3B244D" + "AA1F00531D0B908ADE4B533FD9FAFA21D0FB0C033D2AD5DDF24C60F4FAC3" + "0820758877F2E1A78EB44E9336DCFAFDF572BB22A84A5DEFDF2EB87B61DE" + "26EE9C4CEAA646A2AFDB2BB953845E6D7FE6F79A9501D1C379C96961316B" + "5D2A66F38C222091AF74141B6CAF93507485A5D8F82808025451824F00C8" + "B6A0CD5803F6564584138C8B18BC679B442D837307B5CC90B1FD1FD32288" + "B4A5D18D2D80E5E6A7A9EFD255B8B363038BCC67AF534EAEE4A5903E304E" + "ED4990BB5BE735DB027A6DE35329D321EC051B956C55A5B11674017517FC" + "C3C7FF7397C13A7B7087A1F6AEC7F6761A130A0C636F6D70616E795F6E61" + "6D6512034C47451A150A0A6D6F64656C5F6E616D6512074E657875732034" + "1A200A116172636869746563747572655F6E616D65120B61726D65616269" + "2D7637611A130A0B6465766963655F6E616D6512046D616B6F1A150A0C70" + "726F647563745F6E616D6512056F6363616D1A440A0A6275696C645F696E" + "666F1236676F6F676C652F6F6363616D2F6D616B6F3A342E332F4A425F4D" + "52322F3731343239313A7573657264656275672F6465762D6B6579731A21" + "0A096465766963655F696412144C474D4332303132313030353030363339" + "32373812250A230A14080112103031323334353637383941424344454610" + "021A09393837363534333231180120002A0C333037383036303230340000" + "30151A8002B5CA9C6B097EF2CBE2F8136C761130F3456ED706127260151B" + "4FF044DE233C1828B8618A312C031A2F844BEF0917F9B8C6B8993A5D33E2" + "4B57B672A6C79D93EC98C46C5263EB8195FF7A5EBEBA08A6F1080C19340A" + "068E575568AE5EBADDD638FB435AC3EEC901E5F250BC974C498D6378C8BC" + "1F4BACCED5725B8B77160444923DA3B729DCB681186565B49EEFFE27CF16" + "31F09EC31E543AAFE9F5996FB0BEAA5F80305D67ECF173A8BD4A3B2CC75C" + "EC3AA5881FF433E80838E1E1FA23CE7F22346DDDF7FEC3DB0CE2C3F845CF" + "9471088A022C8D0A63860764AE558BD0B5F66D78881ADBF2D398F9BA349E" + "FB2532C61E243DD45BB11C99422D13A82B7AAE9671"), + a2bs_hex("080212CC020A190A09393837363534333231120892BE96420F0D5BF32002" + "2800124108011801301E4239687474703A2F2F6B69723033666370673137" + "342E7769646576696E652E6E65742F7769646576696E652F6367692D6269" + "6E2F64726D2E6367691A661210BB2E2D2B9C39697794897E08262749B41A" + "50C0DED62431B1701F59E076E07EB0D2D43AEC6C589B35790739EB0B0ED4" + "7236D0ECCE9A5408BE5F46F412334A5F4A4E3E493F202A263E185F06AE37" + "BA4351647BB9E6C997189FE1A03DCBF3FC90F46E5120011A7E0A10303132" + "333435363738394142434445461210319D7FB66154DFEC2AEDB164F29AAC" + "301A207448440734605CB29424FD1DA435A405DEE837757EA6A68C633A65" + "228317843D200242340A207F287706380C8085A4E5F85843D1C3B379F9CE" + "19ED5A2DAAF476B8AFE10488BF12100C8CDB1DA4C9FEBE5BBB530FE0D3DA" + "8720F4DFB68F051A20F4BCCEEEA658C5DD18D7B841E6D8991E616B57B592" + "C44ED67050939B136815272280025CD92AB4672778CB865D528A2EAAAD06" + "435AE9186F1C159AFA1689473C4D8C8A5B8C64400CBBD0A02659EA0271A1" + "F40052030CA285B9C7211791BDD72193D5E01CEE43B0482DEAF034C8E9BD" + "88C7331BFA5CD71C2A3062EBD07CE1C80CCF3C5D7EC2D921D1BC5414D797" + "0CB098889D3FB5BF669EE5283E009CDCC880E79C77A21B12C7C0B8062D66" + "CBDEC2DCFD23885144C776B98C8A7A176C4EA183085EF02D2060904ADA3C" + "B161F4D198A0279DA19D7001EB2D20C70ABAA04B3760CB165006F6CBA4BE" + "0A2628C0C8398C122FF0DCF9292590E3C37BC7DB20F3B0921268F41FE76B" + "D3EE764EBA13A22FDABC170860503FB93CC4A08D61102519D56A25EB9E30"), + a2bs_hex("08011231121D1A1B0A190A09393837363534333231120892BE96420F0D5B" + "F32002280018022A0C31393132353333373731000030151A20F4FDBECE54" + "7252D12BB9D488DAD50C76577A2FBCCC73F36D3C6B35096B8A3DC6"), + a2bs_hex("0802123B0A190A09393837363534333231120892BE96420F0D5BF3200228" + "0112001A16200342120A106B63746C0000000071FEF30B0000000020F4DF" + "B68F051A2000351030900858FCFD6977B67803ADFD1280AA661E6B0BD30B" + "08B2C467355129"), "https://test.google.com/license/GetCencLicense", 0x0123456789abcdef, 0x123456789abfedc, 0x0, "Name1 Value1 Name2 Value2 Name3 Value3", a2bs_hex( @@ -972,109 +955,112 @@ LicenseInfo license_update_test_data[] = { "36540EF9BAFCDF8ACD1910148DCFDAFCDF8ACD1910158006230000102030405060708" "090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2" "B2C2D2E2F680F12202F5B77A3168AC2A81832231A435D0587F6D1DF3B905A7058C5E8" - "565C81B96CA6")}}; + "565C81B96CA6")}}; // kLicenseUpdateTestData // Application parameters were added to the License message. This data // is used to verify that a License saved without application parameters can // be read out correctly by an updated version of the CDM. -LicenseInfo license_app_parameters_backwards_compatibility_test_data = { +const LicenseInfo kLicenseAppParametersBackwardsCompatibilityTestData = { - "ksid54C57C966E23CEF5", DeviceFiles::kLicenseStateActive, + "ksid54C57C966E23CEF5", + DeviceFiles::kLicenseStateActive, a2bs_hex("0801121030313233343536373839414243444546"), - a2bs_hex( - "080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B" - "C4D07A7D507618A5D3A68F05228E023082010A0282010100A947904B8DBD" - "55FB685FDB3025574517CCCC74EE4FEAF6629D5179A52FF85CE7409528EF" - "FA0E5DFC3DE9A34BA5F08BE349553C319A9FB274905A8770ADC9CA4A2CBC" - "D8E556A1587FA18BFD4D286C644A6904F19EAAFBDFADD3B371B306D0B289" - "F459B491C814B5AD1F747610E990A60248A7DA5152F1CCFC047EF4230013" - "1F9C4758F4D9F30579393B860AAD9AD2EE43D721D6DB9F5800EF188386B9" - "4825AE05A883AC976D6970DF43EA6C83B86CE6D0F540207725B9890FCCEC" - "83A49027872DAFD2740B7748E9C3B1752D6F12859CED07E8882969B433EC" - "66F17FFC29AC6FDBEA79230B0FAED5D94CF6B829A420BBE3270323941776" - "EE60DD6BFD660BDDCA870203010001288001300112800250D1F8B1ECF849" - "B60FF93E37C4DEEF09E6FFB10BCFC996A4A24B7AA96928835ED5A72E1584" - "6D0A14015733239BD8B6E6D5E5D229B08394CE1E0692C159C44337CA7CAF" - "88476449B068D9D2FADED8EB1BC0F4B8F0FCAF293E8690E7403209534180" - "3408A0E8279E545945EE97838FDE7812F7171C3CC4F5ECF9418BBF1D336C" - "E58F4CBB1B44D4ADE6BF3364BAE7EC093281846E569E13E7719014030A60" - "59044FE7BBFF3E8F5723AEDD54DC6E0D041B309D7700B55575690E95CE60" - "85D0914F991C5F45E98CBB9C45BA33F47FD0862EBCC7EEBA8E60643C86E8" - "5476B18AEF8DE871571A75681A75F75028A5B58751C09A5296AAE99CEDCD" - "9785E9E2103240D40A1AB6050AB002080112102CE5CCF42200D6B5BCCF33" - "D7CC2D9C7018EAD1B88D05228E023082010A0282010100BE1B661EEC4700" - "DF4B0C83292D02AE029B8A224DD3048125049F74E30E1257FC2BE8D9CFAF" - "0BFFCACAF7305351771C78FA451F13AF5EEBFB360941A4396A805833730D" - "C6E534C62408B7C5076FC22568021C59ED34F98487196DA32078DAFCA37C" - "7CFB8E79612FA384963DF2167D5E87305D7BC92D621C10160672C27B9A69" - "1B1534F60D78C5893E40C5FF8A3F9DF8898612E9A5CCB56F4A0CC2A61A7A" - "EB04A9DCC015D9BC37DEF2AB9EAA9AAFD838869081D9249755F129BB0DBE" - "CA3B894975A65A36FD005CE77CD407E925D3172E33122A11D327968A08F8" - "E771FAEB2540EB52D17C4906405F47C31F60F0AF6C78AF53291B236E692B" - "506A2AF92AF43E3A81020301000128800130011280033A08A60418E5C81B" - "8D71A5C0A28C26999FF4FA992E14107CA8A9E6A2B36259834000FE35DCD8" - "14426F9C5D332418ED94C9C0C992217B1B6DC01C99085A3C3956C8267B87" - "73BABCF3F2C841C67D830F9DBC780DD68BF4E2FE424C6A54123BE4B2A1F7" - "E1F4DB58AB1164DAE9CF75C3392284A44B8CDB85D837E86C6B908243987E" - "552C8693878C9A1B7BEA3759783036F1595C406D6CBBA7F8642A9B3B244D" - "AA1F00531D0B908ADE4B533FD9FAFA21D0FB0C033D2AD5DDF24C60F4FAC3" - "0820758877F2E1A78EB44E9336DCFAFDF572BB22A84A5DEFDF2EB87B61DE" - "26EE9C4CEAA646A2AFDB2BB953845E6D7FE6F79A9501D1C379C96961316B" - "5D2A66F38C222091AF74141B6CAF93507485A5D8F82808025451824F00C8" - "B6A0CD5803F6564584138C8B18BC679B442D837307B5CC90B1FD1FD32288" - "B4A5D18D2D80E5E6A7A9EFD255B8B363038BCC67AF534EAEE4A5903E304E" - "ED4990BB5BE735DB027A6DE35329D321EC051B956C55A5B11674017517FC" - "C3C7FF7397C13A7B7087A1F6AEC7F6761A130A0C636F6D70616E795F6E61" - "6D6512034C47451A150A0A6D6F64656C5F6E616D6512074E657875732034" - "1A200A116172636869746563747572655F6E616D65120B61726D65616269" - "2D7637611A130A0B6465766963655F6E616D6512046D616B6F1A150A0C70" - "726F647563745F6E616D6512056F6363616D1A440A0A6275696C645F696E" - "666F1236676F6F676C652F6F6363616D2F6D616B6F3A342E332F4A425F4D" - "52322F3731343239313A7573657264656275672F6465762D6B6579731A21" - "0A096465766963655F696412144C474D4332303132313030353030363339" - "32373812250A230A14080112103031323334353637383941424344454610" - "021A09393837363534333231180120002A0C333934303739343733370000" - "30151A8002734FBDED946EB74A1B61811C4C4A491214F6BEA125A80F0141" - "65B28AA97AD0AF60E4D129EB7F424AD659F24E5EED4B702BEE328E38B72C" - "A6F38CD0ECFD2E6D7B98147744C9B8A9610B3BDFE17675FF7D584C5BF680" - "64B0FE513FC322C9148795E4C2F2443C3024F5C1F29E6FEFB6D77005DAB2" - "2CD2B63131908DE4D88795BB931CEA38452CC568BE25032245E372F07A12" - "97F51748C7EA02F2C88360AFE7ABBC71DCDD5366126258E5AFA27C2A20B3" - "39FA1E7AE925B494B361F6F7116F20BE8EE6E446146027F4FD4300F4A0B0" - "A3361EE34925F338D0AACF20AE919B4BAE81C1D57A8D2B8FA38732A57697" - "C316C180717C182A971C94E4AC4C7DF8F161CB8CC1"), - a2bs_hex( - "080212CC020A190A0939383736353433323112084B9F26DAB8B06E112002" - "2800124108011801301E4239687474703A2F2F6B69723033666370673137" - "342E7769646576696E652E6E65742F7769646576696E652F6367692D6269" - "6E2F64726D2E6367691A6612102531DFD6CCEA511D00F8C0172F1189AA1A" - "5057FF9D9DBD5A205B1DEB075E4A90467C1E074CDE6071BFF831AD590BD5" - "D117614F33CE2C3CE1824FC0D54B36ECEAE58DF5C8F9347C2FEED17A3327" - "E8F52B8ECA6313A1FA6A042EB9525DD328113C05F920011A7E0A10303132" - "3334353637383941424344454612106D23622142B58F6D1EDD33AF3ECD2C" - "7E1A20884EE13BEA9DECDDBF68B532131C82B11CEC4D23C7FA9F3EF4C5EE" - "172E7C9736200242340A2050BFE71BB1BA683E35E0B49BB33048E5103FBB" - "B9C3E1CD6EBCDA7DD485DBAF431210D69D6F14C95CB6CFDB998E50D00F4D" - "A020DBDFA68F051A20AE5D6895E70F86F42F5FE3C58A505A865D05AB94B1" - "ABAA6CC59C3322F61C458D228002331F2BE95B5C796E0921CC27A7295501" - "DA10044E5CA36C0E2866FF068EA3515A6786BD5D60D74D80C6BA8BE6AAD0" - "85AF967909A143171E9CDDE36EA528402867CD04FB6F97A150CDE55F9B81" - "9F4104BEF48E4280D76645569E10AEF524D34D865B5B9E3EBC66C45EEBBE" - "16AB04493E7AEC4F99E7A99F3FC08FA431BECCC1978A079FA4801DB75E13" - "29A9921604E6F80CB148AA2DD5C8348057E9F4FC2AEA57EA4D215D0A8D48" - "6294860DFB4F4C42D57D9542B76179E179DD4AA23F9F7B2AE432B39E4CE8" - "F156E84877DDA781AAAAFC797FF75AFE2019ADC3A2E419BF0253C705BD47" - "97A96866AC4C059AD8F2E9C6B617C60C6ADCDB894C25F0C7D29252F52FD5"), - a2bs_hex( - "08011231121D1A1B0A190A0939383736353433323112084B9F26DAB8B06E" - "112002280018022A0C31353532333030360000000030151A20C30375683C" - "4D2033E05DCC95DDFB278CFB5125A021C3C043A16ACC933A768A27"), - a2bs_hex( - "0802123B0A190A0939383736353433323112084B9F26DAB8B06E11200228" - "0112001A16200342120A106B63746C0000000000ECDCBE0000000020DBDF" - "A68F051A20182F029E35047A3841FA176C74E5B387350E8D58DEA6878FF0" - "BEA6CABACA1C2C"), - "https://test.google.com/license/GetCencLicense", 0x0, 0x0, 0x0, "", "", 0, + a2bs_hex("080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591B" + "C4D07A7D507618A5D3A68F05228E023082010A0282010100A947904B8DBD" + "55FB685FDB3025574517CCCC74EE4FEAF6629D5179A52FF85CE7409528EF" + "FA0E5DFC3DE9A34BA5F08BE349553C319A9FB274905A8770ADC9CA4A2CBC" + "D8E556A1587FA18BFD4D286C644A6904F19EAAFBDFADD3B371B306D0B289" + "F459B491C814B5AD1F747610E990A60248A7DA5152F1CCFC047EF4230013" + "1F9C4758F4D9F30579393B860AAD9AD2EE43D721D6DB9F5800EF188386B9" + "4825AE05A883AC976D6970DF43EA6C83B86CE6D0F540207725B9890FCCEC" + "83A49027872DAFD2740B7748E9C3B1752D6F12859CED07E8882969B433EC" + "66F17FFC29AC6FDBEA79230B0FAED5D94CF6B829A420BBE3270323941776" + "EE60DD6BFD660BDDCA870203010001288001300112800250D1F8B1ECF849" + "B60FF93E37C4DEEF09E6FFB10BCFC996A4A24B7AA96928835ED5A72E1584" + "6D0A14015733239BD8B6E6D5E5D229B08394CE1E0692C159C44337CA7CAF" + "88476449B068D9D2FADED8EB1BC0F4B8F0FCAF293E8690E7403209534180" + "3408A0E8279E545945EE97838FDE7812F7171C3CC4F5ECF9418BBF1D336C" + "E58F4CBB1B44D4ADE6BF3364BAE7EC093281846E569E13E7719014030A60" + "59044FE7BBFF3E8F5723AEDD54DC6E0D041B309D7700B55575690E95CE60" + "85D0914F991C5F45E98CBB9C45BA33F47FD0862EBCC7EEBA8E60643C86E8" + "5476B18AEF8DE871571A75681A75F75028A5B58751C09A5296AAE99CEDCD" + "9785E9E2103240D40A1AB6050AB002080112102CE5CCF42200D6B5BCCF33" + "D7CC2D9C7018EAD1B88D05228E023082010A0282010100BE1B661EEC4700" + "DF4B0C83292D02AE029B8A224DD3048125049F74E30E1257FC2BE8D9CFAF" + "0BFFCACAF7305351771C78FA451F13AF5EEBFB360941A4396A805833730D" + "C6E534C62408B7C5076FC22568021C59ED34F98487196DA32078DAFCA37C" + "7CFB8E79612FA384963DF2167D5E87305D7BC92D621C10160672C27B9A69" + "1B1534F60D78C5893E40C5FF8A3F9DF8898612E9A5CCB56F4A0CC2A61A7A" + "EB04A9DCC015D9BC37DEF2AB9EAA9AAFD838869081D9249755F129BB0DBE" + "CA3B894975A65A36FD005CE77CD407E925D3172E33122A11D327968A08F8" + "E771FAEB2540EB52D17C4906405F47C31F60F0AF6C78AF53291B236E692B" + "506A2AF92AF43E3A81020301000128800130011280033A08A60418E5C81B" + "8D71A5C0A28C26999FF4FA992E14107CA8A9E6A2B36259834000FE35DCD8" + "14426F9C5D332418ED94C9C0C992217B1B6DC01C99085A3C3956C8267B87" + "73BABCF3F2C841C67D830F9DBC780DD68BF4E2FE424C6A54123BE4B2A1F7" + "E1F4DB58AB1164DAE9CF75C3392284A44B8CDB85D837E86C6B908243987E" + "552C8693878C9A1B7BEA3759783036F1595C406D6CBBA7F8642A9B3B244D" + "AA1F00531D0B908ADE4B533FD9FAFA21D0FB0C033D2AD5DDF24C60F4FAC3" + "0820758877F2E1A78EB44E9336DCFAFDF572BB22A84A5DEFDF2EB87B61DE" + "26EE9C4CEAA646A2AFDB2BB953845E6D7FE6F79A9501D1C379C96961316B" + "5D2A66F38C222091AF74141B6CAF93507485A5D8F82808025451824F00C8" + "B6A0CD5803F6564584138C8B18BC679B442D837307B5CC90B1FD1FD32288" + "B4A5D18D2D80E5E6A7A9EFD255B8B363038BCC67AF534EAEE4A5903E304E" + "ED4990BB5BE735DB027A6DE35329D321EC051B956C55A5B11674017517FC" + "C3C7FF7397C13A7B7087A1F6AEC7F6761A130A0C636F6D70616E795F6E61" + "6D6512034C47451A150A0A6D6F64656C5F6E616D6512074E657875732034" + "1A200A116172636869746563747572655F6E616D65120B61726D65616269" + "2D7637611A130A0B6465766963655F6E616D6512046D616B6F1A150A0C70" + "726F647563745F6E616D6512056F6363616D1A440A0A6275696C645F696E" + "666F1236676F6F676C652F6F6363616D2F6D616B6F3A342E332F4A425F4D" + "52322F3731343239313A7573657264656275672F6465762D6B6579731A21" + "0A096465766963655F696412144C474D4332303132313030353030363339" + "32373812250A230A14080112103031323334353637383941424344454610" + "021A09393837363534333231180120002A0C333934303739343733370000" + "30151A8002734FBDED946EB74A1B61811C4C4A491214F6BEA125A80F0141" + "65B28AA97AD0AF60E4D129EB7F424AD659F24E5EED4B702BEE328E38B72C" + "A6F38CD0ECFD2E6D7B98147744C9B8A9610B3BDFE17675FF7D584C5BF680" + "64B0FE513FC322C9148795E4C2F2443C3024F5C1F29E6FEFB6D77005DAB2" + "2CD2B63131908DE4D88795BB931CEA38452CC568BE25032245E372F07A12" + "97F51748C7EA02F2C88360AFE7ABBC71DCDD5366126258E5AFA27C2A20B3" + "39FA1E7AE925B494B361F6F7116F20BE8EE6E446146027F4FD4300F4A0B0" + "A3361EE34925F338D0AACF20AE919B4BAE81C1D57A8D2B8FA38732A57697" + "C316C180717C182A971C94E4AC4C7DF8F161CB8CC1"), + a2bs_hex("080212CC020A190A0939383736353433323112084B9F26DAB8B06E112002" + "2800124108011801301E4239687474703A2F2F6B69723033666370673137" + "342E7769646576696E652E6E65742F7769646576696E652F6367692D6269" + "6E2F64726D2E6367691A6612102531DFD6CCEA511D00F8C0172F1189AA1A" + "5057FF9D9DBD5A205B1DEB075E4A90467C1E074CDE6071BFF831AD590BD5" + "D117614F33CE2C3CE1824FC0D54B36ECEAE58DF5C8F9347C2FEED17A3327" + "E8F52B8ECA6313A1FA6A042EB9525DD328113C05F920011A7E0A10303132" + "3334353637383941424344454612106D23622142B58F6D1EDD33AF3ECD2C" + "7E1A20884EE13BEA9DECDDBF68B532131C82B11CEC4D23C7FA9F3EF4C5EE" + "172E7C9736200242340A2050BFE71BB1BA683E35E0B49BB33048E5103FBB" + "B9C3E1CD6EBCDA7DD485DBAF431210D69D6F14C95CB6CFDB998E50D00F4D" + "A020DBDFA68F051A20AE5D6895E70F86F42F5FE3C58A505A865D05AB94B1" + "ABAA6CC59C3322F61C458D228002331F2BE95B5C796E0921CC27A7295501" + "DA10044E5CA36C0E2866FF068EA3515A6786BD5D60D74D80C6BA8BE6AAD0" + "85AF967909A143171E9CDDE36EA528402867CD04FB6F97A150CDE55F9B81" + "9F4104BEF48E4280D76645569E10AEF524D34D865B5B9E3EBC66C45EEBBE" + "16AB04493E7AEC4F99E7A99F3FC08FA431BECCC1978A079FA4801DB75E13" + "29A9921604E6F80CB148AA2DD5C8348057E9F4FC2AEA57EA4D215D0A8D48" + "6294860DFB4F4C42D57D9542B76179E179DD4AA23F9F7B2AE432B39E4CE8" + "F156E84877DDA781AAAAFC797FF75AFE2019ADC3A2E419BF0253C705BD47" + "97A96866AC4C059AD8F2E9C6B617C60C6ADCDB894C25F0C7D29252F52FD5"), + a2bs_hex("08011231121D1A1B0A190A0939383736353433323112084B9F26DAB8B06E" + "112002280018022A0C31353532333030360000000030151A20C30375683C" + "4D2033E05DCC95DDFB278CFB5125A021C3C043A16ACC933A768A27"), + a2bs_hex("0802123B0A190A0939383736353433323112084B9F26DAB8B06E11200228" + "0112001A16200342120A106B63746C0000000000ECDCBE0000000020DBDF" + "A68F051A20182F029E35047A3841FA176C74E5B387350E8D58DEA6878FF0" + "BEA6CABACA1C2C"), + "https://test.google.com/license/GetCencLicense", + 0x0, + 0x0, + 0x0, + "", + "", + 0, a2bs_hex( "0AA8150802100122A1150801121408011210303132333435363738394142434445461" "A9D0E080112950C0AD70B080112EF090AB002080212103E560EC5335E346F591BC4D0" @@ -1156,14 +1142,14 @@ LicenseInfo license_app_parameters_backwards_compatibility_test_data = { "A176C74E5B387350E8D58DEA6878FF0BEA6CABACA1C2C3A2E68747470733A2F2F7465" "73742E676F6F676C652E636F6D2F6C6963656E73652F47657443656E634C6963656E7" "365400048001220CD0599C2B85D9F2D573AC7893CE77CB5A10B326828BA8C89047505" - "A8C9B606AC")}; + "A8C9B606AC")}; // kLicenseAppParametersBackwardsCompatibilityTestData struct DeviceFilesTestListUsageInfoData { std::string file_name; bool is_usage_info_file; }; -DeviceFilesTestListUsageInfoData kTestListUsageInfoData[] = { +const DeviceFilesTestListUsageInfoData kTestListUsageInfoData[] = { {"ksid056fe6e9c.lic", false}, {"usage.bin", true}, {"cert.bin", false}, {"usage345agdf==.bin", true}, {"usageyd6e.lic", false}, {"usgtable.bin", false}, @@ -1176,11 +1162,11 @@ struct UsageInfo { std::string file_data; }; -std::string kEmptyUsageInfoFileData = a2bs_hex( +const std::string kEmptyUsageInfoFileData = a2bs_hex( "0A06080310012A001220468A9A97B23D0E17147416276CB133175F0A18534155C6FFEF024A" "D80371D7C4"); -UsageInfo kUsageInfoTestData[] = { +const UsageInfo kUsageInfoTestData[] = { // test vector 0, app id: "", usage entry 0 {"", { @@ -1819,9 +1805,9 @@ UsageInfo kUsageInfoTestData[] = { "E0F5249CD19996DA674E33722902173D45D709914A3D7E898D93170317BFCFF34861C" "0D687048CC93542A75A2C99B2323FAFEA1EE0C3E3D24EDF263330071220B174821B32" "5B0A6A900AD8C660C755D3B0273CA6E81D70E2C548CDEC07BE53FA")}, -}; +}; // kUsageInfoTestData -DeviceFiles::CdmUsageData kUsageInfoUpdateTestData = { +const DeviceFiles::CdmUsageData kUsageInfoUpdateTestData = { a2bs_hex("b8e7f26b6b83d6b74386d1886d9888bd81fe3241bca928f09407329814ae" "5a82"), a2bs_hex("4463dc57079c27e34ae115c6f65b08f6311c4ea604a6512c42470b6f692a" @@ -1853,7 +1839,7 @@ DeviceFiles::CdmUsageData kUsageInfoUpdateTestData = { "003b12a3855016c8a03c9a406094d80059ef4ca26f1928fa2a3f0782c72d" "ba0e2228a70e2e150afb66e305e4bc0b2561ae2b"), 6, -}; +}; // kUsageInfoUpdateTestData struct HlsAttributesInfo { std::string key_set_id; @@ -1862,49 +1848,65 @@ struct HlsAttributesInfo { std::string file_data; }; -HlsAttributesInfo kHlsAttributesTestData[] = { +const HlsAttributesInfo kHlsAttributesTestData[] = { { - "ksidC8EAA2579A282EB0", kHlsMethodAes128, // hls attributes 0 + "ksidC8EAA2579A282EB0", + kHlsMethodAes128, // hls attributes 0 a2bs_hex("F7C4D15BD466BF285E241A4E58638543"), a2bs_hex("0A1A08041001321408011210F7C4D15BD466BF285E241A4E5863854312201" "39114B0372FF80FADF92614106E27BE8BD1588B4CAE6E1AEFB7F9C34EA52E" "CC"), }, { - "ksidE8C37662C88DC673", kHlsMethodSampleAes, // hls attributes 1 + "ksidE8C37662C88DC673", + kHlsMethodSampleAes, // hls attributes 1 a2bs_hex("16413F038088438B5D4CD99F03EBB3D8"), a2bs_hex("0A1A0804100132140802121016413F038088438B5D4CD99F03EBB3D812205" "9EA13188B75C55D1EB78B3A65DB3EA3F43BD1B16642266D988E3543943C5F" "41"), }}; +constexpr size_t kNumberOfHlsAttributes = ArraySize(kHlsAttributesTestData); + // Usage Table and Entry Test Data // Note: Make sure the number of entries in kUsageEntriesTestData and // kUsageTableInfoTestData are equal. -CdmUsageEntryInfo kUsageEntriesTestData[] = { +const CdmUsageEntryInfo kUsageEntriesTestData[] = { // usage entry 0 { - kStorageLicense, "ksid0", "", + kStorageLicense, + "ksid0", + "", }, // usage entry 1 { - kStorageLicense, "ksid1", "", + kStorageLicense, + "ksid1", + "", }, // usage entry 2 { - kStorageUsageInfo, "", "app_id_2", + kStorageUsageInfo, + "", + "app_id_2", }, // usage entry 3 { - kStorageUsageInfo, "", "app_id_3", + kStorageUsageInfo, + "", + "app_id_3", }, // usage entry 4 { - kStorageLicense, "ksid4", "", + kStorageLicense, + "ksid4", + "", }, // usage entry 5 { - kStorageUsageInfo, "", "app_id_5", + kStorageUsageInfo, + "", + "app_id_5", }, }; @@ -1914,7 +1916,7 @@ struct UsageTableTestInfo { std::string file_data; }; -UsageTableTestInfo kUsageTableInfoTestData[] = { +const UsageTableTestInfo kUsageTableInfoTestData[] = { // usage table 0 {a2bs_hex("5574517CCC"), @@ -1962,7 +1964,7 @@ UsageTableTestInfo kUsageTableInfoTestData[] = { class MockFile : public File { public: MockFile() {} - ~MockFile() override {} + ~MockFile() {} MOCK_METHOD2(Read, ssize_t(char*, size_t)); MOCK_METHOD2(Write, ssize_t(const char*, size_t)); @@ -2015,11 +2017,11 @@ class DeviceFilesTest : public ::testing::Test { &device_base_path_)); } - size_t GetLicenseDataSize(LicenseInfo& data) { + size_t GetLicenseDataSize(const LicenseInfo& data) { CdmAppParameterMap app_parameters = GetAppParameters(data.app_parameters); size_t app_parameters_len = 0; - CdmAppParameterMap::const_iterator itr = app_parameters.begin(); - for (itr = app_parameters.begin(); itr != app_parameters.end(); ++itr) { + for (auto itr = app_parameters.cbegin(); itr != app_parameters.cend(); + ++itr) { app_parameters_len += itr->first.length(); app_parameters_len += itr->second.length(); } @@ -2071,7 +2073,7 @@ class DeviceFilesUsageInfoTest : public DeviceFilesTest, class DeviceFilesHlsAttributesTest : public DeviceFilesTest, - public ::testing::WithParamInterface {}; + public ::testing::WithParamInterface {}; class DeviceFilesUsageTableTest : public DeviceFilesTest, public ::testing::WithParamInterface {}; @@ -2268,26 +2270,26 @@ TEST_P(DeviceFilesStoreTest, StoreLicense) { MockFileSystem file_system; size_t license_num = 0; std::string license_path = device_base_path_ + - license_test_data[license_num].key_set_id + + kLicenseTestData[license_num].key_set_id + DeviceFiles::GetLicenseFileNameExtension(); CdmAppParameterMap app_parameters = - GetAppParameters(license_test_data[license_num].app_parameters); + GetAppParameters(kLicenseTestData[license_num].app_parameters); // Call to Open will return a unique_ptr, freeing this object. MockFile* file = new MockFile(); EXPECT_CALL(file_system, DoOpen(StrEq(license_path), IsCreateFileFlagSet())) .WillOnce(Return(file)); EXPECT_CALL( - *file, Write(Contains(license_test_data[license_num].pssh_data, - license_test_data[license_num].key_request, - license_test_data[license_num].key_response, - license_test_data[license_num].key_renewal_request, - license_test_data[license_num].key_renewal_response, - license_test_data[license_num].key_release_url, - app_parameters, - license_test_data[license_num].usage_entry), - Gt(GetLicenseDataSize(license_test_data[license_num])))) + *file, + Write(Contains(kLicenseTestData[license_num].pssh_data, + kLicenseTestData[license_num].key_request, + kLicenseTestData[license_num].key_response, + kLicenseTestData[license_num].key_renewal_request, + kLicenseTestData[license_num].key_renewal_response, + kLicenseTestData[license_num].key_release_url, + app_parameters, kLicenseTestData[license_num].usage_entry), + Gt(GetLicenseDataSize(kLicenseTestData[license_num])))) .WillOnce(ReturnArg<1>()); EXPECT_CALL(*file, Read(_, _)).Times(0); @@ -2295,20 +2297,20 @@ TEST_P(DeviceFilesStoreTest, StoreLicense) { DeviceFiles device_files(&file_system); EXPECT_TRUE(device_files.Init(kSecurityLevelL1)); DeviceFiles::CdmLicenseData license_data{ - license_test_data[license_num].key_set_id, - license_test_data[license_num].license_state, - license_test_data[license_num].pssh_data, - license_test_data[license_num].key_request, - license_test_data[license_num].key_response, - license_test_data[license_num].key_renewal_request, - license_test_data[license_num].key_renewal_response, - license_test_data[license_num].key_release_url, - license_test_data[license_num].playback_start_time, - license_test_data[license_num].last_playback_time, - license_test_data[license_num].grace_period_end_time, + kLicenseTestData[license_num].key_set_id, + kLicenseTestData[license_num].license_state, + kLicenseTestData[license_num].pssh_data, + kLicenseTestData[license_num].key_request, + kLicenseTestData[license_num].key_response, + kLicenseTestData[license_num].key_renewal_request, + kLicenseTestData[license_num].key_renewal_response, + kLicenseTestData[license_num].key_release_url, + kLicenseTestData[license_num].playback_start_time, + kLicenseTestData[license_num].last_playback_time, + kLicenseTestData[license_num].grace_period_end_time, app_parameters, - license_test_data[license_num].usage_entry, - license_test_data[license_num].usage_entry_number}; + kLicenseTestData[license_num].usage_entry, + kLicenseTestData[license_num].usage_entry_number}; EXPECT_TRUE(device_files.StoreLicense(license_data, &sub_error_code)); EXPECT_EQ(DeviceFiles::kNoError, sub_error_code); } @@ -2320,26 +2322,26 @@ TEST_F(DeviceFilesTest, StoreLicenses) { for (size_t i = 0; i < kNumberOfLicenses; ++i) { std::string license_path = device_base_path_ + - license_test_data[i].key_set_id + + kLicenseTestData[i].key_set_id + DeviceFiles::GetLicenseFileNameExtension(); CdmAppParameterMap app_parameters = - GetAppParameters(license_test_data[i].app_parameters); + GetAppParameters(kLicenseTestData[i].app_parameters); // Call to Open will return a unique_ptr, freeing this object. MockFile* file = new MockFile(); EXPECT_CALL(file_system, DoOpen(StrEq(license_path), IsCreateFileFlagSet())) .WillOnce(Return(file)); - EXPECT_CALL( - *file, Write(Contains(license_test_data[i].pssh_data, - license_test_data[i].key_request, - license_test_data[i].key_response, - license_test_data[i].key_renewal_request, - license_test_data[i].key_renewal_response, - license_test_data[i].key_release_url, - app_parameters, license_test_data[i].usage_entry), - Gt(GetLicenseDataSize(license_test_data[i])))) + EXPECT_CALL(*file, + Write(Contains(kLicenseTestData[i].pssh_data, + kLicenseTestData[i].key_request, + kLicenseTestData[i].key_response, + kLicenseTestData[i].key_renewal_request, + kLicenseTestData[i].key_renewal_response, + kLicenseTestData[i].key_release_url, + app_parameters, kLicenseTestData[i].usage_entry), + Gt(GetLicenseDataSize(kLicenseTestData[i])))) .WillOnce(ReturnArg<1>()); EXPECT_CALL(*file, Read(_, _)).Times(0); } @@ -2349,23 +2351,23 @@ TEST_F(DeviceFilesTest, StoreLicenses) { EXPECT_TRUE(device_files.Init(kSecurityLevelL1)); for (size_t i = 0; i < kNumberOfLicenses; i++) { CdmAppParameterMap app_parameters = - GetAppParameters(license_test_data[i].app_parameters); + GetAppParameters(kLicenseTestData[i].app_parameters); DeviceFiles::CdmLicenseData license_data{ - license_test_data[i].key_set_id, - license_test_data[i].license_state, - license_test_data[i].pssh_data, - license_test_data[i].key_request, - license_test_data[i].key_response, - license_test_data[i].key_renewal_request, - license_test_data[i].key_renewal_response, - license_test_data[i].key_release_url, - license_test_data[i].playback_start_time, - license_test_data[i].last_playback_time, - license_test_data[i].grace_period_end_time, + kLicenseTestData[i].key_set_id, + kLicenseTestData[i].license_state, + kLicenseTestData[i].pssh_data, + kLicenseTestData[i].key_request, + kLicenseTestData[i].key_response, + kLicenseTestData[i].key_renewal_request, + kLicenseTestData[i].key_renewal_response, + kLicenseTestData[i].key_release_url, + kLicenseTestData[i].playback_start_time, + kLicenseTestData[i].last_playback_time, + kLicenseTestData[i].grace_period_end_time, app_parameters, - license_test_data[i].usage_entry, - license_test_data[i].usage_entry_number}; + kLicenseTestData[i].usage_entry, + kLicenseTestData[i].usage_entry_number}; EXPECT_TRUE(device_files.StoreLicense(license_data, &sub_error_code)); EXPECT_EQ(DeviceFiles::kNoError, sub_error_code); } @@ -2376,10 +2378,10 @@ TEST_F(DeviceFilesTest, RetrieveLicenses) { for (size_t i = 0; i < kNumberOfLicenses; ++i) { std::string license_path = device_base_path_ + - license_test_data[i].key_set_id + + kLicenseTestData[i].key_set_id + DeviceFiles::GetLicenseFileNameExtension(); - size_t size = license_test_data[i].file_data.size(); + size_t size = kLicenseTestData[i].file_data.size(); // Call to Open will return a unique_ptr, freeing this object. MockFile* file = new MockFile(); @@ -2392,8 +2394,8 @@ TEST_F(DeviceFilesTest, RetrieveLicenses) { .WillOnce(Return(file)); EXPECT_CALL(*file, Read(NotNull(), Eq(size))) .WillOnce( - DoAll(SetArrayArgument<0>(license_test_data[i].file_data.begin(), - license_test_data[i].file_data.end()), + DoAll(SetArrayArgument<0>(kLicenseTestData[i].file_data.begin(), + kLicenseTestData[i].file_data.end()), Return(size))); EXPECT_CALL(*file, Write(_, _)).Times(0); } @@ -2404,25 +2406,25 @@ TEST_F(DeviceFilesTest, RetrieveLicenses) { DeviceFiles::ResponseType sub_error_code; for (size_t i = 0; i < kNumberOfLicenses; i++) { - EXPECT_TRUE(device_files.RetrieveLicense(license_test_data[i].key_set_id, + EXPECT_TRUE(device_files.RetrieveLicense(kLicenseTestData[i].key_set_id, &license_data, &sub_error_code)); - EXPECT_EQ(license_test_data[i].key_set_id, license_data.key_set_id); - EXPECT_EQ(license_test_data[i].license_state, license_data.state); - EXPECT_EQ(license_test_data[i].pssh_data, license_data.pssh_data); - EXPECT_EQ(license_test_data[i].key_request, license_data.license_request); - EXPECT_EQ(license_test_data[i].key_response, license_data.license); - EXPECT_EQ(license_test_data[i].key_renewal_request, + EXPECT_EQ(kLicenseTestData[i].key_set_id, license_data.key_set_id); + EXPECT_EQ(kLicenseTestData[i].license_state, license_data.state); + EXPECT_EQ(kLicenseTestData[i].pssh_data, license_data.pssh_data); + EXPECT_EQ(kLicenseTestData[i].key_request, license_data.license_request); + EXPECT_EQ(kLicenseTestData[i].key_response, license_data.license); + EXPECT_EQ(kLicenseTestData[i].key_renewal_request, license_data.license_renewal_request); - EXPECT_EQ(license_test_data[i].key_renewal_response, + EXPECT_EQ(kLicenseTestData[i].key_renewal_response, license_data.license_renewal); - EXPECT_EQ(license_test_data[i].playback_start_time, + EXPECT_EQ(kLicenseTestData[i].playback_start_time, license_data.playback_start_time); - EXPECT_EQ(license_test_data[i].last_playback_time, + EXPECT_EQ(kLicenseTestData[i].last_playback_time, license_data.last_playback_time); - EXPECT_EQ(license_test_data[i].grace_period_end_time, + EXPECT_EQ(kLicenseTestData[i].grace_period_end_time, license_data.grace_period_end_time); - EXPECT_EQ(license_test_data[i].usage_entry, license_data.usage_entry); - EXPECT_EQ(license_test_data[i].usage_entry_number, + EXPECT_EQ(kLicenseTestData[i].usage_entry, license_data.usage_entry); + EXPECT_EQ(kLicenseTestData[i].usage_entry_number, license_data.usage_entry_number); EXPECT_EQ(DeviceFiles::kNoError, sub_error_code); @@ -2430,17 +2432,17 @@ TEST_F(DeviceFilesTest, RetrieveLicenses) { for (itr = license_data.app_parameters.begin(); itr != license_data.app_parameters.end(); ++itr) { EXPECT_NE(std::string::npos, - license_test_data[i].app_parameters.find(itr->first)); + kLicenseTestData[i].app_parameters.find(itr->first)); EXPECT_NE(std::string::npos, - license_test_data[i].app_parameters.find(itr->second)); + kLicenseTestData[i].app_parameters.find(itr->second)); } } } TEST_F(DeviceFilesTest, AppParametersBackwardCompatibility) { MockFileSystem file_system; - LicenseInfo* test_data = - &license_app_parameters_backwards_compatibility_test_data; + const LicenseInfo* test_data = + &kLicenseAppParametersBackwardsCompatibilityTestData; std::string license_path = device_base_path_ + test_data->key_set_id + DeviceFiles::GetLicenseFileNameExtension(); @@ -2488,36 +2490,36 @@ TEST_F(DeviceFilesTest, AppParametersBackwardCompatibility) { TEST_F(DeviceFilesTest, UpdateLicenseState) { MockFileSystem file_system; std::string license_path = device_base_path_ + - license_update_test_data[0].key_set_id + + kLicenseUpdateTestData[0].key_set_id + DeviceFiles::GetLicenseFileNameExtension(); DeviceFiles device_files(&file_system); EXPECT_TRUE(device_files.Init(kSecurityLevelL1)); - for (size_t i = 0; i < ArraySize(license_update_test_data); i++) { + for (size_t i = 0; i < ArraySize(kLicenseUpdateTestData); i++) { // Call to Open will return a unique_ptr, freeing this object. MockFile* file = new MockFile(); EXPECT_CALL(file_system, DoOpen(StrEq(license_path), IsCreateFileFlagSet())) .WillOnce(Return(file)); - EXPECT_CALL(*file, Write(IsStrEq(license_update_test_data[i].file_data), - Eq(license_update_test_data[i].file_data.size()))) + EXPECT_CALL(*file, Write(IsStrEq(kLicenseUpdateTestData[i].file_data), + Eq(kLicenseUpdateTestData[i].file_data.size()))) .WillOnce(ReturnArg<1>()); EXPECT_CALL(*file, Read(_, _)).Times(0); DeviceFiles::CdmLicenseData license_data{ - license_update_test_data[0].key_set_id, - license_update_test_data[i].license_state, - license_update_test_data[0].pssh_data, - license_update_test_data[0].key_request, - license_update_test_data[0].key_response, - license_update_test_data[0].key_renewal_request, - license_update_test_data[0].key_renewal_response, - license_update_test_data[0].key_release_url, - license_update_test_data[0].playback_start_time, - license_update_test_data[0].last_playback_time, - license_update_test_data[0].grace_period_end_time, - GetAppParameters(license_test_data[0].app_parameters), - license_update_test_data[0].usage_entry, - license_update_test_data[0].usage_entry_number}; + kLicenseUpdateTestData[0].key_set_id, + kLicenseUpdateTestData[i].license_state, + kLicenseUpdateTestData[0].pssh_data, + kLicenseUpdateTestData[0].key_request, + kLicenseUpdateTestData[0].key_response, + kLicenseUpdateTestData[0].key_renewal_request, + kLicenseUpdateTestData[0].key_renewal_response, + kLicenseUpdateTestData[0].key_release_url, + kLicenseUpdateTestData[0].playback_start_time, + kLicenseUpdateTestData[0].last_playback_time, + kLicenseUpdateTestData[0].grace_period_end_time, + GetAppParameters(kLicenseTestData[0].app_parameters), + kLicenseUpdateTestData[0].usage_entry, + kLicenseUpdateTestData[0].usage_entry_number}; DeviceFiles::ResponseType sub_error_code; EXPECT_TRUE(device_files.StoreLicense(license_data, &sub_error_code)); EXPECT_EQ(DeviceFiles::kNoError, sub_error_code); @@ -2527,10 +2529,10 @@ TEST_F(DeviceFilesTest, UpdateLicenseState) { TEST_F(DeviceFilesTest, DeleteLicense) { MockFileSystem file_system; std::string license_path = device_base_path_ + - license_test_data[0].key_set_id + + kLicenseTestData[0].key_set_id + DeviceFiles::GetLicenseFileNameExtension(); - size_t size = license_test_data[0].file_data.size(); + size_t size = kLicenseTestData[0].file_data.size(); // Call to Open will return a unique_ptr, freeing this object. MockFile* file = new MockFile(); @@ -2543,10 +2545,9 @@ TEST_F(DeviceFilesTest, DeleteLicense) { EXPECT_CALL(file_system, DoOpen(StrEq(license_path), _)) .WillOnce(Return(file)); EXPECT_CALL(*file, Read(NotNull(), Eq(size))) - .WillOnce( - DoAll(SetArrayArgument<0>(license_test_data[0].file_data.begin(), - license_test_data[0].file_data.end()), - Return(size))); + .WillOnce(DoAll(SetArrayArgument<0>(kLicenseTestData[0].file_data.begin(), + kLicenseTestData[0].file_data.end()), + Return(size))); EXPECT_CALL(file_system, Remove(StrEq(license_path))).WillOnce(Return(true)); EXPECT_CALL(*file, Write(_, _)).Times(0); @@ -2555,38 +2556,38 @@ TEST_F(DeviceFilesTest, DeleteLicense) { DeviceFiles::CdmLicenseData license_data; DeviceFiles::ResponseType sub_error_code; - EXPECT_TRUE(device_files.RetrieveLicense(license_test_data[0].key_set_id, + EXPECT_TRUE(device_files.RetrieveLicense(kLicenseTestData[0].key_set_id, &license_data, &sub_error_code)); - EXPECT_EQ(license_test_data[0].key_set_id, license_data.key_set_id); - EXPECT_EQ(license_test_data[0].license_state, license_data.state); - EXPECT_EQ(license_test_data[0].pssh_data, license_data.pssh_data); - EXPECT_EQ(license_test_data[0].key_request, license_data.license_request); - EXPECT_EQ(license_test_data[0].key_response, license_data.license); - EXPECT_EQ(license_test_data[0].key_renewal_request, + EXPECT_EQ(kLicenseTestData[0].key_set_id, license_data.key_set_id); + EXPECT_EQ(kLicenseTestData[0].license_state, license_data.state); + EXPECT_EQ(kLicenseTestData[0].pssh_data, license_data.pssh_data); + EXPECT_EQ(kLicenseTestData[0].key_request, license_data.license_request); + EXPECT_EQ(kLicenseTestData[0].key_response, license_data.license); + EXPECT_EQ(kLicenseTestData[0].key_renewal_request, license_data.license_renewal_request); - EXPECT_EQ(license_test_data[0].key_renewal_response, + EXPECT_EQ(kLicenseTestData[0].key_renewal_response, license_data.license_renewal); - EXPECT_EQ(license_test_data[0].playback_start_time, + EXPECT_EQ(kLicenseTestData[0].playback_start_time, license_data.playback_start_time); - EXPECT_EQ(license_test_data[0].last_playback_time, + EXPECT_EQ(kLicenseTestData[0].last_playback_time, license_data.last_playback_time); - EXPECT_EQ(license_test_data[0].grace_period_end_time, + EXPECT_EQ(kLicenseTestData[0].grace_period_end_time, license_data.grace_period_end_time); std::map::iterator itr; for (itr = license_data.app_parameters.begin(); itr != license_data.app_parameters.end(); ++itr) { - EXPECT_NE(license_test_data[0].app_parameters.find(itr->first), + EXPECT_NE(kLicenseTestData[0].app_parameters.find(itr->first), std::string::npos); - EXPECT_NE(license_test_data[0].app_parameters.find(itr->second), + EXPECT_NE(kLicenseTestData[0].app_parameters.find(itr->second), std::string::npos); } - EXPECT_EQ(license_test_data[0].usage_entry, license_data.usage_entry); - EXPECT_EQ(license_test_data[0].usage_entry_number, + EXPECT_EQ(kLicenseTestData[0].usage_entry, license_data.usage_entry); + EXPECT_EQ(kLicenseTestData[0].usage_entry_number, license_data.usage_entry_number); EXPECT_EQ(DeviceFiles::kNoError, sub_error_code); - EXPECT_TRUE(device_files.DeleteLicense(license_test_data[0].key_set_id)); - EXPECT_FALSE(device_files.LicenseExists(license_test_data[0].key_set_id)); + EXPECT_TRUE(device_files.DeleteLicense(kLicenseTestData[0].key_set_id)); + EXPECT_FALSE(device_files.LicenseExists(kLicenseTestData[0].key_set_id)); } TEST_F(DeviceFilesTest, ReserveLicenseIdsDoesNotUseFileSystem) { @@ -2597,11 +2598,12 @@ TEST_F(DeviceFilesTest, ReserveLicenseIdsDoesNotUseFileSystem) { DeviceFiles device_files(&file_system); EXPECT_TRUE(device_files.Init(kSecurityLevelL1)); for (size_t i = 0; i < kNumberOfLicenses; i++) { - EXPECT_TRUE(device_files.ReserveLicenseId(license_test_data[i].key_set_id)); + EXPECT_TRUE(device_files.ReserveLicenseId(kLicenseTestData[i].key_set_id)); // Validate that the license IDs are actually reserved. - EXPECT_TRUE(device_files.LicenseExists(license_test_data[i].key_set_id)); + EXPECT_TRUE(device_files.LicenseExists(kLicenseTestData[i].key_set_id)); // Unreserve these IDs to avoid polluting other tests. - EXPECT_TRUE(device_files.UnreserveLicenseId(license_test_data[i].key_set_id)); + EXPECT_TRUE( + device_files.UnreserveLicenseId(kLicenseTestData[i].key_set_id)); } } @@ -3083,7 +3085,8 @@ TEST_P(DeviceFilesHlsAttributesTest, Read) { MockFileSystem file_system; // Call to Open will return a unique_ptr, freeing this object. MockFile* file = new MockFile(); - HlsAttributesInfo* param = GetParam(); + const size_t hls_attribute_index = GetParam(); + const HlsAttributesInfo* param = &kHlsAttributesTestData[hls_attribute_index]; std::string path = device_base_path_ + param->key_set_id + DeviceFiles::GetHlsAttributesFileNameExtension(); @@ -3113,7 +3116,8 @@ TEST_P(DeviceFilesHlsAttributesTest, Store) { MockFileSystem file_system; // Call to Open will return a unique_ptr, freeing this object. MockFile* file = new MockFile(); - HlsAttributesInfo* param = GetParam(); + const size_t hls_attribute_index = GetParam(); + const HlsAttributesInfo* param = &kHlsAttributesTestData[hls_attribute_index]; std::string path = device_base_path_ + param->key_set_id + DeviceFiles::GetHlsAttributesFileNameExtension(); @@ -3134,7 +3138,8 @@ TEST_P(DeviceFilesHlsAttributesTest, Store) { TEST_P(DeviceFilesHlsAttributesTest, Delete) { MockFileSystem file_system; - HlsAttributesInfo* param = GetParam(); + const size_t hls_attribute_index = GetParam(); + const HlsAttributesInfo* param = &kHlsAttributesTestData[hls_attribute_index]; std::string path = device_base_path_ + param->key_set_id + DeviceFiles::GetHlsAttributesFileNameExtension(); @@ -3146,8 +3151,7 @@ TEST_P(DeviceFilesHlsAttributesTest, Delete) { } INSTANTIATE_TEST_CASE_P(HlsAttributes, DeviceFilesHlsAttributesTest, - ::testing::Range(&kHlsAttributesTestData[0], - &kHlsAttributesTestData[2])); + ::testing::Range(0, kNumberOfHlsAttributes)); TEST_P(DeviceFilesUsageTableTest, Store) { MockFileSystem file_system; diff --git a/libwvdrmengine/cdm/core/test/initialization_data_unittest.cpp b/libwvdrmengine/cdm/core/test/initialization_data_unittest.cpp index 5ecfcef0..3af92cbf 100644 --- a/libwvdrmengine/cdm/core/test/initialization_data_unittest.cpp +++ b/libwvdrmengine/cdm/core/test/initialization_data_unittest.cpp @@ -442,6 +442,8 @@ std::string InsertHlsAttributeInList(const std::string key, "=" + kHlsTestValue2; } +} // namespace + struct HlsInitDataVariant { HlsInitDataVariant(CdmHlsMethod method, const std::string& provider, const std::string& content_id, const std::string& key_id, @@ -499,7 +501,6 @@ class HlsParseTest : public ::testing::TestWithParam {}; class HlsTest : public ::testing::Test {}; -} // namespace TEST_F(InitializationDataTest, BadType) { InitializationData init_data("bad", kWidevinePssh);