Add certificate information to Usage Information
[ Merge of http://go/wvgerrit/120509 ] Certificates and wrapped key material are stored in the usage information file but apart from usage information records. Usage info records include an identifier which indicates the associated certificate. Routines to help with finding, inserting or removal of associated certificates have been included. After a usage entry is deleted, a garbage collection routine is run to remove any certificates not used by usage infomation records. Bug: 169740403 Test: WV unit/integration tests Change-Id: I49075a7704a58c2488b73eb7c38b007958af566d
This commit is contained in:
@@ -27,6 +27,14 @@ namespace {
|
||||
const uint32_t kCertificateLen = 700;
|
||||
const uint32_t kWrappedKeyLen = 500;
|
||||
constexpr size_t kZero = 0;
|
||||
const std::string kDrmCertificate = "a drm certificate";
|
||||
const std::string kAnotherDrmCertificate = "another drm certificate";
|
||||
const std::string kWrappedPrivateKey = "a wrapped private key";
|
||||
const std::string kAnotherWrappedPrivateKey = "another wrapped private key";
|
||||
const CryptoWrappedKey kCryptoWrappedKey(CryptoWrappedKey::kRsa,
|
||||
kWrappedPrivateKey);
|
||||
const CryptoWrappedKey kAnotherCryptoWrappedKey(CryptoWrappedKey::kEcc,
|
||||
kAnotherWrappedPrivateKey);
|
||||
|
||||
const std::string kEmptyString;
|
||||
|
||||
@@ -2929,6 +2937,8 @@ const UsageInfo kUsageInfoTestData[] = {
|
||||
"003b12a38554336305525fa6ab70f024a18c73631bb1531eca3f0782c72d"
|
||||
"ba017311b3f1e98c739632e305e4bc0b2561ae2b"),
|
||||
5,
|
||||
kEmptyString,
|
||||
CryptoWrappedKey(),
|
||||
},
|
||||
a2bs_hex(
|
||||
"0AA407080310012A9D070A9A070A20B8E7F26B6B8B59BABF05B5A1F8927B412A85BC8"
|
||||
@@ -2989,6 +2999,8 @@ const UsageInfo kUsageInfoTestData[] = {
|
||||
"335611bf3bf1a1c89e2dea27c17a9d9a58a74121e840b002e8a6fb590072"
|
||||
"45be786c1f64"),
|
||||
9,
|
||||
kEmptyString,
|
||||
CryptoWrappedKey(),
|
||||
},
|
||||
a2bs_hex(
|
||||
"0AE80C080310012AE10C0A9A070A20B8E7F26B6B8B59BABF05B5A1F8927B412A85BC8"
|
||||
@@ -3067,6 +3079,8 @@ const UsageInfo kUsageInfoTestData[] = {
|
||||
"41e610d1efb56ed7ce2228a70e2e150afb66edc2da066d463aa90ba0caff"
|
||||
"078fbfec05c8"),
|
||||
0,
|
||||
kEmptyString,
|
||||
CryptoWrappedKey(),
|
||||
},
|
||||
a2bs_hex("0AF404080310012AED040AEA040A20BB3370CCD3C3C49573D6B74386D1886D98"
|
||||
"88BD81FE3241BCD2BAC9407D1A834E12C001DC0E51CFA5863F6C0B32A4AD7FA4"
|
||||
@@ -3115,6 +3129,8 @@ const UsageInfo kUsageInfoTestData[] = {
|
||||
"9b17eaf020cede0a9e0e7b5d91e4db7abdce445936cb2deecdefefdb14b7"
|
||||
"8f67b7ca5c733c9e88446fd814584584b86becbf6eb2b0e3d5603e8b"),
|
||||
25,
|
||||
kEmptyString,
|
||||
CryptoWrappedKey(),
|
||||
},
|
||||
a2bs_hex(
|
||||
"0AE604080310012ADF040ADC040A1E9212A6926F21C6727C1EE89D5607047A1636F20"
|
||||
@@ -3163,6 +3179,8 @@ const UsageInfo kUsageInfoTestData[] = {
|
||||
"fd5ed05887b8fa3bfd6ecc7bc91e621342732062d2f4411b763e20328af6"
|
||||
"f8ef5030e2f8027aef9e"),
|
||||
6,
|
||||
kEmptyString,
|
||||
CryptoWrappedKey(),
|
||||
},
|
||||
a2bs_hex(
|
||||
"0AE809080310012AE1090ADC040A1E9212A6926F21C6727C1EE89D5607047A1636F20"
|
||||
@@ -3231,9 +3249,11 @@ const UsageInfo kUsageInfoTestData[] = {
|
||||
"4ac5bb1da69acb44da06e4522c9a93d310cdda5dac1e1e0b91abff41e4e2"
|
||||
"edda4001"),
|
||||
7,
|
||||
kDrmCertificate,
|
||||
kCryptoWrappedKey,
|
||||
},
|
||||
a2bs_hex(
|
||||
"0AEC09080310012AE5090AEA040A20BB3370CCD3C3C49573D6B74386D1886D9888BD8"
|
||||
"0AA00A080310012A990A0AEA040A20BB3370CCD3C3C49573D6B74386D1886D9888BD8"
|
||||
"1FE3241BCD2BAC9407D1A834E12C001DC0E51CFA5863F6C0B32A4AD7FA40625DADCC2"
|
||||
"DCDE9E7FA3983B8804D9966803181682FC8AE831472E0B2FC26276242FBCE624D286E"
|
||||
"EDECCE5555804913B4F8F86C5AE86160B8434B109169A63DA04C5265102D772C11805"
|
||||
@@ -3251,7 +3271,7 @@ const UsageInfo kUsageInfoTestData[] = {
|
||||
"3646535343430383365663465652A60EA106C124476B753D39368A5966972A2729BB8"
|
||||
"BBEA734A2B3E812B705EACE016C8A03C9A406094D80059EF4CA26F1928FA2DAA5DE9A"
|
||||
"6F22372E5C7A941E610D1EFB56ED7CE2228A70E2E150AFB66EDC2DA066D463AA90BA0"
|
||||
"CAFF078FBFEC05C830000AF5040A21EACE80E30BFDA213F1CE4DBCFD9D4D24B8E2AE0"
|
||||
"CAFF078FBFEC05C830000AF7040A21EACE80E30BFDA213F1CE4DBCFD9D4D24B8E2AE0"
|
||||
"0054D167D9D7AE99547062B911312B40168A7665A21348FC0590328608DC520BE40F5"
|
||||
"B749328568FE383EF69C1A587AB2446CF9C41D821373D0856A883B316519A42218F80"
|
||||
"E7BD5764D16BAC9A9B427A7278F5940E563FCF6DEE0FF3AADBB702EBF2C54EC354AE7"
|
||||
@@ -3261,16 +3281,18 @@ const UsageInfo kUsageInfoTestData[] = {
|
||||
"12A2D6DCB15383A6D9AF4519EF804C6053A10C436002DE3A4EFCC017755F4AD1101BD"
|
||||
"C813E2D211732418DEE529CBB413C48AA5884C76A5C6F556A715055560D4247F5BF31"
|
||||
"0956949A3A171A4AA608A48446884E7676D558FF64D392B84E617805693D90F1E9B7B"
|
||||
"540C383D384D7F7CE06C23618681BD838CEB1A514047F1C562C43159CC5E21588FBFC"
|
||||
"E8A354111160F1A1E2BD3D798A000579BDFDB977252809EE1502DF8045972FE8AAC84"
|
||||
"0211C2F8D9E4D5BE18509C327C647D654C4B6CC430B98F1FF37C96FAB087FB561B8CC"
|
||||
"18480F877C873594D3148FF74B0E3C6327C27CA876DAE7422398FC5E85269CBA49AD0"
|
||||
"99221C6B7369643865383033353063626566363436336130303235653663632A7C7CC"
|
||||
"C7CE96055E16A52FA192EA2CF3C9DF3E89B9133A52286F71E6C6D82D0435F6B2155DF"
|
||||
"DE590B347D8C86F62D7DFBAAE640C237256F609E5DA9CC6C103465FE3441612BBDFDF"
|
||||
"4D1C24B2147FEB8565CEF4993E439C9D564A39A4AC5BB1DA69ACB44DA06E4522C9A93"
|
||||
"D310CDDA5DAC1E1E0B91ABFF41E4E2EDDA40013007122062B0F22E176F77881114844"
|
||||
"DABC6F0EB0F80381D8A06ECDF09913A5CF8E85B3F")},
|
||||
"540C383D384D7F7CE06C23618681BD838CEB1A514047F1C562C43159CC5E21588FBF"
|
||||
"CE8A354111160F1A1E2BD3D798A000579BDFDB977252809EE1502DF8045972FE8AAC8"
|
||||
"40211C2F8D9E4D5BE18509C327C647D654C4B6CC430B98F1FF37C96FAB087FB561B8C"
|
||||
"C18480F877C873594D3148FF74B0E3C6327C27CA876DAE7422398FC5E85269CBA49AD"
|
||||
"099221C6B7369643865383033353063626566363436336130303235653663632A7C7C"
|
||||
"CC7CE96055E16A52FA192EA2CF3C9DF3E89B9133A52286F71E6C6D82D0435F6B2155D"
|
||||
"FDE590B347D8C86F62D7DFBAAE640C237256F609E5DA9CC6C103465FE3441612BBDFD"
|
||||
"F4D1C24B2147FEB8565CEF4993E439C9D564A39A4AC5BB1DA69ACB44DA06E4522C9A9"
|
||||
"3D310CDDA5DAC1E1E0B91ABFF41E4E2EDDA40013007380012300800122C0A11612064"
|
||||
"726D20636572746966696361746512156120777261707065642070726976617465206"
|
||||
"B657918001220BD67878F6AA958EC6996061F69BF65E9806221BCA1CF26FFA4BF1D0B"
|
||||
"4ECE8806")},
|
||||
// test vector 6, app id: "", usage entry 2
|
||||
{"",
|
||||
{
|
||||
@@ -3297,6 +3319,8 @@ const UsageInfo kUsageInfoTestData[] = {
|
||||
"a96388bf6be3c4f4f0b7e2f59efc6b8e965d8fadd5ab86b2bb816d2573ec"
|
||||
"36eb42b571297681be152d40639d"),
|
||||
0,
|
||||
kEmptyString,
|
||||
CryptoWrappedKey(),
|
||||
},
|
||||
a2bs_hex(
|
||||
"0ADA11080310012AD3110A9A070A20B8E7F26B6B8B59BABF05B5A1F8927B412A85BC8"
|
||||
@@ -3391,9 +3415,11 @@ const UsageInfo kUsageInfoTestData[] = {
|
||||
"a6b634d840925f711ae330599f0e0863800902b05d201a8a87b88a4bc170"
|
||||
"65a1a8a556c34bf86b53afcc9951be15bea9ab55"),
|
||||
27,
|
||||
kAnotherDrmCertificate,
|
||||
kAnotherCryptoWrappedKey,
|
||||
},
|
||||
a2bs_hex(
|
||||
"0AB60E080310012AAF0E0ADC040A1E9212A6926F21C6727C1EE89D5607047A1636F20"
|
||||
"0AF60E080310012AEF0E0ADC040A1E9212A6926F21C6727C1EE89D5607047A1636F20"
|
||||
"6F70E21FDA86E01B6A4B512A401EF947ABED64078EDF5B21FE6D3FB65384595D63A6D"
|
||||
"03E4D1D397C5019DEEB6890D3EF8773002B91E255AF0820FB594069DF55D8ABF96498"
|
||||
"E493F5C70F6B85F50E12A1ED3C039AD0CD838FE44D3FA9E2BBDDEB2919041203111ED"
|
||||
@@ -3421,33 +3447,35 @@ const UsageInfo kUsageInfoTestData[] = {
|
||||
"6A462DEF7A18A7D0ACEBF9F6E8A604356ADE2C81450C5466A472890B03EEFCF65388F"
|
||||
"060E24551C67B7D46AE5D4D841D5CC63D137FD543FAE2C771756590B90E480CA0126F"
|
||||
"1FC0090ACE62499E47569FC52196C788F80139755BDF12A7ACB29FD6E23A46A4C036F"
|
||||
"04FF1ED6CD714094253BF1C58762C93F0DDF8A73C4BE927FFEC2723A16D8FFE512885"
|
||||
"1F58537461275F6AA1976E3B399B7243919207E040EC16C5328E8AB082278FCE0E5D3"
|
||||
"DF5C5F92DBA51FA6613587D4ECE31F2C001B49BFAED434F9512E895C2E09C88DDBF18"
|
||||
"4BFAFE4D82E5D05A26AC06CDE29FAF6AB05B96685649C923779CE5EF7F316531ADA8E"
|
||||
"74E45AB1DC1D75648AA2DE052674728867E87639FF9B782A3322186B7369646531643"
|
||||
"3306233336235356632646562343731362A64D44A9D70A7C582559F089B1C0FDFCBDA"
|
||||
"F5E26B672FCA5D58E889B407A0BA8599079CDE11FADFAB23AA1B97622839F3B7E1A96"
|
||||
"F8332BEC5FBCBC9EB64FD5ED05887B8FA3BFD6ECC7BC91E621342732062D2F4411B76"
|
||||
"3E20328AF6F8EF5030E2F8027AEF9E30060ACB040A1B8F922E955B269458ED1345BDE"
|
||||
"9A24516520A536817E8E8612154A112A401D4ACC596A52055CEE710E1FEC44796DBF3"
|
||||
"AE6B017AB156D9BFF7BFDB8F1E6352BFBE453034968F940C36AC18800E22BB2FF7126"
|
||||
"8053702EF3FCE3FB2D607A078E0D1449FCC9D0675D41B1A65F78E3C02370D18112AAE"
|
||||
"1E2577FF9087825A45125DB5DEE8E27BD14EA8666B4E8E6ABA6811C40B585AABB9C91"
|
||||
"85209A48D11130FF690316916961F28286C71C3E985D7DC3352166E414B89DA2C17CC"
|
||||
"5B69FC9C00990697F51A9002169D3C432F9C2F8B99E11632BD7D6A63F3D57679C567B"
|
||||
"EDCB2E596ACE1050453732040CB468E9C43F6009B430CA4A4046D017E67A4BADD5B71"
|
||||
"C0C9FCE2274817F0BCDA311A4F8703E6DC32AEDF30E6F9ABD40E249FC8B0A5045CC1E"
|
||||
"47E60A60B4893EF92602F5584E1162F4FF3EE6D906228F97B442ACE1FB175D113B671"
|
||||
"BDBE4CEFFDD98F2BB094C0DFAC03B79541A44D8AFFDC987F4268706B5A554E998907E"
|
||||
"B7126E8C6BC07C837D8AEEBEA3249E37B4B7DD7327300FE7E62C15981CF73A13E806D"
|
||||
"065BCADC2C747256907A5493592B07A0C07F9CD805FCDC0D30F70E4C4B2959A0F5238"
|
||||
"5C6BD3E6EEB4E3D81FDC1A9DC3C76FAF1BFED913D58567FA9B296D27DFF5217C583E7"
|
||||
"C134A642601F8237221E6B73696465363834393138643663333962666136353261343"
|
||||
"061643933362A50703F69807C8F4D140168874B924A625132EB3B896A381D617B8FB8"
|
||||
"3C7314A6B634D840925F711AE330599F0E0863800902B05D201A8A87B88A4BC17065A"
|
||||
"1A8A556C34BF86B53AFCC9951BE15BEA9AB55301B122002206F46D9D05740AD34B99F"
|
||||
"10C21A2FA23B8E45DCB00713E32D5CECF239D0A8")},
|
||||
"04FF1ED6CD714094253BF1C58762C93F0DDF8A73C4BE927FFEC2723A16D8FFE51288"
|
||||
"51F58537461275F6AA1976E3B399B7243919207E040EC16C5328E8AB082278FCE0E5D"
|
||||
"3DF5C5F92DBA51FA6613587D4ECE31F2C001B49BFAED434F9512E895C2E09C88DDBF1"
|
||||
"84BFAFE4D82E5D05A26AC06CDE29FAF6AB05B96685649C923779CE5EF7F316531ADA8"
|
||||
"E74E45AB1DC1D75648AA2DE052674728867E87639FF9B782A3322186B736964653164"
|
||||
"33306233336235356632646562343731362A64D44A9D70A7C582559F089B1C0FDFCBD"
|
||||
"AF5E26B672FCA5D58E889B407A0BA8599079CDE11FADFAB23AA1B97622839F3B7E1A9"
|
||||
"6F8332BEC5FBCBC9EB64FD5ED05887B8FA3BFD6ECC7BC91E621342732062D2F4411B7"
|
||||
"63E20328AF6F8EF5030E2F8027AEF9E30060ACD040A1B8F922E955B269458ED1345BD"
|
||||
"E9A24516520A536817E8E8612154A112A401D4ACC596A52055CEE710E1FEC44796DBF"
|
||||
"3AE6B017AB156D9BFF7BFDB8F1E6352BFBE453034968F940C36AC18800E22BB2FF712"
|
||||
"68053702EF3FCE3FB2D607A078E0D1449FCC9D0675D41B1A65F78E3C02370D18112AA"
|
||||
"E1E2577FF9087825A45125DB5DEE8E27BD14EA8666B4E8E6ABA6811C40B585AABB9C9"
|
||||
"185209A48D11130FF690316916961F28286C71C3E985D7DC3352166E414B89DA2C17C"
|
||||
"C5B69FC9C00990697F51A9002169D3C432F9C2F8B99E11632BD7D6A63F3D57679C567"
|
||||
"BEDCB2E596ACE1050453732040CB468E9C43F6009B430CA4A4046D017E67A4BADD5B7"
|
||||
"1C0C9FCE2274817F0BCDA311A4F8703E6DC32AEDF30E6F9ABD40E249FC8B0A5045CC1"
|
||||
"E47E60A60B4893EF92602F5584E1162F4FF3EE6D906228F97B442ACE1FB175D113B67"
|
||||
"1BDBE4CEFFDD98F2BB094C0DFAC03B79541A44D8AFFDC987F4268706B5A554E998907"
|
||||
"EB7126E8C6BC07C837D8AEEBEA3249E37B4B7DD7327300FE7E62C15981CF73A13E806"
|
||||
"D065BCADC2C747256907A5493592B07A0C07F9CD805FCDC0D30F70E4C4B2959A0F523"
|
||||
"85C6BD3E6EEB4E3D81FDC1A9DC3C76FAF1BFED913D58567FA9B296D27DFF5217C583E"
|
||||
"7C134A642601F8237221E6B7369646536383439313864366333396266613635326134"
|
||||
"3061643933362A50703F69807C8F4D140168874B924A625132EB3B896A381D617B8FB"
|
||||
"83C7314A6B634D840925F711AE330599F0E0863800902B05D201A8A87B88A4BC17065"
|
||||
"A1A8A556C34BF86B53AFCC9951BE15BEA9AB55301B3800123C080012380A17616E6F7"
|
||||
"46865722064726D206365727469666963617465121B616E6F74686572207772617070"
|
||||
"65642070726976617465206B65791801122082BB366A1D04CD51FA6BE0E5E1F7B9393"
|
||||
"0C2E887586E2E5FBC6838ADDD3A209B")},
|
||||
// test vector 8, app id: "app_1", usage entry 2
|
||||
{"app_1",
|
||||
{
|
||||
@@ -3474,9 +3502,11 @@ const UsageInfo kUsageInfoTestData[] = {
|
||||
"09914a3d7e898d93170317bfcff34861c0d687048cc93542a75a2c99b232"
|
||||
"3fafea1ee0c3e3d24edf2633"),
|
||||
7,
|
||||
kDrmCertificate,
|
||||
kCryptoWrappedKey,
|
||||
},
|
||||
a2bs_hex(
|
||||
"0ABD0E080310012AB60E0AEA040A20BB3370CCD3C3C49573D6B74386D1886D9888BD8"
|
||||
"0AF30E080310012AEC0E0AEA040A20BB3370CCD3C3C49573D6B74386D1886D9888BD8"
|
||||
"1FE3241BCD2BAC9407D1A834E12C001DC0E51CFA5863F6C0B32A4AD7FA40625DADCC2"
|
||||
"DCDE9E7FA3983B8804D9966803181682FC8AE831472E0B2FC26276242FBCE624D286E"
|
||||
"EDECCE5555804913B4F8F86C5AE86160B8434B109169A63DA04C5265102D772C11805"
|
||||
@@ -3494,7 +3524,7 @@ const UsageInfo kUsageInfoTestData[] = {
|
||||
"3646535343430383365663465652A60EA106C124476B753D39368A5966972A2729BB8"
|
||||
"BBEA734A2B3E812B705EACE016C8A03C9A406094D80059EF4CA26F1928FA2DAA5DE9A"
|
||||
"6F22372E5C7A941E610D1EFB56ED7CE2228A70E2E150AFB66EDC2DA066D463AA90BA0"
|
||||
"CAFF078FBFEC05C830000AF5040A21EACE80E30BFDA213F1CE4DBCFD9D4D24B8E2AE0"
|
||||
"CAFF078FBFEC05C830000AF7040A21EACE80E30BFDA213F1CE4DBCFD9D4D24B8E2AE0"
|
||||
"0054D167D9D7AE99547062B911312B40168A7665A21348FC0590328608DC520BE40F5"
|
||||
"B749328568FE383EF69C1A587AB2446CF9C41D821373D0856A883B316519A42218F80"
|
||||
"E7BD5764D16BAC9A9B427A7278F5940E563FCF6DEE0FF3AADBB702EBF2C54EC354AE7"
|
||||
@@ -3512,25 +3542,27 @@ const UsageInfo kUsageInfoTestData[] = {
|
||||
"C7CE96055E16A52FA192EA2CF3C9DF3E89B9133A52286F71E6C6D82D0435F6B2155DF"
|
||||
"DE590B347D8C86F62D7DFBAAE640C237256F609E5DA9CC6C103465FE3441612BBDFDF"
|
||||
"4D1C24B2147FEB8565CEF4993E439C9D564A39A4AC5BB1DA69ACB44DA06E4522C9A93"
|
||||
"D310CDDA5DAC1E1E0B91ABFF41E4E2EDDA400130070ACE040A20D0B9A07AD7FFEEC13"
|
||||
"784BD60DA011BE3589F3E450227FD36B1A3F6786CDBFE8F129801A419C5687A592099"
|
||||
"DC67DA8BC4F5EF238C80FE4CE3E2FCB025392EFB14384B581B595A0E8FA95DE637FB2"
|
||||
"184719EB36AD6539EE9DF0F67697F91D0186E04552E811196029CF4E256518DDF3215"
|
||||
"AF8EC61442C17D6753B93F9D3A9240BAE39BACF5563659CF47D3A611CE20ED3EBBF86"
|
||||
"CDDAD60CC2847C4595DCFD934D012CE205960052158461D7C5D480DE2E597876E64E8"
|
||||
"F8DE692829A31AA402F7C19357E50FC474437C1A635C5BAE8F6F51AFA20750766DB19"
|
||||
"457DFF7AEF2CAE78848A225CC6A088BBCFFEAD5BE6AAB6FC8AF091BF459C3BD9BCFA1"
|
||||
"8DE53EF76DB1B4826CF0B8FF7B2D7C44BBADB3CD7AEDD8F639D1F38C52A58611A9782"
|
||||
"AEACE72BE69A73D2E091A1120DC63F7BA6F1CB6CDDD69E9A236232ED8C14CEE665756"
|
||||
"BA51F1D2E2530AB3662CE1B6EFBA91C5F10C53ABC886D6F25B5DC40417E54270843F3"
|
||||
"B454C8C047FC366249E30379B0FBE0174FCAB8B8405AE7F20F6F2B81F11082FF0E270"
|
||||
"B75F1E1AA7ED5806F4E65B46B872DBCB703D7BF20B9ECAA481425A5218D85A49595F3"
|
||||
"ED268D61F1BE8E38E6126EB075FA6B7AE80431C8521C4BC2CE701E45D33BFCA9A5B0B"
|
||||
"66B550AAB21EAE41F84CADFD2517DEE9A2C139AD475C387D25221C6B7369643332316"
|
||||
"262363336663861336635636435643534613233362A48C3CB027611397B5D70CC0B08"
|
||||
"E0F5249CD19996DA674E33722902173D45D709914A3D7E898D93170317BFCFF34861C"
|
||||
"0D687048CC93542A75A2C99B2323FAFEA1EE0C3E3D24EDF263330071220B174821B32"
|
||||
"5B0A6A900AD8C660C755D3B0273CA6E81D70E2C548CDEC07BE53FA")},
|
||||
"D310CDDA5DAC1E1E0B91ABFF41E4E2EDDA4001300738000AD0040A20D0B9A07AD7FFE"
|
||||
"EC13784BD60DA011BE3589F3E450227FD36B1A3F6786CDBFE8F129801A419C5687A59"
|
||||
"2099DC67DA8BC4F5EF238C80FE4CE3E2FCB025392EFB14384B581B595A0E8FA95DE63"
|
||||
"7FB2184719EB36AD6539EE9DF0F67697F91D0186E04552E811196029CF4E256518DDF"
|
||||
"3215AF8EC61442C17D6753B93F9D3A9240BAE39BACF5563659CF47D3A611CE20ED3EB"
|
||||
"BF86CDDAD60CC2847C4595DCFD934D012CE205960052158461D7C5D480DE2E597876E"
|
||||
"64E8F8DE692829A31AA402F7C19357E50FC474437C1A635C5BAE8F6F51AFA20750766"
|
||||
"DB19457DFF7AEF2CAE78848A225CC6A088BBCFFEAD5BE6AAB6FC8AF091BF459C3BD9B"
|
||||
"CFA18DE53EF76DB1B4826CF0B8FF7B2D7C44BBADB3CD7AEDD8F639D1F38C52A58611A"
|
||||
"9782AEACE72BE69A73D2E091A1120DC63F7BA6F1CB6CDDD69E9A236232ED8C14CEE66"
|
||||
"5756BA51F1D2E2530AB3662CE1B6EFBA91C5F10C53ABC886D6F25B5DC40417E542708"
|
||||
"43F3B454C8C047FC366249E30379B0FBE0174FCAB8B8405AE7F20F6F2B81F11082FF0"
|
||||
"E270B75F1E1AA7ED5806F4E65B46B872DBCB703D7BF20B9ECAA481425A5218D85A495"
|
||||
"95F3ED268D61F1BE8E38E6126EB075FA6B7AE80431C8521C4BC2CE701E45D33BFCA9A"
|
||||
"5B0B66B550AAB21EAE41F84CADFD2517DEE9A2C139AD475C387D25221C6B736964333"
|
||||
"2316262363336663861336635636435643534613233362A48C3CB027611397B5D70CC"
|
||||
"0B08E0F5249CD19996DA674E33722902173D45D709914A3D7E898D93170317BFCFF34"
|
||||
"861C0D687048CC93542A75A2C99B2323FAFEA1EE0C3E3D24EDF263330073800123008"
|
||||
"00122C0A11612064726D2063657274696669636174651215612077726170706564207"
|
||||
"0726976617465206B657918001220C662693A9E231B85CEB7A3A50DEAA8279777B363"
|
||||
"2C6D9ABC12FBB295018482E4")},
|
||||
}; // kUsageInfoTestData
|
||||
|
||||
const DeviceFiles::CdmUsageData kUsageInfoUpdateTestData = {
|
||||
@@ -3565,6 +3597,8 @@ const DeviceFiles::CdmUsageData kUsageInfoUpdateTestData = {
|
||||
"003b12a3855016c8a03c9a406094d80059ef4ca26f1928fa2a3f0782c72d"
|
||||
"ba0e2228a70e2e150afb66e305e4bc0b2561ae2b"),
|
||||
6,
|
||||
kEmptyString,
|
||||
CryptoWrappedKey(),
|
||||
}; // kUsageInfoUpdateTestData
|
||||
|
||||
struct HlsAttributesInfo {
|
||||
@@ -5177,6 +5211,10 @@ TEST_P(DeviceFilesUsageInfoTest, Store) {
|
||||
usage_data_fields.push_back(kUsageInfoTestData[i].usage_data.license);
|
||||
usage_data_fields.push_back(kUsageInfoTestData[i].usage_data.key_set_id);
|
||||
usage_data_fields.push_back(kUsageInfoTestData[i].usage_data.usage_entry);
|
||||
usage_data_fields.push_back(
|
||||
kUsageInfoTestData[i].usage_data.drm_certificate);
|
||||
usage_data_fields.push_back(
|
||||
kUsageInfoTestData[i].usage_data.wrapped_private_key.key());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5244,6 +5282,12 @@ TEST_P(DeviceFilesUsageInfoTest, Retrieve) {
|
||||
usage_data_list[i].usage_entry);
|
||||
EXPECT_EQ(kUsageInfoTestData[j].usage_data.usage_entry_number,
|
||||
usage_data_list[i].usage_entry_number);
|
||||
EXPECT_EQ(kUsageInfoTestData[j].usage_data.drm_certificate,
|
||||
usage_data_list[i].drm_certificate);
|
||||
EXPECT_EQ(kUsageInfoTestData[j].usage_data.wrapped_private_key.type(),
|
||||
usage_data_list[i].wrapped_private_key.type());
|
||||
EXPECT_EQ(kUsageInfoTestData[j].usage_data.wrapped_private_key.key(),
|
||||
usage_data_list[i].wrapped_private_key.key());
|
||||
found = true;
|
||||
}
|
||||
++j;
|
||||
|
||||
@@ -178,6 +178,8 @@ const DeviceFiles::CdmUsageData kCdmUsageData1 = {
|
||||
/* key_set_id = */ "key_set_id_1",
|
||||
/* usage_entry = */ "usage_entry_1",
|
||||
/* usage_entry_number = */ 0,
|
||||
/* drm_certificate = */ kDrmCertificate,
|
||||
/* wrapped_private_key = */ kCryptoWrappedKey,
|
||||
};
|
||||
const DeviceFiles::CdmUsageData kCdmUsageData2 = {
|
||||
/* provider_session_token = */ "provider_session_token_2",
|
||||
@@ -186,6 +188,8 @@ const DeviceFiles::CdmUsageData kCdmUsageData2 = {
|
||||
/* key_set_id = */ "key_set_id_2",
|
||||
/* usage_entry = */ "usage_entry_2",
|
||||
/* usage_entry_number = */ 0,
|
||||
/* drm_certificate = */ kDrmCertificate,
|
||||
/* wrapped_private_key = */ kCryptoWrappedKey,
|
||||
};
|
||||
const DeviceFiles::CdmUsageData kCdmUsageData3 = {
|
||||
/* provider_session_token = */ "provider_session_token_3",
|
||||
@@ -194,6 +198,8 @@ const DeviceFiles::CdmUsageData kCdmUsageData3 = {
|
||||
/* key_set_id = */ "key_set_id_3",
|
||||
/* usage_entry = */ "usage_entry_3",
|
||||
/* usage_entry_number = */ 0,
|
||||
/* drm_certificate = */ kDrmCertificate,
|
||||
/* wrapped_private_key = */ kCryptoWrappedKey,
|
||||
};
|
||||
const std::vector<DeviceFiles::CdmUsageData> kEmptyUsageInfoUsageDataList;
|
||||
|
||||
@@ -404,19 +410,20 @@ class MockDeviceFiles : public DeviceFiles {
|
||||
MOCK_METHOD2(DeleteUsageInfo, bool(const std::string&, const std::string&));
|
||||
MOCK_METHOD2(DeleteMultipleUsageInfoByKeySetIds,
|
||||
bool(const std::string&, const std::vector<std::string>&));
|
||||
MOCK_METHOD7(RetrieveUsageInfoByKeySetId,
|
||||
MOCK_METHOD9(RetrieveUsageInfoByKeySetId,
|
||||
bool(const std::string&, const std::string&, std::string*,
|
||||
CdmKeyMessage*, CdmKeyResponse*, CdmUsageEntry*,
|
||||
uint32_t*));
|
||||
CdmKeyMessage*, CdmKeyResponse*, CdmUsageEntry*, uint32_t*,
|
||||
std::string*, CryptoWrappedKey*));
|
||||
MOCK_METHOD2(StoreLicense, bool(const CdmLicenseData&, ResponseType*));
|
||||
MOCK_METHOD1(DeleteLicense, bool(const std::string&));
|
||||
MOCK_METHOD0(DeleteAllLicenses, bool());
|
||||
MOCK_METHOD0(DeleteAllUsageInfo, bool());
|
||||
MOCK_METHOD0(DeleteUsageTableInfo, bool());
|
||||
MOCK_METHOD7(StoreUsageInfo,
|
||||
MOCK_METHOD9(StoreUsageInfo,
|
||||
bool(const std::string&, const CdmKeyMessage&,
|
||||
const CdmKeyResponse&, const std::string&,
|
||||
const std::string&, const CdmUsageEntry&, uint32_t));
|
||||
const std::string&, const CdmUsageEntry&, uint32_t,
|
||||
const std::string&, const CryptoWrappedKey&));
|
||||
MOCK_METHOD2(RetrieveUsageInfo,
|
||||
bool(const std::string&, std::vector<CdmUsageData>*));
|
||||
MOCK_METHOD1(ListLicenses, bool(std::vector<std::string>* key_set_ids));
|
||||
@@ -1446,13 +1453,13 @@ TEST_F(UsageTableHeaderTest, InvalidateEntry_LastSecureStopEntriesAreMissing) {
|
||||
RetrieveUsageInfoByKeySetId(
|
||||
kUsageEntryInfoSecureStop2.usage_info_file_name,
|
||||
kUsageEntryInfoSecureStop2.key_set_id, NotNull(), NotNull(),
|
||||
NotNull(), NotNull(), NotNull()))
|
||||
NotNull(), NotNull(), NotNull(), NotNull(), NotNull()))
|
||||
.WillOnce(Return(false));
|
||||
EXPECT_CALL(*device_files_,
|
||||
RetrieveUsageInfoByKeySetId(
|
||||
kUsageEntryInfoSecureStop3.usage_info_file_name,
|
||||
kUsageEntryInfoSecureStop3.key_set_id, NotNull(), NotNull(),
|
||||
NotNull(), NotNull(), NotNull()))
|
||||
NotNull(), NotNull(), NotNull(), NotNull(), NotNull()))
|
||||
.WillOnce(Return(false));
|
||||
|
||||
// Shrink to contain only the one valid entry.
|
||||
@@ -1619,23 +1626,25 @@ TEST_F(UsageTableHeaderTest,
|
||||
RetrieveUsageInfoByKeySetId(
|
||||
kUsageEntryInfoSecureStop2.usage_info_file_name,
|
||||
kUsageEntryInfoSecureStop2.key_set_id, NotNull(), NotNull(),
|
||||
NotNull(), NotNull(), NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(kProviderSessionToken),
|
||||
SetArgPointee<3>(kKeyRequest),
|
||||
SetArgPointee<4>(kKeyResponse),
|
||||
SetArgPointee<5>(kUsageEntry),
|
||||
SetArgPointee<6>(2) /* Mismatch */, Return(true)));
|
||||
NotNull(), NotNull(), NotNull(), NotNull(), NotNull()))
|
||||
.WillOnce(DoAll(
|
||||
SetArgPointee<2>(kProviderSessionToken),
|
||||
SetArgPointee<3>(kKeyRequest), SetArgPointee<4>(kKeyResponse),
|
||||
SetArgPointee<5>(kUsageEntry), SetArgPointee<6>(2) /* Mismatch */,
|
||||
SetArgPointee<7>(kDrmCertificate),
|
||||
SetArgPointee<8>(kCryptoWrappedKey), Return(true)));
|
||||
|
||||
EXPECT_CALL(*device_files_,
|
||||
RetrieveUsageInfoByKeySetId(
|
||||
kUsageEntryInfoSecureStop3.usage_info_file_name,
|
||||
kUsageEntryInfoSecureStop3.key_set_id, NotNull(), NotNull(),
|
||||
NotNull(), NotNull(), NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(kProviderSessionToken),
|
||||
SetArgPointee<3>(kKeyRequest),
|
||||
SetArgPointee<4>(kKeyResponse),
|
||||
SetArgPointee<5>(kUsageEntry),
|
||||
SetArgPointee<6>(3) /* Mismatch */, Return(true)));
|
||||
NotNull(), NotNull(), NotNull(), NotNull(), NotNull()))
|
||||
.WillOnce(DoAll(
|
||||
SetArgPointee<2>(kProviderSessionToken),
|
||||
SetArgPointee<3>(kKeyRequest), SetArgPointee<4>(kKeyResponse),
|
||||
SetArgPointee<5>(kUsageEntry), SetArgPointee<6>(3) /* Mismatch */,
|
||||
SetArgPointee<7>(kDrmCertificate),
|
||||
SetArgPointee<8>(kCryptoWrappedKey), Return(true)));
|
||||
|
||||
// Shrink to contain only the one valid entry.
|
||||
EXPECT_CALL(*crypto_session_,
|
||||
@@ -1888,11 +1897,13 @@ TEST_F(UsageTableHeaderTest,
|
||||
RetrieveUsageInfoByKeySetId(
|
||||
kUsageEntryInfoSecureStop3.usage_info_file_name,
|
||||
kUsageEntryInfoSecureStop3.key_set_id, NotNull(), NotNull(),
|
||||
NotNull(), NotNull(), NotNull()))
|
||||
.WillOnce(DoAll(
|
||||
SetArgPointee<2>(kProviderSessionToken),
|
||||
SetArgPointee<3>(kKeyRequest), SetArgPointee<4>(kKeyResponse),
|
||||
SetArgPointee<5>(kUsageEntry), SetArgPointee<6>(4), Return(true)));
|
||||
NotNull(), NotNull(), NotNull(), NotNull(), NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(kProviderSessionToken),
|
||||
SetArgPointee<3>(kKeyRequest),
|
||||
SetArgPointee<4>(kKeyResponse),
|
||||
SetArgPointee<5>(kUsageEntry), SetArgPointee<6>(4),
|
||||
SetArgPointee<7>(kDrmCertificate),
|
||||
SetArgPointee<8>(kCryptoWrappedKey), Return(true)));
|
||||
|
||||
// Calls during Move().
|
||||
EXPECT_CALL(*crypto_session_, Open(kLevelDefault)).WillOnce(Return(NO_ERROR));
|
||||
@@ -2098,11 +2109,13 @@ TEST_F(
|
||||
RetrieveUsageInfoByKeySetId(
|
||||
kUsageEntryInfoSecureStop3.usage_info_file_name,
|
||||
kUsageEntryInfoSecureStop3.key_set_id, NotNull(), NotNull(),
|
||||
NotNull(), NotNull(), NotNull()))
|
||||
.WillOnce(DoAll(
|
||||
SetArgPointee<2>(kProviderSessionToken),
|
||||
SetArgPointee<3>(kKeyRequest), SetArgPointee<4>(kKeyResponse),
|
||||
SetArgPointee<5>(kUsageEntry), SetArgPointee<6>(4), Return(true)));
|
||||
NotNull(), NotNull(), NotNull(), NotNull(), NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(kProviderSessionToken),
|
||||
SetArgPointee<3>(kKeyRequest),
|
||||
SetArgPointee<4>(kKeyResponse),
|
||||
SetArgPointee<5>(kUsageEntry), SetArgPointee<6>(4),
|
||||
SetArgPointee<7>(kDrmCertificate),
|
||||
SetArgPointee<8>(kCryptoWrappedKey), Return(true)));
|
||||
EXPECT_CALL(*crypto_session_, LoadUsageEntry(4, kUsageEntry))
|
||||
.WillOnce(Return(LOAD_USAGE_ENTRY_INVALID_SESSION));
|
||||
|
||||
@@ -2112,11 +2125,13 @@ TEST_F(
|
||||
RetrieveUsageInfoByKeySetId(
|
||||
kUsageEntryInfoSecureStop2.usage_info_file_name,
|
||||
kUsageEntryInfoSecureStop2.key_set_id, NotNull(), NotNull(),
|
||||
NotNull(), NotNull(), NotNull()))
|
||||
.WillOnce(DoAll(
|
||||
SetArgPointee<2>(kProviderSessionToken),
|
||||
SetArgPointee<3>(kKeyRequest), SetArgPointee<4>(kKeyResponse),
|
||||
SetArgPointee<5>(kUsageEntry), SetArgPointee<6>(3), Return(true)));
|
||||
NotNull(), NotNull(), NotNull(), NotNull(), NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(kProviderSessionToken),
|
||||
SetArgPointee<3>(kKeyRequest),
|
||||
SetArgPointee<4>(kKeyResponse),
|
||||
SetArgPointee<5>(kUsageEntry), SetArgPointee<6>(3),
|
||||
SetArgPointee<7>(kDrmCertificate),
|
||||
SetArgPointee<8>(kCryptoWrappedKey), Return(true)));
|
||||
EXPECT_CALL(*crypto_session_, LoadUsageEntry(3, kUsageEntry))
|
||||
.WillOnce(Return(LOAD_USAGE_ENTRY_INVALID_SESSION));
|
||||
|
||||
@@ -2311,12 +2326,14 @@ TEST_F(UsageTableHeaderTest, InvalidateEntry_LastEntryIsSecureStop) {
|
||||
RetrieveUsageInfoByKeySetId(
|
||||
kUsageEntryInfoSecureStop3.usage_info_file_name,
|
||||
kUsageEntryInfoSecureStop3.key_set_id, NotNull(), NotNull(),
|
||||
NotNull(), NotNull(), NotNull()))
|
||||
NotNull(), NotNull(), NotNull(), NotNull(), NotNull()))
|
||||
.Times(2) // First to get entry, second to update.
|
||||
.WillRepeatedly(DoAll(
|
||||
SetArgPointee<2>(kProviderSessionToken),
|
||||
SetArgPointee<3>(kKeyRequest), SetArgPointee<4>(kKeyResponse),
|
||||
SetArgPointee<5>(kUsageEntry), SetArgPointee<6>(4), Return(true)));
|
||||
.WillRepeatedly(DoAll(SetArgPointee<2>(kProviderSessionToken),
|
||||
SetArgPointee<3>(kKeyRequest),
|
||||
SetArgPointee<4>(kKeyResponse),
|
||||
SetArgPointee<5>(kUsageEntry), SetArgPointee<6>(4),
|
||||
SetArgPointee<7>(kDrmCertificate),
|
||||
SetArgPointee<8>(kCryptoWrappedKey), Return(true)));
|
||||
EXPECT_CALL(
|
||||
*device_files_,
|
||||
DeleteUsageInfo(kUsageEntryInfoSecureStop3.usage_info_file_name, _))
|
||||
@@ -2324,7 +2341,7 @@ TEST_F(UsageTableHeaderTest, InvalidateEntry_LastEntryIsSecureStop) {
|
||||
EXPECT_CALL(
|
||||
*device_files_,
|
||||
StoreUsageInfo(_, _, _, kUsageEntryInfoSecureStop3.usage_info_file_name,
|
||||
kUsageEntryInfoSecureStop3.key_set_id, _, 1))
|
||||
kUsageEntryInfoSecureStop3.key_set_id, _, 1, _, _))
|
||||
.WillOnce(Return(true));
|
||||
EXPECT_CALL(*crypto_session_, LoadUsageEntry(4, kUsageEntry))
|
||||
.WillOnce(Return(NO_ERROR));
|
||||
@@ -2335,12 +2352,14 @@ TEST_F(UsageTableHeaderTest, InvalidateEntry_LastEntryIsSecureStop) {
|
||||
RetrieveUsageInfoByKeySetId(
|
||||
kUsageEntryInfoSecureStop2.usage_info_file_name,
|
||||
kUsageEntryInfoSecureStop2.key_set_id, NotNull(), NotNull(),
|
||||
NotNull(), NotNull(), NotNull()))
|
||||
NotNull(), NotNull(), NotNull(), NotNull(), NotNull()))
|
||||
.Times(2) // First to get entry, second to update.
|
||||
.WillRepeatedly(DoAll(
|
||||
SetArgPointee<2>(kProviderSessionToken),
|
||||
SetArgPointee<3>(kKeyRequest), SetArgPointee<4>(kKeyResponse),
|
||||
SetArgPointee<5>(kUsageEntry), SetArgPointee<6>(3), Return(true)));
|
||||
.WillRepeatedly(DoAll(SetArgPointee<2>(kProviderSessionToken),
|
||||
SetArgPointee<3>(kKeyRequest),
|
||||
SetArgPointee<4>(kKeyResponse),
|
||||
SetArgPointee<5>(kUsageEntry), SetArgPointee<6>(3),
|
||||
SetArgPointee<7>(kDrmCertificate),
|
||||
SetArgPointee<8>(kCryptoWrappedKey), Return(true)));
|
||||
EXPECT_CALL(
|
||||
*device_files_,
|
||||
DeleteUsageInfo(kUsageEntryInfoSecureStop2.usage_info_file_name, _))
|
||||
@@ -2348,7 +2367,7 @@ TEST_F(UsageTableHeaderTest, InvalidateEntry_LastEntryIsSecureStop) {
|
||||
EXPECT_CALL(
|
||||
*device_files_,
|
||||
StoreUsageInfo(_, _, _, kUsageEntryInfoSecureStop2.usage_info_file_name,
|
||||
kUsageEntryInfoSecureStop2.key_set_id, _, 2))
|
||||
kUsageEntryInfoSecureStop2.key_set_id, _, 2, _, _))
|
||||
.WillOnce(Return(true));
|
||||
EXPECT_CALL(*crypto_session_, LoadUsageEntry(3, kUsageEntry))
|
||||
.WillOnce(Return(NO_ERROR));
|
||||
@@ -2561,12 +2580,14 @@ TEST_F(UsageTableHeaderTest,
|
||||
RetrieveUsageInfoByKeySetId(
|
||||
kUsageEntryInfoSecureStop3.usage_info_file_name,
|
||||
kUsageEntryInfoSecureStop3.key_set_id, NotNull(), NotNull(),
|
||||
NotNull(), NotNull(), NotNull()))
|
||||
NotNull(), NotNull(), NotNull(), NotNull(), NotNull()))
|
||||
.Times(2) // First to get entry, second to update.
|
||||
.WillRepeatedly(DoAll(
|
||||
SetArgPointee<2>(kProviderSessionToken),
|
||||
SetArgPointee<3>(kKeyRequest), SetArgPointee<4>(kKeyResponse),
|
||||
SetArgPointee<5>(kUsageEntry), SetArgPointee<6>(4), Return(true)));
|
||||
.WillRepeatedly(DoAll(SetArgPointee<2>(kProviderSessionToken),
|
||||
SetArgPointee<3>(kKeyRequest),
|
||||
SetArgPointee<4>(kKeyResponse),
|
||||
SetArgPointee<5>(kUsageEntry), SetArgPointee<6>(4),
|
||||
SetArgPointee<7>(kDrmCertificate),
|
||||
SetArgPointee<8>(kCryptoWrappedKey), Return(true)));
|
||||
EXPECT_CALL(
|
||||
*device_files_,
|
||||
DeleteUsageInfo(kUsageEntryInfoSecureStop3.usage_info_file_name, _))
|
||||
@@ -2574,7 +2595,7 @@ TEST_F(UsageTableHeaderTest,
|
||||
EXPECT_CALL(
|
||||
*device_files_,
|
||||
StoreUsageInfo(_, _, _, kUsageEntryInfoSecureStop3.usage_info_file_name,
|
||||
kUsageEntryInfoSecureStop3.key_set_id, _, 1))
|
||||
kUsageEntryInfoSecureStop3.key_set_id, _, 1, _, _))
|
||||
.WillOnce(Return(true));
|
||||
EXPECT_CALL(*crypto_session_, LoadUsageEntry(4, kUsageEntry))
|
||||
.WillOnce(Return(NO_ERROR));
|
||||
@@ -2585,12 +2606,14 @@ TEST_F(UsageTableHeaderTest,
|
||||
RetrieveUsageInfoByKeySetId(
|
||||
kUsageEntryInfoSecureStop2.usage_info_file_name,
|
||||
kUsageEntryInfoSecureStop2.key_set_id, NotNull(), NotNull(),
|
||||
NotNull(), NotNull(), NotNull()))
|
||||
NotNull(), NotNull(), NotNull(), NotNull(), NotNull()))
|
||||
.Times(2) // First to get entry, second to update.
|
||||
.WillRepeatedly(DoAll(
|
||||
SetArgPointee<2>(kProviderSessionToken),
|
||||
SetArgPointee<3>(kKeyRequest), SetArgPointee<4>(kKeyResponse),
|
||||
SetArgPointee<5>(kUsageEntry), SetArgPointee<6>(3), Return(true)));
|
||||
.WillRepeatedly(DoAll(SetArgPointee<2>(kProviderSessionToken),
|
||||
SetArgPointee<3>(kKeyRequest),
|
||||
SetArgPointee<4>(kKeyResponse),
|
||||
SetArgPointee<5>(kUsageEntry), SetArgPointee<6>(3),
|
||||
SetArgPointee<7>(kDrmCertificate),
|
||||
SetArgPointee<8>(kCryptoWrappedKey), Return(true)));
|
||||
EXPECT_CALL(
|
||||
*device_files_,
|
||||
DeleteUsageInfo(kUsageEntryInfoSecureStop2.usage_info_file_name, _))
|
||||
@@ -2598,7 +2621,7 @@ TEST_F(UsageTableHeaderTest,
|
||||
EXPECT_CALL(
|
||||
*device_files_,
|
||||
StoreUsageInfo(_, _, _, kUsageEntryInfoSecureStop2.usage_info_file_name,
|
||||
kUsageEntryInfoSecureStop2.key_set_id, _, 2))
|
||||
kUsageEntryInfoSecureStop2.key_set_id, _, 2, _, _))
|
||||
.WillOnce(Return(true));
|
||||
EXPECT_CALL(*crypto_session_, LoadUsageEntry(3, kUsageEntry))
|
||||
.WillOnce(Return(NO_ERROR));
|
||||
@@ -3292,7 +3315,8 @@ TEST_F(UsageTableHeaderTest, LruUsageTableUpgrade_NoAction) {
|
||||
|
||||
// These function are called specifically by the LRU upgrading system.
|
||||
EXPECT_CALL(*device_files_, RetrieveLicense(_, _, _)).Times(0);
|
||||
EXPECT_CALL(*device_files_, RetrieveUsageInfoByKeySetId(_, _, _, _, _, _, _))
|
||||
EXPECT_CALL(*device_files_,
|
||||
RetrieveUsageInfoByKeySetId(_, _, _, _, _, _, _, _, _))
|
||||
.Times(0);
|
||||
|
||||
EXPECT_TRUE(usage_table_header_->Init(kSecurityLevelL1, crypto_session_));
|
||||
@@ -3326,12 +3350,14 @@ TEST_F(UsageTableHeaderTest, LruUsageTableUpgrade_Succeed) {
|
||||
Return(true)));
|
||||
} else {
|
||||
EXPECT_CALL(*device_files_,
|
||||
RetrieveUsageInfoByKeySetId(
|
||||
info.usage_info_file_name, info.key_set_id, NotNull(),
|
||||
NotNull(), NotNull(), NotNull(), NotNull()))
|
||||
RetrieveUsageInfoByKeySetId(info.usage_info_file_name,
|
||||
info.key_set_id, NotNull(),
|
||||
NotNull(), NotNull(), NotNull(),
|
||||
NotNull(), NotNull(), NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<4>(kUpgradableLicenseInfoList[i]),
|
||||
SetArgPointee<6>(static_cast<uint32_t>(i)),
|
||||
Return(true)));
|
||||
SetArgPointee<7>(kDrmCertificate),
|
||||
SetArgPointee<8>(kCryptoWrappedKey), Return(true)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3449,12 +3475,14 @@ TEST_F(UsageTableHeaderTest,
|
||||
DoAll(SetArgPointee<1>(license_data_list[i]), Return(true)));
|
||||
} else {
|
||||
EXPECT_CALL(*device_files_,
|
||||
RetrieveUsageInfoByKeySetId(
|
||||
info.usage_info_file_name, info.key_set_id, NotNull(),
|
||||
NotNull(), NotNull(), NotNull(), NotNull()))
|
||||
RetrieveUsageInfoByKeySetId(info.usage_info_file_name,
|
||||
info.key_set_id, NotNull(),
|
||||
NotNull(), NotNull(), NotNull(),
|
||||
NotNull(), NotNull(), NotNull()))
|
||||
.WillOnce(DoAll(SetArgPointee<4>(upgradable_license_info_list[i]),
|
||||
SetArgPointee<6>(static_cast<uint32_t>(i)),
|
||||
Return(true)));
|
||||
SetArgPointee<7>(kDrmCertificate),
|
||||
SetArgPointee<8>(kCryptoWrappedKey), Return(true)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3502,9 +3530,10 @@ TEST_F(UsageTableHeaderTest, LruUsageTableUpgrade_AllFailure) {
|
||||
.WillOnce(Return(false));
|
||||
} else {
|
||||
EXPECT_CALL(*device_files_,
|
||||
RetrieveUsageInfoByKeySetId(
|
||||
info.usage_info_file_name, info.key_set_id, NotNull(),
|
||||
NotNull(), NotNull(), NotNull(), NotNull()))
|
||||
RetrieveUsageInfoByKeySetId(info.usage_info_file_name,
|
||||
info.key_set_id, NotNull(),
|
||||
NotNull(), NotNull(), NotNull(),
|
||||
NotNull(), NotNull(), NotNull()))
|
||||
.WillOnce(Return(false));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user