From 8a9b3c5c7569844f5ac3781338ad467b8886c27f Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Fri, 24 Mar 2023 17:50:40 +0000 Subject: [PATCH 01/27] Fix OEMCrypto_LoadEntitledContentKeys fuzzer - Create an entitled key session for OEMCrypto v17 and later. - Refresh corpus files. Merged from https://widevine-internal-review.googlesource.com/168897 Merged from https://widevine-internal-review.googlesource.com/169292 Change-Id: Ied9fce445a837e417077381de71d2834f385f120 --- .../043170680cfcfff82b302f215a249f3b5dcafef4 | Bin 0 -> 772 bytes .../07d8092ab06df623ae6fee5cdc8c980ba5fd7632 | Bin 0 -> 772 bytes .../122d1a11960c26756abee35e8e00f651ab83826b | Bin 0 -> 772 bytes .../30a1c909b57f87d05eebacde8cbf06fe0edb1388 | Bin 0 -> 772 bytes .../3248805594a4813b92c50318c7796358bf4c72aa | Bin 0 -> 772 bytes .../4c4b8424a2c6bee6e9dc90ff7a6a15fbac31b237 | Bin 0 -> 772 bytes .../4f0a52f6a1d4c7115eb75a4ee2da63899ce546f2 | Bin 0 -> 772 bytes .../5439302b2dcb50225ff9eed132532f2ebdd1ffdf | Bin 0 -> 772 bytes .../66cd8fa5bfcf0d6286c9879cbc4110d1db64413b | Bin 0 -> 772 bytes .../6f8b954fb7f8be2c3632f931aaf55e3d1a6c58d8 | Bin 676 -> 0 bytes .../70dc0d37f73f8aa50ca695b4f54e16ec694bed37 | Bin 0 -> 772 bytes .../7997b5673d5a9402b2f8acc43f92cdf6ad1f913d | Bin 676 -> 0 bytes .../8196b2365ca56224853dfeeddde216b4f467f0dd | Bin 676 -> 0 bytes .../81ac6d013d80da7f67fe6fbb5e8c15a35a0d8134 | Bin 676 -> 0 bytes .../adc436cfb531505ef07ebfe262cbde69d33a1719 | Bin 0 -> 772 bytes .../da6321d50123e1d0ed6352454d69ec4dbf7117ca | Bin 0 -> 772 bytes .../e59c6ea9ea826b971d264afa117084272fe3b58c | Bin 0 -> 772 bytes .../e97d00e4e1fa9804afd6f54dfe6f9b51d3245ac3 | Bin 0 -> 772 bytes .../f82a9473b78b5126bb5676a3437417e3324d9b91 | Bin 0 -> 772 bytes ...mcrypto_load_entitled_content_keys_fuzz.cc | 22 ++++++++++++------ 20 files changed, 15 insertions(+), 7 deletions(-) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/043170680cfcfff82b302f215a249f3b5dcafef4 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/07d8092ab06df623ae6fee5cdc8c980ba5fd7632 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/122d1a11960c26756abee35e8e00f651ab83826b create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/30a1c909b57f87d05eebacde8cbf06fe0edb1388 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/3248805594a4813b92c50318c7796358bf4c72aa create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/4c4b8424a2c6bee6e9dc90ff7a6a15fbac31b237 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/4f0a52f6a1d4c7115eb75a4ee2da63899ce546f2 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/5439302b2dcb50225ff9eed132532f2ebdd1ffdf create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/66cd8fa5bfcf0d6286c9879cbc4110d1db64413b delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/6f8b954fb7f8be2c3632f931aaf55e3d1a6c58d8 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/70dc0d37f73f8aa50ca695b4f54e16ec694bed37 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/7997b5673d5a9402b2f8acc43f92cdf6ad1f913d delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/8196b2365ca56224853dfeeddde216b4f467f0dd delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/81ac6d013d80da7f67fe6fbb5e8c15a35a0d8134 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/adc436cfb531505ef07ebfe262cbde69d33a1719 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/da6321d50123e1d0ed6352454d69ec4dbf7117ca create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/e59c6ea9ea826b971d264afa117084272fe3b58c create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/e97d00e4e1fa9804afd6f54dfe6f9b51d3245ac3 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/f82a9473b78b5126bb5676a3437417e3324d9b91 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/043170680cfcfff82b302f215a249f3b5dcafef4 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/043170680cfcfff82b302f215a249f3b5dcafef4 new file mode 100644 index 0000000000000000000000000000000000000000..40f7308c17b94488167e10d94a2bcb24c65faa5e GIT binary patch literal 772 zcmZQzKm`I&?m;vF6R+!^_3-hb@V@6u?>^k}lB2O`L96lsYYXT1@ty`9vmVa=y3Yz*0L;9@XaFW2vDzrWyP?JC+4N234E7PP z!!=hF%G$#g=gw{S^qj=9||mIPD)#y3FY2cYp``qAkOG<6MV{26Hc9cX+g7lXQhrtSqAp8*%?ALjt)ONA literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/07d8092ab06df623ae6fee5cdc8c980ba5fd7632 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/07d8092ab06df623ae6fee5cdc8c980ba5fd7632 new file mode 100644 index 0000000000000000000000000000000000000000..75ecfd609cebd6248959ec81f2511eaf7ec409a7 GIT binary patch literal 772 zcmZQzKm`I&?m;vF6E_Ld+i#vGcxN&Zgl>4`F0yoVOf zF5&N&uliTBsCtb#%ydRH05k6p8i0xax&L!^f<;vN!W|78_R2|5)$t72zcxI0-@*E; znr6DX29xiLjxn!A|^BdGw(1OfQi55|Nic>`J1Ax+`OE6=2DGC zb6(#x2o3pu$u7zMvB-|KftS?042w(Fp7`}VV2(!MIVPw*%xC~+-Vrna6K`>p&t4V9 ztib+w1&{ir$>RRjqP1JHm@}K|_cu>yX*<*|t8B1xQDxBS3C;WC+RId#q4wy;$Hl|K z5N4JHQ~<^|K;s9X@nQPW=?pY=4QTusX#5>$d?*)#x`3wc1sb0L8d)&+E1>Z)41@|; Ups5Q$<7c4pJJ9$r`_Rn?040=@WB>pF literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/122d1a11960c26756abee35e8e00f651ab83826b b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/122d1a11960c26756abee35e8e00f651ab83826b new file mode 100644 index 0000000000000000000000000000000000000000..a50f565261ddfe98f394a7e12c2f98f5e47cf1d3 GIT binary patch literal 772 zcmZQzKm`I&?m;vF6L%Juf5Va>W%tC@N>trD`QF22Y+n=vZe*|R&)UCF?$*I*1=RHQKMNDV_X5L{m023EFS9JAK7@p196 zFoc;U0TqDp4bb=jXndG{bUFh~T>~0_1{!|{8XwBVpe~@Pdx6GhfJPR~{R(J&3{0=leE^`6rb(gCE literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/30a1c909b57f87d05eebacde8cbf06fe0edb1388 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/30a1c909b57f87d05eebacde8cbf06fe0edb1388 new file mode 100644 index 0000000000000000000000000000000000000000..75c873c105d402b13d5e9299756e8e8cb925fb2f GIT binary patch literal 772 zcmZQzKm`I&?m;vF6VHFYSJ*m8c5}K|!?RZ@cAnSXspsdrvPkUP{#%Ag-R`Wkk-ks7 zve?B1(Z!eLG;9-KrZb`en0bfL08G4N>cw{%6R&Tc;31jun{C>a{wZ2)tPc-VU;B2* zN8;2p$5^prv#$5aH}D3q@!sm6vXBvK5fd7KnRgfsz{JZw)?2-GoW9&G^N6IwRRJRh zh9^NuEKb=6wF0NciWt71(-gu4rv`)?4RcgH8+|LwYY`-5c)%0Ft!uWtCVZLxgDQci_{_`h#X z%Wvsmy`Gd6aWqCBW;!DpfSGp)4Zy^gh((lVB|bPQ`IynmOF_0u&|QzZTNuwsa%@}1V!#NshzSkA%sY$*VB*uOO_HRy+nu>_Cv0I)Y1xzI z!9V{s<(#?3XQj%#=k-4$`Q@9Agb9h1O9y_Plu%?{$pp2B84bY9JAwva;@?@U+_&W@ z|J`*}Z1rLBh;?tY1n1ni8`9UWzMl7*#5bMbN&c$#p&D83&r)Aqz9_H847Eo$J}w>> zhA^`vpaL+y0UAF5jSth0PG_L0Ye3`AK;!Q~<3qU^)CDwkFVOf5(8z+hUjdDeVIWk% U0!>{28b1S#-+{)5*@tdE0JVRUBme*a literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/4c4b8424a2c6bee6e9dc90ff7a6a15fbac31b237 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/4c4b8424a2c6bee6e9dc90ff7a6a15fbac31b237 new file mode 100644 index 0000000000000000000000000000000000000000..baadceb0426e57926c27c87645a0f018c4746451 GIT binary patch literal 772 zcmZQzKm`I&?m;vF6JPk|$Hr{UKf5^(vPrc6`Z+a&DPHg4lqk)$m)XB{I5mCEXWUmI zJE7HfX8VDYtv+AuV5T#o0hoD*&;U&QW%Uh?t21if$4?7UgP}br`#^m1q3mxnGS3?3{FFSe#raF^1vAth-T1h8 zSQx_0l7I@p_y%bF05m>KKRTU(rmg{vKLd@w1C0;mVo(>*)V)CCGe9E?=6(eZD4HT zF8}z_f~6PPP1PMTRNXGb2&|EHn(FhiYW?)*^X{qgUu1&X!;A)C<{d!;FmZA2&`+-E z(|9FMyD>?|tc;pAckYgx&pbpG_*4>kPp=D1u$}$PJMP)J9o6A;dhT1NGehmsjgO0m zg(1u=38(;!Z-B-RK;y&oqth8^>Kf4aGtl@u(D+a;26X{V-3v5612nQ=?pHwLV;Be( Vus~B6fX2^2<9DF(VfLY$4*)K2m-zqy literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/5439302b2dcb50225ff9eed132532f2ebdd1ffdf b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/5439302b2dcb50225ff9eed132532f2ebdd1ffdf new file mode 100644 index 0000000000000000000000000000000000000000..7791234e8da6795b396e8cc90f35e21df42f0d6c GIT binary patch literal 772 zcmZQzKm`I&?m;vF6QA(%>rC~Vi`ve9&_D4&Vy46n3+^aOoBK5@_lWeeJh_$nQgw;8 zYObtoVgKVf%!X&?z)WXE12FRrp#hkYz*0L;9@XaFW|yd>xRWhchU^UtN;ik&=v zmggAzuIP@Svi&!7L%4tK-W;{)z<-6mjTJ2^2?r+}Op|1S+QW&g93ry{9&v?M-Idoc}HD@~*B(S#D;iJ-YF6 z@vtz2nI!=gfbk8`_yK5qn0|CR15I568h-{Fe+L>L%Eh2Aps9O-#%F*=7R>z$XnYI< Up#m0Y>H^UC8EE_tG(IkK0W-Ls)Bpeg literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/66cd8fa5bfcf0d6286c9879cbc4110d1db64413b b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/66cd8fa5bfcf0d6286c9879cbc4110d1db64413b new file mode 100644 index 0000000000000000000000000000000000000000..b2c66bc43f8c11b5e4a3c563b952d99316396ba7 GIT binary patch literal 772 zcmZQzKm`I&?m;vF6BpYZGxgolldMXW`PotT_ZaTqSf7^QCHyUoWgpKyy$04b>kdir z>Kbt;nThFNvDU4Ena+p?VCEe{12FLw0jGTStm`>s`PQFzQSHv#-_G3Klv8Owk*!o@ zi^^5c8?SCUG|yRdp*6Z*GOTppOHoFsMNDV_X5L{m027~bO($$()uqS#5_c?GIAQzK ze>LtoufN~CFwHacZFj`$Ek$V`Pu2aqS9AE-`Vy{+k19-1dzjGx%)BFL04DzMXrX%Z zLA!(7&ipDo&wJhPsX%7@XP?=3+TZ#<3wv`ZeuL_fkgIBb&lW_#_Ya;PK7ko(k8XTi zJS+@hW=TK=V0;5KegGODrXQWoKvUO%#-D-4-+{)5*^h4D1vGUp(D)3{$b#utK;y&2 X(e1N9Qx|~7&p_jMpz&emqT2@mE+wK) literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/6f8b954fb7f8be2c3632f931aaf55e3d1a6c58d8 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/6f8b954fb7f8be2c3632f931aaf55e3d1a6c58d8 deleted file mode 100644 index baf0a05cde5b5839115e7a5081da7ae855f1d16d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmZQzKm`I&?m;vF6F=AN+_-!^w3?Fw+^)0L;8YXaFW|*w-?7%08nv!OM@F{`Q)oz4XObYv+#}_+}ZL zV=_25<4&rD@ZQIMOP=2^SiXZbYu!vns6|X@0A}7{GyoG{`RT(vz3`&u2+g?(zUMbP zaBoQ|dBhm>y=d+W`D%X|^`6_zt1I^375Q(>q1~Ht_6if!9%eKEGw%o*fQiTN4-;#g z5EsN!HYdyJx1zsxv1i-&xc;AviD>a|6Z8ETJid|W&% z3}I$TKm}lY12ldB8b1S#-+;!SfyUo~#=n5Ze}TqlfCfIyJql=i3p9QJ8b1S#-+{&l E0LH+VHvj+t diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/70dc0d37f73f8aa50ca695b4f54e16ec694bed37 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/70dc0d37f73f8aa50ca695b4f54e16ec694bed37 new file mode 100644 index 0000000000000000000000000000000000000000..4919d3e9df55a542d6070620f123c17fce59470c GIT binary patch literal 772 zcmZQzKm`I&?m;vF6Xz*C$(I&!<%IQXp@y%LT-MQ&J&PTVXle*Wdfx7sHkGsGwBNbh zH#^hTX&k-m<~x5m%ydRH05k6p8i0v+EjKt7$9I^`{Zf*O7Ek8fO6v>vq7U?|%$ajX?-AO6zxO!rFsb=i{9bWk_Jei>OFrxvOc}LIyO#G+u{HK=% zZZ{PvxxL+@`clC&k>BI&?X7G7hW&Iu>^t>QfWKq*&U0&Q3)&d0^ec8QW`^3M8y^=B z3qzP$5>Npc-vEstfX0XEN2fE;)HR^-XQ1(Spz)zx4C(@!x)*4C254l#+^>Mf$1o5o TV1cGC0F9r4#_vGm<1!Zj7lfFn literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/7997b5673d5a9402b2f8acc43f92cdf6ad1f913d b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/7997b5673d5a9402b2f8acc43f92cdf6ad1f913d deleted file mode 100644 index 4e600526090a3f5262c6080a76ef5d68f3965c6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmd1HkIzo6WPk%UDC-~^5P*uGO8RQ!HeL3>@uQWTQtO~nq5+tBhtL2_-2aHe)cNj42P<=~XUc~b@iB{CzWHfs zTHWKT=T6-$?0P$u-$F8C`C670PBSy@o^SPGgj&Re24LnLMguVMgJnz$D$jjVt5_HD zWqP_uY|}zN?!MT|lQfp46feDynw@K2e|p&kru@{07tL_wUmeFU3utD_2h{I(b#K&GA`Xy z{rR)i(m<}ws=u=mW;!DpfSGp)4Zy^$C0hfZp1gZ?*5%9R|4#bibyJr~cdz37d#kn! z=U@0Br@n5|7L_0D*6+iY^xa*cra6xhY7r9}fSGp~4Zy?~m#ggjx3_KLOhH*zrSFzE zyhZgxR&5MBv+kPXjU8Jb9^LdackjJRiJunc&5b?f?{tv~Y7a9SfSGp$4Zy^Ot6mBR z*(tMc70-Vtd4A(Lp~d0xhT+QDb23g!Z76?WT(b4tjlA#&6TQ|}KHw|OX=R4mqZ=O= z4+}$>SrSkI7~cSmAArWsK;t){@n@j%ccAevpz&Xz@fo0j4|9(K8s7qqAArWsK;w6y F@c|65oOA#H diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/81ac6d013d80da7f67fe6fbb5e8c15a35a0d8134 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/81ac6d013d80da7f67fe6fbb5e8c15a35a0d8134 deleted file mode 100644 index 16a14bc7a02dc9ac8c8949f97ee1cca59b5fab1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmZQzKm`I&?m;vF6EACjEb^V9(y4aA*0+;>o47MO9#2^96`dii*mJ?~;emLiJEl`_ zHP}C!XuW(@-bKl3nCXmY0A}7HGyoG{zHEBcM&%b<+HX$Wy`bvb+$S@N?p_c+WBw-M zcK7Br!II2=|C4P}VrH#1Vw)buf1`;JY7r9}fSGp~4Zy?=W^FuODgP|5YJ0iTwEr_^ z9j@}vj9*rN<;_`d<{dBFnBK%)eJXsRZ+jkp1rukSmM9a{9%eKEGw%o*fQkPQ{2j2X zY}W&uPog)LGe>cjww)>qP}C4lYl^q{>$hX`#MOJ3sIkk5{t(evlDCe-kr`@_ZhTxk zEDT|0Nk9c)d;>Io02)67jo*OApMl2TfyTdp#(#mvXMhGi%smQddbCt$p&>-uJX~)D5C%J)BkmAHEh;{na+p?VCEe{12FLx#VbqJU7I3eCbuYg@k*rwbzOBj@27B-IEe&p z6^?D2zM7?@{K}&b2_KDSP7yHLKZg-&5fd7KnRgfsz{KCCM8(f?3*BSh*sh(h^~`6j zZNBp&KV)2t$)2Sc(mr4KOZ$DKfyUo~#)on-s0(Q7UZC+AppgZ0zXBQ`!$7Ej U1)915G=2sezXOdAvk%>T00-cdYybcN literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/da6321d50123e1d0ed6352454d69ec4dbf7117ca b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/da6321d50123e1d0ed6352454d69ec4dbf7117ca new file mode 100644 index 0000000000000000000000000000000000000000..85a209c05d97fbe4dcb274db6c71d7f5ef16b551 GIT binary patch literal 772 zcmZQzKm`I&?m;vF6PI4ZZhh0a;?dc6nlqNnFZ)?KbDq@I-BS1SjWh2X@aP5~y|lu2 z664vf_s!2{FMptH4>O$+4ZzGhga%;Z2HQdf3PU57erj}{tZU={HDczOh5Nq#p0n+& zI`jD+@%qUD-7Crx)@iN>TwTBrEz|1>>24Lbheb+9U z@JHu?z)rdRgB&h1v#0CMo3%8Yy*j=#{tpks=ZlIZe8#dH%X=qZeBzM&A%huek8XTi zJS+@hW=TK=V0;5KegGODrXQWoKvUO%#-D-4-+{)5axth2XzE^|@fo0z1#`aw8Xv-pcaz4nEmj(XO+__*FYF@GV(#s))o zF{5s41re7=GtR7mna+p?VCEe{12FMr#`pbWYu~B!?$O`$M7R3%i-rlicv*zs%lqss z-+TA9(CeU88@**`9q{+9T6l)@jxQtBA|^BdGw(1OfQe6iAMiDJ2A71}qD?#npBBpe zN@l6jd}?JmeMaQ{w4$ii|2(@CcKl{~BU^T&usyYQArsUdW;6gZ?+6-ziK|{#$+P3W zeQ>&LNz&h_QwPrIDP5KBoj=oh`mXbL=ZgO_%J?>`nM2EPnb;OSzpVJH%usuDipz$-%_#J3`n0@Hx0{{hkmK^{9 literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/e97d00e4e1fa9804afd6f54dfe6f9b51d3245ac3 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/e97d00e4e1fa9804afd6f54dfe6f9b51d3245ac3 new file mode 100644 index 0000000000000000000000000000000000000000..29a473b2901a1d29e60b6a6316f91bece24a31f2 GIT binary patch literal 772 zcmZQzKm`I&?m;vF6L;CM;c28i&o48hlj$C;E9_5+voAQD)@*O|ud6ZmMUnZmYhE9I zDm=OFx5C^t=hvjqFw+^)0L;8YXaFW|F}e9TZ<4Y{t=uT z=GK34J}l~8-tAXk)*lz(P?)mPVMQ||)FLJ{05k6}8i0u>rDf$th}`TW9hy*uZx zL^PdQ_VwYJBNLaY*H!x6GgP+^&}`mQJmFeFt}knO_%0@>Jxbs`z*4ws|{@BZAdio#L`eV^-?JJU8xB8&o2QM>|XUtH0bmQaV zVPOa}O9CnY;~Svy1JL*|{pfTCnz{xw{tPt!4m3WLi$PsLQ}+Um&j5`qnEMsb_!tI4 W1uW3i1)%XW(D)r_e3*Uc<^uqD!JjDr literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/f82a9473b78b5126bb5676a3437417e3324d9b91 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/f82a9473b78b5126bb5676a3437417e3324d9b91 new file mode 100644 index 0000000000000000000000000000000000000000..e8bd6793552f69a4e5645e228553f1a8896cfc0a GIT binary patch literal 772 zcmZQzKm`I&?m;vF6E88TXK;J4%dBMYvlA!XJ(g$f+PZ7UlvIw3w~qhYzN3pHAxdd6 zh4_*jx+nX0|V%v!HJ4 zy!Jctxk87y8{I6AY`OEg=eWqZ^nHv_id6O z!VqSb1XKXVH$dYDpz&e)(di5{bq#3z8EE_+XnZIagSvpG?gbj30UB8__bZ_BF${zX VSfHs3K;vhi@jKA?F#FKW2LQ~(nY91_ literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_entitled_content_keys_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_entitled_content_keys_fuzz.cc index fcc53a0a..c01c532c 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_entitled_content_keys_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_entitled_content_keys_fuzz.cc @@ -20,6 +20,9 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { return 0; } + const std::vector message(inputs[0].data, + inputs[0].data + inputs[0].size); + // Copy data to OEMCrypto_EntitledContentKeyObject array. std::vector entitled_content_keys( inputs[1].size / sizeof(OEMCrypto_EntitledContentKeyObject)); @@ -29,18 +32,23 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { sizeof(OEMCrypto_EntitledContentKeyObject)); } + // Load default entitlement license. OEMCryptoLicenseAPIFuzz license_api_fuzz; - // Setting up state. Load default entitlement license to load entitlement - // keys into sessions key table. license_api_fuzz.license_messages().set_license_type( OEMCrypto_EntitlementLicense); license_api_fuzz.LoadLicense(); + + // Create entitled key session. + OEMCrypto_SESSION key_session; + const OEMCryptoResult result = OEMCrypto_CreateEntitledKeySession( + license_api_fuzz.session()->session_id(), &key_session); + CheckStatusAndExitFuzzerOnFailure(result, OEMCrypto_SUCCESS); + // Call OEMCrypto_LoadEntitledContentKeys with fuzzed buffers. - const std::vector message(inputs[0].data, - inputs[0].data + inputs[0].size); - OEMCrypto_LoadEntitledContentKeys( - license_api_fuzz.session()->session_id(), message.data(), message.size(), - entitled_content_keys.size(), entitled_content_keys.data()); + OEMCrypto_LoadEntitledContentKeys(key_session, message.data(), message.size(), + entitled_content_keys.size(), + entitled_content_keys.data()); + return 0; } From fb1f3af60fa243f20fe49fd7231d8d3368e07bb8 Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Thu, 23 Mar 2023 15:09:30 +0000 Subject: [PATCH 02/27] Add OEMCrypto_GetBootCertificateChain fuzzer Merged from https://widevine-internal-review.googlesource.com/168818 Merged from https://widevine-internal-review.googlesource.com/169890 Change-Id: I2530555a1cf94726c82511504e480b843b244c7b --- ...mcrypto_get_boot_certificate_chain_fuzz.cc | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_boot_certificate_chain_fuzz.cc diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_boot_certificate_chain_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_boot_certificate_chain_fuzz.cc new file mode 100644 index 00000000..3016ac46 --- /dev/null +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_boot_certificate_chain_fuzz.cc @@ -0,0 +1,40 @@ +// Copyright 2023 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine +// License Agreement. + +#include + +#include "FuzzedDataProvider.h" +#include "OEMCryptoCENC.h" +#include "oemcrypto_fuzz_helper.h" + +using namespace wvoec; + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + // Redirect printf and log statements from oemcrypto functions to a file to + // reduce noise + RedirectStdoutToFile(); + + static InitializeFuzz initialize_fuzz; + FuzzedDataProvider fuzzed_data(data, size); + + // bcc and bcc_length parameters + size_t bcc_length_data = + fuzzed_data.ConsumeIntegralInRange(0, MAX_FUZZ_OUTPUT_LENGTH); + std::vector bcc(bcc_length_data); + size_t* const bcc_length = + fuzzed_data.ConsumeBool() ? &bcc_length_data : nullptr; + + // additional_signature and additional_signature_length parameters + size_t additional_signature_length_data = + fuzzed_data.ConsumeIntegralInRange(0, MAX_FUZZ_OUTPUT_LENGTH); + std::vector additional_signature(additional_signature_length_data); + size_t* const additional_signature_length = + fuzzed_data.ConsumeBool() ? &additional_signature_length_data : nullptr; + + OEMCrypto_GetBootCertificateChain(bcc.data(), bcc_length, + additional_signature.data(), + additional_signature_length); + + return 0; +} From c0c349cd286f5a3986822dc5652e881de5d1aa81 Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Fri, 24 Mar 2023 00:45:20 +0000 Subject: [PATCH 03/27] Fix OEMCrypto_LoadUsageEntry fuzzer - Ensure OEMCrypto is in the correct state before invoking OEMCrypto_LoadUsageEntry. - Do not use FuzzedDataProvider to parse usage_entry_number since it causes unexpected parsing results. Merged from https://widevine-internal-review.googlesource.com/168859 Merged from https://widevine-internal-review.googlesource.com/169293 Merged from https://widevine-internal-review.googlesource.com/169970 Merged from https://widevine-internal-review.googlesource.com/170011 Change-Id: I6c3ddfe457facef9c9d0fc524fc3cf76aba90f64 --- .../fuzz_tests/oemcrypto_load_usage_entry_fuzz.cc | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_entry_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_entry_fuzz.cc index 17c5150c..e0c9ee4d 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_entry_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_entry_fuzz.cc @@ -2,22 +2,22 @@ // source code may only be used and distributed under the Widevine Master // License Agreement. -#include "FuzzedDataProvider.h" #include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" namespace wvoec { +LicenseWithUsageEntryFuzz entry; + OEMCryptoResult LoadUsageEntryWithFuzzedData(OEMCrypto_SESSION session, const uint8_t* data, size_t size) { - if (size < sizeof(uint32_t)) { + uint32_t usage_entry_number; + if (size < sizeof(usage_entry_number)) { return OEMCrypto_ERROR_SHORT_BUFFER; } - - FuzzedDataProvider fuzzed_data(data, size); - const uint32_t usage_entry_number = fuzzed_data.ConsumeIntegral(); - const std::vector buffer = - fuzzed_data.ConsumeRemainingBytes(); + memcpy(&usage_entry_number, data, sizeof(usage_entry_number)); + const std::vector buffer(data + sizeof(usage_entry_number), + data + size); return OEMCrypto_LoadUsageEntry(session, usage_entry_number, buffer.data(), buffer.size()); } @@ -25,7 +25,6 @@ OEMCryptoResult LoadUsageEntryWithFuzzedData(OEMCrypto_SESSION session, // The custom mutator to mutate created encrypted usage entry. extern "C" size_t LLVMFuzzerCustomMutator(uint8_t* data, size_t size, size_t max_size, unsigned int seed) { - LicenseWithUsageEntryFuzz entry; entry.CreateUsageTableHeader(); Session* s = entry.license_messages().session(); s->open(); From 7b592f199072255d09c0751ca9e029aa584863b0 Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Thu, 23 Mar 2023 14:34:25 +0000 Subject: [PATCH 04/27] Add OEMCrypto_GenerateCertificateKeyPair fuzzer Merged from https://widevine-internal-review.googlesource.com/168817 Merged from https://widevine-internal-review.googlesource.com/169915 Change-Id: If4d3f4cd2b028765072a14c74781e9750dc3e38b --- ...ypto_generate_certificate_key_pair_fuzz.cc | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_certificate_key_pair_fuzz.cc diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_certificate_key_pair_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_certificate_key_pair_fuzz.cc new file mode 100644 index 00000000..af619297 --- /dev/null +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_certificate_key_pair_fuzz.cc @@ -0,0 +1,54 @@ +// Copyright 2023 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine +// License Agreement. + +#include + +#include "FuzzedDataProvider.h" +#include "OEMCryptoCENC.h" +#include "oemcrypto_fuzz_helper.h" + +using namespace wvoec; + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + // Redirect printf and log statements from oemcrypto functions to a file to + // reduce noise + RedirectStdoutToFile(); + + static OEMCryptoProvisioningAPIFuzz provisioning_api_fuzz; + FuzzedDataProvider fuzzed_data(data, size); + + // public_key and public_key_length parameters + size_t public_key_length_data = + fuzzed_data.ConsumeIntegralInRange(0, MAX_FUZZ_OUTPUT_LENGTH); + std::vector public_key(public_key_length_data); + size_t* const public_key_length = + fuzzed_data.ConsumeBool() ? &public_key_length_data : nullptr; + + // public_key_signature and public_key_signature_length parameters + size_t public_key_signature_length_data = + fuzzed_data.ConsumeIntegralInRange(0, MAX_FUZZ_OUTPUT_LENGTH); + std::vector public_key_signature(public_key_signature_length_data); + size_t* const public_key_signature_length = + fuzzed_data.ConsumeBool() ? &public_key_signature_length_data : nullptr; + + // wrapped_private_key and wrapped_private_key_length parameters + size_t wrapped_private_key_length_data = + fuzzed_data.ConsumeIntegralInRange(0, MAX_FUZZ_OUTPUT_LENGTH); + std::vector wrapped_private_key(wrapped_private_key_length_data); + size_t* const wrapped_private_key_length = + fuzzed_data.ConsumeBool() ? &wrapped_private_key_length_data : nullptr; + + // key_type parameter + OEMCrypto_PrivateKeyType key_type_data; + OEMCrypto_PrivateKeyType* const key_type = + fuzzed_data.ConsumeBool() ? &key_type_data : nullptr; + + OEMCrypto_GenerateCertificateKeyPair( + provisioning_api_fuzz.session()->session_id(), public_key.data(), + public_key_length, public_key_signature.data(), + public_key_signature_length, wrapped_private_key.data(), + wrapped_private_key_length, key_type); + + return 0; +} From af070601b0f89aed104138b9510bd7e8cf9313fc Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Mon, 27 Mar 2023 16:13:29 +0000 Subject: [PATCH 05/27] Add OEMCrypto_SetDecryptHash/GetHashErrorCode fuzzer Merged from https://widevine-internal-review.googlesource.com/169021 Merged from https://widevine-internal-review.googlesource.com/170030 Change-Id: I209d280b0478620197fc514966af3c93fc2272aa --- .../fuzz_tests/oemcrypto_decrypt_hash_fuzz.cc | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_decrypt_hash_fuzz.cc diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_decrypt_hash_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_decrypt_hash_fuzz.cc new file mode 100644 index 00000000..e1593e3b --- /dev/null +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_decrypt_hash_fuzz.cc @@ -0,0 +1,74 @@ +// Copyright 2023 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine +// License Agreement. + +#include +#include + +#include "FuzzedDataProvider.h" +#include "OEMCryptoCENC.h" +#include "oemcrypto_fuzz_helper.h" + +using namespace wvoec; + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + // Redirect printf and log statements from oemcrypto functions to a file to + // reduce noise + RedirectStdoutToFile(); + + OEMCryptoLicenseAPIFuzz license_api_fuzz; + FuzzedDataProvider fuzzed_data(data, size); + + if (fuzzed_data.ConsumeBool()) { + license_api_fuzz.license_messages().set_control( + license_api_fuzz.license_messages().control() | + kControlAllowHashVerification); + } + + const uint32_t session_id = license_api_fuzz.session()->session_id(); + const std::array content_key_id{}; + const uint32_t frame_number = fuzzed_data.ConsumeIntegral(); + std::array sample_buffer{}; + + OEMCrypto_SubSampleDescription subsample; + subsample.num_bytes_clear = 0; + subsample.num_bytes_encrypted = sample_buffer.size(); + subsample.subsample_flags = + OEMCrypto_FirstSubsample | OEMCrypto_LastSubsample; + subsample.block_offset = 0; + + OEMCrypto_SampleDescription sample; + sample.buffers.input_data = sample_buffer.data(); + sample.buffers.input_data_length = sample_buffer.size(); + sample.buffers.output_descriptor.type = OEMCrypto_BufferType_Clear; + sample.buffers.output_descriptor.buffer.clear.clear_buffer = + sample_buffer.data(); + sample.buffers.output_descriptor.buffer.clear.clear_buffer_length = + sample_buffer.size(); + memset(sample.iv, 0, sizeof(sample.iv)); + sample.subsamples = &subsample; + sample.subsamples_length = 1; + + OEMCrypto_CENCEncryptPatternDesc pattern; + pattern.encrypt = 0; + pattern.skip = 0; + + uint32_t failed_frame_number_data; + uint32_t* const failed_frame_number = + fuzzed_data.ConsumeBool() ? &failed_frame_number_data : nullptr; + + const std::vector hash = + fuzzed_data.ConsumeRemainingBytes(); + + license_api_fuzz.LoadLicense(); + std::vector key_handle; + GetKeyHandleIntoVector(session_id, content_key_id.data(), + content_key_id.size(), OEMCrypto_CipherMode_CENC, + key_handle); + OEMCrypto_SetDecryptHash(session_id, frame_number, hash.data(), hash.size()); + OEMCrypto_DecryptCENC(key_handle.data(), key_handle.size(), &sample, 1, + &pattern); + OEMCrypto_GetHashErrorCode(session_id, failed_frame_number); + + return 0; +} From 53fe55cb725b9ff5fef989bc842ab6900f363b28 Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Mon, 20 Mar 2023 17:46:15 +0000 Subject: [PATCH 06/27] Clean up fuzz helper classes - Remove OEMCrypto state changes hidden in constructors and destructors. - Use composition instead of inheritance to structure classes. - Avoid calling non-trivial destructors for objects with static lifetime. Merged from https://widevine-internal-review.googlesource.com/168497 Merged from https://widevine-internal-review.googlesource.com/171170 Merged from https://widevine-internal-review.googlesource.com/171171 Merged from https://widevine-internal-review.googlesource.com/171870 Change-Id: I20476a7b1132d11f011b8650ec01e3c2dc3fc0e8 --- .../fuzz_tests/oemcrypto_copy_buffer_fuzz.cc | 32 +++-- ...te_and_remove_entitled_key_session_fuzz.cc | 14 +-- .../oemcrypto_deactivate_usage_entry_fuzz.cc | 15 ++- .../fuzz_tests/oemcrypto_decrypt_cenc_fuzz.cc | 56 +++++---- .../fuzz_tests/oemcrypto_decrypt_hash_fuzz.cc | 21 ++-- .../test/fuzz_tests/oemcrypto_fuzz_helper.cc | 36 ++++++ .../test/fuzz_tests/oemcrypto_fuzz_helper.h | 114 +++++++++++------- ...ypto_generate_certificate_key_pair_fuzz.cc | 31 +++-- .../oemcrypto_generate_rsa_signature_fuzz.cc | 25 ++-- .../oemcrypto_generate_signature.cc | 11 +- .../oemcrypto_generic_decrypt_fuzz.cc | 54 +++++---- .../oemcrypto_generic_encrypt_fuzz.cc | 54 +++++---- .../fuzz_tests/oemcrypto_generic_sign_fuzz.cc | 51 ++++---- .../oemcrypto_generic_verify_fuzz.cc | 54 +++++---- ...mcrypto_get_boot_certificate_chain_fuzz.cc | 19 +-- .../oemcrypto_install_oem_private_key_fuzz.cc | 16 ++- .../oemcrypto_license_request_fuzz.cc | 23 ++-- ...mcrypto_load_entitled_content_keys_fuzz.cc | 37 +++--- .../fuzz_tests/oemcrypto_load_license_fuzz.cc | 15 ++- .../oemcrypto_load_provisioning_fuzz.cc | 15 ++- .../fuzz_tests/oemcrypto_load_renewal_fuzz.cc | 36 +++--- .../oemcrypto_load_usage_entry_fuzz.cc | 23 ++-- .../oemcrypto_load_usage_table_header_fuzz.cc | 17 ++- .../oemcrypto_move_usage_entry_fuzz.cc | 30 +++-- .../oemcrypto_opk_dispatcher_fuzz.cc | 6 +- .../oemcrypto_provisioning_request_fuzz.cc | 23 ++-- .../oemcrypto_renewal_request_fuzz.cc | 22 ++-- .../fuzz_tests/oemcrypto_report_usage_fuzz.cc | 23 ++-- .../oemcrypto_reuse_usage_entry_fuzz.cc | 26 ++-- ...emcrypto_shrink_usage_table_header_fuzz.cc | 17 ++- 30 files changed, 518 insertions(+), 398 deletions(-) diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_copy_buffer_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_copy_buffer_fuzz.cc index b9a1ce83..267a3c39 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_copy_buffer_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_copy_buffer_fuzz.cc @@ -7,31 +7,39 @@ #include "oemcrypto_fuzz_helper.h" #include "oemcrypto_fuzz_structs.h" -namespace wvoec { +namespace { + +// Avoid calling non-trivial destructor. +wvoec::OEMCryptoLicenseAPIFuzz& license_api_fuzz = + *new wvoec::OEMCryptoLicenseAPIFuzz; + +} // namespace + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { + wvoec::RedirectStdoutToFile(); + license_api_fuzz.Initialize(); + return 0; +} extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); - // OEMCrypto_DestBufferDesc and a buffer from which data needs to be copied // are expected as inputs to copy buffer API. // Input fuzzed data is interpreted as: // (OEMCrypto_DestBufferDesc | subsample_flags | input_buffer) - OEMCrypto_Copy_Buffer_Fuzz fuzzed_structure; + wvoec::OEMCrypto_Copy_Buffer_Fuzz fuzzed_structure; if (size < sizeof(fuzzed_structure)) { return 0; } FuzzedDataProvider fuzzed_data(data, size); fuzzed_data.ConsumeData(&fuzzed_structure, sizeof(fuzzed_structure)); - ConvertDataToValidEnum(OEMCrypto_BufferType_MaxValue, - &fuzzed_structure.dest_buffer_desc.type); - fuzzed_structure.dest_buffer_desc.buffer_config %= MAX_FUZZ_OUTPUT_LENGTH + 1; + wvoec::ConvertDataToValidEnum(OEMCrypto_BufferType_MaxValue, + &fuzzed_structure.dest_buffer_desc.type); + fuzzed_structure.dest_buffer_desc.buffer_config %= + wvoec::MAX_FUZZ_OUTPUT_LENGTH + 1; const std::vector input_buffer = fuzzed_data.ConsumeRemainingBytes(); - OEMCryptoLicenseAPIFuzz license_api_fuzz; - const uint32_t session_id = license_api_fuzz.session()->session_id(); + const uint32_t session_id = license_api_fuzz.session().session_id(); // Initialize output buffer. OEMCrypto_DestBufferDesc dest_buffer_desc; @@ -79,5 +87,3 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { return 0; } - -} // namespace wvoec diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_create_and_remove_entitled_key_session_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_create_and_remove_entitled_key_session_fuzz.cc index 952946ec..d89a9e4c 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_create_and_remove_entitled_key_session_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_create_and_remove_entitled_key_session_fuzz.cc @@ -5,15 +5,15 @@ #include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" -namespace wvoec { extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); - if (size < sizeof(ODK_ParsedLicense) + sizeof(MessageData)) { + wvoec::RedirectStdoutToFile(); + + if (size < sizeof(ODK_ParsedLicense) + sizeof(wvoec::MessageData)) { return 0; } - OEMCryptoLicenseAPIFuzz license_api_fuzz; + + wvoec::OEMCryptoLicenseAPIFuzz license_api_fuzz; + license_api_fuzz.Initialize(); license_api_fuzz.license_messages().set_license_type( OEMCrypto_EntitlementLicense); license_api_fuzz.license_messages().SignAndVerifyRequest(); @@ -29,6 +29,6 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { OEMCrypto_RemoveEntitledKeySession(key_session_id); + license_api_fuzz.Terminate(); return 0; } -} // namespace wvoec \ No newline at end of file diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_deactivate_usage_entry_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_deactivate_usage_entry_fuzz.cc index 0c96b6bd..e52e2863 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_deactivate_usage_entry_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_deactivate_usage_entry_fuzz.cc @@ -2,29 +2,28 @@ // source code may only be used and distributed under the Widevine Master // License Agreement. +#include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" -namespace wvoec { extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); + wvoec::RedirectStdoutToFile(); - LicenseWithUsageEntryFuzz entry; + wvoec::LicenseWithUsageEntryFuzz entry; + entry.Initialize(); entry.CreateUsageTableHeader(); // Open a session, create a usage entry. - Session* session = entry.license_messages().session(); + wvoec::Session* session = entry.license_messages().session(); session->open(); entry.InstallTestDrmKey(session); session->CreateNewUsageEntry(); session->GenerateNonce(); - vector encrypted_usage_header; + std::vector encrypted_usage_header; session->UpdateUsageEntry(&encrypted_usage_header); // LoadLicense sets the pst for usage entry. entry.LoadLicense(); OEMCrypto_DeactivateUsageEntry(session->session_id(), data, size); session->close(); + OEMCrypto_Terminate(); return 0; } -} // namespace wvoec diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_decrypt_cenc_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_decrypt_cenc_fuzz.cc index 8ddef792..843be33f 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_decrypt_cenc_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_decrypt_cenc_fuzz.cc @@ -2,42 +2,55 @@ // source code may only be used and distributed under the Widevine // License Agreement. +#include + #include "FuzzedDataProvider.h" #include "OEMCryptoCENC.h" #include "oec_session_util.h" #include "oemcrypto_fuzz_helper.h" #include "oemcrypto_fuzz_structs.h" -namespace wvoec { +namespace { // Limit output buffer size to 5 MB as 4 MB is maximum size specified by // resource rating tier documentation. -const size_t MAX_FUZZ_SAMPLE_SIZE = 5 * MB; +constexpr size_t MAX_FUZZ_SAMPLE_SIZE = 5 * wvoec::MB; + +// Avoid calling non-trivial destructor. +wvoec::OEMCryptoLicenseAPIFuzz& license_api_fuzz = + *new wvoec::OEMCryptoLicenseAPIFuzz; + +} // namespace + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { + wvoec::RedirectStdoutToFile(); + license_api_fuzz.Initialize(); + license_api_fuzz.LoadLicense(); + return 0; +} extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); - // Split data using separator. - const std::vector inputs = SplitFuzzedData(data, size); + const std::vector inputs = + wvoec::SplitFuzzedData(data, size); if (inputs.size() < 3) { return 0; } // Read cipher mode and pattern from fuzzed data. - OEMCrypto_Decrypt_Cenc_Fuzz fuzzed_structure; + wvoec::OEMCrypto_Decrypt_Cenc_Fuzz fuzzed_structure; if (inputs[0].size < sizeof(fuzzed_structure)) { return 0; } FuzzedDataProvider fuzzed_data(inputs[0].data, inputs[0].size); fuzzed_data.ConsumeData(&fuzzed_structure, sizeof(fuzzed_structure)); - ConvertDataToValidEnum(OEMCrypto_CipherMode_MaxValue, - &fuzzed_structure.cipher_mode); + wvoec::ConvertDataToValidEnum(OEMCrypto_CipherMode_MaxValue, + &fuzzed_structure.cipher_mode); // Allocate sample descriptions. std::vector sample_descriptions( - fuzzed_data.remaining_bytes() / sizeof(OEMCrypto_SampleDescription_Fuzz)); + fuzzed_data.remaining_bytes() / + sizeof(wvoec::OEMCrypto_SampleDescription_Fuzz)); // Allocate input buffers for each sample description. std::vector> input_buffers( @@ -50,8 +63,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { std::vector> subsamples( sample_descriptions.size()); - OEMCryptoLicenseAPIFuzz license_api_fuzz; - const uint32_t session_id = license_api_fuzz.session()->session_id(); + const uint32_t session_id = license_api_fuzz.session().session_id(); // Free first given number of output buffers. const auto FreeOutputBuffers = [&sample_descriptions, session_id, @@ -81,12 +93,12 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { FuzzedDataProvider subsample_data(inputs[2].data, inputs[2].size); for (size_t i = 0; i < sample_descriptions.size(); i++) { // Read and normalize sample description fuzzed properties. - OEMCrypto_SampleDescription_Fuzz fuzzed_sample_description; + wvoec::OEMCrypto_SampleDescription_Fuzz fuzzed_sample_description; sample_description_data.ConsumeData(&fuzzed_sample_description, sizeof(fuzzed_sample_description)); fuzzed_sample_description.buffers.input_data_length %= MAX_FUZZ_SAMPLE_SIZE + 1; - ConvertDataToValidEnum( + wvoec::ConvertDataToValidEnum( OEMCrypto_BufferType_MaxValue, &fuzzed_sample_description.buffers.output_descriptor.type); fuzzed_sample_description.buffers.output_descriptor.buffer_config %= @@ -126,7 +138,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { // Initialize output buffer. OEMCrypto_DestBufferDesc& output_descriptor = sample_descriptions[i].buffers.output_descriptor; - const OEMCrypto_DestBufferDesc_Fuzz& fuzzed_output_descriptor = + const wvoec::OEMCrypto_DestBufferDesc_Fuzz& fuzzed_output_descriptor = fuzzed_sample_description.buffers.output_descriptor; output_descriptor.type = fuzzed_output_descriptor.type; switch (output_descriptor.type) { @@ -154,11 +166,11 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { } // Load license and call decrypt_cenc API. - license_api_fuzz.LoadLicense(); - const MessageKeyData& key = license_api_fuzz.session()->license().keys[0]; - vector key_handle; - GetKeyHandleIntoVector(session_id, key.key_id, key.key_id_length, - fuzzed_structure.cipher_mode, key_handle); + const wvoec::MessageKeyData& key = + license_api_fuzz.session().license().keys[0]; + std::vector key_handle; + wvoec::GetKeyHandleIntoVector(session_id, key.key_id, key.key_id_length, + fuzzed_structure.cipher_mode, key_handle); OEMCrypto_DecryptCENC(key_handle.data(), key_handle.size(), sample_descriptions.data(), sample_descriptions.size(), &fuzzed_structure.pattern); @@ -168,5 +180,3 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { return 0; } - -} // namespace wvoec diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_decrypt_hash_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_decrypt_hash_fuzz.cc index e1593e3b..e894884d 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_decrypt_hash_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_decrypt_hash_fuzz.cc @@ -9,23 +9,21 @@ #include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" -using namespace wvoec; - extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); + wvoec::RedirectStdoutToFile(); + + wvoec::OEMCryptoLicenseAPIFuzz license_api_fuzz; + license_api_fuzz.Initialize(); - OEMCryptoLicenseAPIFuzz license_api_fuzz; FuzzedDataProvider fuzzed_data(data, size); if (fuzzed_data.ConsumeBool()) { license_api_fuzz.license_messages().set_control( license_api_fuzz.license_messages().control() | - kControlAllowHashVerification); + wvoec::kControlAllowHashVerification); } - const uint32_t session_id = license_api_fuzz.session()->session_id(); + const uint32_t session_id = license_api_fuzz.session().session_id(); const std::array content_key_id{}; const uint32_t frame_number = fuzzed_data.ConsumeIntegral(); std::array sample_buffer{}; @@ -62,13 +60,14 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { license_api_fuzz.LoadLicense(); std::vector key_handle; - GetKeyHandleIntoVector(session_id, content_key_id.data(), - content_key_id.size(), OEMCrypto_CipherMode_CENC, - key_handle); + wvoec::GetKeyHandleIntoVector(session_id, content_key_id.data(), + content_key_id.size(), + OEMCrypto_CipherMode_CENC, key_handle); OEMCrypto_SetDecryptHash(session_id, frame_number, hash.data(), hash.size()); OEMCrypto_DecryptCENC(key_handle.data(), key_handle.size(), &sample, 1, &pattern); OEMCrypto_GetHashErrorCode(session_id, failed_frame_number); + license_api_fuzz.Terminate(); return 0; } diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.cc index eb6a351e..a38c73c2 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.cc @@ -1,9 +1,12 @@ // Copyright 2020 Google LLC. All Rights Reserved. This file and proprietary // source code may only be used and distributed under the Widevine // License Agreement. + +#include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" namespace wvoec { + void RedirectStdoutToFile() { freopen("log.txt", "a", stdout); } std::vector SplitFuzzedData(const uint8_t* data, size_t size) { @@ -22,6 +25,26 @@ std::vector SplitFuzzedData(const uint8_t* data, size_t size) { return result; } +void InitializeFuzz(SessionUtil& session_util) { + wvoec::global_features.Initialize(); + OEMCrypto_SetSandbox(kTestSandbox, sizeof(kTestSandbox)); + OEMCrypto_Initialize(); + OEMCrypto_EnterTestMode(); + session_util.EnsureTestROT(); +} + +void OEMCryptoLicenseAPIFuzz::Initialize() { + InitializeFuzz(session_util_); + session_.open(); + session_util_.InstallTestDrmKey(&session_); + session_.GenerateNonce(); +} + +void OEMCryptoLicenseAPIFuzz::Terminate() { + session_.close(); + OEMCrypto_Terminate(); +} + void OEMCryptoLicenseAPIFuzz::LoadLicense() { license_messages_.SignAndVerifyRequest(); license_messages_.CreateDefaultResponse(); @@ -30,6 +53,18 @@ void OEMCryptoLicenseAPIFuzz::LoadLicense() { CheckStatusAndExitFuzzerOnFailure(sts, OEMCrypto_SUCCESS); } +void OEMCryptoProvisioningAPIFuzz::Intialize() { + InitializeFuzz(session_util_); + + // Opens a session and Generates Nonce. + provisioning_messages_.PrepareSession(session_util_.keybox_); +} + +void OEMCryptoProvisioningAPIFuzz::Terminate() { + session_.close(); + OEMCrypto_Terminate(); +} + void OEMCryptoProvisioningAPIFuzz::LoadProvisioning() { provisioning_messages_.SignAndVerifyRequest(); provisioning_messages_.CreateDefaultResponse(); @@ -62,4 +97,5 @@ void CheckStatusAndExitFuzzerOnFailure(OEMCryptoResult result, abort(); } } + } // namespace wvoec diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h index 15b7363f..f83bb6f2 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h @@ -1,28 +1,29 @@ // Copyright 2020 Google LLC. All Rights Reserved. This file and proprietary // source code may only be used and distributed under the Widevine // License Agreement. + #ifndef OEMCRYPTO_FUZZ_HELPER_H_ #define OEMCRYPTO_FUZZ_HELPER_H_ #include #include "FuzzedDataProvider.h" -#include "OEMCryptoCENC.h" #include "oec_device_features.h" #include "oemcrypto_corpus_generator_helper.h" #include "oemcrypto_session_tests_helper.h" -namespace wvoec { // Forward-declare the libFuzzer's mutator callback. Mark it weak so that // the program links successfully even outside of --config=asan-fuzzer // (apparently the only config in which LLVM uses our custom mutator). extern "C" size_t LLVMFuzzerMutate(uint8_t* Data, size_t Size, size_t MaxSize) __attribute__((weak)); -const size_t KB = 1024; +namespace wvoec { + +constexpr size_t KB = 1024; // Default maximum length of fuzzing output parameters. -const size_t MAX_FUZZ_OUTPUT_LENGTH = 5 * KB; +constexpr size_t MAX_FUZZ_OUTPUT_LENGTH = 5 * KB; // Fuzzed data region. struct FuzzedData { @@ -33,89 +34,115 @@ struct FuzzedData { // Initial setup to create a valid OEMCrypto state such as initializing crypto // firmware/hardware, installing golden key box etc. in order to fuzz // OEMCrypto APIs. -class InitializeFuzz : public SessionUtil { +void InitializeFuzz(SessionUtil& session_util); + +class OEMCryptoLicenseAPIFuzz { public: - InitializeFuzz() { - wvoec::global_features.Initialize(); - OEMCrypto_SetSandbox(kTestSandbox, sizeof(kTestSandbox)); - OEMCrypto_Initialize(); - OEMCrypto_EnterTestMode(); - EnsureTestROT(); - } + OEMCryptoLicenseAPIFuzz() : license_messages_(&session_) {} - ~InitializeFuzz() { OEMCrypto_Terminate(); } -}; + void Initialize(); -class OEMCryptoLicenseAPIFuzz : public InitializeFuzz { - public: - OEMCryptoLicenseAPIFuzz() : license_messages_(&session_) { - session_.open(); - InstallTestDrmKey(&session_); - session_.GenerateNonce(); - } - - ~OEMCryptoLicenseAPIFuzz() { session_.close(); } - - LicenseRoundTrip& license_messages() { return license_messages_; } - - Session* session() { return &session_; } - - uint32_t session_id() { return session_.session_id(); } + void Terminate(); void LoadLicense(); + LicenseRoundTrip& license_messages() { return license_messages_; } + + const LicenseRoundTrip& license_messages() const { return license_messages_; } + + Session& session() { return session_; } + + const Session& session() const { return session_; } + private: + SessionUtil session_util_; Session session_; LicenseRoundTrip license_messages_; }; -class OEMCryptoProvisioningAPIFuzz : public InitializeFuzz { +class OEMCryptoProvisioningAPIFuzz { public: OEMCryptoProvisioningAPIFuzz() - : provisioning_messages_(&session_, encoded_rsa_key_) { - // Opens a session and Generates Nonce. - provisioning_messages_.PrepareSession(keybox_); - } + : provisioning_messages_(&session_, session_util_.encoded_rsa_key_) {} - ~OEMCryptoProvisioningAPIFuzz() { session_.close(); } + void Intialize(); + + void Terminate(); void LoadProvisioning(); + ProvisioningRoundTrip& provisioning_messages() { return provisioning_messages_; } - Session* session() { return &session_; } + + const ProvisioningRoundTrip& provisioning_messages() const { + return provisioning_messages_; + } + + Session& session() { return session_; } + + const Session& session() const { return session_; } private: + SessionUtil session_util_; Session session_; ProvisioningRoundTrip provisioning_messages_; }; // Initial setup to create a valid state such as creating session, installing // golden key box etc. in order to fuzz Load Renewal API. -class OEMCryptoRenewalAPIFuzz : public OEMCryptoLicenseAPIFuzz { +class OEMCryptoRenewalAPIFuzz { public: - OEMCryptoRenewalAPIFuzz() : renewal_messages_(&license_messages()) {} + OEMCryptoRenewalAPIFuzz() + : renewal_messages_(&license_api_fuzz_.license_messages()) {} + + void Intialize() { license_api_fuzz_.Initialize(); } + + void Terminate() { license_api_fuzz_.Terminate(); } + + LicenseRoundTrip& license_messages() { + return license_api_fuzz_.license_messages(); + } + + const LicenseRoundTrip& license_messages() const { + return license_api_fuzz_.license_messages(); + } RenewalRoundTrip& renewal_messages() { return renewal_messages_; } + const RenewalRoundTrip& renewal_messages() const { return renewal_messages_; } + private: + OEMCryptoLicenseAPIFuzz license_api_fuzz_; RenewalRoundTrip renewal_messages_; }; -class LicenseWithUsageEntryFuzz : public InitializeFuzz { +class LicenseWithUsageEntryFuzz { public: LicenseWithUsageEntryFuzz() : license_messages_(&session_) { license_messages_.set_pst("my_pst"); } - void CreateUsageTableHeader(); - LicenseRoundTrip& license_messages() { return license_messages_; } - const vector& encrypted_usage_header() { - return encrypted_usage_header_; + void Initialize() { InitializeFuzz(session_util_); } + + void InstallTestDrmKey(Session* session) { + session_util_.InstallTestDrmKey(session); } + + void CreateUsageTableHeader(); + void LoadLicense(); + LicenseRoundTrip& license_messages() { return license_messages_; } + + const LicenseRoundTrip& license_messages() const { return license_messages_; } + + const vector& encrypted_usage_header() const { + return encrypted_usage_header_; + } + private: + SessionUtil session_util_; vector encrypted_usage_header_; LicenseRoundTrip license_messages_; Session session_; @@ -146,6 +173,7 @@ std::vector SplitFuzzedData(const uint8_t* data, size_t size); // called to check status of APIs which are called to setup state for fuzzers. void CheckStatusAndExitFuzzerOnFailure(OEMCryptoResult result, OEMCryptoResult expected_status); + } // namespace wvoec #endif // OEMCRYPTO_FUZZ_HELPER_H_ diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_certificate_key_pair_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_certificate_key_pair_fuzz.cc index af619297..c8364519 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_certificate_key_pair_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_certificate_key_pair_fuzz.cc @@ -8,33 +8,42 @@ #include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" -using namespace wvoec; +namespace { + +// Avoid calling non-trivial destructor. +wvoec::OEMCryptoProvisioningAPIFuzz& provisioning_api_fuzz = + *new wvoec::OEMCryptoProvisioningAPIFuzz; + +} // namespace + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { + wvoec::RedirectStdoutToFile(); + provisioning_api_fuzz.Intialize(); + return 0; +} extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); - - static OEMCryptoProvisioningAPIFuzz provisioning_api_fuzz; FuzzedDataProvider fuzzed_data(data, size); // public_key and public_key_length parameters - size_t public_key_length_data = - fuzzed_data.ConsumeIntegralInRange(0, MAX_FUZZ_OUTPUT_LENGTH); + size_t public_key_length_data = fuzzed_data.ConsumeIntegralInRange( + 0, wvoec::MAX_FUZZ_OUTPUT_LENGTH); std::vector public_key(public_key_length_data); size_t* const public_key_length = fuzzed_data.ConsumeBool() ? &public_key_length_data : nullptr; // public_key_signature and public_key_signature_length parameters size_t public_key_signature_length_data = - fuzzed_data.ConsumeIntegralInRange(0, MAX_FUZZ_OUTPUT_LENGTH); + fuzzed_data.ConsumeIntegralInRange(0, + wvoec::MAX_FUZZ_OUTPUT_LENGTH); std::vector public_key_signature(public_key_signature_length_data); size_t* const public_key_signature_length = fuzzed_data.ConsumeBool() ? &public_key_signature_length_data : nullptr; // wrapped_private_key and wrapped_private_key_length parameters size_t wrapped_private_key_length_data = - fuzzed_data.ConsumeIntegralInRange(0, MAX_FUZZ_OUTPUT_LENGTH); + fuzzed_data.ConsumeIntegralInRange(0, + wvoec::MAX_FUZZ_OUTPUT_LENGTH); std::vector wrapped_private_key(wrapped_private_key_length_data); size_t* const wrapped_private_key_length = fuzzed_data.ConsumeBool() ? &wrapped_private_key_length_data : nullptr; @@ -45,7 +54,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { fuzzed_data.ConsumeBool() ? &key_type_data : nullptr; OEMCrypto_GenerateCertificateKeyPair( - provisioning_api_fuzz.session()->session_id(), public_key.data(), + provisioning_api_fuzz.session().session_id(), public_key.data(), public_key_length, public_key_signature.data(), public_key_signature_length, wrapped_private_key.data(), wrapped_private_key_length, key_type); diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_rsa_signature_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_rsa_signature_fuzz.cc index 39aa72c1..f0e003e9 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_rsa_signature_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_rsa_signature_fuzz.cc @@ -2,36 +2,33 @@ // source code may only be used and distributed under the Widevine // License Agreement. +#include + #include "FuzzedDataProvider.h" #include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" - -namespace wvoec { +#include "oemcrypto_fuzz_structs.h" extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); + wvoec::RedirectStdoutToFile(); - OEMCrypto_Generate_RSA_Signature_Fuzz fuzzed_structure; + wvoec::OEMCrypto_Generate_RSA_Signature_Fuzz fuzzed_structure; if (size < sizeof(fuzzed_structure)) { return 0; } FuzzedDataProvider fuzzed_data(data, size); fuzzed_data.ConsumeData(&fuzzed_structure, sizeof(fuzzed_structure)); + fuzzed_structure.signature_length %= wvoec::MAX_FUZZ_OUTPUT_LENGTH + 1; const std::vector message = fuzzed_data.ConsumeRemainingBytes(); - - // Creates wrapped rsa key and calls load drm private key. - static OEMCryptoLicenseAPIFuzz license_api_fuzz; - // We cannot allocate buffers of random huge lengths in memory. - // This also slows down the fuzzer. - fuzzed_structure.signature_length %= MAX_FUZZ_OUTPUT_LENGTH + 1; std::vector signature(fuzzed_structure.signature_length); + + wvoec::OEMCryptoLicenseAPIFuzz license_api_fuzz; + license_api_fuzz.Initialize(); OEMCrypto_GenerateRSASignature( - license_api_fuzz.session()->session_id(), message.data(), message.size(), + license_api_fuzz.session().session_id(), message.data(), message.size(), signature.data(), &fuzzed_structure.signature_length, fuzzed_structure.padding_scheme); + license_api_fuzz.Terminate(); return 0; } -} // namespace wvoec diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_signature.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_signature.cc index 65314570..0ea0eb5b 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_signature.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_signature.cc @@ -1,13 +1,13 @@ -#include "properties.h" +#include "oemcrypto_fuzz_helper.h" #include "oemcrypto_session_tests_helper.h" - -using namespace wvoec; +#include "properties.h" static bool is_init = false; extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - SessionUtil session_helper; + wvoec::SessionUtil session_helper; if (!is_init) { + wvoec::RedirectStdoutToFile(); wvoec::global_features.Initialize(); wvoec::global_features.RestrictFilter("*"); wvutil::Properties::Init(); @@ -18,7 +18,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { OEMCrypto_EnterTestMode(); session_helper.EnsureTestROT(); - Session s; + wvoec::Session s; s.open(); s.GenerateDerivedKeysFromKeybox(session_helper.keybox_); @@ -32,6 +32,5 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { s.close(); OEMCrypto_Terminate(); - return 0; } diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_decrypt_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_decrypt_fuzz.cc index 1bf55705..8fc748f4 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_decrypt_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_decrypt_fuzz.cc @@ -2,37 +2,47 @@ // source code may only be used and distributed under the Widevine // License Agreement. +#include + #include "FuzzedDataProvider.h" #include "OEMCryptoCENC.h" -#include "log.h" -#include "oec_session_util.h" #include "oemcrypto_fuzz_helper.h" #include "oemcrypto_fuzz_structs.h" -#include "oemcrypto_types.h" -namespace wvoec { +namespace { + +// Avoid calling non-trivial destructor. +wvoec::OEMCryptoLicenseAPIFuzz& license_api_fuzz = + *new wvoec::OEMCryptoLicenseAPIFuzz; + +} // namespace + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { + wvoec::RedirectStdoutToFile(); + license_api_fuzz.Initialize(); + license_api_fuzz.LoadLicense(); + return 0; +} + extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); - // Split data using separator. - const std::vector inputs = SplitFuzzedData(data, size); + const std::vector inputs = + wvoec::SplitFuzzedData(data, size); if (inputs.size() < 2) { return 0; } - OEMCrypto_Generic_Api_Fuzz fuzzed_structure; + wvoec::OEMCrypto_Generic_Api_Fuzz fuzzed_structure; if (inputs[0].size < sizeof(fuzzed_structure)) { return 0; } // Copy OEMCrypto_Generic_Api_Fuzz from input data. FuzzedDataProvider fuzzed_data(inputs[0].data, inputs[0].size); fuzzed_data.ConsumeData(&fuzzed_structure, sizeof(fuzzed_structure)); - ConvertDataToValidEnum(OEMCrypto_CipherMode_MaxValue, - &fuzzed_structure.cipher_mode); - ConvertDataToValidEnum(OEMCrypto_Algorithm_MaxValue, - &fuzzed_structure.algorithm); + wvoec::ConvertDataToValidEnum(OEMCrypto_CipherMode_MaxValue, + &fuzzed_structure.cipher_mode); + wvoec::ConvertDataToValidEnum(OEMCrypto_Algorithm_MaxValue, + &fuzzed_structure.algorithm); // Copy iv from input data. const std::vector iv = fuzzed_data.ConsumeRemainingBytes(); @@ -41,19 +51,15 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { inputs[1].data + inputs[1].size); std::vector clear_buffer(encrypted_buffer.size()); - OEMCryptoLicenseAPIFuzz license_api_fuzz; - Session* session = license_api_fuzz.session(); - // Load license and call generic_decrypt API. - license_api_fuzz.LoadLicense(); - vector key_handle; - GetKeyHandleIntoVector(session->session_id(), - session->license().keys[0].key_id, - session->license().keys[0].key_id_length, - fuzzed_structure.cipher_mode, key_handle); + wvoec::Session& session = license_api_fuzz.session(); + std::vector key_handle; + wvoec::GetKeyHandleIntoVector(session.session_id(), + session.license().keys[0].key_id, + session.license().keys[0].key_id_length, + fuzzed_structure.cipher_mode, key_handle); OEMCrypto_Generic_Decrypt(key_handle.data(), key_handle.size(), encrypted_buffer.data(), encrypted_buffer.size(), iv.data(), fuzzed_structure.algorithm, clear_buffer.data()); return 0; } -} // namespace wvoec diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_encrypt_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_encrypt_fuzz.cc index 0c9c8fad..168641dc 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_encrypt_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_encrypt_fuzz.cc @@ -2,37 +2,47 @@ // source code may only be used and distributed under the Widevine // License Agreement. +#include + #include "FuzzedDataProvider.h" #include "OEMCryptoCENC.h" -#include "log.h" -#include "oec_session_util.h" #include "oemcrypto_fuzz_helper.h" #include "oemcrypto_fuzz_structs.h" -#include "oemcrypto_types.h" -namespace wvoec { +namespace { + +// Avoid calling non-trivial destructor. +wvoec::OEMCryptoLicenseAPIFuzz& license_api_fuzz = + *new wvoec::OEMCryptoLicenseAPIFuzz; + +} // namespace + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { + wvoec::RedirectStdoutToFile(); + license_api_fuzz.Initialize(); + license_api_fuzz.LoadLicense(); + return 0; +} + extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); - // Split data using separator. - const std::vector inputs = SplitFuzzedData(data, size); + const std::vector inputs = + wvoec::SplitFuzzedData(data, size); if (inputs.size() < 2) { return 0; } - OEMCrypto_Generic_Api_Fuzz fuzzed_structure; + wvoec::OEMCrypto_Generic_Api_Fuzz fuzzed_structure; if (inputs[0].size < sizeof(fuzzed_structure)) { return 0; } // Copy OEMCrypto_Generic_Api_Fuzz from input data. FuzzedDataProvider fuzzed_data(inputs[0].data, inputs[0].size); fuzzed_data.ConsumeData(&fuzzed_structure, sizeof(fuzzed_structure)); - ConvertDataToValidEnum(OEMCrypto_CipherMode_MaxValue, - &fuzzed_structure.cipher_mode); - ConvertDataToValidEnum(OEMCrypto_Algorithm_MaxValue, - &fuzzed_structure.algorithm); + wvoec::ConvertDataToValidEnum(OEMCrypto_CipherMode_MaxValue, + &fuzzed_structure.cipher_mode); + wvoec::ConvertDataToValidEnum(OEMCrypto_Algorithm_MaxValue, + &fuzzed_structure.algorithm); // Copy iv from input data. const std::vector iv = fuzzed_data.ConsumeRemainingBytes(); @@ -41,19 +51,15 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { inputs[1].data + inputs[1].size); std::vector encrypted_buffer(clear_buffer.size()); - OEMCryptoLicenseAPIFuzz license_api_fuzz; - Session* session = license_api_fuzz.session(); - // Load license and call generic_encrypt API. - license_api_fuzz.LoadLicense(); - vector key_handle; - GetKeyHandleIntoVector(session->session_id(), - session->license().keys[0].key_id, - session->license().keys[0].key_id_length, - fuzzed_structure.cipher_mode, key_handle); + wvoec::Session& session = license_api_fuzz.session(); + std::vector key_handle; + wvoec::GetKeyHandleIntoVector(session.session_id(), + session.license().keys[0].key_id, + session.license().keys[0].key_id_length, + fuzzed_structure.cipher_mode, key_handle); OEMCrypto_Generic_Encrypt(key_handle.data(), key_handle.size(), clear_buffer.data(), clear_buffer.size(), iv.data(), fuzzed_structure.algorithm, encrypted_buffer.data()); return 0; } -} // namespace wvoec diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_sign_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_sign_fuzz.cc index 103668e9..6e31851a 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_sign_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_sign_fuzz.cc @@ -2,44 +2,50 @@ // source code may only be used and distributed under the Widevine // License Agreement. +#include + #include "FuzzedDataProvider.h" #include "OEMCryptoCENC.h" -#include "log.h" -#include "oec_session_util.h" #include "oemcrypto_fuzz_helper.h" #include "oemcrypto_fuzz_structs.h" -#include "oemcrypto_types.h" -namespace wvoec { +namespace { + +// Avoid calling non-trivial destructor. +wvoec::OEMCryptoLicenseAPIFuzz& license_api_fuzz = + *new wvoec::OEMCryptoLicenseAPIFuzz; + +} // namespace + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { + wvoec::RedirectStdoutToFile(); + license_api_fuzz.Initialize(); + license_api_fuzz.LoadLicense(); + return 0; +} + extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); - - OEMCrypto_Generic_Api_Fuzz fuzzed_structure; + wvoec::OEMCrypto_Generic_Api_Fuzz fuzzed_structure; if (size < sizeof(fuzzed_structure)) { return 0; } // Copy OEMCrypto_Generic_Api_Fuzz from input data. FuzzedDataProvider fuzzed_data(data, size); fuzzed_data.ConsumeData(&fuzzed_structure, sizeof(fuzzed_structure)); - ConvertDataToValidEnum(OEMCrypto_CipherMode_MaxValue, - &fuzzed_structure.cipher_mode); - ConvertDataToValidEnum(OEMCrypto_Algorithm_MaxValue, - &fuzzed_structure.algorithm); + wvoec::ConvertDataToValidEnum(OEMCrypto_CipherMode_MaxValue, + &fuzzed_structure.cipher_mode); + wvoec::ConvertDataToValidEnum(OEMCrypto_Algorithm_MaxValue, + &fuzzed_structure.algorithm); // Copy clear buffer from input data. const std::vector clear_buffer = fuzzed_data.ConsumeRemainingBytes(); - OEMCryptoLicenseAPIFuzz license_api_fuzz; - Session* session = license_api_fuzz.session(); - // Load license and call generic_sign API. - license_api_fuzz.LoadLicense(); - vector key_handle; - GetKeyHandleIntoVector(session->session_id(), - session->license().keys[0].key_id, - session->license().keys[0].key_id_length, - fuzzed_structure.cipher_mode, key_handle); + wvoec::Session& session = license_api_fuzz.session(); + std::vector key_handle; + wvoec::GetKeyHandleIntoVector(session.session_id(), + session.license().keys[0].key_id, + session.license().keys[0].key_id_length, + fuzzed_structure.cipher_mode, key_handle); size_t signature_length = 0; OEMCrypto_Generic_Sign(key_handle.data(), key_handle.size(), clear_buffer.data(), clear_buffer.size(), @@ -52,4 +58,3 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { &signature_length); return 0; } -} // namespace wvoec diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_verify_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_verify_fuzz.cc index 23f598d2..11890952 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_verify_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_verify_fuzz.cc @@ -2,18 +2,19 @@ // source code may only be used and distributed under the Widevine // License Agreement. +#include + #include "FuzzedDataProvider.h" #include "OEMCryptoCENC.h" #include "oec_session_util.h" #include "oemcrypto_fuzz_helper.h" #include "oemcrypto_fuzz_structs.h" -#include "oemcrypto_types.h" -namespace wvoec { +namespace { // Properties deserialized from fuzzed data. struct FuzzedProperties { - OEMCrypto_Generic_Api_Fuzz structure; + wvoec::OEMCrypto_Generic_Api_Fuzz structure; std::vector buffer; std::vector signature; }; @@ -24,12 +25,15 @@ struct OptionalFuzzedProperties { bool has_value; }; -OEMCryptoLicenseAPIFuzz license_api_fuzz; +// Avoid calling non-trivial destructor. +wvoec::OEMCryptoLicenseAPIFuzz& license_api_fuzz = + *new wvoec::OEMCryptoLicenseAPIFuzz; OptionalFuzzedProperties DeserializeFuzzedData(const uint8_t* data, size_t size) { OptionalFuzzedProperties fuzzed_properties; - const std::vector inputs = SplitFuzzedData(data, size); + const std::vector inputs = + wvoec::SplitFuzzedData(data, size); if (inputs.size() < 2 || inputs[0].size < sizeof(fuzzed_properties.value.structure)) { fuzzed_properties.has_value = false; @@ -38,10 +42,10 @@ OptionalFuzzedProperties DeserializeFuzzedData(const uint8_t* data, FuzzedDataProvider fuzzed_data(inputs[0].data, inputs[0].size); fuzzed_data.ConsumeData(&fuzzed_properties.value.structure, sizeof(fuzzed_properties.value.structure)); - ConvertDataToValidEnum(OEMCrypto_CipherMode_MaxValue, - &fuzzed_properties.value.structure.cipher_mode); - ConvertDataToValidEnum(OEMCrypto_Algorithm_MaxValue, - &fuzzed_properties.value.structure.algorithm); + wvoec::ConvertDataToValidEnum(OEMCrypto_CipherMode_MaxValue, + &fuzzed_properties.value.structure.cipher_mode); + wvoec::ConvertDataToValidEnum(OEMCrypto_Algorithm_MaxValue, + &fuzzed_properties.value.structure.algorithm); fuzzed_properties.value.buffer = fuzzed_data.ConsumeRemainingBytes(); fuzzed_properties.value.signature.assign(inputs[1].data, inputs[1].data + inputs[1].size); @@ -49,8 +53,11 @@ OptionalFuzzedProperties DeserializeFuzzedData(const uint8_t* data, return fuzzed_properties; } +} // namespace + extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { - RedirectStdoutToFile(); + wvoec::RedirectStdoutToFile(); + license_api_fuzz.Initialize(); license_api_fuzz.LoadLicense(); return 0; } @@ -64,12 +71,12 @@ extern "C" size_t LLVMFuzzerCustomMutator(uint8_t* data, size_t size, return 0; } - // Get key handle for signing and verifying. - Session* const session = license_api_fuzz.session(); - vector key_handle; - OEMCryptoResult result = GetKeyHandleIntoVector( - session->session_id(), session->license().keys[0].key_id, - session->license().keys[0].key_id_length, + // Select key and perform verification. + wvoec::Session& session = license_api_fuzz.session(); + std::vector key_handle; + OEMCryptoResult result = wvoec::GetKeyHandleIntoVector( + session.session_id(), session.license().keys[0].key_id, + session.license().keys[0].key_id_length, fuzzed_properties.value.structure.cipher_mode, key_handle); if (result == OEMCrypto_SUCCESS) { // Generate a new signature if verification fails. @@ -96,7 +103,8 @@ extern "C" size_t LLVMFuzzerCustomMutator(uint8_t* data, size_t size, &signature_length); const size_t signature_offset = sizeof(fuzzed_properties.value.structure) + - fuzzed_properties.value.buffer.size() + sizeof(kFuzzDataSeparator); + fuzzed_properties.value.buffer.size() + + sizeof(wvoec::kFuzzDataSeparator); size = signature_offset + signature_length; if (size > max_size) { return 0; @@ -118,11 +126,11 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { } // Select key and perform verification. - Session* const session = license_api_fuzz.session(); - vector key_handle; - GetKeyHandleIntoVector( - session->session_id(), session->license().keys[0].key_id, - session->license().keys[0].key_id_length, + wvoec::Session& session = license_api_fuzz.session(); + std::vector key_handle; + wvoec::GetKeyHandleIntoVector( + session.session_id(), session.license().keys[0].key_id, + session.license().keys[0].key_id_length, fuzzed_properties.value.structure.cipher_mode, key_handle); OEMCrypto_Generic_Verify(key_handle.data(), key_handle.size(), fuzzed_properties.value.buffer.data(), @@ -132,5 +140,3 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { fuzzed_properties.value.signature.size()); return 0; } - -} // namespace wvoec diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_boot_certificate_chain_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_boot_certificate_chain_fuzz.cc index 3016ac46..ea71f8ae 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_boot_certificate_chain_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_boot_certificate_chain_fuzz.cc @@ -8,26 +8,27 @@ #include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" -using namespace wvoec; +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { + wvoec::RedirectStdoutToFile(); + wvoec::SessionUtil session_util; + wvoec::InitializeFuzz(session_util); + return 0; +} extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); - - static InitializeFuzz initialize_fuzz; FuzzedDataProvider fuzzed_data(data, size); // bcc and bcc_length parameters - size_t bcc_length_data = - fuzzed_data.ConsumeIntegralInRange(0, MAX_FUZZ_OUTPUT_LENGTH); + size_t bcc_length_data = fuzzed_data.ConsumeIntegralInRange( + 0, wvoec::MAX_FUZZ_OUTPUT_LENGTH); std::vector bcc(bcc_length_data); size_t* const bcc_length = fuzzed_data.ConsumeBool() ? &bcc_length_data : nullptr; // additional_signature and additional_signature_length parameters size_t additional_signature_length_data = - fuzzed_data.ConsumeIntegralInRange(0, MAX_FUZZ_OUTPUT_LENGTH); + fuzzed_data.ConsumeIntegralInRange(0, + wvoec::MAX_FUZZ_OUTPUT_LENGTH); std::vector additional_signature(additional_signature_length_data); size_t* const additional_signature_length = fuzzed_data.ConsumeBool() ? &additional_signature_length_data : nullptr; diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_install_oem_private_key_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_install_oem_private_key_fuzz.cc index dcd3c05d..3e926069 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_install_oem_private_key_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_install_oem_private_key_fuzz.cc @@ -6,20 +6,18 @@ #include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" -namespace wvoec { extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); + wvoec::RedirectStdoutToFile(); if (size < sizeof(OEMCrypto_PrivateKeyType)) { return 0; } - LicenseWithUsageEntryFuzz entry; + wvoec::LicenseWithUsageEntryFuzz entry; + entry.Initialize(); entry.CreateUsageTableHeader(); // Open a session, create a usage entry. - Session* session = entry.license_messages().session(); + wvoec::Session* session = entry.license_messages().session(); session->open(); entry.InstallTestDrmKey(session); session->GenerateNonce(); @@ -27,15 +25,15 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { std::vector encrypted_usage_header; session->UpdateUsageEntry(&encrypted_usage_header); FuzzedDataProvider fuzzed_data(data, size); - const OEMCrypto_PrivateKeyType key_type = - ConvertDataToValidEnum(fuzzed_data, OEMCrypto_PrivateKeyType_MaxValue); + const OEMCrypto_PrivateKeyType key_type = wvoec::ConvertDataToValidEnum( + fuzzed_data, OEMCrypto_PrivateKeyType_MaxValue); const std::vector wrapped_private_key = fuzzed_data.ConsumeRemainingBytes(); OEMCrypto_InstallOemPrivateKey(session->session_id(), key_type, wrapped_private_key.data(), wrapped_private_key.size()); session->close(); + OEMCrypto_Terminate(); return 0; } -} // namespace wvoec diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_license_request_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_license_request_fuzz.cc index 52d34938..a0e53429 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_license_request_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_license_request_fuzz.cc @@ -2,27 +2,26 @@ // source code may only be used and distributed under the Widevine // License Agreement. +#include + #include "oemcrypto_fuzz_helper.h" #include "oemcrypto_fuzz_structs.h" -namespace wvoec { - extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); + wvoec::RedirectStdoutToFile(); + // Reject the input if it is less than fuzz data structure size. - if (size < sizeof(OEMCrypto_Request_Fuzz)) { + if (size < sizeof(wvoec::OEMCrypto_Request_Fuzz)) { return 0; } // Input for license request API will be modified by OEMCrypto, hence it // cannot be a const. Fuzzer complains if const identifier is removed of data, // hence copying data into a non const pointer. - uint8_t* input = new uint8_t[size]; - memcpy(input, data, size); - OEMCryptoLicenseAPIFuzz license_api_fuzz; - license_api_fuzz.license_messages().InjectFuzzedRequestData(input, size); - delete[] input; + std::vector input(data, data + size); + wvoec::OEMCryptoLicenseAPIFuzz license_api_fuzz; + license_api_fuzz.Initialize(); + license_api_fuzz.license_messages().InjectFuzzedRequestData(input.data(), + input.size()); + license_api_fuzz.Terminate(); return 0; } -} // namespace wvoec \ No newline at end of file diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_entitled_content_keys_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_entitled_content_keys_fuzz.cc index c01c532c..0714688f 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_entitled_content_keys_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_entitled_content_keys_fuzz.cc @@ -2,27 +2,24 @@ // source code may only be used and distributed under the Widevine // License Agreement. +#include + +#include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" -namespace wvoec { - extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); + wvoec::RedirectStdoutToFile(); // Corpus format is as below, let | be separator. // message buffer with key data | entitled content key object array with // offsets and lengths to read key data from message buffer. // Split data using separator. - const std::vector inputs = SplitFuzzedData(data, size); + const std::vector inputs = + wvoec::SplitFuzzedData(data, size); if (inputs.size() < 2) { return 0; } - const std::vector message(inputs[0].data, - inputs[0].data + inputs[0].size); - // Copy data to OEMCrypto_EntitledContentKeyObject array. std::vector entitled_content_keys( inputs[1].size / sizeof(OEMCrypto_EntitledContentKeyObject)); @@ -32,8 +29,11 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { sizeof(OEMCrypto_EntitledContentKeyObject)); } - // Load default entitlement license. - OEMCryptoLicenseAPIFuzz license_api_fuzz; + wvoec::OEMCryptoLicenseAPIFuzz license_api_fuzz; + license_api_fuzz.Initialize(); + + // Setting up state. Load default entitlement license to load entitlement + // keys into sessions key table. license_api_fuzz.license_messages().set_license_type( OEMCrypto_EntitlementLicense); license_api_fuzz.LoadLicense(); @@ -41,15 +41,16 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { // Create entitled key session. OEMCrypto_SESSION key_session; const OEMCryptoResult result = OEMCrypto_CreateEntitledKeySession( - license_api_fuzz.session()->session_id(), &key_session); - CheckStatusAndExitFuzzerOnFailure(result, OEMCrypto_SUCCESS); + license_api_fuzz.session().session_id(), &key_session); + wvoec::CheckStatusAndExitFuzzerOnFailure(result, OEMCrypto_SUCCESS); // Call OEMCrypto_LoadEntitledContentKeys with fuzzed buffers. - OEMCrypto_LoadEntitledContentKeys(key_session, message.data(), message.size(), - entitled_content_keys.size(), - entitled_content_keys.data()); + const std::vector message(inputs[0].data, + inputs[0].data + inputs[0].size); + OEMCrypto_LoadEntitledContentKeys( + license_api_fuzz.session().session_id(), message.data(), message.size(), + entitled_content_keys.size(), entitled_content_keys.data()); + license_api_fuzz.Terminate(); return 0; } - -} // namespace wvoec diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_license_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_license_fuzz.cc index 64f5f4b5..6018be80 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_license_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_license_fuzz.cc @@ -4,27 +4,26 @@ #include "oemcrypto_fuzz_helper.h" -namespace wvoec { extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); - if (size < sizeof(ODK_ParsedLicense) + sizeof(MessageData)) { + wvoec::RedirectStdoutToFile(); + + if (size < sizeof(ODK_ParsedLicense) + sizeof(wvoec::MessageData)) { return 0; } - OEMCryptoLicenseAPIFuzz license_api_fuzz; + wvoec::OEMCryptoLicenseAPIFuzz license_api_fuzz; + license_api_fuzz.Initialize(); license_api_fuzz.license_messages().SignAndVerifyRequest(); // Interpreting input fuzz data as unencrypted (core_response + license // message data) from license server. license_api_fuzz.license_messages().InjectFuzzedResponseData(data, size); // Convert OEMCrypto_LicenseType in core_response to a valid enum value. - ConvertDataToValidEnum( + wvoec::ConvertDataToValidEnum( OEMCrypto_LicenseType_MaxValue, &license_api_fuzz.license_messages().core_response().license_type); license_api_fuzz.license_messages().EncryptAndSignResponse(); license_api_fuzz.license_messages().LoadResponse(); + license_api_fuzz.Terminate(); return 0; } -} // namespace wvoec diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_provisioning_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_provisioning_fuzz.cc index 757ab241..06907ff1 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_provisioning_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_provisioning_fuzz.cc @@ -4,17 +4,16 @@ #include "oemcrypto_fuzz_helper.h" -namespace wvoec { - extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); - if (size < sizeof(ODK_ParsedProvisioning) + sizeof(RSAPrivateKeyMessage)) { + wvoec::RedirectStdoutToFile(); + + if (size < + sizeof(ODK_ParsedProvisioning) + sizeof(wvoec::RSAPrivateKeyMessage)) { return 0; } - OEMCryptoProvisioningAPIFuzz provisioning_api_fuzz; + wvoec::OEMCryptoProvisioningAPIFuzz provisioning_api_fuzz; + provisioning_api_fuzz.Intialize(); provisioning_api_fuzz.provisioning_messages().SignAndVerifyRequest(); // Interpreting input fuzz data as unencrypted(core_response + provisioning // message data) from provisioning server. @@ -22,6 +21,6 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { size); provisioning_api_fuzz.provisioning_messages().EncryptAndSignResponse(); provisioning_api_fuzz.provisioning_messages().LoadResponse(); + provisioning_api_fuzz.Terminate(); return 0; } -} // namespace wvoec diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_renewal_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_renewal_fuzz.cc index 1b6ecfc6..00836b4c 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_renewal_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_renewal_fuzz.cc @@ -2,41 +2,41 @@ // source code may only be used and distributed under the Widevine // License Agreement. +#include "FuzzedDataProvider.h" #include "oemcrypto_fuzz_helper.h" #include "oemcrypto_fuzz_structs.h" -namespace wvoec { - extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); - if (size < sizeof(OEMCrypto_Renewal_Response_Fuzz)) { - return 0; - } + wvoec::RedirectStdoutToFile(); + // Copy input data to OEMCrypto_Renewal_Response_Fuzz and rest of message // into encrypted license_renewal_response. - OEMCrypto_Renewal_Response_Fuzz fuzzed_data; - memcpy(&fuzzed_data, data, sizeof(fuzzed_data)); - const uint8_t* renewal_response = - data + sizeof(OEMCrypto_Renewal_Response_Fuzz); - const size_t renewal_response_size = - size - sizeof(OEMCrypto_Renewal_Response_Fuzz); + wvoec::OEMCrypto_Renewal_Response_Fuzz fuzzed_structure; + if (size < sizeof(fuzzed_structure)) { + return 0; + } + FuzzedDataProvider fuzzed_data(data, size); + fuzzed_data.ConsumeData(&fuzzed_structure, sizeof(fuzzed_structure)); + const std::vector renewal_response = + fuzzed_data.ConsumeRemainingBytes(); - OEMCryptoRenewalAPIFuzz renewal_response_fuzz; + wvoec::OEMCryptoRenewalAPIFuzz renewal_response_fuzz; + renewal_response_fuzz.Intialize(); renewal_response_fuzz.license_messages().SignAndVerifyRequest(); renewal_response_fuzz.license_messages().CreateDefaultResponse(); + // Inject timer limits from fuzzed input to timer_limits field from // core license response. - renewal_response_fuzz.license_messages().InjectFuzzedTimerLimits(fuzzed_data); + renewal_response_fuzz.license_messages().InjectFuzzedTimerLimits( + fuzzed_structure); renewal_response_fuzz.license_messages().EncryptAndSignResponse(); renewal_response_fuzz.license_messages().LoadResponse(); // Call renewal response API using fuzzed data. renewal_response_fuzz.renewal_messages().SignAndVerifyRequest(); renewal_response_fuzz.renewal_messages().InjectFuzzedResponseData( - fuzzed_data, renewal_response, renewal_response_size); + fuzzed_structure, renewal_response.data(), renewal_response.size()); renewal_response_fuzz.renewal_messages().LoadResponse(); + renewal_response_fuzz.Terminate(); return 0; } -} // namespace wvoec \ No newline at end of file diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_entry_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_entry_fuzz.cc index e0c9ee4d..5627c41a 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_entry_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_entry_fuzz.cc @@ -5,9 +5,10 @@ #include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" -namespace wvoec { +namespace { -LicenseWithUsageEntryFuzz entry; +// Avoid calling non-trivial destructor. +wvoec::LicenseWithUsageEntryFuzz& entry = *new wvoec::LicenseWithUsageEntryFuzz; OEMCryptoResult LoadUsageEntryWithFuzzedData(OEMCrypto_SESSION session, const uint8_t* data, size_t size) { @@ -22,11 +23,19 @@ OEMCryptoResult LoadUsageEntryWithFuzzedData(OEMCrypto_SESSION session, buffer.size()); } +} // namespace + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { + wvoec::RedirectStdoutToFile(); + entry.Initialize(); + return 0; +} + // The custom mutator to mutate created encrypted usage entry. extern "C" size_t LLVMFuzzerCustomMutator(uint8_t* data, size_t size, size_t max_size, unsigned int seed) { entry.CreateUsageTableHeader(); - Session* s = entry.license_messages().session(); + wvoec::Session* s = entry.license_messages().session(); s->open(); entry.InstallTestDrmKey(s); if (LoadUsageEntryWithFuzzedData(s->session_id(), data, size) != @@ -51,15 +60,9 @@ extern "C" size_t LLVMFuzzerCustomMutator(uint8_t* data, size_t size, } extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); - - Session s; + wvoec::Session s; s.open(); LoadUsageEntryWithFuzzedData(s.session_id(), data, size); s.close(); return 0; } - -} // namespace wvoec diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_table_header_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_table_header_fuzz.cc index 19c699a3..f4667f37 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_table_header_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_table_header_fuzz.cc @@ -5,12 +5,11 @@ #include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" -namespace wvoec { - // The custom mutator to mutate created encrypted usage table header. extern "C" size_t LLVMFuzzerCustomMutator(uint8_t* data, size_t size, size_t max_size, unsigned int seed) { - LicenseWithUsageEntryFuzz entry; + wvoec::LicenseWithUsageEntryFuzz entry; + entry.Initialize(); if (OEMCrypto_LoadUsageTableHeader(data, size) != OEMCrypto_SUCCESS) { entry.CreateUsageTableHeader(); size = entry.encrypted_usage_header().size(); @@ -21,17 +20,17 @@ extern "C" size_t LLVMFuzzerCustomMutator(uint8_t* data, size_t size, memcpy(data, entry.encrypted_usage_header().data(), entry.encrypted_usage_header().size()); } + OEMCrypto_Terminate(); return LLVMFuzzerMutate(data, size, max_size); } extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); + wvoec::RedirectStdoutToFile(); + // Initialize OEMCrypto and call API. - InitializeFuzz initialize_fuzz; + wvoec::SessionUtil session_util; + InitializeFuzz(session_util); OEMCrypto_LoadUsageTableHeader(data, size); + OEMCrypto_Terminate(); return 0; } - -} // namespace wvoec diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_move_usage_entry_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_move_usage_entry_fuzz.cc index 10c2d30d..b59dc381 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_move_usage_entry_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_move_usage_entry_fuzz.cc @@ -5,29 +5,35 @@ #include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" -namespace wvoec { -LicenseWithUsageEntryFuzz entry; -extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); +namespace { - uint32_t usage_entry_number = 0; +// Avoid calling non-trivial destructor. +wvoec::LicenseWithUsageEntryFuzz& entry = *new wvoec::LicenseWithUsageEntryFuzz; + +} // namespace + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { + wvoec::RedirectStdoutToFile(); + entry.Initialize(); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + uint32_t usage_entry_number; if (size < sizeof(usage_entry_number)) { return 0; } + memcpy(&usage_entry_number, data, sizeof(usage_entry_number)); entry.CreateUsageTableHeader(); - Session* s = entry.license_messages().session(); + wvoec::Session* s = entry.license_messages().session(); s->open(); entry.InstallTestDrmKey(s); - memcpy(&usage_entry_number, data, sizeof(uint32_t)); s->CreateNewUsageEntry(); - vector encrypted_usage_header; + std::vector encrypted_usage_header; s->UpdateUsageEntry(&encrypted_usage_header); OEMCrypto_MoveEntry(s->session_id(), usage_entry_number); - s ->close(); + s->close(); return 0; } -} // namespace wvoec diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_opk_dispatcher_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_opk_dispatcher_fuzz.cc index 537e90ec..231cf406 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_opk_dispatcher_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_opk_dispatcher_fuzz.cc @@ -3,7 +3,7 @@ #include "opk_dispatcher.h" #include "opk_init.h" -namespace wvoec { +namespace { void OpenOEMCryptoTASession() { uint8_t request_body[] = { @@ -35,6 +35,8 @@ void InitializeOEMCryptoTA() { OPK_DispatchMessage(&request, &response); } +} // namespace + extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { OPK_Initialize(); InitializeOEMCryptoTA(); @@ -51,5 +53,3 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { OPK_DispatchMessage(&request, &response); return 0; } - -} // namespace wvoec diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_provisioning_request_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_provisioning_request_fuzz.cc index b66aab6d..ea1b1b16 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_provisioning_request_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_provisioning_request_fuzz.cc @@ -2,27 +2,26 @@ // source code may only be used and distributed under the Widevine // License Agreement. +#include + #include "oemcrypto_fuzz_helper.h" #include "oemcrypto_fuzz_structs.h" -namespace wvoec { extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); + wvoec::RedirectStdoutToFile(); + // If input size is less than fuzz data structure size, reject the input. - if (size < sizeof(OEMCrypto_Request_Fuzz)) { + if (size < sizeof(wvoec::OEMCrypto_Request_Fuzz)) { return 0; } // Input for provisioning request API will be modified by OEMCrypto, hence it // cannot be a const. Fuzzer complains if const identifier is removed of data, // hence copying data into a non const pointer. - uint8_t* input = new uint8_t[size]; - memcpy(input, data, size); - OEMCryptoProvisioningAPIFuzz provisioning_api_fuzz; - provisioning_api_fuzz.provisioning_messages().InjectFuzzedRequestData(input, - size); - delete[] input; + std::vector input(data, data + size); + wvoec::OEMCryptoProvisioningAPIFuzz provisioning_api_fuzz; + provisioning_api_fuzz.Intialize(); + provisioning_api_fuzz.provisioning_messages().InjectFuzzedRequestData( + input.data(), input.size()); + provisioning_api_fuzz.Terminate(); return 0; } -} // namespace wvoec \ No newline at end of file diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_renewal_request_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_renewal_request_fuzz.cc index 8b7fd79d..c9d1e4bc 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_renewal_request_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_renewal_request_fuzz.cc @@ -2,26 +2,26 @@ // source code may only be used and distributed under the Widevine // License Agreement. +#include + #include "oemcrypto_fuzz_helper.h" #include "oemcrypto_fuzz_structs.h" -namespace wvoec { extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); + wvoec::RedirectStdoutToFile(); + // If input size is less than fuzz data structure, reject the input. - if (size < sizeof(OEMCrypto_Request_Fuzz)) { + if (size < sizeof(wvoec::OEMCrypto_Request_Fuzz)) { return 0; } // Input for renewal request API will be modified by OEMCrypto, hence it // cannot be a const. Fuzzer complains if const identifier is removed of data, // hence copying data into a non const pointer. - uint8_t* input = new uint8_t[size]; - memcpy(input, data, size); - OEMCryptoRenewalAPIFuzz renewal_api_fuzz; - renewal_api_fuzz.renewal_messages().InjectFuzzedRequestData(input, size); - delete[] input; + std::vector input(data, data + size); + wvoec::OEMCryptoRenewalAPIFuzz renewal_api_fuzz; + renewal_api_fuzz.Intialize(); + renewal_api_fuzz.renewal_messages().InjectFuzzedRequestData(input.data(), + input.size()); + renewal_api_fuzz.Terminate(); return 0; } -} // namespace wvoec \ No newline at end of file diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_report_usage_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_report_usage_fuzz.cc index d4df351e..f99bffba 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_report_usage_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_report_usage_fuzz.cc @@ -2,29 +2,34 @@ // source code may only be used and distributed under the Widevine Master // License Agreement. +#include + #include "FuzzedDataProvider.h" #include "oemcrypto_fuzz_helper.h" -namespace wvoec { -const size_t MAX_FUZZ_PST_REPORT_BUFFER_LENGTH = 5 * MB; +namespace { + +constexpr size_t MAX_FUZZ_PST_REPORT_BUFFER_LENGTH = 5 * wvoec::MB; + +} // namespace + extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); + wvoec::RedirectStdoutToFile(); if (size < sizeof(size_t)) { return 0; } - LicenseWithUsageEntryFuzz entry; + wvoec::LicenseWithUsageEntryFuzz entry; + entry.Initialize(); entry.CreateUsageTableHeader(); // Open a session, create a usage entry. - Session* session = entry.license_messages().session(); + wvoec::Session* session = entry.license_messages().session(); session->open(); entry.InstallTestDrmKey(session); session->CreateNewUsageEntry(); session->GenerateNonce(); - vector encrypted_usage_header; + std::vector encrypted_usage_header; session->UpdateUsageEntry(&encrypted_usage_header); // Sets pst for usage entry. entry.LoadLicense(); @@ -38,6 +43,6 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { OEMCrypto_ReportUsage(session->session_id(), pst.data(), pst.size(), pst_report_buffer.data(), &pst_report_buffer_length); session->close(); + OEMCrypto_Terminate(); return 0; } -} // namespace wvoec diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_reuse_usage_entry_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_reuse_usage_entry_fuzz.cc index c825498c..8d99493a 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_reuse_usage_entry_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_reuse_usage_entry_fuzz.cc @@ -5,29 +5,35 @@ #include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" -namespace wvoec { -LicenseWithUsageEntryFuzz entry; -extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); +namespace { - uint32_t usage_entry_number = 0; +// Avoid calling non-trivial destructor. +wvoec::LicenseWithUsageEntryFuzz& entry = *new wvoec::LicenseWithUsageEntryFuzz; + +} // namespace + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { + wvoec::RedirectStdoutToFile(); + entry.Initialize(); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + uint32_t usage_entry_number; if (size < sizeof(usage_entry_number)) { return 0; } + memcpy(&usage_entry_number, data, sizeof(usage_entry_number)); entry.CreateUsageTableHeader(); - Session* s = entry.license_messages().session(); + wvoec::Session* s = entry.license_messages().session(); s->open(); entry.InstallTestDrmKey(s); s->CreateNewUsageEntry(); s->close(); s->open(); - memcpy(&usage_entry_number, data, sizeof(uint32_t)); OEMCrypto_ReuseUsageEntry(s->session_id(), usage_entry_number); s->close(); return 0; } -} // namespace wvoec diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_shrink_usage_table_header_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_shrink_usage_table_header_fuzz.cc index 625b0f01..09113d63 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_shrink_usage_table_header_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_shrink_usage_table_header_fuzz.cc @@ -2,30 +2,29 @@ // source code may only be used and distributed under the Widevine // License Agreement. +#include + #include "FuzzedDataProvider.h" #include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" -namespace wvoec { extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Redirect printf and log statements from oemcrypto functions to a file to - // reduce noise - RedirectStdoutToFile(); + wvoec::RedirectStdoutToFile(); if (size < sizeof(uint32_t) + sizeof(size_t)) { return 0; } - LicenseWithUsageEntryFuzz entry; + wvoec::LicenseWithUsageEntryFuzz entry; + entry.Initialize(); entry.CreateUsageTableHeader(); FuzzedDataProvider fuzzed_data(data, size); const uint32_t new_entry_count = fuzzed_data.ConsumeIntegral(); - size_t header_buffer_length = - fuzzed_data.ConsumeIntegralInRange(0, MAX_FUZZ_OUTPUT_LENGTH); + size_t header_buffer_length = fuzzed_data.ConsumeIntegralInRange( + 0, wvoec::MAX_FUZZ_OUTPUT_LENGTH); std::vector header_buffer(header_buffer_length); OEMCrypto_ShrinkUsageTableHeader(new_entry_count, header_buffer.data(), &header_buffer_length); - + OEMCrypto_Terminate(); return 0; } -} // namespace wvoec From 55ef762c081c1f38fb1a46ea087fb769cec5804a Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Wed, 22 Mar 2023 15:52:29 +0000 Subject: [PATCH 07/27] Improve fuzzers with FuzzedDataProvider inputs - Remove redundant input size checks handled by FuzzedDataProvider. - Allow passing null when buffer size is used as an in/out parameter. Merged from https://widevine-internal-review.googlesource.com/168637 Merged from https://widevine-internal-review.googlesource.com/171190 Merged from https://widevine-internal-review.googlesource.com/172090 Merged from https://widevine-internal-review.googlesource.com/172251 Change-Id: Ib5779ab969f646f306088b3d75d513e1f07a3886 --- .../fuzz_tests/oemcrypto_report_usage_fuzz.cc | 16 ++++++++-------- .../oemcrypto_shrink_usage_table_header_fuzz.cc | 12 +++++------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_report_usage_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_report_usage_fuzz.cc index f99bffba..c208f344 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_report_usage_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_report_usage_fuzz.cc @@ -16,10 +16,6 @@ constexpr size_t MAX_FUZZ_PST_REPORT_BUFFER_LENGTH = 5 * wvoec::MB; extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { wvoec::RedirectStdoutToFile(); - if (size < sizeof(size_t)) { - return 0; - } - wvoec::LicenseWithUsageEntryFuzz entry; entry.Initialize(); entry.CreateUsageTableHeader(); @@ -35,14 +31,18 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { entry.LoadLicense(); FuzzedDataProvider fuzzed_data(data, size); - size_t pst_report_buffer_length = fuzzed_data.ConsumeIntegralInRange( - 0, MAX_FUZZ_PST_REPORT_BUFFER_LENGTH); + size_t pst_report_buffer_length_data = + fuzzed_data.ConsumeIntegralInRange( + 0, MAX_FUZZ_PST_REPORT_BUFFER_LENGTH); + std::vector pst_report_buffer(pst_report_buffer_length_data); + size_t* const pst_report_buffer_length = + fuzzed_data.ConsumeBool() ? &pst_report_buffer_length_data : nullptr; const std::vector pst = fuzzed_data.ConsumeRemainingBytes(); - std::vector pst_report_buffer(pst_report_buffer_length); // Call API with fuzzed pst_buffer_length, pst. OEMCrypto_ReportUsage(session->session_id(), pst.data(), pst.size(), - pst_report_buffer.data(), &pst_report_buffer_length); + pst_report_buffer.data(), pst_report_buffer_length); session->close(); OEMCrypto_Terminate(); + return 0; } diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_shrink_usage_table_header_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_shrink_usage_table_header_fuzz.cc index 09113d63..e9db0bb0 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_shrink_usage_table_header_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_shrink_usage_table_header_fuzz.cc @@ -11,20 +11,18 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { wvoec::RedirectStdoutToFile(); - if (size < sizeof(uint32_t) + sizeof(size_t)) { - return 0; - } - wvoec::LicenseWithUsageEntryFuzz entry; entry.Initialize(); entry.CreateUsageTableHeader(); FuzzedDataProvider fuzzed_data(data, size); const uint32_t new_entry_count = fuzzed_data.ConsumeIntegral(); - size_t header_buffer_length = fuzzed_data.ConsumeIntegralInRange( + size_t header_buffer_length_data = fuzzed_data.ConsumeIntegralInRange( 0, wvoec::MAX_FUZZ_OUTPUT_LENGTH); - std::vector header_buffer(header_buffer_length); + std::vector header_buffer(header_buffer_length_data); + size_t* const header_buffer_length = + fuzzed_data.ConsumeBool() ? &header_buffer_length_data : nullptr; OEMCrypto_ShrinkUsageTableHeader(new_entry_count, header_buffer.data(), - &header_buffer_length); + header_buffer_length); OEMCrypto_Terminate(); return 0; } From 57b391c8b954e6d50045202e04e3784c668ffcd9 Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Tue, 21 Mar 2023 01:45:50 +0000 Subject: [PATCH 08/27] Fix bugs impacting fuzzing coverage - Update ConvertDataToValidEnum to not use FuzzedDataProvider since it causes unexpected parsing results. - Add OEMCryptoLicenseAPIFuzz::LoadLicenseWithGenericCryptoKeys so that generic crypto fuzz tests can load appropriate keys. - Remove custom mutator from oemcrypto_generic_verify_fuzz because it provides minimal additional coverage. - Refresh affected corpus files. Merged from https://widevine-internal-review.googlesource.com/168557 Merged from https://widevine-internal-review.googlesource.com/171191 Merged from https://widevine-internal-review.googlesource.com/172170 Merged from https://widevine-internal-review.googlesource.com/172250 Change-Id: Ie676a36cbf4c12bdda9566fad3590a7b69168d9c --- .../0c7e14c42a24845ff54356b92cc20a3f9e2e6498 | Bin 280 -> 0 bytes .../23ef7d98cdd44b07f7a582b24e44984a835aeb59 | Bin 0 -> 280 bytes .../b02efc63fc06ecac3df93523d2318ec8a67e8d21 | Bin 0 -> 280 bytes .../d936772829ba7bfac4b239053fcb7a622ff81203 | Bin 280 -> 0 bytes .../f8b4afb2db6344296026dad1cd863f04bab5f6b0 | Bin 0 -> 280 bytes .../fb094d421ad8099a07a15ae71060746b5ebcb129 | Bin 280 -> 0 bytes .../0020aada9920cca0f1ca3bba3835c57ba1b64722 | Bin 162 -> 0 bytes .../01940cb7d91a0378062e3c34c6959c08cc64bfa7 | Bin 128 -> 0 bytes .../0285ab6852dc82c1adee1ef77a6573df480161d7 | Bin 0 -> 368 bytes .../03705943a03b55af8796a85ef076751c1a35dab3 | Bin 0 -> 512 bytes .../03ddc96089c172b96ea359aa658b103e711b0824 | Bin 512 -> 0 bytes .../04124cff8b8ddc8f4f245b86f054d21bf6bf1118 | Bin 512 -> 0 bytes .../04f3c6813639af694f3b8752798ddff9bbfa5fea | Bin 0 -> 122 bytes .../0554387fba557ee5ad1222e62162d23733e507aa | Bin 162 -> 0 bytes ... 080308d9a78045272feb864835800f3c963e4110} | Bin 368 -> 368 bytes .../09064c11a50f1e5a7e3e561495aa4148c425ee41 | Bin 0 -> 288 bytes .../096509f3e835e6235b48d6fb33ce73093f2996dc | Bin 0 -> 162 bytes .../0a91e7678f5ed86ba853fc3383b1f0ece2c502b5 | Bin 0 -> 122 bytes .../0b63f772494b90196d295375968a8da7f71add8c | Bin 162 -> 0 bytes .../0ffae4ac0412685f5278d748bf45f78c25dbed10 | Bin 122 -> 0 bytes .../10e69df82df7df7a5d3cffe390d5073a37527c78 | Bin 0 -> 368 bytes .../1121c84038be5099dc3ce3d2d69d5e8d0b094c98 | Bin 0 -> 406 bytes .../114cdbe28fd549ca5bcc3fa19b4fed7d5a8af34d | Bin 0 -> 288 bytes ... 11bafc979e7ec7122d0f59c0f72f9cb8d449eaa5} | Bin 288 -> 288 bytes .../11c19b2cc104b1cf85422685340d5e917498ee16 | Bin 0 -> 852 bytes .../120f2cfe38baa03b5d58dcbc3b0be49d21f3c869 | Bin 0 -> 341 bytes .../137d434df4e17271af719ad678e7e74edc284f18 | Bin 406 -> 0 bytes .../13bdd5f2dbf82567a92c2a30b9ef2310a02af361 | Bin 368 -> 0 bytes ... 14e06e7cea4686bdd83742f7f9d7b111c7b9aa21} | Bin 368 -> 368 bytes .../151941252771d6c9173ee1397d457db28bc20059 | Bin 0 -> 406 bytes .../1522db2eb65a0eafe367151d77b3a4dbfe65bee4 | Bin 0 -> 128 bytes .../1539088d12d235bba441c8fb46b54d839110cc38 | Bin 406 -> 0 bytes ... 161778100a4dcf30cb49fe57d0ed8cd55a1230ca} | Bin 288 -> 288 bytes ... 180835f71f4a9bfde27b61579c2a3a6d8d8e78ef} | Bin 852 -> 852 bytes .../188bc9339e5b42687067e26369840c9eca20703f | Bin 852 -> 0 bytes .../1b2a3b8415b5b7ec6a5e03cf644b39e732d63b60 | Bin 0 -> 341 bytes .../1b40e1b853761bf6db5deac7df38532d8199aee5 | Bin 341 -> 0 bytes .../1ba27988b89d8936e9237fb758059df1bc3ac36a | Bin 0 -> 288 bytes .../1bd3f10a023bcc8163e1b8d70c285295f3fea4c6 | Bin 0 -> 512 bytes .../1be21d7100f97ffba5b208ee5715d2f7531f383b | Bin 0 -> 128 bytes ... 1efe003a4fc59c06e4e40756025e59753418e53e} | Bin 341 -> 341 bytes .../2001ea8811ed0ce164b49879561918ef3b43a78c | Bin 288 -> 0 bytes ... 2032071963b1e60dac0ccd91cbd564e3c9e26a63} | Bin 512 -> 512 bytes .../21f47f867c422f05c68997e44f395bf6d6d0c4b3 | Bin 0 -> 128 bytes .../249806515cd342087c40b0d529e68ea01e1b128e | Bin 0 -> 122 bytes .../27c685d38645723287ce2a36cf338aa3126ca787 | Bin 0 -> 122 bytes .../2a1ee60dabdf228a1c30e7f29fbf43389cb5c8d7 | Bin 0 -> 512 bytes .../2aba87702e45624da9e76eb525b469231c67d5cf | Bin 341 -> 0 bytes .../2bacc4d5c23a6eedcf6781480e31a36022ca5962 | Bin 128 -> 0 bytes .../2d611b2f63d41a650304b2b6712496b8392c2659 | Bin 341 -> 0 bytes ... 2dce8534f57150afe93ca38282a60e6db0d0f7ab} | Bin 368 -> 368 bytes ... 2e6c5e96729128dcf9c7a38adc7e33185eb1b4a0} | Bin 852 -> 852 bytes .../2e7e7652ce6f56d00ab740749d65a886172ad01a | Bin 0 -> 341 bytes .../308ecc136d6de9918abf890eef199d04df5bb2bb | Bin 341 -> 0 bytes .../30bc1ad7affa6c1e83b008e02d3d78e765b27a6c | Bin 0 -> 368 bytes .../3131b2f1c4628f9a979eb6f01861d75382f7273d | Bin 162 -> 0 bytes ... 31bff9cf9d33d5cb82882a4f4a9ec3565123cba3} | Bin 406 -> 406 bytes .../31cf7b90c83d6d4f1373d967fc7e230b13707cad | Bin 0 -> 162 bytes ... 325cc084469713e200c0af60c74292f395da6064} | Bin 368 -> 368 bytes .../337fde52cf8682af547dd23d8c0c4f47d41e168b | Bin 0 -> 128 bytes .../34aed6ffd3161dc96341772a0b081095fed4821a | Bin 512 -> 0 bytes .../34d51b3476208e187a14dbbea713c48e72eaca35 | Bin 162 -> 0 bytes .../35fe27def9bffe7aaca02f2d326b1109bd2c53e2 | Bin 512 -> 0 bytes ... 366aef68845adf6f2e1bcc4bc4928ff2e301aa06} | Bin 368 -> 368 bytes .../36e2425af5b4a62301e9ebfbf70f9e28e8a39f3e | Bin 128 -> 0 bytes .../372062024cbde403d2c135674db50d3013718eca | Bin 0 -> 368 bytes .../38f06ab2029f7317904acba919fabdf25edc02ff | Bin 512 -> 0 bytes .../3abaedec5d45b91330b60a338f56906218ca1cbc | Bin 406 -> 0 bytes .../3c522e95e036fbedf884b59caba80f4d4a5eb9a9 | Bin 0 -> 162 bytes .../3cab0134e48bd02f3262515075806ebc5502b0cc | Bin 368 -> 0 bytes ... 3db0d75cfdb383714d6bb3c1d7ededaed2123be1} | Bin 512 -> 512 bytes ... 403143beed32fa7cd4255ff9153515713447605d} | Bin 406 -> 406 bytes .../4191139fe9afc02615ba9159bd3d35b6d6a7d073 | Bin 122 -> 0 bytes ... 42105d003732a222e40d25c877bd182983d1d07e} | Bin 852 -> 852 bytes .../4227fd95d3dc45067dc19e80c31eaf293c8afbee | Bin 852 -> 0 bytes .../437e26ba4817162fda786201e9f9348e8badf9fe | Bin 0 -> 341 bytes .../446ee48d8665b10ab1c51b4bb98c832d9fbd9d3a | Bin 128 -> 0 bytes .../456ce34099fe25289e165eaa1f93a94b8c0beee9 | Bin 0 -> 341 bytes .../4609e29ba8ece69cc08f7d93093768d9d3d959e4 | Bin 122 -> 0 bytes .../478e8789ac549a52ab303897c03676879ba014e2 | Bin 368 -> 0 bytes .../48bc8352918a8225afcb7c6990a9d68983fb22db | Bin 0 -> 341 bytes .../494214feb44b57cb9e592c1ed220e87e0809db86 | Bin 852 -> 0 bytes .../4a188fb2e329657694813f19d00d2634818ba22b | Bin 128 -> 0 bytes .../4a1e8694a2a9ef8f55364a473c3160a15b7e979e | Bin 0 -> 341 bytes ... 4badb31c370b762025e980d3d0e6e90dc0c4b22a} | Bin 368 -> 368 bytes .../4bda3ac6a2ed0e63735181845273e44ee096a02d | Bin 0 -> 368 bytes .../4be9a6a1a463c1babc2fc82de8b855c622227200 | Bin 0 -> 341 bytes ... 4c4b4ac81d0444b917c445c46f568e1ade6eebc8} | Bin 368 -> 368 bytes .../4d08e1ffb6b7f9f1fa89de6c3a07d2c0be4c3a9f | Bin 0 -> 512 bytes .../4e6ba7bcb6b209ae89e33fca8b04458f21983df0 | Bin 512 -> 0 bytes .../4e751fabb40fc3d2cd82d80acda4a60d3bffda45 | Bin 122 -> 0 bytes .../52c1fe05c67dd4caae0cc36ac41024600474e775 | Bin 0 -> 162 bytes .../541a0b0c26a07b77109da181a00b0cc0e3b6c6c0 | Bin 368 -> 0 bytes .../565383265f1550107176113eb22943ad2178a731 | Bin 0 -> 288 bytes ... 569fe4adef9b529c33facecf2b14c320cebd820d} | Bin 512 -> 512 bytes .../5745eabb985db8f6c6cd44f6bfbdccf2c3d69c08 | Bin 406 -> 0 bytes .../584cafd42a17936992f68b152b2a7af0ac5695bb | Bin 0 -> 512 bytes .../58750d3a6ae389e16bab9c8a5eb8f444d4822a56 | Bin 368 -> 0 bytes ... 59ac68c41431dc78942624816ddaf1c9284b90a1} | Bin 512 -> 512 bytes .../59ca33a53cdcd43ca7bcfa317e6baa9e9274d5c4 | Bin 122 -> 0 bytes .../5bd6daea2290abd4fd85fb7fc4ef767d0c31d59a | Bin 122 -> 0 bytes .../5c3a4b2851af7350171172b52b354049b77be5d5 | Bin 0 -> 406 bytes .../5ca0f3fcea25b2a8558315a52ed7ec10b31c8a06 | Bin 512 -> 0 bytes .../5d0f9ef8f9bb3ddd53f5fb90bb91b69dd76c7967 | Bin 852 -> 0 bytes ... 5d15891a80d8172de682be6dace7f5bb300e4d36} | Bin 512 -> 512 bytes .../5f77b862460a773e87eca1a72d6ec68ed3a6b9db | Bin 122 -> 0 bytes .../6240d30abd265d95c08193edecbc06900eafbc92 | Bin 341 -> 0 bytes .../62a11e2f3482935ce23d81fa268c0094d5ad58e6 | Bin 288 -> 0 bytes .../649a785d4fa52fc0db4d90d51b084353ad1e6f6d | Bin 0 -> 406 bytes .../64f3143b18b3d922c77f4fcbed0f3ab2b6244b27 | Bin 0 -> 512 bytes ... 65d11e1a8031645bd1bd1a21e1f1fa24e048999c} | Bin 406 -> 406 bytes .../6708bf88a56c292dd3c45abaa0e99314c4fddd9f | Bin 0 -> 122 bytes .../69ba9c487a8b2d6c4812a9a39d9e069265be4afa | Bin 341 -> 0 bytes .../69dd5d28b00400a20a1887ab5b655c4bb468f70f | Bin 0 -> 162 bytes .../6af75aec999c45b84de4d3247f791f1a63c4afe9 | Bin 341 -> 0 bytes .../6d020263a43603c5caa8f3274ed65dfc90e467d0 | Bin 0 -> 122 bytes .../6d0ee80399e88ffdb1778b0bae7b6605c099c2f6 | Bin 288 -> 0 bytes ... 6f63549f4969ebcf0d8504159519f9b20cb259aa} | Bin 288 -> 288 bytes ... 70daf8991859146fff0f147d190594f07b2952b3} | Bin 368 -> 368 bytes ... 733b4e9024aa0f32227da45a08b12d0715ed0834} | Bin 406 -> 406 bytes .../73606d355e70125052bd75183dc0fbc658238788 | Bin 122 -> 0 bytes .../736dde51d09a2c4ff85d7b559d08176c951b07c8 | Bin 162 -> 0 bytes .../7530e1b5149d2f3931560cbecfa27895179fd279 | Bin 162 -> 0 bytes .../7691d3426449d4e2262b58f6be2c1018cd6d2e5f | Bin 341 -> 0 bytes .../790c61aca1614bd78a71ffd715b0498d2518dcd8 | Bin 122 -> 0 bytes .../7986dbd3023ca4d6b964357ad5ae1fde7f75ea36 | Bin 0 -> 406 bytes .../7af21f77c85a086490b6447bcd70b2844b68101c | Bin 368 -> 0 bytes .../7bd3de5dc4ccc9f753c36d54340b4079b8cb30aa | Bin 0 -> 852 bytes .../7c440058b109a6456c50bfc87cbbebd0360e51a0 | Bin 288 -> 0 bytes .../7cf33864cf4435593d27b9c4ca8974cfa5c9d7d7 | Bin 162 -> 0 bytes .../7e55089df762082a4d8d905f5cb1ef27d976eb38 | Bin 512 -> 0 bytes .../80a95f4446f5e696769fc1e738a6b9166f8880b3 | Bin 0 -> 122 bytes .../81dbdffe5f44dcae32cd958cbe8f3f451819d07a | Bin 128 -> 0 bytes .../82b8a9f56e65b3e2af929c4d62d95e7768850eb4 | Bin 128 -> 0 bytes .../82d659133954be19147475562b9ca11f4bcf2056 | Bin 0 -> 852 bytes ... 840a171b28b5c4d7b7b52d71a9926c8ad516fc0d} | Bin 368 -> 368 bytes .../8483cbe550b4c9343c3361935bc8d3a7c30b3ece | Bin 341 -> 0 bytes .../84c5d943ba95108d4072c7843df631bcbd177391 | Bin 341 -> 0 bytes .../84ff4cce4c529e07e5b68e143d54a665c5969534 | Bin 0 -> 128 bytes .../86638a56e2496c3c8cd2750db9b912956daaed1f | Bin 122 -> 0 bytes .../8768d10c0dc08dbbf002bdd81a8cb54a15e00c6a | Bin 0 -> 368 bytes .../87bc4b02fd7544d306e8db2629ee73fda0e4d581 | Bin 0 -> 368 bytes .../87e457fd00f48571ecc482ca7ff96e3375869ac3 | Bin 0 -> 122 bytes .../8b15a9c75b3043040a90f28e84de28e436e023d7 | Bin 512 -> 0 bytes .../8b7a5c18731be9ba1c9d836667ec007a4169de23 | Bin 0 -> 162 bytes .../8d47cedfb8c23677b10651e05645ab8b1835b6c1 | Bin 0 -> 162 bytes .../8eeffea9e7c3876ffc477ce68a3c0ac4375ef3aa | Bin 852 -> 0 bytes .../8f4d31cb3817b34c73ebbbb9d594b3deb7c52111 | Bin 0 -> 512 bytes ... 8f55993eb44bc293d662c18a407f915f03df1e9d} | Bin 512 -> 512 bytes .../901e4c6087322b69946ec8dd8d9fa401eebc826f | Bin 162 -> 0 bytes ... 903baaa085161d75d34d28dc743227c85f2f5b47} | Bin 406 -> 406 bytes .../905f7519227f6a03890b23f2d4fa1808912c1709 | Bin 0 -> 512 bytes .../950e3521352f0c27063a87618a490346f0a3c2f4 | Bin 512 -> 0 bytes .../96831b586053575d609e63674190dc3219b9a003 | Bin 0 -> 162 bytes .../96f9058e89bd44446e8f3e9f2eb62585668591f1 | Bin 0 -> 512 bytes .../970f2e92cbcc069ee31d32f5cda6c691b7ed7fc7 | Bin 0 -> 128 bytes .../97a3724c855e142691e1084ef45f02f614a032f4 | Bin 0 -> 512 bytes .../988fc98ea6e4416b30e99ab39cd70813dd9ff828 | Bin 0 -> 122 bytes .../9985d0be5ab329aaff9e18758af5cf7c2373b7f0 | Bin 0 -> 512 bytes .../9a0b17f115defca3c9b789ea768168d18497bead | Bin 0 -> 406 bytes .../9b75f20679a2ba1ef2163893322a81fe6c54a0cd | Bin 0 -> 128 bytes .../9d730c77c10dc26ff49d9eb96f20c7d98fcc52ad | Bin 0 -> 341 bytes .../9df1116c393c752cd6640ae70709774d6bb96f37 | Bin 368 -> 0 bytes .../9e09a35f73eab1946a6b0db676e913c41222942a | Bin 852 -> 0 bytes .../9f05626c0ea01489c75f0493ec02c973098a3d41 | Bin 162 -> 0 bytes .../9f7fefbfe661e56b0c07e931851389b041692567 | Bin 0 -> 341 bytes .../9fa54bed19e057df5194cf2232117e86d3b6dc0b | Bin 0 -> 128 bytes .../a0cf2b857c3f281595d4eae2b0a95dfeac5659ce | Bin 288 -> 0 bytes .../a0d791df464e8a918a4995759714b191f9a2930e | Bin 0 -> 512 bytes .../a24f216f0ae2ae501bdd21cc9766ad46d51dce9f | Bin 0 -> 368 bytes .../a4ab8d7b3dacd35ff44fc41b4c8bdd28a62045fe | Bin 0 -> 368 bytes .../a667500363948869dfc72acbd781e14d0dcfd56c | Bin 0 -> 368 bytes .../a8a356518396fa5b41de3c2e9359b1a906c8ce12 | Bin 0 -> 512 bytes .../a94aa8ced89b824652465e60330e474dc5a5ac15 | Bin 406 -> 0 bytes .../a99f51d8c51e9e70c6f5ef45702379aace415853 | Bin 368 -> 0 bytes .../a9d9462a602e9e54ebe86ad523a4cf509202239b | Bin 0 -> 162 bytes .../aacbeaf7eadf2c9354f8b5cef48604212008eb33 | Bin 0 -> 288 bytes .../ac592ee43e003afa088bb5effbdc4679476e06a5 | Bin 512 -> 0 bytes .../ad91e7232e1ad6215179b5ac4f723d7e8e6fff04 | Bin 0 -> 368 bytes .../ade91aa40b8684929b4f3fe13632a09335f0767c | Bin 288 -> 0 bytes ... adfd0ced22d4b14d9472dd39ef6ada4137180844} | Bin 368 -> 368 bytes ... ae4904456f7c98fa460127cad5722629eaf375b7} | Bin 288 -> 288 bytes .../b0405d219290369a7507d9a9a4096209855ece5b | Bin 122 -> 0 bytes .../b0671a9ca0688908c35b0197bda0ff7cd91a7802 | Bin 0 -> 368 bytes .../b0de353b0ff4b2dfbaba3574f6e84dcdf1b01d7d | Bin 128 -> 0 bytes .../b147ac2fd9218077a901f82afcbbbd71a032be28 | Bin 0 -> 341 bytes .../b33349107da622826c0de5883dfd2bc8adfb51f5 | Bin 288 -> 0 bytes .../b3ae974d2558a81d2ce7f10caacced4f1f47c533 | Bin 0 -> 122 bytes ... b428deb46505b6dddd37f4e68312096200804f1c} | Bin 852 -> 852 bytes .../b4668f08c1bd92ddb07602a61b2ed9ede6e9e355 | Bin 0 -> 852 bytes .../b53b0c974f3296788ed15885cdd393c19eaa833a | Bin 0 -> 162 bytes .../b572c5d6854c1a5048682c66e8856e9d36e7432d | Bin 0 -> 406 bytes ... b7360deec7bff31dae35d0dbdd8de5d275f1191a} | Bin 288 -> 288 bytes .../ba9c7fade724d985d6ebac7f13fafdd76ffc5aa0 | Bin 0 -> 288 bytes .../baf88bf2463826c84b748aabdce12a406870f43a | Bin 341 -> 0 bytes .../bc08741066ebc87d7d46ef6a5984971ae6186fa2 | Bin 0 -> 162 bytes .../bd2a9a445ebf80d33d947a94ef007d9da69fdd63 | Bin 128 -> 0 bytes .../be836532b3c69821faecb2ee70da56687e442c36 | Bin 852 -> 0 bytes .../c04f75d30fdacb872a5bd369634ee4de4267661e | Bin 512 -> 0 bytes .../c195fa7da39afc1bf330ae04bce401bb200b5aef | Bin 0 -> 128 bytes .../c2ab467b1f82ebbb4a595a34ed4688640acd67db | Bin 162 -> 0 bytes .../c2cf6eb87d09bcad3662b2352c1e23d1e4765f46 | Bin 512 -> 0 bytes .../c37c74ee9d3a0b4f65e7f70b2a287761df95cba8 | Bin 0 -> 162 bytes .../c46552eb7f6937cb598ae6ffc76964f7ae2364bc | Bin 162 -> 0 bytes .../c5ebff5a561cbc77637919c5235a95246c755c15 | Bin 162 -> 0 bytes .../c613e9ab2b629c7b897975460e5c33e8ac1a2232 | Bin 128 -> 0 bytes .../c96c75d639e0a0f6b25fa4c4f0ef65087b9f8c62 | Bin 0 -> 512 bytes .../ca9956ae8e38e999ec3c5113d8b05888aad6ce25 | Bin 0 -> 162 bytes .../cad65bde385d438eac3f1b3b54d9735c3ea1c475 | Bin 0 -> 122 bytes .../cb295c43921dc4bad7ea292e4b5dae704a18bc1f | Bin 0 -> 341 bytes .../cc2c3bc03ecf6d9c9d9be4cefb26ef15d00fd43c | Bin 0 -> 341 bytes .../cd0ed0742b01b47f64707b0ceae55e4bddc8a53e | Bin 341 -> 0 bytes .../d2f3a5ef8bb1964340a5fac8bdef3a1cbd919907 | Bin 122 -> 0 bytes .../d32eb599a72c10c702179987c3bf9162c44e1a96 | Bin 0 -> 128 bytes .../d3668cbdb23f199b8ecbf5f46a7fc2f03c6cb126 | Bin 0 -> 122 bytes .../d4be74f6acbd8a4ee481ce49a35659f7f3549e06 | Bin 0 -> 162 bytes .../d53171a36056241ea76c8ae089770d740241ab4b | Bin 0 -> 128 bytes .../d5cf79b024f393643248821250f7042caa74b33e | Bin 406 -> 0 bytes .../d6210463c5504048832ec428987ae12196879dbf | Bin 0 -> 368 bytes .../d7041c3322321256350b0295456d933798b89c3b | Bin 0 -> 288 bytes .../d7c21613ad6684dc73e1515178d0cfcbffea1df2 | Bin 368 -> 0 bytes .../d7ef40b0ea62d59bc4c8d1525aa3ee0ca5444532 | Bin 122 -> 0 bytes .../d8569cb9f35686a68ea12980ffcf452f9fceb5aa | Bin 0 -> 852 bytes ... d8e9a0bc4f923e9276f3d46b82662735a9a29ef5} | Bin 368 -> 368 bytes .../d9833213bb3e03d7894ffb4016188d4afc4411b4 | Bin 341 -> 0 bytes .../da19453351c3c97a6638c6459d5e6d52530ef2b0 | Bin 0 -> 368 bytes .../dacb7f933d8091949eb58a1d4742d63852b4940d | Bin 0 -> 852 bytes .../db05326428a371755ad51eacbdce730d9fdfeb4e | Bin 0 -> 512 bytes .../db83511a3ced2c03600163abf429f3a68a2c419d | Bin 128 -> 0 bytes .../dc30a02c1536990acb36cb29373edbc7ad6637cd | Bin 0 -> 288 bytes .../dd42a4c087d8e17e1dbabcba4e4bf48b98f3329f | Bin 512 -> 0 bytes .../dfe36dc795d2b55c5f6d0fbc9f87f570ce31e51d | Bin 0 -> 128 bytes .../e0282b8026051307d6821f4214fd732a82d2ca14 | Bin 0 -> 128 bytes .../e0a42c3dd45b6b2b1af036784202c319ca10f146 | Bin 0 -> 122 bytes .../e1542bc7ccdc101ae6a8051e6460fd5005097f79 | Bin 128 -> 0 bytes .../e1d142ea43c04e41b757f01d8987dd6af069a463 | Bin 368 -> 0 bytes .../e3e502902e40348546d1352eaba467591b3df7f4 | Bin 406 -> 0 bytes .../e43bf4879aa0837380a0d93342b30a193c4af677 | Bin 162 -> 0 bytes .../e564ac5e15a78f795629ab31a8a88e91898095a1 | Bin 368 -> 0 bytes .../e751c0f21a9ebccab51d453d0fe32f249e632070 | Bin 368 -> 0 bytes .../e7d4d0e761252d3de02e3d5c9f98cbc4920ff445 | Bin 368 -> 0 bytes .../e8216eb21330e411b6aca3fd6803bb61a7808483 | Bin 512 -> 0 bytes .../e9019d481211e8c40574ccc15907bd89922381e6 | Bin 0 -> 368 bytes .../e914b2a8555bb893176180e01044325cfc2f8bf1 | Bin 406 -> 0 bytes .../e974276349af1ab8387631f597bfba994bd5da9c | Bin 0 -> 852 bytes .../eb533db3c1a3fb6e75363004769aab5a45dedddb | Bin 0 -> 512 bytes ... ee63e1eec358c118f02bc9a0f426cd9df72fabf1} | Bin 512 -> 512 bytes .../ef880a270034e0f210254f3f3574bca5cfe13b54 | Bin 128 -> 0 bytes .../f0950c0364b9ab5aa1aa584c183098f262817088 | Bin 128 -> 0 bytes .../f2b4023c8bafb4c2423751ee5e070eca4026c050 | Bin 288 -> 0 bytes .../f2db36b7af0430c073936a17a9005dc45265ff3b | Bin 0 -> 406 bytes .../f31d50d032713c24334c3ca21cffc16c5fa2cc0a | Bin 406 -> 0 bytes .../f4432c2a09512441123fd68f6ee3ede217067444 | Bin 512 -> 0 bytes .../f61ea517b82990485bff8a973a91a717d1a6bf94 | Bin 122 -> 0 bytes .../f64d8aac4b4c11f8226965fa11a2cfb4295f7987 | Bin 0 -> 122 bytes .../f85ac377234f5f7b4b15ace9365eefae27881876 | Bin 0 -> 128 bytes .../f860eb559bcb2592b50273cf176aab4c624ab387 | Bin 288 -> 0 bytes .../f8eec32608e9d330b3973576735646427a6731f8 | Bin 0 -> 512 bytes .../fb655444ed95def5326f642c7ac3a6a7e7cae5de | Bin 0 -> 406 bytes .../fba13dc4063739e6d3b1651a742cfb80e5053fdf | Bin 0 -> 288 bytes .../fd63517f1edf14196b80b795c08995f3a4cdbd35 | Bin 0 -> 368 bytes ... feabcbfd6a97b797941d0989be77e8156a75a02e} | Bin 852 -> 852 bytes .../ffc43d4749a49d8db8fb96d498a34bbb62af2e0e | Bin 512 -> 0 bytes .../02e3dc401871be9b4fcbf6dfd658842567ca7c1c | Bin 0 -> 178 bytes .../6c6a072aa58399454ee759bac539109a20f7e97f | Bin 188 -> 0 bytes .../75ae4c5769c9568d631452df3b3702d876e4863a | Bin 178 -> 0 bytes .../9bdb356ec50807b86c807c09c780267101fd1a0b | Bin 178 -> 0 bytes .../9d6f8b174b9b82447f3fdb65a24c21b9d0ca36dc | Bin 0 -> 188 bytes .../b0b757465797a5e49307b325481c338ddb591afa | Bin 0 -> 188 bytes .../d3d6e16a36ca8931d6cb18f74243b0cd027e6ed2 | Bin 0 -> 188 bytes .../898b59f382a227ba7f3977fabeecce928a1c8f33 | Bin 0 -> 188 bytes .../94dde36e88bca50f24c228c5e5e9811c711a1b49 | Bin 0 -> 168 bytes ... 080255be6f3f6d8f95f8779116af43da3c7c7fe1} | Bin 204 -> 204 bytes .../3f4491c53865cf9d8975423626980c1a5d547dae | Bin 0 -> 204 bytes .../401f966cf4d9f594cd993c9e429833ae2b298f2b | Bin 0 -> 205 bytes .../44c74993d4832e49d818af03c8469ceb6482802f | Bin 0 -> 204 bytes .../6a7338ef51621a3936d362be039348682d3f42bc | Bin 0 -> 204 bytes .../7196add7d06e51a0b6a583581f81dac29df69f7b | Bin 0 -> 204 bytes ... 76a08035bc9c0772c895b73439a9d19d84737744} | Bin 203 -> 203 bytes .../78c3819333632152791a0a58eacbd67ca19abc4e | Bin 0 -> 204 bytes .../814054a30f7cdc10e4d83e48e6a5b00becf46cf1 | Bin 0 -> 205 bytes .../8c4ea32a7996921e51ec7717035f2826eb9d0853 | Bin 0 -> 204 bytes .../9628ef383581ef1f7591d4316fd75276959c2cab | Bin 0 -> 204 bytes .../9b80edcb955ebf5d52f0e9c754a51aafd03a032d | Bin 0 -> 204 bytes .../a5c27f614414c51fafa12bbc298f061d111ac5dd | Bin 0 -> 204 bytes .../a6873ce79ac837648b62cf89f6c568706ac00c99 | Bin 0 -> 204 bytes .../b93ff0791e1995e5014d1b717afda122e6ade75f | Bin 0 -> 204 bytes .../c179fc48504dbe00aa946d65d71e2a0165423b2f | Bin 0 -> 203 bytes .../cf7792686f978e3b5c6105d97a3a7c9837368f0d | Bin 0 -> 204 bytes .../e007898e3ade64f83149acb974f39b00ed05cde4 | Bin 0 -> 204 bytes .../fuzz_tests/oemcrypto_copy_buffer_fuzz.cc | 2 +- .../fuzz_tests/oemcrypto_decrypt_cenc_fuzz.cc | 4 +- .../test/fuzz_tests/oemcrypto_fuzz_helper.cc | 8 +- .../test/fuzz_tests/oemcrypto_fuzz_helper.h | 26 +++- .../oemcrypto_generic_decrypt_fuzz.cc | 15 +- .../oemcrypto_generic_encrypt_fuzz.cc | 11 +- .../fuzz_tests/oemcrypto_generic_sign_fuzz.cc | 11 +- .../oemcrypto_generic_verify_fuzz.cc | 137 ++++-------------- .../oemcrypto_install_oem_private_key_fuzz.cc | 4 - .../fuzz_tests/oemcrypto_load_license_fuzz.cc | 2 +- 300 files changed, 81 insertions(+), 139 deletions(-) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_copy_buffer_fuzz_seed_corpus/0c7e14c42a24845ff54356b92cc20a3f9e2e6498 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_copy_buffer_fuzz_seed_corpus/23ef7d98cdd44b07f7a582b24e44984a835aeb59 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_copy_buffer_fuzz_seed_corpus/b02efc63fc06ecac3df93523d2318ec8a67e8d21 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_copy_buffer_fuzz_seed_corpus/d936772829ba7bfac4b239053fcb7a622ff81203 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_copy_buffer_fuzz_seed_corpus/f8b4afb2db6344296026dad1cd863f04bab5f6b0 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_copy_buffer_fuzz_seed_corpus/fb094d421ad8099a07a15ae71060746b5ebcb129 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/0020aada9920cca0f1ca3bba3835c57ba1b64722 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/01940cb7d91a0378062e3c34c6959c08cc64bfa7 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/0285ab6852dc82c1adee1ef77a6573df480161d7 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/03705943a03b55af8796a85ef076751c1a35dab3 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/03ddc96089c172b96ea359aa658b103e711b0824 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/04124cff8b8ddc8f4f245b86f054d21bf6bf1118 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/04f3c6813639af694f3b8752798ddff9bbfa5fea delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/0554387fba557ee5ad1222e62162d23733e507aa rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{0c3f5ede5008d158e079e71b676179175fcaf451 => 080308d9a78045272feb864835800f3c963e4110} (75%) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/09064c11a50f1e5a7e3e561495aa4148c425ee41 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/096509f3e835e6235b48d6fb33ce73093f2996dc create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/0a91e7678f5ed86ba853fc3383b1f0ece2c502b5 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/0b63f772494b90196d295375968a8da7f71add8c delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/0ffae4ac0412685f5278d748bf45f78c25dbed10 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/10e69df82df7df7a5d3cffe390d5073a37527c78 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1121c84038be5099dc3ce3d2d69d5e8d0b094c98 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/114cdbe28fd549ca5bcc3fa19b4fed7d5a8af34d rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{00d8703220de64723c9508d6fad24e9caca9b67c => 11bafc979e7ec7122d0f59c0f72f9cb8d449eaa5} (55%) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/11c19b2cc104b1cf85422685340d5e917498ee16 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/120f2cfe38baa03b5d58dcbc3b0be49d21f3c869 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/137d434df4e17271af719ad678e7e74edc284f18 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/13bdd5f2dbf82567a92c2a30b9ef2310a02af361 rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{02485b2bb1c97020e704aed055050a00d02362db => 14e06e7cea4686bdd83742f7f9d7b111c7b9aa21} (75%) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/151941252771d6c9173ee1397d457db28bc20059 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1522db2eb65a0eafe367151d77b3a4dbfe65bee4 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1539088d12d235bba441c8fb46b54d839110cc38 rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{2dd14c72951c6ee8245c7e8d77a15eaec5d9839a => 161778100a4dcf30cb49fe57d0ed8cd55a1230ca} (55%) rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{634cbe7377cbd3358e239c185ccb6a4a78be3f27 => 180835f71f4a9bfde27b61579c2a3a6d8d8e78ef} (77%) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/188bc9339e5b42687067e26369840c9eca20703f create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1b2a3b8415b5b7ec6a5e03cf644b39e732d63b60 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1b40e1b853761bf6db5deac7df38532d8199aee5 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1ba27988b89d8936e9237fb758059df1bc3ac36a create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1bd3f10a023bcc8163e1b8d70c285295f3fea4c6 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1be21d7100f97ffba5b208ee5715d2f7531f383b rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{53a0b89316eedbd09f44336f493067c223d3afa0 => 1efe003a4fc59c06e4e40756025e59753418e53e} (75%) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2001ea8811ed0ce164b49879561918ef3b43a78c rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{1262bc5f3f1ecc414e8e21861e9d200c3b775e87 => 2032071963b1e60dac0ccd91cbd564e3c9e26a63} (79%) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/21f47f867c422f05c68997e44f395bf6d6d0c4b3 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/249806515cd342087c40b0d529e68ea01e1b128e create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/27c685d38645723287ce2a36cf338aa3126ca787 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2a1ee60dabdf228a1c30e7f29fbf43389cb5c8d7 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2aba87702e45624da9e76eb525b469231c67d5cf delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2bacc4d5c23a6eedcf6781480e31a36022ca5962 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2d611b2f63d41a650304b2b6712496b8392c2659 rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{bf813f09576ef5dc365d4fae65be63a3c14c2de0 => 2dce8534f57150afe93ca38282a60e6db0d0f7ab} (93%) rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{638c5864a20d1ca04ad06d3a77181479f477ee91 => 2e6c5e96729128dcf9c7a38adc7e33185eb1b4a0} (77%) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2e7e7652ce6f56d00ab740749d65a886172ad01a delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/308ecc136d6de9918abf890eef199d04df5bb2bb create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/30bc1ad7affa6c1e83b008e02d3d78e765b27a6c delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/3131b2f1c4628f9a979eb6f01861d75382f7273d rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{bcf58b9cf74875a7b938460b19e703876c2b3067 => 31bff9cf9d33d5cb82882a4f4a9ec3565123cba3} (60%) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/31cf7b90c83d6d4f1373d967fc7e230b13707cad rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{d77fa923d5ec1c125ca9347d1f97b24995737806 => 325cc084469713e200c0af60c74292f395da6064} (75%) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/337fde52cf8682af547dd23d8c0c4f47d41e168b delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/34aed6ffd3161dc96341772a0b081095fed4821a delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/34d51b3476208e187a14dbbea713c48e72eaca35 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/35fe27def9bffe7aaca02f2d326b1109bd2c53e2 rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{4a5bc3e146138236be11224681b998194ec1ff9a => 366aef68845adf6f2e1bcc4bc4928ff2e301aa06} (75%) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/36e2425af5b4a62301e9ebfbf70f9e28e8a39f3e create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/372062024cbde403d2c135674db50d3013718eca delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/38f06ab2029f7317904acba919fabdf25edc02ff delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/3abaedec5d45b91330b60a338f56906218ca1cbc create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/3c522e95e036fbedf884b59caba80f4d4a5eb9a9 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/3cab0134e48bd02f3262515075806ebc5502b0cc rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{236647fd79907186bba5d42ebcc90e62ea632872 => 3db0d75cfdb383714d6bb3c1d7ededaed2123be1} (79%) rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{3cd9a833ced641a1716ca14082589ce7ce2cbbb0 => 403143beed32fa7cd4255ff9153515713447605d} (60%) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4191139fe9afc02615ba9159bd3d35b6d6a7d073 rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{97034a7defd7d47912f2353de7e816382562f038 => 42105d003732a222e40d25c877bd182983d1d07e} (77%) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4227fd95d3dc45067dc19e80c31eaf293c8afbee create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/437e26ba4817162fda786201e9f9348e8badf9fe delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/446ee48d8665b10ab1c51b4bb98c832d9fbd9d3a create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/456ce34099fe25289e165eaa1f93a94b8c0beee9 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4609e29ba8ece69cc08f7d93093768d9d3d959e4 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/478e8789ac549a52ab303897c03676879ba014e2 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/48bc8352918a8225afcb7c6990a9d68983fb22db delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/494214feb44b57cb9e592c1ed220e87e0809db86 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4a188fb2e329657694813f19d00d2634818ba22b create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4a1e8694a2a9ef8f55364a473c3160a15b7e979e rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{9e490b158b6fc8ec4642f4ae51e0b9afbe2e4925 => 4badb31c370b762025e980d3d0e6e90dc0c4b22a} (93%) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4bda3ac6a2ed0e63735181845273e44ee096a02d create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4be9a6a1a463c1babc2fc82de8b855c622227200 rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{348418909f835c0728dd2317f5117ec38fc1be08 => 4c4b4ac81d0444b917c445c46f568e1ade6eebc8} (75%) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4d08e1ffb6b7f9f1fa89de6c3a07d2c0be4c3a9f delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4e6ba7bcb6b209ae89e33fca8b04458f21983df0 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4e751fabb40fc3d2cd82d80acda4a60d3bffda45 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/52c1fe05c67dd4caae0cc36ac41024600474e775 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/541a0b0c26a07b77109da181a00b0cc0e3b6c6c0 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/565383265f1550107176113eb22943ad2178a731 rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{1094990c3689bc731ba000f7c144920750d254e3 => 569fe4adef9b529c33facecf2b14c320cebd820d} (79%) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/5745eabb985db8f6c6cd44f6bfbdccf2c3d69c08 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/584cafd42a17936992f68b152b2a7af0ac5695bb delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/58750d3a6ae389e16bab9c8a5eb8f444d4822a56 rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{0bb0b66fac20ba37c2858b7cc76c6af68b3c77a0 => 59ac68c41431dc78942624816ddaf1c9284b90a1} (79%) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/59ca33a53cdcd43ca7bcfa317e6baa9e9274d5c4 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/5bd6daea2290abd4fd85fb7fc4ef767d0c31d59a create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/5c3a4b2851af7350171172b52b354049b77be5d5 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/5ca0f3fcea25b2a8558315a52ed7ec10b31c8a06 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/5d0f9ef8f9bb3ddd53f5fb90bb91b69dd76c7967 rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{4d0abf7562348a077076a31f67dab240996227e6 => 5d15891a80d8172de682be6dace7f5bb300e4d36} (79%) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/5f77b862460a773e87eca1a72d6ec68ed3a6b9db delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/6240d30abd265d95c08193edecbc06900eafbc92 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/62a11e2f3482935ce23d81fa268c0094d5ad58e6 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/649a785d4fa52fc0db4d90d51b084353ad1e6f6d create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/64f3143b18b3d922c77f4fcbed0f3ab2b6244b27 rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{1e148e9501ed59f5274e01ae905b2bf5db81ef79 => 65d11e1a8031645bd1bd1a21e1f1fa24e048999c} (60%) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/6708bf88a56c292dd3c45abaa0e99314c4fddd9f delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/69ba9c487a8b2d6c4812a9a39d9e069265be4afa create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/69dd5d28b00400a20a1887ab5b655c4bb468f70f delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/6af75aec999c45b84de4d3247f791f1a63c4afe9 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/6d020263a43603c5caa8f3274ed65dfc90e467d0 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/6d0ee80399e88ffdb1778b0bae7b6605c099c2f6 rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{67cd7db5d431fb1c35f96b0e8ce416d61cbfaa8b => 6f63549f4969ebcf0d8504159519f9b20cb259aa} (55%) rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{2a0036c5d91f99392a7c334090fcbab08a6fcdb1 => 70daf8991859146fff0f147d190594f07b2952b3} (93%) rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{b3554fe52837e96c0477f59c4574925959fa73b8 => 733b4e9024aa0f32227da45a08b12d0715ed0834} (60%) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/73606d355e70125052bd75183dc0fbc658238788 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/736dde51d09a2c4ff85d7b559d08176c951b07c8 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/7530e1b5149d2f3931560cbecfa27895179fd279 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/7691d3426449d4e2262b58f6be2c1018cd6d2e5f delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/790c61aca1614bd78a71ffd715b0498d2518dcd8 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/7986dbd3023ca4d6b964357ad5ae1fde7f75ea36 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/7af21f77c85a086490b6447bcd70b2844b68101c create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/7bd3de5dc4ccc9f753c36d54340b4079b8cb30aa delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/7c440058b109a6456c50bfc87cbbebd0360e51a0 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/7cf33864cf4435593d27b9c4ca8974cfa5c9d7d7 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/7e55089df762082a4d8d905f5cb1ef27d976eb38 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/80a95f4446f5e696769fc1e738a6b9166f8880b3 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/81dbdffe5f44dcae32cd958cbe8f3f451819d07a delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/82b8a9f56e65b3e2af929c4d62d95e7768850eb4 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/82d659133954be19147475562b9ca11f4bcf2056 rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{74395b056ddfc22160234e4a4616bf87e2159eda => 840a171b28b5c4d7b7b52d71a9926c8ad516fc0d} (93%) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/8483cbe550b4c9343c3361935bc8d3a7c30b3ece delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/84c5d943ba95108d4072c7843df631bcbd177391 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/84ff4cce4c529e07e5b68e143d54a665c5969534 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/86638a56e2496c3c8cd2750db9b912956daaed1f create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/8768d10c0dc08dbbf002bdd81a8cb54a15e00c6a create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/87bc4b02fd7544d306e8db2629ee73fda0e4d581 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/87e457fd00f48571ecc482ca7ff96e3375869ac3 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/8b15a9c75b3043040a90f28e84de28e436e023d7 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/8b7a5c18731be9ba1c9d836667ec007a4169de23 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/8d47cedfb8c23677b10651e05645ab8b1835b6c1 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/8eeffea9e7c3876ffc477ce68a3c0ac4375ef3aa create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/8f4d31cb3817b34c73ebbbb9d594b3deb7c52111 rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{596a7741bc1da115af7b9a5d9a38fdf109b7fcfc => 8f55993eb44bc293d662c18a407f915f03df1e9d} (79%) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/901e4c6087322b69946ec8dd8d9fa401eebc826f rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{17cf1e48c441638a2874088ac78b42e8c4cca286 => 903baaa085161d75d34d28dc743227c85f2f5b47} (60%) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/905f7519227f6a03890b23f2d4fa1808912c1709 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/950e3521352f0c27063a87618a490346f0a3c2f4 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/96831b586053575d609e63674190dc3219b9a003 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/96f9058e89bd44446e8f3e9f2eb62585668591f1 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/970f2e92cbcc069ee31d32f5cda6c691b7ed7fc7 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/97a3724c855e142691e1084ef45f02f614a032f4 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/988fc98ea6e4416b30e99ab39cd70813dd9ff828 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9985d0be5ab329aaff9e18758af5cf7c2373b7f0 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9a0b17f115defca3c9b789ea768168d18497bead create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9b75f20679a2ba1ef2163893322a81fe6c54a0cd create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9d730c77c10dc26ff49d9eb96f20c7d98fcc52ad delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9df1116c393c752cd6640ae70709774d6bb96f37 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9e09a35f73eab1946a6b0db676e913c41222942a delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9f05626c0ea01489c75f0493ec02c973098a3d41 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9f7fefbfe661e56b0c07e931851389b041692567 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9fa54bed19e057df5194cf2232117e86d3b6dc0b delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a0cf2b857c3f281595d4eae2b0a95dfeac5659ce create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a0d791df464e8a918a4995759714b191f9a2930e create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a24f216f0ae2ae501bdd21cc9766ad46d51dce9f create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a4ab8d7b3dacd35ff44fc41b4c8bdd28a62045fe create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a667500363948869dfc72acbd781e14d0dcfd56c create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a8a356518396fa5b41de3c2e9359b1a906c8ce12 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a94aa8ced89b824652465e60330e474dc5a5ac15 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a99f51d8c51e9e70c6f5ef45702379aace415853 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a9d9462a602e9e54ebe86ad523a4cf509202239b create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/aacbeaf7eadf2c9354f8b5cef48604212008eb33 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/ac592ee43e003afa088bb5effbdc4679476e06a5 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/ad91e7232e1ad6215179b5ac4f723d7e8e6fff04 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/ade91aa40b8684929b4f3fe13632a09335f0767c rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{c87d77a256014f0e9f443230be3cadf84b842da5 => adfd0ced22d4b14d9472dd39ef6ada4137180844} (52%) rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{2748bf06f5a71cc5f30fae9f957e537f39b2aa77 => ae4904456f7c98fa460127cad5722629eaf375b7} (55%) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/b0405d219290369a7507d9a9a4096209855ece5b create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/b0671a9ca0688908c35b0197bda0ff7cd91a7802 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/b0de353b0ff4b2dfbaba3574f6e84dcdf1b01d7d create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/b147ac2fd9218077a901f82afcbbbd71a032be28 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/b33349107da622826c0de5883dfd2bc8adfb51f5 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/b3ae974d2558a81d2ce7f10caacced4f1f47c533 rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{22e370faf486d5e245dcc33671bbf15910a5e91e => b428deb46505b6dddd37f4e68312096200804f1c} (77%) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/b4668f08c1bd92ddb07602a61b2ed9ede6e9e355 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/b53b0c974f3296788ed15885cdd393c19eaa833a create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/b572c5d6854c1a5048682c66e8856e9d36e7432d rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{892a862becababdcb28d2a893f3a2ce01abc16e4 => b7360deec7bff31dae35d0dbdd8de5d275f1191a} (55%) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/ba9c7fade724d985d6ebac7f13fafdd76ffc5aa0 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/baf88bf2463826c84b748aabdce12a406870f43a create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/bc08741066ebc87d7d46ef6a5984971ae6186fa2 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/bd2a9a445ebf80d33d947a94ef007d9da69fdd63 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/be836532b3c69821faecb2ee70da56687e442c36 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c04f75d30fdacb872a5bd369634ee4de4267661e create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c195fa7da39afc1bf330ae04bce401bb200b5aef delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c2ab467b1f82ebbb4a595a34ed4688640acd67db delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c2cf6eb87d09bcad3662b2352c1e23d1e4765f46 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c37c74ee9d3a0b4f65e7f70b2a287761df95cba8 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c46552eb7f6937cb598ae6ffc76964f7ae2364bc delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c5ebff5a561cbc77637919c5235a95246c755c15 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c613e9ab2b629c7b897975460e5c33e8ac1a2232 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c96c75d639e0a0f6b25fa4c4f0ef65087b9f8c62 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/ca9956ae8e38e999ec3c5113d8b05888aad6ce25 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/cad65bde385d438eac3f1b3b54d9735c3ea1c475 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/cb295c43921dc4bad7ea292e4b5dae704a18bc1f create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/cc2c3bc03ecf6d9c9d9be4cefb26ef15d00fd43c delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/cd0ed0742b01b47f64707b0ceae55e4bddc8a53e delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d2f3a5ef8bb1964340a5fac8bdef3a1cbd919907 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d32eb599a72c10c702179987c3bf9162c44e1a96 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d3668cbdb23f199b8ecbf5f46a7fc2f03c6cb126 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d4be74f6acbd8a4ee481ce49a35659f7f3549e06 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d53171a36056241ea76c8ae089770d740241ab4b delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d5cf79b024f393643248821250f7042caa74b33e create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d6210463c5504048832ec428987ae12196879dbf create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d7041c3322321256350b0295456d933798b89c3b delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d7c21613ad6684dc73e1515178d0cfcbffea1df2 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d7ef40b0ea62d59bc4c8d1525aa3ee0ca5444532 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d8569cb9f35686a68ea12980ffcf452f9fceb5aa rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{06703ef82d4a6446b3f0008ab5240a8007769563 => d8e9a0bc4f923e9276f3d46b82662735a9a29ef5} (75%) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d9833213bb3e03d7894ffb4016188d4afc4411b4 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/da19453351c3c97a6638c6459d5e6d52530ef2b0 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/dacb7f933d8091949eb58a1d4742d63852b4940d create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/db05326428a371755ad51eacbdce730d9fdfeb4e delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/db83511a3ced2c03600163abf429f3a68a2c419d create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/dc30a02c1536990acb36cb29373edbc7ad6637cd delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/dd42a4c087d8e17e1dbabcba4e4bf48b98f3329f create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/dfe36dc795d2b55c5f6d0fbc9f87f570ce31e51d create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e0282b8026051307d6821f4214fd732a82d2ca14 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e0a42c3dd45b6b2b1af036784202c319ca10f146 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e1542bc7ccdc101ae6a8051e6460fd5005097f79 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e1d142ea43c04e41b757f01d8987dd6af069a463 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e3e502902e40348546d1352eaba467591b3df7f4 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e43bf4879aa0837380a0d93342b30a193c4af677 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e564ac5e15a78f795629ab31a8a88e91898095a1 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e751c0f21a9ebccab51d453d0fe32f249e632070 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e7d4d0e761252d3de02e3d5c9f98cbc4920ff445 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e8216eb21330e411b6aca3fd6803bb61a7808483 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e9019d481211e8c40574ccc15907bd89922381e6 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e914b2a8555bb893176180e01044325cfc2f8bf1 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e974276349af1ab8387631f597bfba994bd5da9c create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/eb533db3c1a3fb6e75363004769aab5a45dedddb rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{d4a96cf0b53f7342e749a0791a513dbfaf6d4ccf => ee63e1eec358c118f02bc9a0f426cd9df72fabf1} (79%) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/ef880a270034e0f210254f3f3574bca5cfe13b54 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/f0950c0364b9ab5aa1aa584c183098f262817088 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/f2b4023c8bafb4c2423751ee5e070eca4026c050 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/f2db36b7af0430c073936a17a9005dc45265ff3b delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/f31d50d032713c24334c3ca21cffc16c5fa2cc0a delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/f4432c2a09512441123fd68f6ee3ede217067444 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/f61ea517b82990485bff8a973a91a717d1a6bf94 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/f64d8aac4b4c11f8226965fa11a2cfb4295f7987 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/f85ac377234f5f7b4b15ace9365eefae27881876 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/f860eb559bcb2592b50273cf176aab4c624ab387 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/f8eec32608e9d330b3973576735646427a6731f8 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/fb655444ed95def5326f642c7ac3a6a7e7cae5de create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/fba13dc4063739e6d3b1651a742cfb80e5053fdf create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/fd63517f1edf14196b80b795c08995f3a4cdbd35 rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/{adab987e21e9838b02e500658ea0818a18ac0403 => feabcbfd6a97b797941d0989be77e8156a75a02e} (77%) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/ffc43d4749a49d8db8fb96d498a34bbb62af2e0e create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_decrypt_fuzz_seed_corpus/02e3dc401871be9b4fcbf6dfd658842567ca7c1c delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_decrypt_fuzz_seed_corpus/6c6a072aa58399454ee759bac539109a20f7e97f delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_decrypt_fuzz_seed_corpus/75ae4c5769c9568d631452df3b3702d876e4863a delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_decrypt_fuzz_seed_corpus/9bdb356ec50807b86c807c09c780267101fd1a0b create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_decrypt_fuzz_seed_corpus/9d6f8b174b9b82447f3fdb65a24c21b9d0ca36dc create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_decrypt_fuzz_seed_corpus/b0b757465797a5e49307b325481c338ddb591afa create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_decrypt_fuzz_seed_corpus/d3d6e16a36ca8931d6cb18f74243b0cd027e6ed2 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_encrypt_fuzz_seed_corpus/898b59f382a227ba7f3977fabeecce928a1c8f33 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_sign_fuzz_seed_corpus/94dde36e88bca50f24c228c5e5e9811c711a1b49 rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/{d1ef093f11c8e8c42da35501230bb7030067602e => 080255be6f3f6d8f95f8779116af43da3c7c7fe1} (71%) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/3f4491c53865cf9d8975423626980c1a5d547dae create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/401f966cf4d9f594cd993c9e429833ae2b298f2b create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/44c74993d4832e49d818af03c8469ceb6482802f create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/6a7338ef51621a3936d362be039348682d3f42bc create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/7196add7d06e51a0b6a583581f81dac29df69f7b rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/{a94b2e9c5f7896643f5405d040cddacb15f8866a => 76a08035bc9c0772c895b73439a9d19d84737744} (71%) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/78c3819333632152791a0a58eacbd67ca19abc4e create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/814054a30f7cdc10e4d83e48e6a5b00becf46cf1 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/8c4ea32a7996921e51ec7717035f2826eb9d0853 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/9628ef383581ef1f7591d4316fd75276959c2cab create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/9b80edcb955ebf5d52f0e9c754a51aafd03a032d create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/a5c27f614414c51fafa12bbc298f061d111ac5dd create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/a6873ce79ac837648b62cf89f6c568706ac00c99 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/b93ff0791e1995e5014d1b717afda122e6ade75f create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/c179fc48504dbe00aa946d65d71e2a0165423b2f create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/cf7792686f978e3b5c6105d97a3a7c9837368f0d create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/e007898e3ade64f83149acb974f39b00ed05cde4 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_copy_buffer_fuzz_seed_corpus/0c7e14c42a24845ff54356b92cc20a3f9e2e6498 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_copy_buffer_fuzz_seed_corpus/0c7e14c42a24845ff54356b92cc20a3f9e2e6498 deleted file mode 100644 index cb306f73c28e8a9e2715224ec7efe5ae44e1e41e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280 zcmZQzU|@I|3M3eT7zmh8pI7@+&%p3NKw|<(d|APc{!(TJh7VWN!F+?e5c$k??foEm zhZhiWg)>f&PN&1E~Y~2j=d87wU}2@)l5e06dv%#sB~S diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_copy_buffer_fuzz_seed_corpus/23ef7d98cdd44b07f7a582b24e44984a835aeb59 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_copy_buffer_fuzz_seed_corpus/23ef7d98cdd44b07f7a582b24e44984a835aeb59 new file mode 100644 index 0000000000000000000000000000000000000000..71f0701a720a7e0133955674dbab5dce4971da89 GIT binary patch literal 280 zcmZQzU|>)W0}_lt3&&tsC=mpR6ZY~9;TlG%2y~vbq7oy=8lDa)4=Y6i9=~d ebbSRt^JIbkg6RXP1NjH$ZihbtjL7mQpz;7%Qc!dN literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_copy_buffer_fuzz_seed_corpus/b02efc63fc06ecac3df93523d2318ec8a67e8d21 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_copy_buffer_fuzz_seed_corpus/b02efc63fc06ecac3df93523d2318ec8a67e8d21 new file mode 100644 index 0000000000000000000000000000000000000000..0cea3fe57c0bdc838e4239556c79800e0c68163d GIT binary patch literal 280 zcmZQzU|>)W0}_lt3}FI1E~B$KZra`AB=WDb58+O TJ)1A8dYHK|^)UGpP=5dbAkR=} literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_copy_buffer_fuzz_seed_corpus/d936772829ba7bfac4b239053fcb7a622ff81203 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_copy_buffer_fuzz_seed_corpus/d936772829ba7bfac4b239053fcb7a622ff81203 deleted file mode 100644 index b73bdf8caadd309a20b2077b0b71ccde02d15634..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280 zcmZQzU|@I|3M3eT7zmipoLBo(&%p3NKw|<-yp)-N;lmYmFyG)VMBaN@dp}6t;RQro z0jkg86hxl&N;6nq;5n*%093y83`D*F%7^KP@l!8AS6L0P=5dbc$aP3 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_copy_buffer_fuzz_seed_corpus/f8b4afb2db6344296026dad1cd863f04bab5f6b0 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_copy_buffer_fuzz_seed_corpus/f8b4afb2db6344296026dad1cd863f04bab5f6b0 new file mode 100644 index 0000000000000000000000000000000000000000..dab87bf9c1b0962ae0be9cf652c673213c2d8757 GIT binary patch literal 280 zcmZQzU|>)WV_^6Xq(OkWfMw0!dIp9IDuOH^@ns)QF_$tkFg$o60OlWPgvf6*n8gf| zH~0e)-vHB>2a#7OL^TH{&j1yNna7aNvIb;6Tpq{=+Runhzbw#wFntUCrh(lB(+8z7 a^c4WjL)HgU2eJ?5ZihbtjL7mQpz;7U22e}@ literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_copy_buffer_fuzz_seed_corpus/fb094d421ad8099a07a15ae71060746b5ebcb129 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_copy_buffer_fuzz_seed_corpus/fb094d421ad8099a07a15ae71060746b5ebcb129 deleted file mode 100644 index 60e15f891034df2f24c259f12fefc9b66833fa15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280 zcmZQzU|@I|%E0g+NP__L>GNuT>KPaw2xv?Ii7zYI(O=5U!0_RUI+$;87b3rHLwi3+ z-r)sAT;U8v+~E|2o&e>;%z?=lK*eF^6#&(P%!kWE^fO}9FAH=ZOy9zD&0u%I^g(G1 aeGh=;G<#MPjp^_1*KsP=vUQJKn#@Wxj{zaRY z@?L-9-(0xP`mSbjNZ*-*JQ@-+c>6bU{nGx=Aiu9~O4i4wOuv2uLy#_X8<^kdy#7}Y I6J=lk06_jE1poj5 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/01940cb7d91a0378062e3c34c6959c08cc64bfa7 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/01940cb7d91a0378062e3c34c6959c08cc64bfa7 deleted file mode 100644 index 8132496906224429b5bbed9be7e886ba78fbc64a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128 zcmZQ%fB-Hi4Wk5L3@8obM?Vy25}tHgZ_xqe^T%cKq!^*{y76)GHSrId7<=~56jobW Z`}v%u2uKWO3`{@s8=cqx>S3Y`3;^k(6p#P_ diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/0285ab6852dc82c1adee1ef77a6573df480161d7 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/0285ab6852dc82c1adee1ef77a6573df480161d7 new file mode 100644 index 0000000000000000000000000000000000000000..68f0ec7ea6ba480cd91decdb66ba37cbf6c6bf2e GIT binary patch literal 368 zcmZQ%fBzn-^$4&GvuM3(N_VZ0RUzF>}`JIdkXDSKrICVRgE1^1-m`{}UZF zU5nd()I^+<%nSN*?Tvx2)kFoq1)*Ibw_*)63h(*Uvv7Feo@AG%P$KGAcSIHZDFPF)2AEH7z|OGb=kMH!r`Su&B7C zw5+_MvZ}hKwywURv8lPGwXMCQv#YzOx37P~#7UE`o>=ggfqf5E~dRhmRaRcKpQ2Q>V|IJ$L@X#Y>m3 zT)lSv#?4!|@7%q2|G~pYkDok!_WZ@mSFhi^efR#u$4{TXeEs(Q$IoBC|NQ;;f3W!< T6esBM$lSoP=5IYTQh^iz)}FN` literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/03ddc96089c172b96ea359aa658b103e711b0824 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/03ddc96089c172b96ea359aa658b103e711b0824 deleted file mode 100644 index 1a8ffc5a3b5fa788a529d412712184aa19b441e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZQ%fB;4)4WlNY3BdS^yE1+m@(SFyQG9obc;NLJx1^|);ZZFj!5oMQK5yM8lYX63J$!H)dxU%yI} z`}-gJ^)kY1?Wf%pA6yRK-}&W*3x|oweoO82@btv5k`uPLOjJ0$@v_+YT{quf*;g-a zrhIqWr{90StTHo*)O!@RC`odcnNmqnd;N;+#LFH863*`1Sn&TLG-9;M%6dNnTY{&gYdO?~kWGkzRgv8p=yhjecd`^2zW zkKU+HKMeUbzy?E>tM45O=Hgy|TJ(>g7c|-tzsYG}9+coHTjL)M?Xa%$zlQ&fIzP z9R!OnZfchB&$qsL)oF1|)9=nsX;Y)HGTql9vf>w_SdJapJ?ltCR`UEdA?+raN6r3K zb?fdZ-w@yu6HnkPjq{0|@$iViuIaf9*{j}HU2l0Ma^d)YAF;pZ#Nv5)f|Q19vO8ESqHa`@QK^1MLn(r&>Yt*7=LY+?J-W;4aW(8$=t z)Xdz%(#qP#*3Q0arI|U)Z>AXmSDs{i54u~k?XKy}AE!^mUOOoHCoX)^ua`3xFZ@z8 z?;FEIU;XzRzRsC(GWgMnskPrf1~Z(TTea20ZDAbao9ih@baHpjxxe;l7bs4k(Z>Lb PPv$o|um9DU+Wb1l?U diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/04f3c6813639af694f3b8752798ddff9bbfa5fea b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/04f3c6813639af694f3b8752798ddff9bbfa5fea new file mode 100644 index 0000000000000000000000000000000000000000..8a12877786cac2a6b0006507ff4a3622761d222b GIT binary patch literal 122 zcmZQ%fB;4)%?YKspfrqv@imv9ySZb>=fAAgGWU0O+-rg9(~XadXJBMvW?^Mx=imhK TSfN^BG;;&Xn!oih^B5QaHvSKe literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/0554387fba557ee5ad1222e62162d23733e507aa b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/0554387fba557ee5ad1222e62162d23733e507aa deleted file mode 100644 index 79a09521f428a1890fbdd11da182f4bb3a0c23f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmZQzzz&SigkgM7wGVraHgngvoZtIDTyOb4MyNX7__+8BQ`x6;S#l|_V>K;n&OBRr zFM92d=DKadfdM%L$r`wLF$;`|XR$SF0U#+{*L6MRFjn3i>4CpXzPhwk6Al8F&2uNxm1A8Pb+YW1ZVUv}Hv z*OHYD)U<3~uW?r;I4AZ-R`t~Bt9&op&3IHy{*lSWb0*hXb*2c$1|&aEIDG%@ z9ER8XuU5-tTw8xxZqJca{qSwF>0z5%%MV|Vy&ra=>1fHe_(@mKr1-8dSp6-}z2Ti^ o_2#6G1MDxmrcPTS{!*%iYvDzZn_=FB`H#7QWzFAum?#4S0L%1iV*mgE literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/096509f3e835e6235b48d6fb33ce73093f2996dc b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/096509f3e835e6235b48d6fb33ce73093f2996dc new file mode 100644 index 0000000000000000000000000000000000000000..92e9167baea6595dd5acae20cfb5ed6559abb95a GIT binary patch literal 162 zcmZQ%fB8 zar5x<@e2qF35$q|iAzXINz2H}$tx%-DXXZescUFzY3u0f=^Ge=b)nhF+`zKtZ#~Rj G1_l6wfD<+V literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/0a91e7678f5ed86ba853fc3383b1f0ece2c502b5 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/0a91e7678f5ed86ba853fc3383b1f0ece2c502b5 new file mode 100644 index 0000000000000000000000000000000000000000..3b169bf4f6e183ce27e8c20468321466b7bc591a GIT binary patch literal 122 zcmZQzzz(?3gkgM>&EFKO9lyD83as?}+xTxCBUGJkd|W&OBNH>rx6+xv&VhKWP#GA_ M+`zKtZ#}|T07McIVgLXD literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/0b63f772494b90196d295375968a8da7f71add8c b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/0b63f772494b90196d295375968a8da7f71add8c deleted file mode 100644 index d0fe752c8a43352d5a5e7e679e40f4f7b6637a9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmZQ%fB;rB+6c;rQ8510lY5&EPIuk#rtz~-!|lf!j8Fx-@p17o+p5k6T8ak#GB#z& zvHkWwHqLo+=c@g+k)J*aeD9al+x_F&;o0-0Lrmso8#al(y=!0y(uHmV^BbMl|LS3) G3=9D0pD4)y diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/0ffae4ac0412685f5278d748bf45f78c25dbed10 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/0ffae4ac0412685f5278d748bf45f78c25dbed10 deleted file mode 100644 index 44b4cd768391f2dc1a3abcd19c7ff4dd952b0d39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122 zcmZQ%fB-Hi4Wn@Jy{uQ1=WVc_aK8EAc5eIKxr|T^y76)G42(?7EUawo9GoB?D^vzX PGr!S!{jVNoJ_7>)u!#;f diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/10e69df82df7df7a5d3cffe390d5073a37527c78 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/10e69df82df7df7a5d3cffe390d5073a37527c78 new file mode 100644 index 0000000000000000000000000000000000000000..7d8812f6664a9f89f0a37d94a6bb17c314a6d667 GIT binary patch literal 368 zcmZQ%fB-Hi4W}64EC>V2|Bnj(!IbI7$HgDNV!rT(;$r^J^WHYcmn*X^GhJglv2^An z_hTnI|4M}W{ycKHMIb!vqv+MRKd=3#`>s#W@hz>ecisQ=XxWNaMf!@n*nTY3sGsHS zep$%mpHSFA=2F`iK1(OtMqW1(O);)*+O<<>Pubr)5fcwEu?KHkF3`k$c*=409-~e! zdtdD%-LI<8|44KUT-)=h|pBBWF1#Nix<7t$VAlv`t@U4l=ED%R&tpIKM*=cH><(Gw}Ndxi%mZfJYnVr6Y( zYiIA^=;Z9;I*s$>mCqI3k9RIHal2`KhokQQ_S(m9TaWsmKhrSp>t3lHm+d_5#BW{B zIKI;GdAioABbz@jy`0^tWcp4ka*kQj^|tno&aUpB-oE|`6DLicGIiSY88c_Sdg^h> zbDj3Oe=m2HA5Zg~c;Md7_YbC8{g6C&uXE|VzkhUoyt3Z>%CKB1NLtC|iP)pV$@Ttk z{-%7N`-!WS(ID{N?K^kx-GA`#(c>piK|bYz`q~IeGuE@L`CAX=04bQfH%y3tJQJEc E0H5uSq5uE@ literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/114cdbe28fd549ca5bcc3fa19b4fed7d5a8af34d b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/114cdbe28fd549ca5bcc3fa19b4fed7d5a8af34d new file mode 100644 index 0000000000000000000000000000000000000000..294f86c962566884b4e7d03dfd052595e9f02b08 GIT binary patch literal 288 zcmZQ%fB;rBdIOXXqhS1#dl?oa)l4wEGvmv%6HL-i8KDYv{s#k7FHpx}_uu<(e;sOXs3xcG#`q~w&;wDgS3tn8fJy!?W~ zqT-U$vhs?`s_L5By84F3rskH`w)T$BuI`@RzWxalCrzF*b=ve9GiS}7Gk4zna^ssD gPMH;b*3AF^f@SWZLm)S!`;WPSWzFAum?#4S0DDAUAOHXW literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/00d8703220de64723c9508d6fad24e9caca9b67c b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/11bafc979e7ec7122d0f59c0f72f9cb8d449eaa5 similarity index 55% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/00d8703220de64723c9508d6fad24e9caca9b67c rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/11bafc979e7ec7122d0f59c0f72f9cb8d449eaa5 index 8a927ab742ddabd00fb977fc7befdefdb4c4a014..8150c2fe43ead29b2d3f6c75b22c5c686d0ef7f7 100644 GIT binary patch delta 61 vcmZ3$w17#F0Ub;flov>5IqFk|W6>6g;!y(8|oO@;=XZ z@04D-V^Z@|i`xeN|3lrF)?NrM-PN~y#aHWB=B97+?{MkW9_u?)Te>-4HI{Q~=bJLw z+tz1Z{C%-^Uh$ISZx&3b_V_$An0>z0l@~$ct&g7`jy`i;S+HhZ)5MdnTjK<{gcuBC zMSho?pI!HZVRE5Y?)!f?4}O|-z-#BO-Fx=#+kfETp~FXx9y@;GWe&gn?+js8XyZ_+fqsLF4K70P+<*S$MYj1lrsGAjkIm&QJbN&q1FU5P-yDgnN zMOye^=&kI;P~)=l`ASRKrMx3$(s#`Zej}2wbo*L&{!3C?eEheBq!pXK-oIiwrRcf8 z+^j9<->i0Dc-`%+w|u`v*MbW<>mONs++zBiM`6xhPp#YbZ!5htzW*wB;+1i~ex$9X z%a`GU}sl4w0u_4=I;3Wg~#@$-i>&Eo4aOR+_t*w zd)K5ooY#2}vA$LJak!(=3wnTM=kz~hNhSNe0J!(`7Z3L zAl-Xxm+Iv0fw3i1{wsN(-nwri!>xm>d9FrjKaq-04x7-|HHAH%+tDcJ=0@$_@(+hh z~_8Wt|H<^Rdy(qx^o_lMvH z9bL2j-6spn*iZM literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/137d434df4e17271af719ad678e7e74edc284f18 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/137d434df4e17271af719ad678e7e74edc284f18 deleted file mode 100644 index 766308192affc2ef20069442f7e27b008d8b1034..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmZQzzz&|F3B&kLwCXM~-Ew|jq~({C(}ga&z&y#qr>&>Bm#(ey?Xj`7vv+WG za&~d`i1@XtUwqpxmrEDr_r9-OTkY2D$@*qq>4utBTiSzae;0kYxA5Ad*0NjYk5#We zA0yHq^eHnyuu4MWcxWx_Z?A1_f9k95Tx{GsNA=FcNt35coi=^O%vm?ui-nH4yYlpw zx)t6OJX_(nt!|FOx}Bm$eOKgN(j9Z^OSv`o9+(sPqWyOKWHYv7YIBx~-oDBx{#R>K ztlAd0#6~`svuf9GztV7w1o@N;>T4q?&G<&=^}l*Vkiq1=VM0)OCMX|Wo(U??3zY`| DRGo(K diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/13bdd5f2dbf82567a92c2a30b9ef2310a02af361 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/13bdd5f2dbf82567a92c2a30b9ef2310a02af361 deleted file mode 100644 index c8c042e12d0d265e6895816ed4c5ab5401769227..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmZQ%fB-Hi4W}64EC>V2|Bnj(!IbI7$Hk|+Z;U)DGi`l|E&F=qbL-u>C2CHpo0+_A zH!}#W`_ucU=~Ub0l$C-;E(h}j&PH+W6nJ7P>&_cO7x(*lqdWV?*#Y z`^#bfroUM~vAH0ku>EuC(jTXcLVrbm@%$mdRDW&FgPQ-pVt;b-#Ai=qH_Cm#O8fow zMD_R%&H6eyT`d!ZTHap|UQGHmmkQu9TzyEEPQjBe9=stcUGb@PJe^!b0hjPDk&4$1P`=%C2R|3>Hazj~M|1_l7wiV%zd diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/151941252771d6c9173ee1397d457db28bc20059 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/151941252771d6c9173ee1397d457db28bc20059 new file mode 100644 index 0000000000000000000000000000000000000000..9bf34d9a6b0f44570aa636ebfb459ff6d35acfec GIT binary patch literal 406 zcmZQzzz&|F3B&lBudk$?cC>7Ian+-gpO^a@GgO^!d|W&OBNHNg~ICM_S@Ln**iEo zIlH*dNDuL@Z%DbylUw^<$k0ObkzV6olTO{c8zwDK-!47xWpN+7%ZmLqttsbrdF@X! ziC=HKM<{Lg)Y-Q=#Si(XI~-*YJ9k+t)=;sF)okLV$y26In?7Uati^^Q8~#_b-}!sj z*{4b%`;ywrTM@^WOm_Yfy7a8o(F?EFJip(lWhL2~G3ViC?tO8eq8RUTPrWI<+Q=xW z?dychnEA%4pY5+CDfAcFfPBgY^|cX{W~^sf^S2%mWH5Pem=IK+3Cc&8XM)P}LgfJ_ CZ+!Ux literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1522db2eb65a0eafe367151d77b3a4dbfe65bee4 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1522db2eb65a0eafe367151d77b3a4dbfe65bee4 new file mode 100644 index 0000000000000000000000000000000000000000..8e30396c06e6a0c2ae1f3c0e15bd3d4a15ee0683 GIT binary patch literal 128 zcmZQ%fB;4)%?YIipfrqv@fYbb?K-#dvaNw-^w%%DVxPnG>Bh&!`%U%V@af2_w<{K1 YQeyk?ksTz4uAjMqWzFAum?#4S0Lkzd-T(jq literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1539088d12d235bba441c8fb46b54d839110cc38 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1539088d12d235bba441c8fb46b54d839110cc38 deleted file mode 100644 index 823f50c40c89fd39206630f575f325b183b91752..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmZQ%fB-Hi4WpjH7*HCrjW85o(ESy-m$fvN-GJ^V^@r};wfAxqUgUNftgb2tpp~(XP D)g+E% diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2dd14c72951c6ee8245c7e8d77a15eaec5d9839a b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/161778100a4dcf30cb49fe57d0ed8cd55a1230ca similarity index 55% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2dd14c72951c6ee8245c7e8d77a15eaec5d9839a rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/161778100a4dcf30cb49fe57d0ed8cd55a1230ca index a63d947450d92b580c0057fa9bcf2d54ea74ab3e..1fec89e355eb00d3d7d01d3ab5022ce539004381 100644 GIT binary patch delta 61 zcmZ3$w17#FkpTi=G{Zzed4Z`5WkkO}wOeT4vv%FPvPV1<9WL@Wu&nu84^<4L0GbL9 AAOHXW delta 61 zcmZ3$w17#FkpTi=H0MM?d4azsUl$lRsPr{=Pb~^xlzwrd!$tl#I&C~$GcYnSv#_$Ub8vET z^YHTV3kV7ci-?MeOT4^)BaL5MS)s9H*OQ|a`X@BCv~_g#^bHJ+j7?0<%q=XftZi)V z>>V7PoLyYq+&w(KynTHA`~w1mfX!XqN1qGMv?;u8{+l2cOC(lau%vU76t@(T)! zic3n%$}1|Xs%vWN>KhuHnp;}i+B-VCx_f&2`X@}BGo;uNw0XRJbd){$ zFDWH0BP%Dbps1v*qN=8@L3{tpKA#m~zv{K)LJtj_(<}A-sqO#QZ{EIp|Ka1O&tJZN z`~KtSFS!5z-AJ_DX5T8glIK*;^vK*h;P|J%|8d4YD4j||)9eB$&G<&=^}l*32S^#g Pn6ONNCXcS42~8dVK66eB diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1b2a3b8415b5b7ec6a5e03cf644b39e732d63b60 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1b2a3b8415b5b7ec6a5e03cf644b39e732d63b60 new file mode 100644 index 0000000000000000000000000000000000000000..7d0336c1af0fdbb9d092caa2cdba2896da319d5b GIT binary patch literal 341 zcmZQ%fB;S?%?PEJLTMO<&WDLJLm9g9aq%!Q(rH%iIs5H?NENKj&0{d?IuT;|@^NDk zd%yfNcD{)@&$Vz_&cHxOqh;@O|JCv<4R1fv+L!ZF1!xe+p^{J+azJUudX_bR>k-a| Q$t%EwaL5}$<(bgr0m2n8;{X5v literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1b40e1b853761bf6db5deac7df38532d8199aee5 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1b40e1b853761bf6db5deac7df38532d8199aee5 deleted file mode 100644 index 95784e7605419fafa41bab2dfafb623970fe7d10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341 zcmZQ%fB;4)%?YKKLTMO<&WDLJLm9g9aq%!Q(&_8JKmIt?`Dl&W3X@lW3E_}8g32?Y$pZlA;v)tC diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1ba27988b89d8936e9237fb758059df1bc3ac36a b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1ba27988b89d8936e9237fb758059df1bc3ac36a new file mode 100644 index 0000000000000000000000000000000000000000..7f3f4f9306b8b1ad6a875eb531402064a185bf00 GIT binary patch literal 288 zcmZQ%fB;S?%?PD8Kxr5S;|tC@JMD6N%f5`a($(Bf&lbbf>&C~$Usg|LS#c}h)Y5Fl z{o9K(#djI5h&!<4S-&Sw_4X==Ge5S`ZieWQ!mKnw(N4v4Er+x=pS<34y!%IfLTj*aXuRp-xy)q(366Gk z|3A0J+@HDTYY3mvvdw6d(PZ> l^N-$K&QZZ5Q@&%qw)`nIo1Gvxqx+A!fo09#dYC8!0|3)gV+jBN literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1bd3f10a023bcc8163e1b8d70c285295f3fea4c6 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1bd3f10a023bcc8163e1b8d70c285295f3fea4c6 new file mode 100644 index 0000000000000000000000000000000000000000..401050ba44e7605a57a5c9eda27ff6765ccece15 GIT binary patch literal 512 zcmZQzzz!xbqKd=#Z%l7XOnO|cv6PGZ`?rT{8DPqELc_u%BBP>XV&mcy5|ffsQq$5iGPAOCa`W;F3X6(MO3TVC zDyyn%YU}D78k?G1THD$?I=i}idi(k(Oq?`%%G7DoXUv>6d(PZ>^A{{!w0OzVWy@Er zT(x@5+I8zUY}~YY%hqk%ckJA?d(Yl|`wtvEboj{8W5-XNJazia*>mSFT)cGo%GGPv zZ`{0f`_A2a_a8ib^!UlsXU|`}eD(Ux+js9jeEjtJ%hzw;fBgLQ`_JEh{|B4@!EpkO QMp*nYH?XYvTaSoa06smp4*&oF literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1be21d7100f97ffba5b208ee5715d2f7531f383b b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1be21d7100f97ffba5b208ee5715d2f7531f383b new file mode 100644 index 0000000000000000000000000000000000000000..17f40dafe7434083917d3372caa952a42368cb58 GIT binary patch literal 128 zcmZQ%fB;rBS^&z2Q84~fwM!eSe)%r?Y$Eac?wOe9j8Fx-@p17Cj7-cdtZeKYoLt;I XynOs%F{nIDKXU`in!oihQyCZlkN^+- literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/53a0b89316eedbd09f44336f493067c223d3afa0 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1efe003a4fc59c06e4e40756025e59753418e53e similarity index 75% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/53a0b89316eedbd09f44336f493067c223d3afa0 rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1efe003a4fc59c06e4e40756025e59753418e53e index 8ffedfacf2dbba3b7a72cde9e532737d8c44eaa2..44e1534d09062a7abe1b6a50e56bed69e6a918c4 100644 GIT binary patch delta 41 mcmcc0bd_lX8zW0S%bLHFxfo?23@t_(evn8#0|N&G1ONaU0Sg=e delta 41 mcmcc0bd_lX8zakWo!9>+b1}+57+Q=n{2-Bf1_llW2mk<6rVW?? diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2001ea8811ed0ce164b49879561918ef3b43a78c b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2001ea8811ed0ce164b49879561918ef3b43a78c deleted file mode 100644 index 77f3762b604d2f042010344a16c621316bf92464..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288 zcmZQ%fB;rBdIOXXqhS2WF?|(}RI+#KtlySy<>*?<2vwjP9~aLlRX_1a&UV%p?euQiYxPQ%iwSlH&x3g*XSO`GyVifgO15i{YO%4XO+P;0Ua@XE`5aecb|1rPOdHt^*Cd$A70IaZLEC2ui diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1262bc5f3f1ecc414e8e21861e9d200c3b775e87 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2032071963b1e60dac0ccd91cbd564e3c9e26a63 similarity index 79% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1262bc5f3f1ecc414e8e21861e9d200c3b775e87 rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2032071963b1e60dac0ccd91cbd564e3c9e26a63 index ac50bf8549911e82e2ab813d8e03a6297ab66002..5afd7766178fcea3197386a652c480bfafe8f221 100644 GIT binary patch delta 43 rcmZo*X<(UPAaG`HNT1V&FwT-Vfwsj`c4ZqKHZt-zu&nu8&j1GiPecsN delta 43 scmZo*X<(UPAi(GN=*UgsV2yg8_L7{_b*DBuY-Hqrqx1S-Jp&v70BraUtN;K2 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/21f47f867c422f05c68997e44f395bf6d6d0c4b3 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/21f47f867c422f05c68997e44f395bf6d6d0c4b3 new file mode 100644 index 0000000000000000000000000000000000000000..f8fcf3e5fece009e7d923caf62483aebe2658d83 GIT binary patch literal 128 zcmZQ%fB;S?%?PChpfrqv@pC_@ZhTyP>3fU(`-gMhXM{=1 X_|7_|3KB!t&)mSW=5IYrlz{;Nz_1f( literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/249806515cd342087c40b0d529e68ea01e1b128e b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/249806515cd342087c40b0d529e68ea01e1b128e new file mode 100644 index 0000000000000000000000000000000000000000..bbd0d2c7a7a67a3e7ba9bba1792761babc6f2968 GIT binary patch literal 122 zcmZQ%fB;S?%?PErpfrqv@xLDB-}ir~&9Os)1&&C~$GcYnSv#_$Ub8v!q TtWd2mnz?~x&EI;Mc?=8y9Lf(A literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/27c685d38645723287ce2a36cf338aa3126ca787 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/27c685d38645723287ce2a36cf338aa3126ca787 new file mode 100644 index 0000000000000000000000000000000000000000..1d469640e68dbc6d1bd9e763f709419b5cf48caf GIT binary patch literal 122 zcmZQzzz(?3gkk(&1r`c(HfQ}U=wIZxwl%_s5voo%J}#btk%^gwm5rT)6U1YM%D`ym M29`B{>k-BR0Ka(+z5oCK literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2a1ee60dabdf228a1c30e7f29fbf43389cb5c8d7 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2a1ee60dabdf228a1c30e7f29fbf43389cb5c8d7 new file mode 100644 index 0000000000000000000000000000000000000000..87889171bb7753838c2fcc69daba99c664c76f3d GIT binary patch literal 512 zcmZQzzz!xbqKd=#XFH>h-TrLs)X}%6bE8^VF-)0md|dq2i94hlr<_bLqeUt6|{OBoN3UTb+ho|rr_%6uEVaD`y6&%mW$dM{d>j5KdsRRf={Kt>YUk` zwaIYNTZRkVysE+%d~WUz%G-bHq3t!xq_eB$m)KYNr#bIjx;s@}@SUs$&((Nm9SJUcO^O8ZCp)eR1w z0o_?6!Y-W9p~KugCOvFXi#g3XiXA1H}m}7Gd$n+`zKt KZ#_(ufdK$bN!gYF literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2aba87702e45624da9e76eb525b469231c67d5cf b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2aba87702e45624da9e76eb525b469231c67d5cf deleted file mode 100644 index 77ccd5b4f665d3e7924ecd744ce0e2e68466e8ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341 zcmZQ%fB;4)4WpLA7*HCW50hqwGIZnP;$dQ>)0-o#8e0n@&6t;d+W3OSH)n2zG=tj0 z28)X`RwQ50U2TffL_!)b?w_I)xP8IA9=_K~XE!CXFff1|DhV}@14=W#)_MJ}9$^Vg QUI8YAL*57~&x9rq00;FmoB#j- diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2bacc4d5c23a6eedcf6781480e31a36022ca5962 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2bacc4d5c23a6eedcf6781480e31a36022ca5962 deleted file mode 100644 index 2e0c3f529e77913ecd7a3a4e808c4a498688f2ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128 zcmZQ%fB;4)4Wk5L3@8obS7bJ)00w{eEQ`!pW}U{k-EAJlho74Ym=5I zOiI4-|Ht#NO~NTSO(djo3j2BcKD`qvWt01gj|3$gU|;|_R1#_)2b5-ft@HX{J;D;0 QyaG%JhrAI~o(WAJ0KqLc&;S4c diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/bf813f09576ef5dc365d4fae65be63a3c14c2de0 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2dce8534f57150afe93ca38282a60e6db0d0f7ab similarity index 93% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/bf813f09576ef5dc365d4fae65be63a3c14c2de0 rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2dce8534f57150afe93ca38282a60e6db0d0f7ab index 4f1359ced4aab2466837824990c26fc7d864a326..88d5f37409d4ee6f946d599ff7960e488726a23b 100644 GIT binary patch delta 23 Xcmeys^nqzZA|ro2%bLIS3~&GdU_=G6 delta 23 Xcmeys^nqzZA|wABo!9^B8Q=f_Y!(KF diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/638c5864a20d1ca04ad06d3a77181479f477ee91 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2e6c5e96729128dcf9c7a38adc7e33185eb1b4a0 similarity index 77% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/638c5864a20d1ca04ad06d3a77181479f477ee91 rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/2e6c5e96729128dcf9c7a38adc7e33185eb1b4a0 index 434048c57babd17f305dd6535eefb2d33521ce43..a0f1c959c36f3260a91b3249d3e7b65604d52ccf 100644 GIT binary patch delta 80 zcmcb@c7;ulkpTjjp)~tML3x4YXYSqh=+ACRdBIufT6;ciqr*`qmU@;oe(wMSdnm+7xss3CKsP~5h&Z}aFmJVjn3VJkiH(a-NK8sjNli=7$jr*l$<50zC@d;2DJ?6n zsI024sjaJTXl!b3X>Duo=Fw*EFmcl4DO0CSpD}aR>^XDi&0nx^(c&dbmn~nh za@FcJYuBycuyNDoEnBy3-?4Mo?mc_=?LTnv(BUITj~zd8^3>@wXV0C#aPiXRD_5^w zzj5={?K^kx-GA`#(c>pipFMx^^404%Z{NND@bS~~S4{fC4BJOsfE M<_4BEf9nxq0A_WJBLDyZ literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/3131b2f1c4628f9a979eb6f01861d75382f7273d b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/3131b2f1c4628f9a979eb6f01861d75382f7273d deleted file mode 100644 index 45a9b93d19e5012f142004f893eb8d5c2ad0caf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmZQ%fB-Hi4Wo=;3@8ob&zZ=4ar=b#dXDpJD!d(5>|un;>&C~$GcYnSv#_$Ub8vET z^YHTV3kV7ci-?MeOGrvd%gD;fD<~={tEj4}YiMd|>*(s~8yJFhq1nLvM(6dvdW7`= DZRZoI diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/bcf58b9cf74875a7b938460b19e703876c2b3067 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/31bff9cf9d33d5cb82882a4f4a9ec3565123cba3 similarity index 60% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/bcf58b9cf74875a7b938460b19e703876c2b3067 rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/31bff9cf9d33d5cb82882a4f4a9ec3565123cba3 index cb20ada5d2a0cfb969f55bdfc1be5b3546cabde7..c03096db618b9bb5dce886ca7fbb8697ccb2ba94 100644 GIT binary patch delta 80 zcmbQnJdIh9kpTi&Ve~{nd4WmG`>G}1?-Y%>ve+&q>hzV34(yC9^(<@tPWEP$fiSWe NW%xlN^-z643IGiU6wd$v delta 80 zcmbQnJdIh9kpTiYp)}(}L3x4czpV-#TP9A5Pd`v@7pG~s(SejeabghfQf#3dx9q-A8~B*-FiUKECc1mw#RJD?tK&T*KS_;LPCC}Y|N5ZukJp$BlyO^(8$=t)Xdz%(#qP# z*3RC+(aG7x)y>_*)63h(*Uvv7Feo@AG%P$KGAcSIHZDFPF)2AEH7z|OGb=kMH!r`S zu&B7Cw5+_MvZ}hKwywURv8lPGwXMCQv#YzOx37P~#7UE`o>=ggfqe|uNn zjPfp#<>eidYr1Th&t$z6N&odqO)PnFU_a0LnL8u2WzR|WYMU?~ylGi?D7F5=#Y>m3 zT)lSv#?4!|@7%q2|G~pYkDok!_WZ@mSFhi^efR#u$4{TXeEs(Q$IoBC|NQ;;pMjBy znT3^&or9B$n}?T=UqDbuSVUAzTtZSxT1Hk*UO`bwSw&S%T|-k#TSr$)LdRI%WHU+3iq>V;dK;B~#9SC)H8Gu2r9N?xVeQv0LoF$FdTC4~GBiW68Y R!s3(pjn3muoI7E9TLL3gUN=52UU(ftT)^of{}|Df zWnv{O{kmOO8^8QH)$3c(tuKEP*vi+PZ~WuUpd+jG!&W=+=oBRbLy#_*MKBwf-{`#l KR}T|qU;qFn4k&{F diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/35fe27def9bffe7aaca02f2d326b1109bd2c53e2 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/35fe27def9bffe7aaca02f2d326b1109bd2c53e2 deleted file mode 100644 index 964189c1db2442835469ad6a935eb637b4b7a659..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZQ%fB;4)%?YI^zy#3vyQ}TOEbYp3(wwJV+VkD_CQO-bd|W&OBNHqPshPQjrIodft)0Dt zqm#3XtDC!rrnub+QFU{G*KXjpheWK?uaY+QUoVp4KSYFc_mW>$7iZeD&tVNr2O zX<2ziWmR=eZC!msV^ecWYg>CqXIFPmZ(sj}iIXNznL2IyjG41$&zU=K{(^;z7B5-4 zZ25|nt5&aByKeo4jhi-a*}84}j-9)9@7cR=|AB*t4j(ys?D&b3r%snAuU@}-`|kaRkDoq&`TFhqkDtGO|M~mx|6ub! TC{EDhk@=0z>wopoNCi>=#>cmt diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4a5bc3e146138236be11224681b998194ec1ff9a b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/366aef68845adf6f2e1bcc4bc4928ff2e301aa06 similarity index 75% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4a5bc3e146138236be11224681b998194ec1ff9a rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/366aef68845adf6f2e1bcc4bc4928ff2e301aa06 index af793db886133cffc163a1431c3d878709e59f75..03fbf779ee780fda761d22addab04de44461873b 100644 GIT binary patch delta 62 zcmeys^npo`kpTi=H0MM?d4XNA*MlD~J7SYCbxqa(mjB;2Iw&&oH?XYvTMtzYqyX~z B5d8oE delta 62 zcmeys^npo`kpTi&Ve~{nc>w{A|B=V$EIWMq-P!#y9SdJ>bWmjEf1~sIUp-V6kOBbj CdJ$p( diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/36e2425af5b4a62301e9ebfbf70f9e28e8a39f3e b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/36e2425af5b4a62301e9ebfbf70f9e28e8a39f3e deleted file mode 100644 index 33b4d532df416d2d6835d1228462ce026d05a1b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128 zcmZQ%fB;4)%?YIipfrqv@sDM^s4-jiZxK&>aLHF;FKw7U-T1h821X`k7FITP4o)s^ X9$r3vuo#+o%x`pF|Eq_Y%D?~s3vdpv diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/372062024cbde403d2c135674db50d3013718eca b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/372062024cbde403d2c135674db50d3013718eca new file mode 100644 index 0000000000000000000000000000000000000000..eb47250cd172a092de27de8312eb01711f1a6642 GIT binary patch literal 368 zcmZQ%fB;rBnt>520HdJ%|ES;}Oqp(cT>PY%keP;$Z22<|bT5y#jIns8k;7lbS}JX^ zm+`eglv(fTNb_?$zIpDv_4~c#df7-vHz&KyCeK>S$cJk=9$b@4X6OHBCS~%R?~CP~ z?<@CAR163V3JwVk3y+A5ijIkmi%&>QN=`{lOV7y6%FfBn%P%M_DlRE4E3c@ms;;T6 zt8Zv*YHn$5Ywzgn>h9_7>z^=j(&Q;qr%j(RbJpxRbLY($-?U*t7h5~ax%m^8eu?Q; zDcpH=j&xS}{@9{bdN+#iITUU-Slg`oJm9Ueq3PM@Vlr>0hpX)pIb^+Ck@va5!;}SL z@5RCj-W0t0cjq1BY;nH7A3lEi{N?Mn?>~P2`u*qczyF{xfCU#U{Fv)m*8Hu9i!uNJ DCw-OU literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/38f06ab2029f7317904acba919fabdf25edc02ff b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/38f06ab2029f7317904acba919fabdf25edc02ff deleted file mode 100644 index 5db4a6d696522da7df9311ce40f796efc8f1b72d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZQ%fBQ5m7O52}vnw8Cf}b1w|!g6;(BL4NWa=9bG+r14AQY6H_yD3rj0&8(TYj z2S+Do7gslT4^J;|A74NJfWV;OkkGL3h{&kunAo`Zgv6xel+?8JjLfX;oZP(pg2JNW zlG3vBipr|$n%cVhhQ_Amme#iRj?S*`p5DIx2@@wxo-%dX^cgc}&7L!N-uwj%7cE}0 zblLJ1D_5;vvv%G34I4LY-m-Pu_8mKS?cTF@-~Iy!4;?;o^w{weCr_O|bN1Z%3l}e4 zzH;^2^&2;D-M(}8-u(v;A3c8Z^x5+lFJHZW^Y-2Q4a!-~Ykp Te^8vD$0PF_o!9^B5pfFuM`pNj diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/3abaedec5d45b91330b60a338f56906218ca1cbc b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/3abaedec5d45b91330b60a338f56906218ca1cbc deleted file mode 100644 index 6d191a5e414638d0c54449a9b7de388cc7fb2510..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmZQ%fB;rB`WciDqhS1k=&)z!KCYj?F>=zXw;g{an4t=ElfUPUm9>qn zoxOvjle3HKjKH61R|>9stlnRnC@Jb{*1x{YL7yu#>wZn*Y@v733*|bmJl^QlsXecA zRz!wSk3>k<|DVcPD_+^Gyqpu=H}PUydq-zicTaC$|AdK?CQq3J&y;8i`I^K+TKw6C!*cVi$J(+P5}9 zFV#)#=bJN=%onwF=(Y3OSKQ!@^vE{UVz^}gIF=OHbe`V8cn*>h?_X#DiJKIjLn!O~FX{PsL_nONs zTD;qe4n`l_GwJY!u*F>}9&*dq-MP**o#DBw)I{Nr@jIN9Kw$t2K3MoMztMU9uO2SS F0023hj*tKV diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/236647fd79907186bba5d42ebcc90e62ea632872 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/3db0d75cfdb383714d6bb3c1d7ededaed2123be1 similarity index 79% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/236647fd79907186bba5d42ebcc90e62ea632872 rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/3db0d75cfdb383714d6bb3c1d7ededaed2123be1 index 639397d15845c39802d065510300766fcb2ea724..f1b831e4e69b11016599df82f801af6d540a58d7 100644 GIT binary patch delta 62 wcmZo*XD*_><{*nq&V1&L4jUQy8(7x-tw*Q^0FIIl82|tP delta 62 zcmZo*X6wcw1Vq=c{Ko=e#wT81K2!VIw2|8=cqx>Y=KD6ab}d B548XQ diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/3cd9a833ced641a1716ca14082589ce7ce2cbbb0 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/403143beed32fa7cd4255ff9153515713447605d similarity index 60% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/3cd9a833ced641a1716ca14082589ce7ce2cbbb0 rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/403143beed32fa7cd4255ff9153515713447605d index 2de08c616d69871a514375588d13771422c170c3..41a05087db7c495408642401c0fe9798fde39bfd 100644 GIT binary patch delta 79 zcmbQnJdIh9kpTjjp)~tMK?VL57lk}#9#JbeT=RDtr!(V52X;o5dX_bRCwnu>Kp5GK NGW;NsdZ;!a1pvaF6D|M% delta 79 zcmbQnJdIh9kpTi=G{Zze1^(&>X|u{F<=IW1{6x8U&xMT+?2IgLbYB0P?9C_xVPrGP M@PkC^q1u5I05LHZ`v3p{ diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4191139fe9afc02615ba9159bd3d35b6d6a7d073 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4191139fe9afc02615ba9159bd3d35b6d6a7d073 deleted file mode 100644 index 9f060a69020e0b57269ccfcf4368926cab82e935..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122 zcmZQ%fB;S?%?PErpfrqv@h5J18Qynk+TBKf#o7ap)JtIMb>rjW85o(ESyB6 delta 80 zcmcb@c7;ulkpTi=H0MM?c>#+_?6dcJ@6?>DY0g%X6uN4o!%-%dH#)EXP3B~lfiN_g NW%xlN^-%pl3IGzT6}JEY diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4227fd95d3dc45067dc19e80c31eaf293c8afbee b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4227fd95d3dc45067dc19e80c31eaf293c8afbee deleted file mode 100644 index a51590a6fa2848e45553ccb5dd523b8ba7981ee8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 852 zcmZQzzz&u$p^C%!wqdzX${$>15svl$u~=`GDKk`=ZhTxk10xeN3o9Et2PYRd4=*3T zfS{1Dh^UyjM94oe+dW4kRNZu3e}n~ydkWU7O-j(Z9lrGVO$p9^e#gejZQ+J1dg|;i zq=nSJ)~JY+@y)#`B=U0d8Ez{Bj;OfKFPwRW-Ycvoy?L5jwk~G=#7Aep`YgDg8eF?L zWGypu-hZh8wlB#!`FpE-zxFyWWW z-R0AdJuq}Md&%je%)kI)t^(B`P3b# z4DvkTSHE%U-B*@B57>Qr)U(jh<5TZHZ)uG(5sTL~?+$-|{pRhv_a8of`uyeVx9>lG z{`&pr@4x?``1k+UaP5`6;FlY13y<;5aW(wCTKTp{)W@ERuKT{G3YE>;n(tYSbHDzK zx^!&^+jS354$C}wgPlj-Hg?@ju27%5!|>~;PYFv4Qom}+mgWhp$ZK+I;1T5LTzv7n zM6_m|%X_ab?yKrEWaiv4XHehcetNRbQ;lPPo442|zS)1v{{4HK!|X!5zc0&e68Mt- zpWiA*GJo!j;sTuoRsRz>^G(zLwSm&9Bs9$~fYOX_bYB0fhjM_F5sb+QWuVEU>t{lf F2LM>scR2t6 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/437e26ba4817162fda786201e9f9348e8badf9fe b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/437e26ba4817162fda786201e9f9348e8badf9fe new file mode 100644 index 0000000000000000000000000000000000000000..c82175e0f4d89f564ac5ef9545e73ec3d96f07d7 GIT binary patch literal 341 zcmZQ%fB;rBdMT6-qtN*-J&-=z+ YeaXQNBnC4Erl0wZ&g*~mFi{2u00^KI)6b^lzHVL_sMgn}xkzG3@Bu9_NeGL_!){H?aQb@SC>2Gum?JWVWl57#Khfm4uqd0i_x1S=RimM_2-r QSAYrOkT-(LGoi@?0JU{AQvd(} literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4609e29ba8ece69cc08f7d93093768d9d3d959e4 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4609e29ba8ece69cc08f7d93093768d9d3d959e4 deleted file mode 100644 index 01a1100ab8a2da59e530ff9302bfbf29824ba0b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122 zcmZQ%fB;4)4WqbV3@8ob+ZynnV4vpOzvI~Dg`(@5nqc~LXzj}nR0Ff*W+W-In diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/478e8789ac549a52ab303897c03676879ba014e2 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/478e8789ac549a52ab303897c03676879ba014e2 deleted file mode 100644 index 2a433e7a82248742e662bf35ba9370a8a54078e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmZQzzyTQ1#G(8Ho4sw{NprR5wI3I__C5PGOqp(cTs#9K6Eh1d8#@Ol7dHqnoxOvjle3Gf zo4bdnm$#3vpMOALP;f|SSa?KaRCG*iTzo=eQgTXaT6#uiR(4KqUVcGgQE^FWS$Rce zRdr2mU427iQ*%peTYE=mS9ecuU;l)OlO|7@I&J!lnX_iknLBU(f`y9~FIl>5`HGdR zRKIRx^4T8ox67L*}HH5frEz*A31vL_=%IJPM`HPpYUcY(!?)`_4pFV&2`tAFVpTBwonKF#y&EjvfF2 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/48bc8352918a8225afcb7c6990a9d68983fb22db b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/48bc8352918a8225afcb7c6990a9d68983fb22db new file mode 100644 index 0000000000000000000000000000000000000000..c28600210b8985691f647562c6c25360abe21c4f GIT binary patch literal 341 zcmZQ%fB{t$dlG^1AVH@eGVi%q*;I>>Qk2 z+&sK|`~reP!Xlz#;u7LT6FS@fF5$gA&HeM5&qrKb_HoM<&kYQ_v+}b_|JpY{zHfWJ z%>U`LvtPMIJ$7I4%J6^g!g5DA`0159*LX8+`4;E?4EFF<59V6V(6ec+TgsQlWwEw5 z>eb>SKN(kiac}Y})7|aZd`ZN9b@!~`BS%#yE^E7`*?Iol4!Kt=r>?r|vU+M@@Qc9E zORFF0{K-ly)0?_-)#^2C*R9{Mant54TeofBv2)k%J$v`A<*BIQ$$@kuS zc*!kCgR0)+!i=J!hPUVD{9P{n!+4|pqwB@`X&>X2YZ&gPE}6Hb^6TYf@zt+VeQ)2? zK73}CglpeLmOWPsP0X`@PmTzWtg+u2tsTpAu)3zUuD+qMskx=Kt-YhOi|?bNc+Q49 z{tUa`Jq)V5{5zOuYtu)=S&R`Z?YaW@`@YvNxF((WbOST03zP6Wg83 zi@)%#^5@%k^@wmAL!Fqf0=GFwjzWNMxkpQ!9qUT3`z zS2OHf%}#C7iQkyu#ru`BKvLZCvxb|NUzYCEhGyov?F_7jM>fxC$ZzE>;cflUmvp;H z|9H}ze;gjSj{N_)a{Hl89*Yj#^RUzF>}`JIdkXDU$Ah|Vo*Ajgr?aAP@3_L&g*~mP!5nXf-zy4 M0ZkrVKNFff02Y#awg3PC diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4a188fb2e329657694813f19d00d2634818ba22b b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4a188fb2e329657694813f19d00d2634818ba22b deleted file mode 100644 index 60c23475c9a9800871cc1a9df00224ed648c4518..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128 zcmZQ%fB;rBS^&z2Q80erhpX|g3@T5G-%JdC@Nd~OMyLYa__+9*6CJAm1baU&Sa#5U XPu;bnATf0P%x`pF|Eq_IGB5xDG@Kd- diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4a1e8694a2a9ef8f55364a473c3160a15b7e979e b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4a1e8694a2a9ef8f55364a473c3160a15b7e979e new file mode 100644 index 0000000000000000000000000000000000000000..62c38203ad9f2e1cdfa3eff59f612c6edcaa8345 GIT binary patch literal 341 zcmZQ%fB-Hi4WpLA7*HCW50hqwGIZnP;$dQ>(?8upeCk`|)feC9_1Rr1$jxK?r>!r; z>9q26HnpVuTqc|*64I#d9s7x)Sz2({IjjB^ciyaIU;sH(5^5d?lxD1FS@X9ZVF^rL P0Vae)-UuqsgeDIF18gkd literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9e490b158b6fc8ec4642f4ae51e0b9afbe2e4925 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4badb31c370b762025e980d3d0e6e90dc0c4b22a similarity index 93% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9e490b158b6fc8ec4642f4ae51e0b9afbe2e4925 rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4badb31c370b762025e980d3d0e6e90dc0c4b22a index bb8ba9d349a7c0ad7350de592a8691cc12d887d8..09ef7f54218eb756cd7ab98cd26e6684587e4b14 100644 GIT binary patch delta 23 Xcmeys^nqzZA|ro2%bLIS3~&GdU_=G6 delta 23 Xcmeys^nqzZA|wABo!9^B8Q=f_Y!(KF diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4bda3ac6a2ed0e63735181845273e44ee096a02d b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4bda3ac6a2ed0e63735181845273e44ee096a02d new file mode 100644 index 0000000000000000000000000000000000000000..8a882cd39498e5104d2b85d5257aadc9b0af95aa GIT binary patch literal 368 zcmZQ%fB;4)4X4lrp#1-+;2%txZhTz)Hx>1oj8u=@kNZ@enT}p=+JE8e`R4*E;;*Mw zy07C&J(=^kVbkXNY)yUx%cIuwH+yK_6kv~CXp|oln5N_Q*kj9)Cr950yGKj5EC0M$ zb@oE7bddV4d+%iJIM^QQ+Xh^*{Ac8}u|4nY4lfCV%Vz>#@ur+ue=2kp>+!vk($7VO z9j0WkboH=bi%sCa^rZOAA?IhkRqqxim@Ax&m#TR&Z&BFA%lY@7m~Xo+l~(RIrSG7k z;(DH0A0JOEIetImmv4RRstbS5Tg`crZ5|O4&#$EZpgMH_hpllj|C^iMHl#jSbbRC0 z{$-3+k2mbt`s4mhv#9;X%{Q7S*)LmkX|-h;Yg49ePXH(k(8G_po@LG7dblV90M6c* AkpKVy literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4be9a6a1a463c1babc2fc82de8b855c622227200 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4be9a6a1a463c1babc2fc82de8b855c622227200 new file mode 100644 index 0000000000000000000000000000000000000000..8a57ebaf2f10fcaf4ad5fd3e2f3e67e8c34288e1 GIT binary patch literal 341 zcmZQ%fB>T(L6MRFjn3;m zcmvgvwIvGXAD<#CUcT9X-`xHg4ieuPZoGWf<+9OrX>3T`t*uJN%3jvD+;*xZbF@Fc z=f@K;cWsvI`8{V|+pMj#U$d+7>eGn(?L~cd(zRK%xE}4w#;RO5dCxreb^cz@%BP>tUu)BSHA8!Jm+1V&ZMeQn#J Pm>XEu{H=$HGB5xDK&{cL literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4e6ba7bcb6b209ae89e33fca8b04458f21983df0 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4e6ba7bcb6b209ae89e33fca8b04458f21983df0 deleted file mode 100644 index 237097b4c623e67259606ca049102313c60b6c33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZQzzz!xbqKd=#S?W$auh$nnnrVA%^R2LwH85qm@p17Cj7-cdtZeKYoLt;IynOru zfkx|hxv2pPUiAl*RscGpMnOWI6xq0~og+;|BrDf$6 zl~vU>wRQCkjZMuht!?ccon75My?y-?CQh0>W$Lu)GiJ`3J!kH``3n{J9h5cy=U*f{Ra*nI(+2lvEwIBo;rQz?78z7E?&BP<+v*#~fzIy%U?Ys9MK7RWAPsoi{A(%eh__%lmMkZz!RyKAHP7se3 QsuM;tztMU9uO4A60MTd;l>h($ diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/52c1fe05c67dd4caae0cc36ac41024600474e775 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/52c1fe05c67dd4caae0cc36ac41024600474e775 new file mode 100644 index 0000000000000000000000000000000000000000..41f3e792585e37731caecef3d3d2d221cb92f635 GIT binary patch literal 162 zcmZQ%fBAwroP-+PGdC3S>pc@|-zq*=ddb-S zn0MVi)GOAIvMf!%SNJgk?Pam++mpMn6hIfm)92=q2(C{h9F(&HZV7^tod6H I6J=lk0RQhIRsaA1 literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/541a0b0c26a07b77109da181a00b0cc0e3b6c6c0 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/541a0b0c26a07b77109da181a00b0cc0e3b6c6c0 deleted file mode 100644 index 3169e31d9cdfb58040c7970d132daf5025cf4e23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmZQ%fB;4)4X4lrp!_XgZ|GKEP)e)#x=1VJjS>$`nQnYsJOd*WGYcylI|nBhHxDl# zzkr~Su!yLbxP+vXw2Z8ryn>>VvWlvjx`w8fwvMizzJZ~Uv5BdfxrL>bwT-Qvy@R8Z zvx}>nyN9Qjw~w!%e?VYRa7buactm7WbWChqd_rPUa!P7idPZhec1~_yenDYTaY<=e zc|~PabxmzueM4hYb4zPmdq-zicTaC$|AdK?CQq3EN z?fQ+Iw{G9Ld++{(hmRgVdHU@6iDb diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/565383265f1550107176113eb22943ad2178a731 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/565383265f1550107176113eb22943ad2178a731 new file mode 100644 index 0000000000000000000000000000000000000000..5c2b1d545daf9e32a1512d49f08daa7188833fca GIT binary patch literal 288 zcmZQ%fBYfsAJTT$;*3=EBoO-#+qEiA39 zZEWrA9UPsUU0mJVJv_aQ&Q8?GcvQXb8_?Y z3kr*hOG?YiD=Mq1YijH28ycIMTUy)NJ370%dwTo&Crq3)dCJsj(`U?_HG9t7dGmk& ik80U@|4^LEH@n+kWiBa#+>Gu&<_4BEf9qkQ3=9CQYhRWC literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1094990c3689bc731ba000f7c144920750d254e3 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/569fe4adef9b529c33facecf2b14c320cebd820d similarity index 79% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1094990c3689bc731ba000f7c144920750d254e3 rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/569fe4adef9b529c33facecf2b14c320cebd820d index 5572991a8d06966801f84e1125885c0600ad8c6a..b34e5b903e76388242e5bfa13b31ab1c760438eb 100644 GIT binary patch delta 62 zcmZo*XJ$|e6p>1m1LuXZm{ebKnlVIw2|8=cqx>Y=KE6abby B4@v+4 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/5745eabb985db8f6c6cd44f6bfbdccf2c3d69c08 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/5745eabb985db8f6c6cd44f6bfbdccf2c3d69c08 deleted file mode 100644 index dcd345a622df86325557c55f23be6c3a99261b98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmZQ%fBCGrL&xT3u9=y-X~+4%ny_RqHFQ(c1lD#|P%Hq?7;ro*Z1LZ)I&` zYiIA^=;Z9;%DQ@G^r0y)&K`>SFSTz2R|lWin`0`j&Y4mThwN5t5i@@`TXDnt=LSX1 z7iaz5wAtuJS$RceRdr2mU427iQ*%peTYE=mS9ecuU;l)OlO|7@I&J!lnX_6HSl%Rm zJm~OiYRkx|hxv2pPUiAl*RscGpMnOWI6xq0~og+;|B zrDf$6l~vU>wRQCkjZMuht!?ccon75My?y-?CQh0>W$Lu)GiJ`3J!kH``3n{J9h5cy=U*f{Ra*nI(+2lvEwIBo;rQz?78z7E?&BP z<+v*#~fzIy%U?Ys9MK7RWAik7|9w$yr63R9*V9~aNS$i&RT%Er#Y$;HjX z%f~MuC?qT*Dkd%=DJ3ltEX>ZXk=_+YG!U>X=QC=YiIA^ z=;Z9;>gMj@>E-R?>*pU37!({58WtWA85JE98yBCDn3SB7nwFlCnU$TBo0nfuSX5k6 zT2@|BSyf$ATUX!E*woz8+ScCD+11_C+t)u~;-tw_rcRqaW9F>cbLP&QzhL2_#Y>hh zTfSoDs?}@Ou3NuhHH#)EX)g#0Jf3}ST diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/0bb0b66fac20ba37c2858b7cc76c6af68b3c77a0 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/59ac68c41431dc78942624816ddaf1c9284b90a1 similarity index 79% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/0bb0b66fac20ba37c2858b7cc76c6af68b3c77a0 rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/59ac68c41431dc78942624816ddaf1c9284b90a1 index 425bc4a3d2a07d0a2cd4fd411ec60e2464f59a46..9a9b2b614ae52fa2a948a80819e6bf204f35349f 100644 GIT binary patch delta 62 zcmZo*XdS delta 62 zcmZo*Xhpa#&Zm&1Gf(~2?Da5xy76)G42(?7EUawo9GoB? TD^x3tW`3jd`d>ZFJO%~;dSMN0 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/5bd6daea2290abd4fd85fb7fc4ef767d0c31d59a b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/5bd6daea2290abd4fd85fb7fc4ef767d0c31d59a deleted file mode 100644 index 21e51bd71a280fc93cc6d8e7e1fba97e6fb89c85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122 zcmZQzzz(?3gkk(+kJhRGTh#Ksrr?lO{_d9Zj8JvD@p17Cj7-cdtZeKYoFE=6R0c*f MztMU9uO4A607Fg?UjP6A diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/5c3a4b2851af7350171172b52b354049b77be5d5 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/5c3a4b2851af7350171172b52b354049b77be5d5 new file mode 100644 index 0000000000000000000000000000000000000000..4012771a0bf9244c40ce82cc0fab3c66fbec935a GIT binary patch literal 406 zcmZQ%fBd+FxM7sjTa zjcLp=aGzOLUQt<9T~k|E-_Y39+|t_C-qG3B-P7CGKVjme$y26In?7UatcxH2Je{|g zJ3+~D;jD~hzoVa5hvm9{+%Nt8h?mcty8i|4!sn|0cr1E$qKxOtlAt%Sr_Y={cmBe~ zOP8-)y>|V^&0Dwc+`V`I!NW(7pF9QmlnWXxMo^luo@LG7dRSO7Fu>%!VL}Atnb70` D5TA&$ literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/5ca0f3fcea25b2a8558315a52ed7ec10b31c8a06 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/5ca0f3fcea25b2a8558315a52ed7ec10b31c8a06 deleted file mode 100644 index 67f7fa39770f2316a85cdefd93185ab758cd7e08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZQ%fB;4)4WlNY3BdU4%{t$dv#&Bb>$dgTT9&gWFlD;&aq$d{Ow25-Z0sDIT--do zeEb4}Lc$`VV&W2#QqnTAa`Fm_O3Es#YU&!ATG~3gdin;2M#d(lX66=_R@OGQcJ>aA zPR=f_ZtfnQUfw>we*OW0LBS!RVc`*xQPDB6aq$U>Ny#axY3Ui6S=l+cdHDr}Ma3nh zW#tu>Rn;}Mb@dI6P0cN>ZS5VMUEMvsef<+APMSPr>a^)IX3m;DXYRcD3l=U~ykzOJ z$dGXcJA7}XYaoK2M!)OeB|h{<0np@I(_Esx$_q;Ub=kc z>b2`PZr-|m=kC4x4<0^x{N(Ag=PzEqdj00@yZ0YHe)|07>$mSee*XIX=kLG&gU$b- VIDy3*EMA%4=)C?{592W~007AJx0nC` diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/5d0f9ef8f9bb3ddd53f5fb90bb91b69dd76c7967 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/5d0f9ef8f9bb3ddd53f5fb90bb91b69dd76c7967 deleted file mode 100644 index 5e7065be2a6b25fbab33cac4477103bbbf9a8c56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 852 zcmZQ%fB;4)4WpJY!B`L)#=n;Jc+JGf*ewE|ILg!4DScyxD$|XRi)UbDVrF4wW9Q)H z;^yJy;};MV5*85^6PHLUc;qPGd*J(|X;KUOZaUA?Jht}8sKhZU#XoW1ph0b$vL;P;+o5mGL;Z9nQwCdq5|EUn+de<^J7 zP9bK6h!utGH$xkhjU8hiZ^@cveb3?3?3+~vkKPFVFh6yD@85Yx@)F+!zLycO40o)5 zZM@|}hKX$h$J)}Q$u6r-Pw6}Eu7CU5?zb~MW}UhA*vlk2goRT~ut@Cw``dEoT6dJq zJI$bHY+0mu^r(yPsol$$=WB~)y;$Q~vunEmv$xYEf94HI)3>~6pU2^T{LI1f2XptA zA4oAyJeQLa8EJ9q*Oe)`y2mdU?5ef@dEwBZ%JN334f6TTEhTkUGOypfefR#u$4{TX zeEs(Q$IoBC|NQ;;9~A#L+3a^#oZT$-Z|8~rjnluJ4!U~1Md|d`u=-o#H_zEIIV&tZ zWZ2#D(E6T^Orh@G=yp@NZ@$b?sV0)olYVtpzgv7pchj0%yJ~~D%G7Q$SLsY#(x*L{ zX%n+kcxs{(--3hvj0bYRommlLX7zF1`xL{_<4phe&8?|6*G>z5`r|^3c$Ly0^Be0b zTjDm!z3`O(Vx7go>gs>uMC&>|{!O)aHvYK=N~e<0G`j#wGrrMz{jVO%0a8XVCM;8+ L$)oFMLX!soz*}@Q diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4d0abf7562348a077076a31f67dab240996227e6 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/5d15891a80d8172de682be6dace7f5bb300e4d36 similarity index 79% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/4d0abf7562348a077076a31f67dab240996227e6 rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/5d15891a80d8172de682be6dace7f5bb300e4d36 index 9afe3b60e3201e67213b54c3b35534d2ac02d30b..f6db7363ee4071b9c9bafdc82bfdb83cca63080d 100644 GIT binary patch delta 43 scmZo*X<(UPAW$Otp<+=apKf%d{wony^B5QayuJ=q diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/6240d30abd265d95c08193edecbc06900eafbc92 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/6240d30abd265d95c08193edecbc06900eafbc92 deleted file mode 100644 index d40c3a274b74791fa0c10de90d06181171d96e71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341 zcmZQ%fB-Hi4WpLA7*HCW50hqwGIZnP;$dQ>(~mxE?&ICS?I1kI!EyHbaGkUE?k8fk zRa)mo=w@4+iyGlHk&woe+p)*Em&WOpXHBR&ttaEkzyNZnB-A_(D9!j<=k>pOge5R} O1(*;Hd6>JH(BuKjZ7)dx diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/62a11e2f3482935ce23d81fa268c0094d5ad58e6 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/62a11e2f3482935ce23d81fa268c0094d5ad58e6 deleted file mode 100644 index 9fab967f0d0483ff3d8cb426a1d5c60d80f62827..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288 zcmZQ%fB)=I1a%73jvt#fPk}-FU-i>Z^L$ zT<@&;2OaB585W)>PCN1_J4#pXoQf;Ad+#-4J*KY{%T6@7Mu?m;Ff=kYF*P%{u(Yza zv9+^zaCCBZadmU|@bvQb@%8f$2n-4i2@MO6h>VJkiH(a-NK8sjNli=7$jr*l$<50z zC@d;2DJ?6nsI024sjaJTXl!b3X>Duo=Fw*EFmcl4DO0CSpD}aR>^XDi&2Ra0 h{&uL<;>E2U*4v#Ux)VTdM)x1{8=cqx>S3Y`3;?YyU1k6P diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/649a785d4fa52fc0db4d90d51b084353ad1e6f6d b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/649a785d4fa52fc0db4d90d51b084353ad1e6f6d new file mode 100644 index 0000000000000000000000000000000000000000..69a3bb89dcbd046c9142934ebe6eb1703059240a GIT binary patch literal 406 zcmZQ%fB;4)%?YKSL1`ETjo5`ZoXZ$htS>u-mrZ=pEF~=?D<`j@sHCi-s-~`?sim!>tEX>ZXk=_+YG!U>X=QC= zYiIA^=;Z9;YOAnL^28qF1yhxy#cr5=)(H!bh>VJkiH(a-NK8sjNli=7$jr*l$<50z zC@d;2DJ?6nsI024sjaJTXl!b3X>Duo=Fw*EFmcl4DO0CSpD}aRKg%6U?93cg z)h~peV|~x}di9#M>(+1BxM}m2t=qQm*tu)>p1u3_A2@jE@R6g(j-NPr>hzhj=gwca zcsi+Pt%rpb0|QLn8zw|Ro(WAJ E01>E#R{#J2 literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/64f3143b18b3d922c77f4fcbed0f3ab2b6244b27 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/64f3143b18b3d922c77f4fcbed0f3ab2b6244b27 new file mode 100644 index 0000000000000000000000000000000000000000..19c2474b497d5f51e74273f75dd781a4111a6ae8 GIT binary patch literal 512 zcmZQ%fB;rBdIBR<07}95TOK8D_^Y`_R$o;#Sy*~*I82#td|W&OBNHqPshPQjrIodft)0Dt zqm#3XtDC!rrnub+QFU{G*KXjpheWK?uaY+QUoVp4KSYFc_mW>$7iZeD&tVNr2O zX<2ziWmR=eZC!msV^ecWYg>CqXIFPmZ(sj}iIXNznL2IyjG41$&zU=K{(^;z7B5-4 zZ25|nt5&aByKeo4jhi-a*}84}j-9)9@7cR=|AB*t4j(ys?D&b3r%snAuU@}-`|kaRkDoq&`TFhqkDtGO|M~mx|6ub! SI8M;wkGX+m&EI-N+yVd#(zQJR literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1e148e9501ed59f5274e01ae905b2bf5db81ef79 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/65d11e1a8031645bd1bd1a21e1f1fa24e048999c similarity index 60% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/1e148e9501ed59f5274e01ae905b2bf5db81ef79 rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/65d11e1a8031645bd1bd1a21e1f1fa24e048999c index e636810f6ecfbc948a7938a3d4e1fab099f0bca2..f0af3576e4ef20f8984dadb7c8c6b5c1af4f95b3 100644 GIT binary patch delta 61 zcmbQnJdJsRfq-3G=law0cqOK7_%vnJ`>TB$9oQLJ>RHzOo$Sph17Tz{%J73k>KWhw E01QqQegFUf delta 61 zcmbQnJdJsRfdEhLwq@M&!`JmnX{(k?UlZTxz|P3>M(6dv$=-}I5Jonm3_nPuo&gR3 Dw8s>s diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/6708bf88a56c292dd3c45abaa0e99314c4fddd9f b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/6708bf88a56c292dd3c45abaa0e99314c4fddd9f new file mode 100644 index 0000000000000000000000000000000000000000..294915bf23cdbee38a130f05ac8afbb061987fcd GIT binary patch literal 122 zcmZQ%fB;4)4WqbV3@8obZ{Z5LaoELssnh0-cMaAW3BvU0#>d4oFfuW-u(GjpaDsTO QP@OQExq)TP-+F|x0F$E)6aWAK literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/69ba9c487a8b2d6c4812a9a39d9e069265be4afa b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/69ba9c487a8b2d6c4812a9a39d9e069265be4afa deleted file mode 100644 index 549b3ff678dd2b9e4b43617be7c669fda6f594e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341 zcmZQzzz&w838V92(#%kXZhTxkObmlQ^WdF8`?JZbFeG3CtR@CF=etfS=>AGne(QQx zyn^Xx$evW5`I|GjR$3NbOoyq%pp!osIawE`&X~FW*YY2ZP3_e|XPeKh+0CdGzSvEd zyXFg%=VkXjLd8o==B|hc5nrD9JsaduNvJs-P@3_z&g*~m2*Y9W3NRt4JWM@I-Uuqs HgeDIFgoZjz diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/69dd5d28b00400a20a1887ab5b655c4bb468f70f b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/69dd5d28b00400a20a1887ab5b655c4bb468f70f new file mode 100644 index 0000000000000000000000000000000000000000..17a1a5fd3bfba4ea68cb20df4aee43469ec5acb9 GIT binary patch literal 162 zcmZQzzz&Sigkk)il|{X)UYJGDj7`}`(ylNtfE+3bHID;IGrrb&{jVNj2~1uA OCWJ%Y2rAEnCJz9)-Y~-e diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/6d020263a43603c5caa8f3274ed65dfc90e467d0 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/6d020263a43603c5caa8f3274ed65dfc90e467d0 new file mode 100644 index 0000000000000000000000000000000000000000..6f90cceaed4022e60c2aad33706ef85a7997d254 GIT binary patch literal 122 zcmZQ%fB>QjR U9xGG^Ml(0Ctod6HGmn7*0Bqz8rT_o{ literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/6d0ee80399e88ffdb1778b0bae7b6605c099c2f6 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/6d0ee80399e88ffdb1778b0bae7b6605c099c2f6 deleted file mode 100644 index eec9883c502a94856d42d76d06ddc73e55c67cda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288 zcmZQ%fB;S?%?PD8Kxr5SB lZ~g=wyPEeGJPezaN?J@)_X>jCjP5_?H#)EX)x$&?7yy1 delta 42 rcmZ3$w18=Xfxwx)GqMWfOSJ#pX3;U&vX5t?!$tl#IKp5GK NGW;NsdZ>ON1poo46rTV9 delta 80 zcmbQnJdIh9kpTi&Ve~{nd4UUZK_zaFx;T$)tyI%y`c<>hft``%jn3#+^1?#+Vf(~XadXJBMvW?^Mx=imhK USfN^BH1ivs*Z=Ba<}ok;0LDcQo&W#< diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/736dde51d09a2c4ff85d7b559d08176c951b07c8 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/736dde51d09a2c4ff85d7b559d08176c951b07c8 deleted file mode 100644 index 820d1884ecc78d62376570f0cb33afada9bf15eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmZQ%fB;4)4Wo=;3@8obZ=b&-!)k+R`lf^PCS`71GY_UuH$ErjW85o(ESy_}RaDi~H8i!fb#(Rg4Gh7$&}?LWqx1S-JMy?%+n&ET*LamzmP-&vI($ zcrW~sKQZ@3hjZFdd4oFfuW-u(Gjpa8C8? zs{0x(WU9S0(yQ&!y6u@+*^}-6{k6AHu}>V7PoLyXVrYWt6p7#3pszCMjs5tG&l5cCR74{s@GUnW=WV-y0mbKTtnFSs-ZM##| zv|n$!Qp>VoUCGriPP1>kR~5Mvd?UE6y`!_MyQjCWf5OB`lc!9bHhsp-S!@&H8!kYJywbH=RY{+t)ero$#G4q8&Andm@uz;mig9YXl?nPdG~aJSMg4=g~xAgN`TO zD|XdfZ;-X+y?y8Iz55RyK6?D*DafZ>P+uECX~ue%HGk`2Va31zllO)R5s+s>lLr9) CLxI}> literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/7af21f77c85a086490b6447bcd70b2844b68101c b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/7af21f77c85a086490b6447bcd70b2844b68101c deleted file mode 100644 index dfe1b8ff68ade9fb947dc9fd40c06f3087bbb8a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmZQ%fB;rBnt>520HdJ%|ES;}Oqp(cTztLs$AaE|##P1gBH`Y*L|R{Qd{S!5TUXdA zdN7Ldv*=+V5$8F2*Rx9YbMajqustwGH)!Pl8Pr%{a9zsK5Ag z75j2M_JF{k;E>R;@QBE$=$P2J_=LoyYCcR z`i91)=9bpB_Kwc3?w;Ph{s|K&O`bA!+VmMSXU(27ciw#e=rzWIS8millT`Y?HgX$J zgvPPoyQ`k=(Rf(2Q0~(T#mm{ZHc#&ponhh8UQ~F|v$W^%QJI4WrflfmIXQmLEM3vF zM~}|4`eoq2WZ|Fi>7^axhmW5=fBE|D`;VW$e*gLV?>{IEV8I0oKjt?&um9DU#{JCYxTbApEz$%_FuAl>W0mia(-`es6W+J zd~dU_ilx2l)9Z^iczSvJ`1<(=1O^3%gocGjL`Fr&#Ky%ZBqk-Nq^6~3WM*aOYz*tlu)maW^i@7TF(_ny7`_8&NS=VC-V3(|NevG zf1XA`z^9CqH{$Kq_pa~j2{B0c^>qt_v*^+|HvZ7sc`^Z86ASouPdXd1?a?1Ab%SX% o@;}b_2c=Ud6qYyBe67U*Z(sJgl{ zWqzVb-|3>#J^j)`CGG(}>%3F`9XS`k;B?-fdyfuB)Z-~upQf-~*{aalaA^I%#?9LX%?IRfDe@O|J$mA^)A)YAwT zJA_wVn(=Qn$xT&wJ^P2 m=+KT-&MEnwwdad$e^0fT19CIWn=t<|ztMU9uO24KzyJV1DrUX_ diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/7cf33864cf4435593d27b9c4ca8974cfa5c9d7d7 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/7cf33864cf4435593d27b9c4ca8974cfa5c9d7d7 deleted file mode 100644 index 7feed1617cdc574793c9df1fe67aea115c864296..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmZQ%fB;S?%?PE9pfrqv@t56SYml1|eb>y$!(5TovJR$RH$E=jd4rDWRaZY9F{6m2 zEYaXUNzZ?NV)_w3h1dJ??;jiN<02T<+-tCsXf4`RQ{oCA|jGffk%kTZ_^#0E;R-tn9kZAD5H{8xQy{>oo z{l3EN{;uxP=0l1;!4*sAhvjbLn#;|*@=M$EW}TynhgKhzUoNxx_o7929{8Dw3UBQ? zwRM8eP02|oLp1N3E?(E?q18WYcTEYu+J3|6HJ{Yq9hw$mvG+O4x>p6YN!x#H*!IN! zw9MD;mnpGx-=9CF?Xg_%+P_Diw2rmdaEZ1QooMB!l*TB?tedw%qZFI)2K z>Sc;%{P4`XALzQZitPl`D~`yF&1>J9s%?;SfAm89>+QKdZ)e1BxP0JL%)8c-`WCaD z3%}SF%w78AXXkRR_Wpc^o6G@={q_XU2ozlterm0PulEKon+;9H#KPvcoooWNoc R7JtldbYB0fhlw&U002dJ*^2-G diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/80a95f4446f5e696769fc1e738a6b9166f8880b3 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/80a95f4446f5e696769fc1e738a6b9166f8880b3 new file mode 100644 index 0000000000000000000000000000000000000000..50f265e8f43d9f9bd42f28087371dd6fb326534f GIT binary patch literal 122 zcmZQ%fB;S?%?PErpfrqv@dYc~?|0WJvfMkm=(vPc=zN%Z-T1h821X`k7FITP4o(n{ T6{;0RGdHlT`CAV&kAVRIe1r_h literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/81dbdffe5f44dcae32cd958cbe8f3f451819d07a b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/81dbdffe5f44dcae32cd958cbe8f3f451819d07a deleted file mode 100644 index ed02f5b73dec472f632250a07658ba2b951cd9ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128 zcmZQ%fB;rBS^&z2Q80c+!w36c;sqZ}SN-`KeOJAj5vo8pJ}#btk%^gwm5rT)lZ%^& XmyaJT29<~DXMUse`d>ZFR0akBV5ATH diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/82b8a9f56e65b3e2af929c4d62d95e7768850eb4 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/82b8a9f56e65b3e2af929c4d62d95e7768850eb4 deleted file mode 100644 index c36fbc54f16f99e91aa9cbb51814c92b36d5cf8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128 zcmZQzzzzh^gkgL)A>)gu3(xd<^rh-aEHXRI2vw&W9~Upy#^Wg6*41^3<8{Y#$GxjS UVlZQ1`kCM8y#7}Y6J=lk0PyY<-v9sr diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/82d659133954be19147475562b9ca11f4bcf2056 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/82d659133954be19147475562b9ca11f4bcf2056 new file mode 100644 index 0000000000000000000000000000000000000000..df36b8b9f6be9fd32b1b33a7528857ae16f98c62 GIT binary patch literal 852 zcmZQ%fB-Hi4WpJY!B`L)#&-{6zqTl0n^p57&-14W>(4SnmFdRE#WOH6F|)9;v2$>8 zar5x<@e2qF35$q|iA!)lO1_@D$aK>7h%K-6ZoZkba^^+G{@xe$<(sNBa>A@{$o$V< z8-L>F8Qs;Vf9|lX&wKDRnc3z1yu|&6O3x0hK2YhHWmm98|AU8dR;4LkY`xx_`|$FD@4Tr$f1i-py7|V98{CO60-CnkaPQeKYv+E)bgr`T zTI=@{KN$N8IEl1wf4%E$5Z_|Ihzhj z=gwcac|p1*kc>dNvrg+cd!S{;~DXp$cpEH^NIlX@B2mViCY3_~{`G+^gMKn3Q zGPCY$kGucS+SaWr#rD-75259s-BvGN%~S4{RhSW(kczFB599QUumPqSJ_zhOk-*ls)!Y8IrW91%lOj*H-!!( z!&&OQsp~5o%l4cz{&6Vr?IAypSO&)428Fxnjdp#(ha{U=e7)Pw#NLyh`dFL0`%a|m z#2djXhu0s-Use{$*`V-g#`f@};N18bhgiRyOkBI5eSr!0t4UfJ64z{5SUcbKe(Vmi zyCo5IL2C1Z!;!|xCHq$Lc&rzm-M(<=vAh&eI+cW`*#%IVv7Tkk-+CwqNEyMHj8F!e KJi2}+Gk9J literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/74395b056ddfc22160234e4a4616bf87e2159eda b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/840a171b28b5c4d7b7b52d71a9926c8ad516fc0d similarity index 93% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/74395b056ddfc22160234e4a4616bf87e2159eda rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/840a171b28b5c4d7b7b52d71a9926c8ad516fc0d index 85d1c760cae500ca9a7198d2c535737cd1648fc4..6c4b98b094c223880bbe1bf351e81882923e3056 100644 GIT binary patch delta 23 Xcmeys^nqzZA|ro2%bLIS3~&GdU_=G6 delta 23 Xcmeys^nqzZA|wABo!9^B8Q=f_Y!(KF diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/8483cbe550b4c9343c3361935bc8d3a7c30b3ece b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/8483cbe550b4c9343c3361935bc8d3a7c30b3ece deleted file mode 100644 index cbb8c60bb59492b811243baf0e74d0bb500cd1cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341 zcmZQ%fB-Hi4WpLA7*HCW50hqwGIZnP;$dQ>(`|%9I~kFW$L QuK*LmA#VhgXF`()0Itq8m;e9( diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/84c5d943ba95108d4072c7843df631bcbd177391 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/84c5d943ba95108d4072c7843df631bcbd177391 deleted file mode 100644 index f34be3e9cef78f130dcb6fe5acc5462712086d9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341 zcmZQ%fB;S?%?PEJLTMO<&WDLJLm9g9aq%!Q(rHV+V}6V`Z{1!e`j7LT?!!gFE^D)T z8KZAD%&zAQ)XVP1X(Azw%)eAzfAasBUDp2c+qLVHjxjKR94ZMlj{{0GzSepDuO49u ROkM#dghSp4D$j%_4*-y6HiiHI diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/84ff4cce4c529e07e5b68e143d54a665c5969534 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/84ff4cce4c529e07e5b68e143d54a665c5969534 new file mode 100644 index 0000000000000000000000000000000000000000..e23426d93fe6cd0675bad41639b42c88fa4a055f GIT binary patch literal 128 zcmZQzzzzh^gkk(O*;hHb*I!W9N&CF?^52#@j8JvD@p188Kd#SuccJ@Deej`e-`{^b V4ibYI1Jlpkz_R9VJxr8=0RU078p8kp literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/86638a56e2496c3c8cd2750db9b912956daaed1f b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/86638a56e2496c3c8cd2750db9b912956daaed1f deleted file mode 100644 index fc7d9a4bc5b50e01c6899bc4843de5f9e7bfd804..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122 zcmZQ%fB;rBnhVN@Q84~`*UA6F#owOeTlU3n=ll$IMyLYa__%lmMkZz!RyKAHP7n{> QMCLa-um9D<%wu2x0Nfc4$N&HU diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/8768d10c0dc08dbbf002bdd81a8cb54a15e00c6a b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/8768d10c0dc08dbbf002bdd81a8cb54a15e00c6a new file mode 100644 index 0000000000000000000000000000000000000000..b8d9ae102d435d15bebc0460898d873f66be0ee6 GIT binary patch literal 368 zcmZQzzyTQ1#G(A-&)STRhALRPv{^YHSr|44rc5_JE}nsriJ66!jh%y&i<^g+k6%Dg zNLWNvOk6@zN?Jx%PF_J#Nm)fzObje8tLD ztJkbuw|>LMO`ErD-L`$l&Rx6r?A^Ejz`;X@j~qRA{KUyqr_Y={cmBe~OP8-)y>|V^ z&0Dwc+`V`I!NW(7pFDl`{Kd;xuiw0V_x{7jPoKYh{r3IG&tJd){QdVI5(cQ@#@xWN J=5IYh3;>Apj647U literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/87bc4b02fd7544d306e8db2629ee73fda0e4d581 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/87bc4b02fd7544d306e8db2629ee73fda0e4d581 new file mode 100644 index 0000000000000000000000000000000000000000..9f35bef4015e2cf5aa2088760baa383d5cb5b090 GIT binary patch literal 368 zcmZQ%fBx7;u#p3m|0la*f}`4 zxOsT__yq)oghfQf#3dx9q-A8~>V7PoLyYq+&w(KynTHA`~w1mfX!XqN1qGMv?;u8{+l2cOC(lau%vU76t@(T)! zic3n%$}1|Xs%vWN>KhuHnp;}i+B-VCx_f&2`X@}BGo;uNw0XRJbd){$~I}^!dxzZ{L6X{Pp|K-+%uh QVSpNL%ndAS{?;SJ05Oq_!vFvP literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/87e457fd00f48571ecc482ca7ff96e3375869ac3 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/87e457fd00f48571ecc482ca7ff96e3375869ac3 new file mode 100644 index 0000000000000000000000000000000000000000..97054f4d63337e4de52e17d548086383878653df GIT binary patch literal 122 zcmZQ%fB;rBnhVN@Q80eRE^+G_LS^=)>la_U@4K^x5vo8pJ}#btk%^gwm5rT)6U0L| Pk-33o&EI;Mc?=8yrPvL6 literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/8b15a9c75b3043040a90f28e84de28e436e023d7 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/8b15a9c75b3043040a90f28e84de28e436e023d7 deleted file mode 100644 index 980fd4f90a17b32f195e1eab0b7bebf9729af1c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZQ%fB;rBdIBR<07}951}6V6vM;>7-XZ1Y#Jx;=4PeT2VJkiH(a-NK8sjNli=7$jr*l$<50z zC@d;2DJ?6nsI024sjaJTXl!b3X>Duo=Fw*EFmcl4DO0CSpD}aR>^XDi%|FPL zF_+{2{!@2(<11AAdu|+csXM5WR4IS>-2Jo^?a6Hk>yKX$R{W~`xWAZT;d-X)=NIqh z-eA4|wP?e+_+M=Me#e}jw_}EqRBM&tC9cZc3q~J4e)|07>$mSee*XIX=kLG&42(?7 zEUawo9GqO-JiL7T0)j%qBBEmA5|UEVGO}{=3W`d~DynMg8k$<#I=XuL28Kq)CZ=ZQ z7M51lHnw*5DIdiu4+$#WdBajBd;cI~%7V@FuiX3Dw>pP;Lb=Tzk^4t37#2NcxAZai zry{p2=i=(^;>9YgisIjYyZ_t}_9}E|Pu!_S&49piD#$jghtn-MCn8y^?Xz{teR!pg?Z!O6wV z!^_7nASfg(A}S^>At@y-BP%Dbps1v*qN=8@p{b>p$T*H+Q4Nm%2YrUu~}O=`cd&b>rjW6?clNF}B`3s^WdG zv@-SE19#bVC4DLz6Vr7(O_blf$<+3ox#jv?(>YJ;epapEzTaqI2+{?!2xbFw1IwDf J^)OKe1^^2CCE)-7 literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/8eeffea9e7c3876ffc477ce68a3c0ac4375ef3aa b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/8eeffea9e7c3876ffc477ce68a3c0ac4375ef3aa deleted file mode 100644 index 01d7ba601c0caf75cf994fb5a22f53e127d13793..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 852 zcmZQ%fB;rBdI=L$07}95NgazV3l$<_r%IOd_%#>wF+=5bEI`O4L6*Kgdsb^FfUd-oqaeDwIq(`V0LynHpY_`t&Qy3L?sGDc|Bys<(RAyerr9d{3pYtQ30xYpV*n|6jj(`|kaRkDoq& z`TFhqkDtGO|M~mxKPdkHq@C325?Y&Z=l+>^=2P9WJKujhJA3)UM~C-qydkQ@{<_L= zFY5%x-UmM=wJ)>s{S&VjI8y4f-K9h)DkM?l1Z8Cw3^nD>3^K@ k4@#$!&@{UMN;AIEdHt^*$^lYFFeW3EfhLcxp9xJK0QmlK=l}o! diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/8f4d31cb3817b34c73ebbbb9d594b3deb7c52111 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/8f4d31cb3817b34c73ebbbb9d594b3deb7c52111 new file mode 100644 index 0000000000000000000000000000000000000000..bc99f9e1888b596a8e9267b027d320268c4730ed GIT binary patch literal 512 zcmZQ%fBJ-vPX6DCfYJZ0*%=`&`|nmuRky!i_jE?T@~ z>9XZ3R<2sTX6?H58#Zp*yk+aQ?K^hv+P!D*zWoOd9y)yF=&|D`PM$h_=Ipui7cO49 zeC6u3>o;!Rx_#&Fz55RyK6?D*>9glAUcP$$=Iy)pA3lEi{N?Mn?>~P2`u*qczyE{H T|DZTQk4NSPmNkFt5pfFuBQ>`H literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/596a7741bc1da115af7b9a5d9a38fdf109b7fcfc b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/8f55993eb44bc293d662c18a407f915f03df1e9d similarity index 79% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/596a7741bc1da115af7b9a5d9a38fdf109b7fcfc rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/8f55993eb44bc293d662c18a407f915f03df1e9d index 14b60cbb1472c38fe0ba8d075a877ba44c88324d..bdb8151d2f10d73657ea72092f982a7ed98e9af0 100644 GIT binary patch delta 60 xcmZo*X<(UPAh7q`lHKeH6IN=dcqlnK`p9o|Siq<-fsp|PFgLKQ`CE?=0ssLR4EO*5 delta 60 zcmZo*X<(UPAn@i&aObv=MC%7z9Tq*3*W10(VF9B80~AbPgfN)j=)C?{4-;iz003|_ B5JCU| diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/901e4c6087322b69946ec8dd8d9fa401eebc826f b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/901e4c6087322b69946ec8dd8d9fa401eebc826f deleted file mode 100644 index 0790556127087856335e04b5e81d5862795677ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmZQ%fB;rB+6c;rQ85028KHaJSw1M)YOU1Nd_BjM5vo8pJ}#btk%^gwm5rT)lZ%^& zmycgSP)JxrR7_k#Qc7AzR!&|)QAt@vRZU$(Q%hS%S5M!-5UdMo0?Y>HH#)EX)x+#% GU;qH=AQEK& diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/17cf1e48c441638a2874088ac78b42e8c4cca286 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/903baaa085161d75d34d28dc743227c85f2f5b47 similarity index 60% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/17cf1e48c441638a2874088ac78b42e8c4cca286 rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/903baaa085161d75d34d28dc743227c85f2f5b47 index 5762de6f633063728d17b0ff41d9ab99fe50068e..cd9b42c460f7c09f136f30422be4ca9f483db5b3 100644 GIT binary patch delta 84 zcmbQnJdIh90Ub;flo!x_R(S6IqnSowZzs%}7PH{QMhA9AmU@;oe*cKMhA9AmNz=D|4sI0l;Hp| Q>Ve89=QB$1!#Ggw0BOY*_y7O^ diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/905f7519227f6a03890b23f2d4fa1808912c1709 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/905f7519227f6a03890b23f2d4fa1808912c1709 new file mode 100644 index 0000000000000000000000000000000000000000..02d61fb615549898b8450f3432e2954fda9f1cb5 GIT binary patch literal 512 zcmZQ%fB;4)%?YI^zy#3vdIuj#GP$zIe)e6o;M*l`A(%4V__%lmMkZz!RyKAHPA+a9 zUOs*SK_OugQ894|NhxU=Svh$HMI~hwRW)@DO)YI5T|IpRLnC7oQ!{f5ODk&|TRVFP zM<-_&S2uSLPcLsDUqAnVz@Xre(6I1`$f)R;*tqzF#H8eu)U@=B%&hF3+`RmP!lL4m z(z5c3%Bt#`+PeCN#-`?$*0%PJ&aUpB-oE|`6DLicGIiSY88c_io-=pe`~?daEnc#8 z+42=DSFK*NcHR078#isK_CSHTxGR# literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/950e3521352f0c27063a87618a490346f0a3c2f4 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/950e3521352f0c27063a87618a490346f0a3c2f4 deleted file mode 100644 index cf62735fcd69f13d1975568c6b6cb72571aec52c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZQzzz!xbqKd=#sgtXj{rlhg`O5GGiliP}3R9*V9~aNS$i&RT%Er#Y$;HjX%f~Mu zC?qT*Dkd%=DJ3ltEX>ZXk=_+YG!U>X=QC=YiIA^=;Z9; z>gMj@>E-R?>*pU37!({58WtWA85JE98yBCDn3SB7nwFlCnU$TBo0nfuSX5k6T2@|B zSyf$ATUX!E*woz8+ScCD+11_C+t)u~;-tw_rcRqaW9F>cbLP&QzhL2_#Y>hhTfSoD zs?}@Ou3NuhaiW6A8 R!D5s7jn3lU diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/96831b586053575d609e63674190dc3219b9a003 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/96831b586053575d609e63674190dc3219b9a003 new file mode 100644 index 0000000000000000000000000000000000000000..29cb89e5258ee8eaf9460b7bb6d5e32108150aea GIT binary patch literal 162 zcmZQ%fB;S?%?PE9pfrqv@&7JKSo&xl&m?ZnzOosd=HW2)y76)G-S;}LOy4JF9O1EK z_WP;6{KxNq>Dkcqf7XGo%Is4kCii|dxmECM*_2=9R=qoY=EiO_Fa+sBw}H8VWzFAu Im?#4S0Kmd1ETL(c>FK2tVajylBM{9uZMQ7(!aoe zZj;O86*I4Y)AMp^(+kRLkzO2m?dp?5#ZuMDvmgI{C%SmT#7UE`o>=ggfq z-{9*N-8YBkOMi;{YnG+Jf6w8@S1xh6Uwbe8f3EY|_H5F{h|K%1AKBi!)EeMw{G4^- zy}j>pTG!oYYh=;aK72>8sPv#kX~DwpFY0=N1k@fsvHW^K{>1JIL(4}_5f}PSU+0n9 zo0VvsD!1rR=Cvc+EpFeo_g!@Mto*v&>JuHaUS6u{_-(tmZ%4ECzR5SwNHl+5amB#U z$k@cx%-q7#%G$=(&R$zOZuz}}ra8=E9ipM1mO65X$s{j+@nK3q&C~$KfJRrozuzhM=hJ% Zfl5~AyC5-`F);ni4J>Q^*26>@7yzq!7JUE! literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/97a3724c855e142691e1084ef45f02f614a032f4 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/97a3724c855e142691e1084ef45f02f614a032f4 new file mode 100644 index 0000000000000000000000000000000000000000..4f1e36898f99fd45c72f4bea659637cfbac19e7e GIT binary patch literal 512 zcmZQ%fB;4)4WlNY3BdTN`%4T@JPu-wh=DQOv5Ie7&|C1n*=HFXV5Eo~iLJ$(a1BV!X&Gjj_|D{C8DJ9`I5 zCubK|H+K(DFK-`TKmUNhpx}_uu<(e;sOXs3xcG#`q~w&;wDgS3tn8fJy!?W~qT-U$ zvhs?`s_L5By84F3rskH`w)T$BuI`@RzWxalCrzF*b=ve9GiS}7Gk4zn1q&A~Ub1xA z@)avrtzNTs-TDn1H*Masb=&qGJ9q8gvv=SA0|yTsK63Qf@e?Ocoj!B+-1!R^FI~QJ z_1g6tH*ej(bNAl;2M-@Te)9C$^A|5)y?*od-TMz8KYjl4_1pI!KY#uH^Y`EX!RCKZ UoWSA@7O%_=ENlMO!*~n~06;{w?f?J) literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/988fc98ea6e4416b30e99ab39cd70813dd9ff828 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/988fc98ea6e4416b30e99ab39cd70813dd9ff828 new file mode 100644 index 0000000000000000000000000000000000000000..54c722662ef7d17010157de45aa957dfd90534a9 GIT binary patch literal 122 zcmZQ%fB_*)63h(*Uvv7Feo@AG%P$KGAcSIHZDFPF)2AEH7z|OGb=kMH!r`Su&B7Cw5+_M zvZ}hKwywURv8lPGwXMCQv#YzOx37P~#7UE`o>=ggfqf5E~dRhmRaRcKpQ2Q>V|IJ$L@X#Y>m3T)lSv z#?4!|@7%q2|G~pYkDok!_WZ@mSFhi^efR#u$4{TXeEs(Q$IoBC|NQ;;f3W!<6eqBF RgT*Fu1IwDf^)Ma-0|3QFw#xtj literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9a0b17f115defca3c9b789ea768168d18497bead b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9a0b17f115defca3c9b789ea768168d18497bead new file mode 100644 index 0000000000000000000000000000000000000000..cc4c2059d370968ebc1c4f5b24b9c2e38f3f8fb8 GIT binary patch literal 406 zcmZQ%fB;S?%?PERL1`ET<6m)M?x=Dz%V0Wf#Jc=rDkn2kfo^6Zr>W($oY^<`f zwz0LdcW`uac5!t&Xg$&9vdWUeC2j5$FXr?3A<%PWS-u!H9@96C6?&T4q?%~;Q}=5IYLtQZ(z^4>5Z0`g2~ F@&MR!h9Up} literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9b75f20679a2ba1ef2163893322a81fe6c54a0cd b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9b75f20679a2ba1ef2163893322a81fe6c54a0cd new file mode 100644 index 0000000000000000000000000000000000000000..91390080274f0b9c0385f6edad61927d0cb72172 GIT binary patch literal 128 zcmZQzzzzh^gkgMcM~hRH%g?EuXn1q#=cSLij8JvD@p17Cj7-cdtZeKYoLt;IynOs% RF{nIDKXU`in!oi3!vS064|D(k literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9d730c77c10dc26ff49d9eb96f20c7d98fcc52ad b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9d730c77c10dc26ff49d9eb96f20c7d98fcc52ad new file mode 100644 index 0000000000000000000000000000000000000000..37f6080072182691fc57eebba670e144db310745 GIT binary patch literal 341 zcmZQ%fB;4)4WpLA7*HCW50hqwGIZnP;$dQ>(_7BoGYITC(^O zn{b$STKY}D->BuMg?Ml8 zar5x<@e2qF35$q|iAzXINz2H}$tx%-DXXZescUFzY3u0f=^Gdt8Jn1znOj&|S=-p! z**iEoIlH*JxqEnedHeYK`3D3B1&4%&g-1k2MaRU(#U~^tC8wmOrDtSjW#{DPGGAU*RJ2VdF%F_yZ7!tc=+h?lc&#~zj*oT^_#cv-hcS`>GPMb-@gC&`Rn(ezyJP2 R!T>egnBVBU{#TC>0{~Btj(z|D diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9e09a35f73eab1946a6b0db676e913c41222942a b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9e09a35f73eab1946a6b0db676e913c41222942a deleted file mode 100644 index 7f1cd0a15954ee344910cecc9bc939797cb88210..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 852 zcmZQ%fBu>#c_Fgc$F^i|mgD7!Z0+ZH&Px;z+svQz zxcK>@y5|?`??eZAdU^Z!`uPV01_g(NhJ{B&Mn%WO#>FQjCMBn&rln_OW@YE(=H(X@ z78RG2mX%jjR#n&3*3~yOHZ`}jwzYS3c6Imk_VrJgIBD{fsne#maka3YW146>(+1BxM}m2t=qQm*tu)>p1u3_A2@jE@R6g(j-NPr>hzhj=gwca zc|p1*kc>PUCmVg{uRrH#IIW+v;TKd9_+B&*=`UZwZ z#wMm_<`$M#);6|w_709t&MvNQ?jDr;e`R{2;j|rl|M~oA*_Ro#)5wYQ@2At<)~8l& zO5Nl;$$93@utP`Eg}&D(eHKYaZ3`ODXD-+%o4_507?fB!-8 zpZiy(>1+2#cflgT_XY0$@)BGV_pv-y+8Ois_z{Nw>pQMjZSUo`;`zHPPI_NK!H3H< o@;}b_2c=URn~oYg&*xn)7GCA_6qEi-@Q!7Xp> zv9PlIjhbt%P5hStmLKl9Pc9st@)hJzNvLiPD9u>UvgU6+!V;Lg0!#=h4^t15H-gGD Hp~(XP>u@*) literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9fa54bed19e057df5194cf2232117e86d3b6dc0b b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/9fa54bed19e057df5194cf2232117e86d3b6dc0b new file mode 100644 index 0000000000000000000000000000000000000000..361978518bba33466ca90835589244656aef1605 GIT binary patch literal 128 zcmZQ%fB-Hi4Wk5L3@8obe^Fr7y)}h7QLaGhL(d{nFGi@mZhTxk10xeN3o9Et2PYRd U4=*1-SPV@+a|6qozx4>i0e`m)GXMYp literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a0cf2b857c3f281595d4eae2b0a95dfeac5659ce b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a0cf2b857c3f281595d4eae2b0a95dfeac5659ce deleted file mode 100644 index 469a399135c71a90a7350b27be9ea1967fd47393..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288 zcmZQ%fB;4)%?YJ9Kxr5S<5x(eM}_BwBuObT?mn{fKr>9AZhTyP*|HezgMUnQx&j&U zMSK?J2?z=ai-?MeOGrvd%gD;fD<~={tEj4}YiMd|>*(s~8yFfHo0yuJTUc6I+t}LK zJ2*NyySTc!dw6Xzj~M`0|Nj=Fii;n diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a0d791df464e8a918a4995759714b191f9a2930e b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a0d791df464e8a918a4995759714b191f9a2930e new file mode 100644 index 0000000000000000000000000000000000000000..d6f29cf04e1dd134a7dd3d6d7f1d810ad878a16d GIT binary patch literal 512 zcmZQ%fB;rBdIBR<07}95O^0p$M19R;=T7Nox!|Ul4O6BY9~aNS$i&RT%Er#Y$;HjX z%f~MuC?qT*Dkd%=DJ3ltEX>ZXk=_+YG!U>X=QC=YiIA^ z=;Z9;>gMj@>E-R?>*pU37!({58WtWA85JE98yBCDn3SB7nwFlCnU$TBo0nfuSX5k6 zT2@|BSyf$ATUX!E*woz8+ScCD+11_C+t)u~;-tw_rcRqaW9F>cbLP&QzhL2_#Y>hh zTfSoDs?}@Ou3Nuha ViW6A8!D5rSfo09#dKiy^0RU*twB-N* literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a24f216f0ae2ae501bdd21cc9766ad46d51dce9f b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a24f216f0ae2ae501bdd21cc9766ad46d51dce9f new file mode 100644 index 0000000000000000000000000000000000000000..149b87e5c22c1e7f82f6c7cf73ccf43c0c8464bf GIT binary patch literal 368 zcmZQzzyTQ1#G!lv>CTnSrE?csyDvbje8tLD ztJkbuw|>LMO`ErD-L`$l&Rx6r?A^Ejz`;X@j~qRA{KUyqr_Y={cmBe~OP8-)y>|V^ z&0Dwc+`V`I!NW(7pFDl`{Kd;xuiw0V_x{7jPoKYh{r3IG&tJd){QdVI5(cQ@#@xWN J=5IYh3;^lci@yK> literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a4ab8d7b3dacd35ff44fc41b4c8bdd28a62045fe b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a4ab8d7b3dacd35ff44fc41b4c8bdd28a62045fe new file mode 100644 index 0000000000000000000000000000000000000000..bb0ecfe3f9b09080977289ef42c68440a054ecb0 GIT binary patch literal 368 zcmZQ%fB;S?%?PC#;0#oW|ES;}Oqp(cT)fbvWnZqos}TJC=0sZ0_8_?pk0dwVe-y@g z;7nA`*M^&MxA;6DL=Od=CRp7_OnXxcUT=$7W)F#^BM!*(@= zm22Md_nW?Lwz|`^nBNRWJgbxuUspmQ>waeQ;ggXN?IHCrzF*b=ve9GiS}7Gk4y6kq>==SQ1=CtH3II~aKB`x=u~#fdZiEDQLOJ2lhm z_&oPxXQdK!7XR{?mwV>Y`{tBKrB!TGf3JCav{Hx5PgLUYeHKs{z=97Je$4eOYyQ^5 GMHv9(_nG4W literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a667500363948869dfc72acbd781e14d0dcfd56c b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a667500363948869dfc72acbd781e14d0dcfd56c new file mode 100644 index 0000000000000000000000000000000000000000..1430671a22c5bb511398b23710f263e1f1e30c98 GIT binary patch literal 368 zcmZQ%fB;S?%?PC#;0#oWGWV}n9`c7g-D@qPshPQjrIodft)0Dt zqm#3XtDC!rrnub+QFU{G*KXjpheWK?uaY+QUoVp4KSYFc_mW>$7iZeD&tVNr2O zX<2ziWmR=eZC!msV^ecWYg>CqXIFPmZ(sj}iIXNznL2IyjG41$&zU=K{(^;z7B5-4 zZ25|nt5&aByKeo4jhi-a*}84}j-9)9@7cR=|AB*t4j(ys?D&b3r%snAuU@}-`|kaRkDoq&`TFhqkDtGO|M~mxKO_ub Q0SKX)8(7x-tw)Ff07lJ>(f|Me literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a8a356518396fa5b41de3c2e9359b1a906c8ce12 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a8a356518396fa5b41de3c2e9359b1a906c8ce12 new file mode 100644 index 0000000000000000000000000000000000000000..b43d6f33cd11de1edef2d2a2d25d453e6beae760 GIT binary patch literal 512 zcmZQ%fB z!O_Xt#nsK-!_&*#$Jft4ATTI6Bs45MA~GsECN?fUAu%aAB{eNQBQq;ICpRy@ps=X8 zq_nKOqOz*GrnauWp|PpCrM0cSqqD2Kr?;$2pIz1KE1RsK`mDwMA*^6CuZ zhnwv&;gZ+NB5e&cw;63^K48rJPT1JLt-YhOtGlPSuYbbCNt35coi=^O%vrBH`n_+b za_uNtvp=n!Z`lv$xw$XqIV-!CiKlK1sT19>ZA!pPZLbwwoSn5Z0`g2~@&FUW Bg){&F diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a99f51d8c51e9e70c6f5ef45702379aace415853 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/a99f51d8c51e9e70c6f5ef45702379aace415853 deleted file mode 100644 index f78544f7ab321e72b99a7d2fbe58480548a3ca3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmZQ%fB;4)4X4lrp#1-+;2%txZhTz)nY_KZ35BP>J$!KO)Yi%OYHPE%eVJRXGEcnj z^i~$JjyW9rc}l~R)^yjXWxriz^js+OpJ{AmD_`WJ%bSJ&C2>6Mx#b|LZyD-3ZSilz z5(^GNDKF;R6FpDv{jGdqO|nhT8u6AXV!Ub$G6!_7T>LtXPq?=>bQ2JSGP6}rIKVa5j;H|FeK^)s7m zCrpv12E5VdGZ(yJV-1tz;8#m!C*~8BCvUd|W&OBNHqn zoxOvjle3Gfo4bdnm$#3vpMOALP;f|SSa?KaRCG*iTzo=eQgTXaT6#uiR(4KqUVcGg zQE^FWS$RceRdr2mU427iQ*%peTYE=mS9ecuU;l)OlO|7@I&J!lnX_iknLBU(R=q`y gx>r_(uXN_F_Ir9)802Pj|1mePtod6H6J=lk0L<)DbN~PV literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/ac592ee43e003afa088bb5effbdc4679476e06a5 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/ac592ee43e003afa088bb5effbdc4679476e06a5 deleted file mode 100644 index d521dadedcb65039eda8d23329dfda0e672219dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZQ%fB;rBdIBR<07}95{c<}urtd4&_N)kdHf!6)TQFt1@p17Cj7-cdtZeKYoLt;I zynOrufkx|hxv2pPUiAl*RscGpMnOWI6xq0~og+;|B zrDf$6l~vU>wRQCkjZMuht!?ccon75My?y-?CQh0>W$Lu)GiJ`3J!kH``3n{J9h5cy=U*f{Ra*nI(+2lvEwIBo;rQz?78z7E?&BP z<+v*#~fzIy%U?Ys9MK7RWAU%^2bhR+|%Wr zeDTiyzjrH}4)wChD8;RQyztr^_c`C%rnnc~pSj)YzrJ?+vJ0R1He`I+%-qHuY^I;Hk#e^c_4}&#P-v!V zmdCy)2ja>n6;{5iPv>7wnOFTuSsV0FM?I_Kk#^8>gxJfcJ2LSnXccT3inNX{+mz4uD$C)!?%rh z(^>PJcHdlYf9T`-a;dtX0n0BKq0FU*zB4b^b-Y z{9oBia{nY8FK9lS;rp^+#{Hc02UNpjo@|?$vSy{pEALfVGgno42Bm(J4@_a~U68+F zQ_{Z&nK2$6wLunQ&281k*PP`)85Aa+$+P`-PU+G0C$|fj*$V_28ujhzN}PN*@j}VG h=eHlYJG_4RLg(6gkegxNg!zy8jn3(|Lc`I(8;;p+I+Vee@slsHU!$tlEmNkFtp^AVM0GyEy A+W-In delta 61 zcmZ3$w17#FkpTiYp)}(}L3x2z9}&KyLyRxZWf)COZsy>e=x~w$jn3GK Tg=&S-%x`pF|Eq_Y$G`vpCA16- diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/b0671a9ca0688908c35b0197bda0ff7cd91a7802 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/b0671a9ca0688908c35b0197bda0ff7cd91a7802 new file mode 100644 index 0000000000000000000000000000000000000000..694a425678958f5dfe1ec0243466112028d44847 GIT binary patch literal 368 zcmZQ%fB;!jX!msqa*&f=ReWxDZk@eGVi%q*;I>>Qk2 z+&sK|`~reP!Xlz#;u4Zl(lWAg@(PMd$||aA>Kd9_+B&*=`UZwZ#wMm_<`$M#);6|w z_709t&MvNQ?jD|A-afv5{sDnO!6Bhx;SrHh(J`@c@d=4Z$tkI6=^2?>**Up+`2~eV z#U-U>ECr+L^edg@B^A|2& zx_ss8wd*%--nxC~?!EgD9zJ^flG{`&pr@4x?$ QFhC7A<_4BEf9nxq0NZPfg8%>k literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/b0de353b0ff4b2dfbaba3574f6e84dcdf1b01d7d b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/b0de353b0ff4b2dfbaba3574f6e84dcdf1b01d7d deleted file mode 100644 index 3a6abd378100f5f780ee3ec67a09c56a4bcd6203..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128 zcmZQ%fB;4)%?YIipfrqv@nU+WD?t^& diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/b147ac2fd9218077a901f82afcbbbd71a032be28 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/b147ac2fd9218077a901f82afcbbbd71a032be28 new file mode 100644 index 0000000000000000000000000000000000000000..5bff421399ce82018b10a99b0f299afdc7df4d30 GIT binary patch literal 341 zcmZQ%fB;rBdMT6-qtN*ogo_dEZXwLIpwPY#;5^N}t8o}M}9BUC4cnwVE`7{)hxRNd5Bd|Yht1PKitwhQXt zO*Sf;EZu1`!PNTEOjUp8zk4nnY&DqnTrFvqyIWq;YTo1V5({1yT*&QP{@?fNZsFY~ n|6V25UEI>#?HhaNd+8?CZErwshItd_Kjt?&um9DU+Wgapq&j{ literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/22e370faf486d5e245dcc33671bbf15910a5e91e b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/b428deb46505b6dddd37f4e68312096200804f1c similarity index 77% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/22e370faf486d5e245dcc33671bbf15910a5e91e rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/b428deb46505b6dddd37f4e68312096200804f1c index 6d6f1680c3fb2c577cf548f989c848dde672f70e..7bc1890c7b3d89129ab7c264a7ed505e325f59cc 100644 GIT binary patch delta 72 zcmcb@c7=_TkpTi2CvvI_+|bi!x!v=ste5C&0dxNv>+fr@^gX#&)%0C9gZ@wywQ36Z!#yd41}S{EW-~H KsfX!fU;qF;=obF~ diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/b4668f08c1bd92ddb07602a61b2ed9ede6e9e355 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/b4668f08c1bd92ddb07602a61b2ed9ede6e9e355 new file mode 100644 index 0000000000000000000000000000000000000000..7bac769c53ec517b529ad91835e388139e5b58e3 GIT binary patch literal 852 zcmZQ%fB;4)4WpJY!B`L)#*d!1cUASIvy;vW9(a)2wp^1Ls!TUNE}nsriJ66!jh%y& zi<^g+k6%DgNLWNvOk84D@GDJ@=bIdRyZ@X&W3cGpYtuPGL9>qMtm%^1yWqL7^LzNY zcAHy=C*_^^rP$lznZbP z4y&9)i|kT7gdO)g9nHSHrt0SZ%B}9o+m#MZ-??k|p1u3_A2@jE@R6g(j-NPr>hzhj z=gwcac|p1*kc>gB@=X+BD?45}i}>7JXKth}~; zy{db0x9EC}U(Q=Z)*k$y&wkCwdeY?o7XM?pwfX%$ww|={x`2SGi7&) zuG;ai0)f)i1;J>Bh&!GcYnSv#_$Ub8vET z^YHTV3kV7ci-?MeOGrvd%gD;fD<~={tEj4}YiMd|>*(s~8yJFhq1njXz_R9VJ8 zar5x<@e2qF35$q|iAzXINz2H}$tx%-DXXZescUFzY3u0f=^Gdt8Jn1znOj&|S=-p! z**iEoIlH*JxqEnedHeYK`3D3B1&4%&g-1k2MaRU(#U~^tC8wmOrDtSjW#{DPGGAU*RJ2VdF%F_yZ7!tc=+h?lcyk`azTA<1f?14S=RimhlLdb15DlY<8&6abk= B4~PH& diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/ba9c7fade724d985d6ebac7f13fafdd76ffc5aa0 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/ba9c7fade724d985d6ebac7f13fafdd76ffc5aa0 new file mode 100644 index 0000000000000000000000000000000000000000..003ee32e0bf2090c0054a29e5479d0378dcf5790 GIT binary patch literal 288 zcmZQ%fB>Qk2 z+&sK|`~reP!Xlz#;u4Zl(lWAg@(PMd$||aA>Kd9_+B&*=`UZwZ#wMm_<`$M#);6|w z_709t&MvNQ?jD|A-afv5{sDnO!6Bhx;SrHh(J`@c@d=4Z$tkI6=^2?>**Up+`2~eV z#U-U>%@-FdLW~Sl0Zl Jhlw&U000wVCAZ5Z~(pa4XywH diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/be836532b3c69821faecb2ee70da56687e442c36 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/be836532b3c69821faecb2ee70da56687e442c36 deleted file mode 100644 index ff7e49325b9b2eba0a9a7734ca658526a9044c7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 852 zcmZQ%fB;4)4WpJY!B`L)#^2wv?yuCh`#y5d4{qbW`MZ=Es!TUNE}nsriJ66!jh%y& zi<^g+k6%DgNLWNvOk6@zN?Jx%PF_J#Nm)fzObje8tLDtJkbuw|>LMO`ErD-L`$l&Rx6r?A^Ejz`;X@j~qRA{KUyqr_Y={cmBe~ zOP8-)y>|V^&0Dwc+`V`I!NW(7pFDl`{Kd;xuiw0V_x{7jPoKYh{r3IG&tJd){QdWT o)c=D&{z2(f5}IZgKxxJ|IGgq7tg@R#LU9V#?HaX#m&RZ z$1fl#BrGB-CN3cC$FHWq^zQrLCi@r*B|rWNcz;W^Q3=Wo=_?XYb(X z(^b diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c195fa7da39afc1bf330ae04bce401bb200b5aef b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c195fa7da39afc1bf330ae04bce401bb200b5aef new file mode 100644 index 0000000000000000000000000000000000000000..8658752c580c015853abdfa24cbdc317d30b4771 GIT binary patch literal 128 zcmZQ%fB;4)4Wk5L3@8ob$9G!HKQ^^=dQsu3vmbZd*M#ZQjgN~@c+T>uT!(qbgDb_K ZGg;++g2Z6P!1OaWu&nu84-;iz005%w7SI3y literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c2ab467b1f82ebbb4a595a34ed4688640acd67db b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c2ab467b1f82ebbb4a595a34ed4688640acd67db deleted file mode 100644 index 5d84edef8c81be93d05d179c3ce7fdf8845263e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmZQ%fB;4)4Wo=;3@8obpUZvqpL^YN55{l#?>I81h{N>h#>d4oFfuW-u(GjpaB^|; z@bd8s2nq>{h>D3zNJ>e|$jZqpC@LwdsH&-JXliNe=<4Yk7=m@7*}(ip=k>pOg!KTE C6BF|Q diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c2cf6eb87d09bcad3662b2352c1e23d1e4765f46 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c2cf6eb87d09bcad3662b2352c1e23d1e4765f46 deleted file mode 100644 index 48b792180a57e44fd7b1d0052e26472737615b0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZQzzz!xbqKd=#rB|*+@O)$9l5OseoEO3J1*S|lJ}#btk%^gwm5rT)lZ%^&mycgS zP)JxrR7_k#Qc7AzR!&|)QAt@vRZU$(Q%hS%S5M!-(8$=t)Xdz%(#qP#*3RC+(aG7x z)y>_*)63h(*Uvv7Feo@AG%P$KGAcSIHZDFPF)2AEH7z|OGb=kMH!r`Su&B7Cw5+_M zvZ}hKwywURv8lPGwXMCQv#YzOx37P~#7UE`o>=ggfqf5E~dRhmRaRcKpQ2Q>V|IJ$L@X#Y>m3T)lSv z#?4!|@7%q2|G~pYkDok!_WZ@mSFhi^efR#u$4{TXeEs(Q$IoBC|NQ;;f3W!<94F9d QgvB588=cqx>Jf1Z0L72Cc>n+a diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c37c74ee9d3a0b4f65e7f70b2a287761df95cba8 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c37c74ee9d3a0b4f65e7f70b2a287761df95cba8 new file mode 100644 index 0000000000000000000000000000000000000000..9c364121d414d4fc7effe28bd8a549a57e22197d GIT binary patch literal 162 zcmZQzzz&Sigkk(?la3k~<~FSnv$|_DQKdnF5voo%J}#btk%^gwm5rT)lZ%^&mycgS zP)JxrR7_k#Qc7AzR!&|)QAt@vRZU$(Q%hS%S5M!-5UdMo0?Y>H29`B{>k-xi0Ka7s ANdN!< literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c46552eb7f6937cb598ae6ffc76964f7ae2364bc b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c46552eb7f6937cb598ae6ffc76964f7ae2364bc deleted file mode 100644 index 0479bf70d452b815dc8cbbe5d66e9c414c7910eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmZQ%fB>Qk2 z+&sK|`~reP!Xlz#;u4Zl(lWAg@(PMd$||aA>Kd9_+B&*=`UZwzU1&BkztMU9uO4PE G0|NkY9}}bi diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c5ebff5a561cbc77637919c5235a95246c755c15 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c5ebff5a561cbc77637919c5235a95246c755c15 deleted file mode 100644 index fa86f79e5be8091c680537725e6b7b3f71ceaa38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmZQ%fB;4)%?YKApfrqv@!R?n1vIWFZCiiIEB95xho3Ngy76)G<|*;Xg1;7BYJG7> z_xU^@beFH;~E_551-{`#lR}T|q GU;qFdOB_A` diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c613e9ab2b629c7b897975460e5c33e8ac1a2232 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c613e9ab2b629c7b897975460e5c33e8ac1a2232 deleted file mode 100644 index b504855404dc609af279f2de155646e7a5cbc858..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128 zcmZQ%fB-Hi4Wk5L3@8obd+$465}j*sZ1(d_haC=oRbYh5>&C~$GcYnSv#_$Ub8vET V^YHTVgT>JFGr!S!{jVNjH~?5N590s; diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c96c75d639e0a0f6b25fa4c4f0ef65087b9f8c62 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/c96c75d639e0a0f6b25fa4c4f0ef65087b9f8c62 new file mode 100644 index 0000000000000000000000000000000000000000..efbcc4d5e23ab248bdb71ddeb78ccbf3d43d7ce4 GIT binary patch literal 512 zcmZQ%fBdtM>bv*UpSd@K59W?{Cdi{AiJZp^>qPshPQjrIodf zt)0Dtqm#3XtDC!rrnub+QFU{G*KXjpheWK?uaY+QUoVp4KSYFc_mW>$7iZeD&t zVNr2OX<2ziWmR=eZC!msV^ecWYg>CqXIFPmZ(sj}iIXNznL2IyjG41$&zU=K{?GW@ zL}A&e=k9en>gj_2GUluds7v8aJW+SiO<+v*#~fzIy%U?Ys9MK7RWA>Qk2+&sK|`~reP!Xlz#;u4Zl(lWAg@(PMd$||aA>Kd9_+B&*=`sn_TQR$R= zFUYtvt$XSDAKU*c3M6>>o~&8D|4!}U3l@hT6zl!DvSB03!wccB+AjP5XP-^T|DZU5 T#Ud;|nHyNv{H=$HGB5xD^|#5| literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/ca9956ae8e38e999ec3c5113d8b05888aad6ce25 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/ca9956ae8e38e999ec3c5113d8b05888aad6ce25 new file mode 100644 index 0000000000000000000000000000000000000000..6ddfeac3d5c419eef66ebd0bbd4d1fe028ec11ff GIT binary patch literal 162 zcmZQ%fB;rB+6c;rQ84})k+&ezUW0DM}JD0L1IwDf^)OKe F1^@_KA~^s6 literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/cad65bde385d438eac3f1b3b54d9735c3ea1c475 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/cad65bde385d438eac3f1b3b54d9735c3ea1c475 new file mode 100644 index 0000000000000000000000000000000000000000..5e31df51289964b7e1d5b975ea076abecc49f600 GIT binary patch literal 122 zcmZQ%fB;4)%?YKspfrqv@mDkU=ziFrBlz*#Qm+2pcIGgBy76)G42(?7EUawo9GoB? TD^x3tW^Q0v^S2&m9s>gauOJP7 literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/cb295c43921dc4bad7ea292e4b5dae704a18bc1f b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/cb295c43921dc4bad7ea292e4b5dae704a18bc1f new file mode 100644 index 0000000000000000000000000000000000000000..f706ae5da86230af4c5deb5891b8661e835a3a2d GIT binary patch literal 341 zcmZQ%fB;4)4WpLA7*HCW50hqwGIZnP;$dQ>(+d(Mwrnn0YrEutrRniC8TaQ)xUT5Z z4`)hU^U_drSA-Bw6A5WNeLMHgmDcw?%N=(_$5yP1Wncg~R1#_)2b5;4XIb;N9$^Vg QUI8YAL*57~&x9rq0M`pMSpWb4 literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/cc2c3bc03ecf6d9c9d9be4cefb26ef15d00fd43c b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/cc2c3bc03ecf6d9c9d9be4cefb26ef15d00fd43c new file mode 100644 index 0000000000000000000000000000000000000000..0d7a293233bdd7195baaeaba941e899efc784b2d GIT binary patch literal 341 zcmZQ%fB;4)%?YKKLTMO<&WDLJLm9g9aq%!Q(&Zn?Slo hkV7S*=5s)4#(I`Df9nyJ!sHcTLOA4&pz=&;@&MLa9J&Ai literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/cd0ed0742b01b47f64707b0ceae55e4bddc8a53e b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/cd0ed0742b01b47f64707b0ceae55e4bddc8a53e deleted file mode 100644 index 543669bec6015aa74f81e3a4f692be8c044ff720..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341 zcmZQ%fB;4)%?YKKLTMO<&WDLJLm9g9aq%!Q(rLE-ob^!_E{(61q-_dryiz9G1kyEv h94ZMlp94xWzSepDuO4A3OkM#dghSp4D$j%_4*+gk9FPD2 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d2f3a5ef8bb1964340a5fac8bdef3a1cbd919907 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d2f3a5ef8bb1964340a5fac8bdef3a1cbd919907 deleted file mode 100644 index 511f39637a9e341b9bd4b579eda72abfdb39cbfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122 zcmZQ%fBvg#xV7b>>+n5omKsP=vo`I2xnT3^&or4p^ UV};7VXy!LMum9D<%wu2x06)JBX8-^I diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d32eb599a72c10c702179987c3bf9162c44e1a96 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d32eb599a72c10c702179987c3bf9162c44e1a96 new file mode 100644 index 0000000000000000000000000000000000000000..6527a67a2449682f2e575355f9acbbf2d1193856 GIT binary patch literal 128 zcmZQ%fBCho;O+x&YIs8y^?Xz{teR!pg?Z!3pBA RLUqDu<_4BEf9ny(0ssaF4%q+z literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d4be74f6acbd8a4ee481ce49a35659f7f3549e06 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d4be74f6acbd8a4ee481ce49a35659f7f3549e06 new file mode 100644 index 0000000000000000000000000000000000000000..dd9e5370a38c6d89d42a85ab382ca48442fe25c7 GIT binary patch literal 162 zcmZQ%fB;S?%?PE9pfrqv@go&KX$q~qqqTa?n%RuAUZ%m+>&C~$GcYnSv#_$Ub8vET z^YHTV3kV7ci-?MeOGrvd%gD;fD<~={tEj4}YiMd|>*(s~8yJFhq1njXz_R9VJ>Qk2 Y+&sK|{9rLO^Ozf0*8Hu9naaQb01eU(GXMYp literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d5cf79b024f393643248821250f7042caa74b33e b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d5cf79b024f393643248821250f7042caa74b33e deleted file mode 100644 index 4a2e690a5afbd5005b927641b2c1838299550527..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmZQ%fB;4)%?YKSL1`ETqn zoxOvjle3F!S=R0EFDEFLI0e3*xrWtRBrH54GAcSIHZDFPF)2AEH7z|OGb=kMH!r`S zu&B7Cw5+_MvZ}hKwywURv8lPGwXMCQv#YzOx37P~#7UE`pGNd{d_TUHbv zRI2z;)LwOX^_sQo)^FIjY4et?+qUo6xoh{Hz5DhbIC$vrk)y|spE!By^qI5g&R@8A z>GGAU*RJ2VdF%F_yZ7!tc=+h?lcyk`azTA<1f?0@=)C?{4+|>>2AI4zOo)Iy6Pi2# D4%UU; diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d6210463c5504048832ec428987ae12196879dbf b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d6210463c5504048832ec428987ae12196879dbf new file mode 100644 index 0000000000000000000000000000000000000000..07b87a094655f6fcc769cf600051d0a283aee185 GIT binary patch literal 368 zcmZQ%fB;rBnt>520HdIM;qCm3&$S$=c_><5ZdJK32&POoJ}#btk%^gwm5rT)lZ%^& zmycgSP)JxrR7_k#Qc7AzR!&|)QAt@vRZU$(Q%hS%S5M!-(8$=t)Xdz%(#qP#*3RC+ z(aG7x)y>_*)63h(*Uvv7Feo@AG%P$KGAcSIHZDFPF)2AEH7z|OGb=kMH!r`Su&B7C zw5+_MvZ}hKwywURv8lPGwXMCQv#YzOx37P~#7UE`o>=ggfqf5E~dRhmRaRcKpQ2Q>V|IJ$L@X#Y>m3 zT)lSv#?4!|@7%q2|G~pYkDok!_WZ@mSFhi^efR#u$4{TXeEs(Q$IoBC|NQ;;9})(z P0E5uX4J>Q^)+59Kx*&{Y literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d7041c3322321256350b0295456d933798b89c3b b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d7041c3322321256350b0295456d933798b89c3b new file mode 100644 index 0000000000000000000000000000000000000000..6fdeda88fe16b77810851e52a736c6a568e863f3 GIT binary patch literal 288 zcmZQ%fB;4)4Wl-|7*HCcSZEwqfI_Rn~IQba!N^ov~&KE1!9wIX$)Q)0uK%>Eh^ zi@pZ7-JZ@Yj<&Pqcpsi#=d-|Of_Zw-*TP9^6)RpQvgNJ~*z(X|X8gv0b4gR!wnR!) l%+!jJ`CTK}BmGKv`*QnskegxNg!zxTfo09#dYC8!0|14-V8s9c literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d7c21613ad6684dc73e1515178d0cfcbffea1df2 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d7c21613ad6684dc73e1515178d0cfcbffea1df2 deleted file mode 100644 index 6aa20f3a13a3681336a72bee5552cbb6f2c1fe4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmZQ%fB;4)4X4lrp!{UN3o_+*7A~EU+LROZ>|QfWnQnYsJOd*WGYcylI|nBhHxDl# zzkr~Su!yLbxP+vXw2Z8ryn>>VvWlvjx`w8fwvMizzJZ~Uv5BdfxrL>bwT-Qvy@R8Z zvx}>nyN9Qjw~w!%e?VYRa7buactm7WbWChqd_rPUa!P7idPZhec1~_yenDYTaY<=e zc|~PabxmzueM4hYb4zPmdq-zicTaC$|AdK?CQq3EN z?fQ+Iw{G9Ld++{(hmRgVdHU@6iXzj}nR0C@co_W%F@ diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d8569cb9f35686a68ea12980ffcf452f9fceb5aa b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d8569cb9f35686a68ea12980ffcf452f9fceb5aa new file mode 100644 index 0000000000000000000000000000000000000000..7bd771d6934adaa717ff0d4a60ca25797208110b GIT binary patch literal 852 zcmZQ%fB;S?%?PEJFhLn;{JVByJfacn_HBCpVeaQ!%0w|8lNa9?YWuT<<==5;Mt!eov;XgAKk(+9y7$(#0SoFvJ_>HGE0|=f z!g9cve^O=bQ&Hy${^m2a)@F-aL&x^VoZVPyK@*0<2 z?ezn5d6_NN%CB6tdd=E(>o;uNw0XRJbd){$-APG zeX>#S*O|>1E5k2;+HABXZ@&%KlJ;z6smbewMfd02%z7A*U^1z8&Dk?zI;pIw6IMhl z*%kFLx^t@8`qRo`NB@0i&foIoz5}c4&B!lWH$Ej?{Z^(NtN(!IYlh#xq~dG|v-2)N zzHBa{mXdYyx2`^RfB$pA+lSW{&Rna-5VOp$x~8_SzM-+HxuvzOy`!`1!Qa1g*yr31 z{P|5cYsZUCuL`}hwSpp~cKx|^f1c=G-NuHv-~i5wU%~>+GjdKJSURVe`TJF|y6rE1 z@a9dbbeW(p$KiP1nyK+Y*6Qf34`1$?xbEuJ-G^5vH2p}aemtj9%aq_n*K2{)6J*{d(Jz4391I&gA)==8A7zy!7xySBuGZT&^sRYG#wBcUoN3 zn8#ncC%^5+;eyA_{geB9H%@ra$0BiT3-982>ugl~eyxrvzOv!ohNc-ZoMlb#7ZjcP zQgErs$*iY8;%=$J6CLMHu4}KC?6})BYuov@Tc6d(PZ>^A{{!v>235C823{0hDH}XIb;N9?AhyMldEU NGoZ<%>t{lf2LKb0cJ2TG literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/06703ef82d4a6446b3f0008ab5240a8007769563 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d8e9a0bc4f923e9276f3d46b82662735a9a29ef5 similarity index 75% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/06703ef82d4a6446b3f0008ab5240a8007769563 rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d8e9a0bc4f923e9276f3d46b82662735a9a29ef5 index 615bf5659cf2687223152f6da9f7aa36a3a442fd..8f86ed90164aec9a9b90739240cb03c4d77a7d27 100644 GIT binary patch delta 43 scmeys^nq!Dfxz9LX)JU4-t#^SpOrmN%kt|+2SrBy29`B{>lxqx0H6mCApigX delta 43 scmeys^nq!Dfk53J_lSbf@|Nd?ZAB9~mOt6(pvcJoM(6dvdImTE0F@gLWB>pF diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d9833213bb3e03d7894ffb4016188d4afc4411b4 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d9833213bb3e03d7894ffb4016188d4afc4411b4 deleted file mode 100644 index 095cb69d33caaef7e13193433e02ebce694fa276..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341 zcmZQ%fB;S?%?PEJLTMO<&WDLJLm9g9aq%!Q(&<*#^fM(Msn>T1i)`TONO!%-BC|i# zvM#~nvUKgQzem(@nn+0FLXp!Vb&>+x)kQQ}#EjaPFff1|DhV}@14=W#)_MJ}9$^Vg QUI8YAL*57~&x9rq0F4zeR{#J2 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/da19453351c3c97a6638c6459d5e6d52530ef2b0 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/da19453351c3c97a6638c6459d5e6d52530ef2b0 new file mode 100644 index 0000000000000000000000000000000000000000..06c9e0d6546e26f68b0980935caccf96d563e957 GIT binary patch literal 368 zcmZQ%fB;4)%?YI$U;=3T?M6uvISX?aGtD}^CdyyyButrZd|W&OBNHqPshPQjrIodft)0Dt zqm#3XtDC!rrnub+QFU{G*KXjpheWK?uaY+QUoVp4KSYFc_mW>$7iZeD&tVNr2O zX<2ziWmR=eZC!msV^ecWYg>CqXIFPmZ(sj}iIXNznL2IyjG41$&zU=K{(^;z7B5-4 zZ25|nt5&aByKeo4jhi-a*}84}j-9)9@7cR=|AB*t4j(ys?D&b3r%snAuU@}-`|kaRkDoq&`TFhqkDtGO|M~mxKO_ub Q0S2L&8(7x-tw)Ff0E<72KmY&$ literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/dacb7f933d8091949eb58a1d4742d63852b4940d b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/dacb7f933d8091949eb58a1d4742d63852b4940d new file mode 100644 index 0000000000000000000000000000000000000000..81e2526e0dbc025be0c90047ca8d40d49a6ee13d GIT binary patch literal 852 zcmZQ%fB;4)%?YKKFhLn;{Jq}{Pd;>f%6X-%^A}gP;%sK9yl#A4JOd*WGYcylI|nBh zHxDl#zkr~Su!yLbxCHOs4NIq8y<2zhpvSLeNB#b2YH91}>ggL88X23InweWzT3OrJ z+SxleIyt+zy19FJdU^Z!`uPV01_g(NhJ{B&Mn%WO#>FQjCMBn&rln_OW@YE(=H(X@ z78RG2mX%jjR#n&3*3~yOHZ`}jwzYS3c6Imk_VrJgIBD{fsne#maka3YW146>(+1BxM}m2t=qQm*tu)>p1u3_A2@jE@R6g(j-NPr>hzhj=gwca zc|p1*kc>SO7&Oi7!TmZWPxa`S@~e*gaS_uqe< z{+E=JmXVc{S5Q<^R#8<`*Py-sm#}%8TvxR)?{kz`*wT|JM{WPVe)IO-`wt&Keg5+G z+xH(of5H79u;gfL`=dP*MKmHa*Lxke0mnc6{f{&LLFrTynr0V3X~ue%HGk`&93W)` PW5O~8nmoFGCNy~fN(N50 literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/db05326428a371755ad51eacbdce730d9fdfeb4e b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/db05326428a371755ad51eacbdce730d9fdfeb4e new file mode 100644 index 0000000000000000000000000000000000000000..1d311d20f56fb0db63e8e851451d801cb3ee97d2 GIT binary patch literal 512 zcmZQ%fB;S?%?PC@z!+%!rI}Ayc20f!?Cc7ij>D%K!ePpELc_u%BBP>XV&mcy5|ffsQq$5iGPAOCa`W;F3X6(M zO3TVCDyyn%YU}D78k?G1THD$?I=i}idi(k(Oq?`%%G7DoXUv>6d(PZ>^A{{!w0OzV zWy@ErT(x@5+I8zUY}~YY%hqk%ckJA?d(Yl|`wtvEboj{8W5-XNJazia*>mSFT)cGo z%GGPvZ`{0f`_A2a_a8ib^!UlsXU|`}eD(Ux+js9jeEjtJ%hzw;fBgLQ`_JEh{|B4@ UL2-f}kIW4$YyQ?lBNa#i0GO7zT>t<8 literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/db83511a3ced2c03600163abf429f3a68a2c419d b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/db83511a3ced2c03600163abf429f3a68a2c419d deleted file mode 100644 index c48ef8152c8e0104bd396ea7e1f5cc37e8692e9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128 zcmZQ%fB diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/dc30a02c1536990acb36cb29373edbc7ad6637cd b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/dc30a02c1536990acb36cb29373edbc7ad6637cd new file mode 100644 index 0000000000000000000000000000000000000000..831373f4ece6607bb06e767f3a4f14ec562ac5c2 GIT binary patch literal 288 zcmZQ%fB;4)%?YJ9Kxr5SJ-vPX6DCfYJZ0*%=`&`|nmuRky!i_jE?T@~ f>9XZ3R<2sTX6?H5U^k=rm$`vu&EI;MuNfEsdnQYZ literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/dd42a4c087d8e17e1dbabcba4e4bf48b98f3329f b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/dd42a4c087d8e17e1dbabcba4e4bf48b98f3329f deleted file mode 100644 index 8552bf1701b04f2a56f9b4fcf5815528e5bddbc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZQ%fB z!O_Xt#nsK-!_&*#$Jft4ATTI6Bs45MA~GsECN?fUAu%aAB{eNQBQq;ICpRy@ps=X8 zq_nKOqOz*GrnauWp|PpCrM0cSqqD2Kr?;uW@yGl|=k>pOMBD-Z(*w7j diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/dfe36dc795d2b55c5f6d0fbc9f87f570ce31e51d b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/dfe36dc795d2b55c5f6d0fbc9f87f570ce31e51d new file mode 100644 index 0000000000000000000000000000000000000000..2e284a54c0f6aeebd6e7a059e301f168ac63dd83 GIT binary patch literal 128 zcmZQ%fB;4)4Wk5L3@8obTgAQV7n*-T1ip?z-z1&a?LXITTrJ X#oTqWA0&pZpZSf>>wonyQ3eJ8WsDYT diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e1d142ea43c04e41b757f01d8987dd6af069a463 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e1d142ea43c04e41b757f01d8987dd6af069a463 deleted file mode 100644 index 4c749b85d6990dff95926fa6943f62fc0691530c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmZQ%fB_}RaDi~H8i!fb#(Rg4GfKpO-#+qEiA39ZEWrA9UPsUU0mJVJv_a< zeSH1=0|JABLqfyCBO;@sV`Agt6B3h>Q&Q8?GcvQXb8_?Y3kr*hOG?YiD=Mq1YijH2 z8ycIMTUy)NJ370%dwTo&Crq3)dCJsj(`U?_HG9t7dGi-6T(o$}(q+q6tX#Ev&DwSA zH*DOrdCS&q+js2TwR_Lreftj_JaqWT(PPI?oIG{<%-M72FI>EI`O4L6*Kgdsb^FfU zd-oqaeDwIq(`V0LynOZg&D(eHKYaZ3`ODXD-+%o4_507?fB(T@01Gx~z%akjdHt^* ICdj}50Qnb{lmGw# diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e3e502902e40348546d1352eaba467591b3df7f4 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e3e502902e40348546d1352eaba467591b3df7f4 deleted file mode 100644 index 3a243d399af691a91bbd5253d282bdea49d4ad0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmZQ%fB;4)%?YKSL1`ET<6G^$wku73jvt#WOH6F|)9;v2$>8 zar5x<@e2qF35$q|iAzXINz2H}$tx%-DXXZescUFzY3u0f=^Gdt8Jn1znOj&|S=-p! z**iEoIlH*JxqEnedHeYK`3D3B1&4%&g-1k2MaRU(#U~^tC8wmOrDtSjW#{DPGGAU*RJ2VdF%F_yZ7!tc=+h?lcyk`azTA<1f?0@=)C?{4+|>>2AI4zOo)Iy6Pi2# DW>J3p diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e43bf4879aa0837380a0d93342b30a193c4af677 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e43bf4879aa0837380a0d93342b30a193c4af677 deleted file mode 100644 index c6ef4a6d81ff3d91cb17ed505a62aed2b036f67a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmZQzzz&Sigkk(FK}X+`sWWxwE<4ZgzHjz#MyNX7__%lmMkZz!RyKAHPA+a9UOs*S zK_OugQ894|NhxU=Svh$HMI~hwRW)@DO)YI5T|IpRL$EHW2{0R&-{`#lSC6nB07%ml Aa{vGU diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e564ac5e15a78f795629ab31a8a88e91898095a1 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e564ac5e15a78f795629ab31a8a88e91898095a1 deleted file mode 100644 index 15c9a7e9c96529fc88b6bf0c6bf14546fe4f751a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmZQzzyTQ1#G(BEsNf$=nQnYsyn}IZR>(ukvdqWb`7-6pr}J}gRTyNQJS=_lhWFdT z6+3Ky>TjLAmF=rX+>NW%{|!H#NPbwr{~>SHvs5j{291cupX$Og=@)YR#38Bd2Yt`aWgA3>t61-dSrn}184&tk!}Vcq=Zcw2 zF5F}aPoCgo!L^+-Lxkx|hxv2pPUiAl*RscGpMnOWI6xq0~og+;|BrDf$6l~vU> zwRQCkjZMuht!?ccon75My?y-?CQh0>W$Lu)GiJ`3J!kH``ECa8Z(NE(=V$MhJ=m8} z5VG0WRzCLX&L5Q=kKSze_VYQhfM4RBM^zh3-0M$~c`E)FE?&BP<+v*#~fzIy%U?Ys9MK7RWAqPshPQjrIodft)0Dt zqm#3XtDC!rrnub+QFU{G*KXjpheWK?uaY+QUoVp4KSYFc_mW>$7iZeD&tVNr2O zX<2ziWmR=eZC!msV^ecWYg>CqXIFPmZ(sj}iIXNznL2IyjG41$&zU=K{(^;z7B5-4 zZ25|nt5&aByKeo4jhi-a*}84}j-9)9@7cR=|AB*t4j(ys?D&b3r%snAuU@}-`|kaRkDoq&`TFhqkDtGO|M~mxKO_ub Q0SKX)-{`#lSC0?_0A$9Ey8r+H diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e8216eb21330e411b6aca3fd6803bb61a7808483 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e8216eb21330e411b6aca3fd6803bb61a7808483 deleted file mode 100644 index af2be3f993632df5c820b6ebcf23e2e61e5a3b99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZQ%fB;S?%?PC@z!+%!7jt>Lc_u%BBP>XV&mcy5|ffsQq$5iGPAOCa`W;F3X6(M zO3TVCDyyn%YU}D78k?G1THD$?I=i}idi(k(Oq?`%%G7DoXUv>6d(PZ>^A{{!w0OzV zWy@ErT(x@5+I8zUY}~YY%hqk%ckJA?d(Yl|`wtvEboj{8W5-XNJazia*>mSFT)cGo z%GGPvZ`{0f`_A2a_a8ib^!UlsXU|`}eD(Ux+js9jeEjtJ%hzw;fBgLQ`_JEh{|B4@ T!Eu5Xf6Q-mUjM6y3IZtrU_Q8g diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e9019d481211e8c40574ccc15907bd89922381e6 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e9019d481211e8c40574ccc15907bd89922381e6 new file mode 100644 index 0000000000000000000000000000000000000000..4b796145f2108b1d24c5dd45e5adccc5386bad11 GIT binary patch literal 368 zcmZQ%fB-Hi4W}64EC>V2|Bnj(!IbI7$Hg-+GBLBTvaxe;a&hzU^6?7@3JHsdiit}| zN=eJe%E>DzDk-a|s;O&eYH91}>ggL88X23InweWzT3OrJ+SxleIyt+zy19FJdU^Z! z`uPV01_g(NhJ{B&Mn%WO#>FQjCMBn&rln_OW@YE(=H(X@78RG2mX%jjR#n&3*3~yO zHZ`}jwzYS3c6Imk_VrJgIBD{fsne#maka3YW146>(+1B zxM}m2t=qQm*tu)>p1u3_A2@jE@R6g(j-NPr>hzhj=gwcac|p1*kc>h+tq@7{m-`04YPuiw7^`1$MipTGb9gTnw8Y|wyVu4h^Ew;m?Q GzyJX4eU!fd literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e914b2a8555bb893176180e01044325cfc2f8bf1 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e914b2a8555bb893176180e01044325cfc2f8bf1 deleted file mode 100644 index b502858e21a3120d24b29955374936fa7b414452..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmZQzzz&|F3B&k4M_)zjwn+-_R6DRGq>ROw8LCb_*)63h(*Uvv7Feo@AG%P$KGAcSIHZDFPF)2AEH7z|OGb=kMH!r`Su&B7Cw5+_M zvZ}hKwywURv8lPGwXMCQv#YzOx37P~#7UE`o>=ggfqf5E~dRhmRaRcKpQ2Q>V|IJ$L@X#Y>m3T)lSv z#?4!|@7%q2|G~pYkDojR`IHOlYa=Ml_(tdTzj{QF!Q{PRLQr`oC?8#(2`bMEl?MR! C4ShlY diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e974276349af1ab8387631f597bfba994bd5da9c b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/e974276349af1ab8387631f597bfba994bd5da9c new file mode 100644 index 0000000000000000000000000000000000000000..82a41d45c9ba50389ce4d7bec0128eb46ae1d1c7 GIT binary patch literal 852 zcmZQ%fB;4)%?YKKFhLn;{BQM7SN{J${}NwiUivvVhd0bndENN9cm_r$W)@a9b`DN1 zZXRAfegQ!tVG&U=aS2H&X&G5Lc?Cr!WffI5bq!4|Z5>@beFH-yV-r&|a|=r=Ya3fT zdk04+XBSsDcMnf5Zy#Sj|A4@t;E>R;@QBE$=$P2J_=LoyYCcR`i91)=9bpB_Kwc3?w;Ph{s|K&O`bA!+VmMSXU(27ci#L33l}Y3 zvUJ(<6)RV*UbA-H`VAX5ZQinV+x8thckSM@ci;X42M--Sa`f2o6DLodK6Ccm`3n~> zUA}Vl+VvYZZ{5Cg_ul;n4<9{#^7PsB7cXDEe)IO-`wt&Keg5+G+xH(ofBpXR_uv0f n{}2B72c=UqPshPQjrIodft)0Dt zqm#3XtDC!rrnub+QFU{G*KXjpheWK?uaY+QUoVp4KSYFc_mW>$7iZeD&tVNr2O zX<2ziWmR=eZC!msV^ecWYg>CqXIFPmZ(sj}iIXNznL2IyjG41$&zU=K{(^;z7B5-4 zZ25|nt5&aByKeo4jhi-a*}84}j-9)9@7cR=|AB*t4j(ys?D&b3r%snAuU@}-`|kaRkDoq&`TFhqkDtGO|M~mx|6ub! TC{EDhk-33o&EI-xqyi}bDR8#~ literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d4a96cf0b53f7342e749a0791a513dbfaf6d4ccf b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/ee63e1eec358c118f02bc9a0f426cd9df72fabf1 similarity index 79% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/d4a96cf0b53f7342e749a0791a513dbfaf6d4ccf rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/ee63e1eec358c118f02bc9a0f426cd9df72fabf1 index 986208e97f8721f8984d51eb2ed4c51be1a0b0cf..4ae7c11b4f777b9889ee7c2f64a1e839ae6d6359 100644 GIT binary patch delta 60 zcmZo*X<(UPAdr#&edik9Kd##=IploACQEE|Siq>j00k2mAq?gQmNkFtVWJES02rjW85o(ESyd4oFfuW-u(GjpaB^|; z@bd8s2nq>{h>D3zNJ>e|$jZqpC@LwdsH&-JXliNe=<4Yk7#bOyn3|beSXx=z*xK1U zI667IxVpJ}czSvJ`1<(=1O^3%gocGjL`Fr&#Ky%ZBqk-Nq^6~3WM*aOY{-Hhfx<~KU8|J5Tr4*=EkOu7I7 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/f2db36b7af0430c073936a17a9005dc45265ff3b b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/f2db36b7af0430c073936a17a9005dc45265ff3b new file mode 100644 index 0000000000000000000000000000000000000000..8ce143644a561469a8a80eec4eb31f3a5debc867 GIT binary patch literal 406 zcmZQ%fB;4)%?YKSL1`ET>VvWlvjx`w8fwvMizzJZ~Uv5BdfxrL>bwT-Qv zy@R8Zvx}>nyN9Qjw~w!%e?VYRa7buactm7WbWChqd_rPUa!P7idPZhec1~_yenDYT zaY<=ec|~PabxmzueM4hYb4zPmdq-zicTaC$|AdK?CQq3EN?fQ+Iw{G9Ld++{(hmRgVc?$9=7u45AP@1uxWzFAuSXePIz~sGQLImWQ(BuIL CZhI5} literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/f31d50d032713c24334c3ca21cffc16c5fa2cc0a b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/f31d50d032713c24334c3ca21cffc16c5fa2cc0a deleted file mode 100644 index 0cd2c5c82c1a60b47153c84964eab3bf06fc4b69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmZQ%fB;S?%?PERL1`ET<46BosxGTuZ6dg8+t-!L^PQNX3UuS+;u#p3m|0la*f}`W z158|wPS1SSBKWau$Gp%Jjlw$S+gy_*wLad7-QMw>(=C0C;rgrB?FIKYX8#m5ceS#% zv9+^zaCCBZaox@zBA{0{v#ZK4q4m_`8*6!+BV6>DewT&w#%cUb+3z}a-i`Y^&Uw8# zv0&BO_Na)xdk-AkvTOCKm3i~c9oF3V{J*WeqqD2Kr?;xVso(BC zdnCQ>ft=sTga+Q*ckbT1|KQ=H$4{Pue98s&wGotNe53RFUp*|W7#Lvk-Y_8o@=R#* E06bWO(*OVf diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/f4432c2a09512441123fd68f6ee3ede217067444 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/f4432c2a09512441123fd68f6ee3ede217067444 deleted file mode 100644 index 3ffb03b1b75ef97190dd1dbafba1f07bbe3daa8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZQ%fB;4)%?YI^zy#3vGp;O%d&=q`=KNpC{cKWmB21ZXd|Z4)?%qq0IAt@y-BP%Dbps1v*qN=8@p{b>IRvK4a#r*>mR3n_pz~N`Err z>V;7+j~ciiDoWn4ant54TeofBv2)k%J$v`eOC(!6)fW;^C8=cqx>S3Y` F3;;06zVrY9 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/f61ea517b82990485bff8a973a91a717d1a6bf94 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/f61ea517b82990485bff8a973a91a717d1a6bf94 deleted file mode 100644 index d635eecd722c2ee6434401cef85acc08771d748d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122 zcmZQ%fBdMQlYB;~0^Rtycm_r$W)@a9b`DMu Uj}e7jKgbZ1DLd7$S+lZ`5vo8pJ}zFme8IhhK>e*9A?5*s WuROCsV(9vr8(7x-t%r#+FaQ8A0~B2V literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/f860eb559bcb2592b50273cf176aab4c624ab387 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/f860eb559bcb2592b50273cf176aab4c624ab387 deleted file mode 100644 index face2bac20479cc517f063a7d3850ddc85726103..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288 zcmZQzzz#N`3B&jv@#|Oo+i9!UoX`I8X~aDsTvho_gfkFTG9KwwaCNN8AiL}XNSOl(|yLSj;KN@`kqMrKxaPHtX)L19sG zNoiSmMP*fWO>JF$Lt|5OOKV$uM`u@ePj6rUgo%?TPnkMx`iz;gX3v>BZ~lUXixw|g zx@`H1m8({-S-WoihK-vxZ`rzS`;MKvcJJA{Z~uXVhYlY(dhGa#lc!FfIeYH>g^QOi zU%7hi`i+~nZr{0k@BV{_j~+jH`t13Om#<#GdHe4DhmW5=fBE|D`;VW$e*gLV@Bd)) TKR8a%;*Yt3WzFAuMBD-ZtvL|v+{#;`tfUdxS}AK&?4eO;FMo77vmyr3V`grD8XnSF!p$i}O6@!?-Z8jqi-w^Q9;wdLC{ jwa=VlXAbJ{JvUdn(FJld%$qR(F*mTR`CAVYWncgR@Udv{ literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/fd63517f1edf14196b80b795c08995f3a4cdbd35 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/fd63517f1edf14196b80b795c08995f3a4cdbd35 new file mode 100644 index 0000000000000000000000000000000000000000..27e29c75f6a90bdd4f050b852cd38ec6e8fd0615 GIT binary patch literal 368 zcmZQ%fB;4)4X4lrp#1-+;2%txZhTxk10xeN3o9Et2PYRd4=*3TfS{1Dh^UyjgrtsTvho_gfkFTG9 zKwwaCNN8AiL}XNSOl(|yLSj;KN@`kqMrKxaPHtX)L19sGNoiSmMP*fWO>JF$Lt|5O zOKV$uM`u@ePj6rUgo%?TPnkMx`iz;gX3v>BZ~lUXixw|gx@`H1m8({-S-WoihK-vx zZ`rzS`;MKvcJJA{Z~uXVhYlY(dhGa#lc!FfIeYH>g^QOiU%7hi`i+~nZr{0k@BV{_ zj~+jH`t13Om#<#GdHe4DhmW5=fBE|D`;VW$e*gLV?>{&UU;zjX80LDGHGk`2f(#4* D;MJ72 literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/adab987e21e9838b02e500658ea0818a18ac0403 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/feabcbfd6a97b797941d0989be77e8156a75a02e similarity index 77% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/adab987e21e9838b02e500658ea0818a18ac0403 rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/feabcbfd6a97b797941d0989be77e8156a75a02e index 77d070f792ab439fe3380ab001ead6cd4ddaa340..e90b66278346eab175a19e0e6e6229a8d02ee4e4 100644 GIT binary patch delta 61 zcmcb@c7<(%fxw*hq9b0e?^tr>L_bIFo^fZR!%-%ddX_bRCv!5(Kp2|LGW;NsdImTE E0RKu9;s5{u delta 61 zcmcb@c7<(%fxyihx~rdkx46P8?_F=HE$6h+;V2W!8=cqxCUY{&Kp2|LGW;NsdImTE E03`PokN^Mx diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/ffc43d4749a49d8db8fb96d498a34bbb62af2e0e b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_decrypt_cenc_fuzz_seed_corpus/ffc43d4749a49d8db8fb96d498a34bbb62af2e0e deleted file mode 100644 index 48e5f6338032477b325a5b29bc91a20e4ef6006f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZQzzz!xbqKd=#vuignghdE%u{bU9Avi&Ws{nQB)+(E*TN+etRj|wo4IpkvU_gB>X!89CmYIs zx~&l4z8h?y6;^PS&tp>DH7NsmW?5m|3oM(OO3sKzu9R6BwP)Mwp6TbAgWtKFk!Fh6 zuD128z1*LU1Md7!Vt-#xod2@%S&UVs@uaGwer#F1y+!Rg%irz#Jw5!Shlup=kS)a* zDvGx(_&fKT?$jH6?7iiZioGTA=S7#zDoCpI|GfXrA-Bgre@~P?42lz2EW+ZC`Hjx& KfAug?1_l6rB-Zf& diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_decrypt_fuzz_seed_corpus/02e3dc401871be9b4fcbf6dfd658842567ca7c1c b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_decrypt_fuzz_seed_corpus/02e3dc401871be9b4fcbf6dfd658842567ca7c1c new file mode 100644 index 0000000000000000000000000000000000000000..94594c4ad4126d39e3510df026235b4a13715850 GIT binary patch literal 178 zcmV;j08Re@00000000000RjUA1qKHQ2?`4g4Gs@2UtV7z_3}gw_h(Ppeuk0&Kf+@4 zlbw0ey-r0xRhewIheQk4^KG+5LLy0G6hm3r{aiNmQv{JdgDw^}L`i_9y70Qq}bo79)Z?3T<3rf5n69V}LU9EP=8 qIR)tG_`iWwyDw!NymCQ`T3y1@g71D_rdQ1p6g#@B*7^1cH*s$~&ry~D diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_decrypt_fuzz_seed_corpus/75ae4c5769c9568d631452df3b3702d876e4863a b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_decrypt_fuzz_seed_corpus/75ae4c5769c9568d631452df3b3702d876e4863a deleted file mode 100644 index dd245f4a4ddc00b1cca222904933b0b2db4fccf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmV;j08Re@00000000000RjUA1qKHQ2?`4g4Gs@2UtV81ZJWNn?60@(_Rfmezi?9x zluA{Jv|QO|C{wh3MeG_J75+}A*O|BRh~s4{NSwpiF?h5>GW$E=wxdwv)R590me%*X zu-_V3iY5JtP^0o2Asy+uvY`HjEcth}>c7};Evn@aW4HVnI}t%I4T6gvyqUEmhkAf_ gsR)wr29dEWP(f$-0Iz6KxbVM0c%!9y;8r4t0d${H6aWAK diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_decrypt_fuzz_seed_corpus/9bdb356ec50807b86c807c09c780267101fd1a0b b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_decrypt_fuzz_seed_corpus/9bdb356ec50807b86c807c09c780267101fd1a0b deleted file mode 100644 index ff53f68f159d0258d8fe2bba37ed9ba2913cb573..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmV;j08Re@00000000000RjUA1qKHQ2?`4g4Gs@2UtV8_HXyT`fa^%*{7QpPTct;> zjg*qY;IF{pbl~8f7(jIOxb1rMY>C}jn>VaTJ_eul*D&hu5VaQhY;1tdsa=eqlB{i( zYG@zhx+RX}kb+gfzJS?5Vg~f)5uw6dwCEYrWdj8RV40|;A5Xscr;-Nqj@jCUR<;{A gBz%6$^aXOA%v2gJYFZ%mK!Kj-;94RS&8ga7YhK1tT>t<8 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_decrypt_fuzz_seed_corpus/9d6f8b174b9b82447f3fdb65a24c21b9d0ca36dc b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_decrypt_fuzz_seed_corpus/9d6f8b174b9b82447f3fdb65a24c21b9d0ca36dc new file mode 100644 index 0000000000000000000000000000000000000000..7d7969daa4bf7d6435fcbe06caddd2e84da9c27d GIT binary patch literal 188 zcmZQzfC5G)W)@a9b`DN1ZXRAfe%<)E_zB@v#lmZZE9)b+t8Sg-UqAVEi3|JB-JHk1 zWaONfSbN+>Y0I}0W)ro_xvCe5FW##Eu~akCr1_zqZB1ey6Y~k4w#4uDxeFIqD8C8b zUHowSZr+W_<)X=bHH)PaJpGhPkG)n~);wKk4cE0j>@)tY3)1_T)gt7P<8)TQSpRa< oTYHA0mPl>uW$b2bvm4sna@BU-Vc#s~yX*N|7MG7sU+a1+0cqGu{r~^~ literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_decrypt_fuzz_seed_corpus/b0b757465797a5e49307b325481c338ddb591afa b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_decrypt_fuzz_seed_corpus/b0b757465797a5e49307b325481c338ddb591afa new file mode 100644 index 0000000000000000000000000000000000000000..19506468005d8f2f7ba438edb64e26138d3934b0 GIT binary patch literal 188 zcmV;t07L%(00001000000RjUA1qKHQ2?`4g4Gs@2UtV7yaeJ$5d2>(jU}^9K`V-olhXfgC*>9C;%`#)xU^oWv|&S6lf`Y?X8U q6=G|0;HgUfVZR9&3(@6qbjpec$uWh!=LslXmZaD0suKs+2U)GxsZqoL literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_decrypt_fuzz_seed_corpus/d3d6e16a36ca8931d6cb18f74243b0cd027e6ed2 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_decrypt_fuzz_seed_corpus/d3d6e16a36ca8931d6cb18f74243b0cd027e6ed2 new file mode 100644 index 0000000000000000000000000000000000000000..e12eb9dbfd3947be265bd1f8305d1b229d61d40d GIT binary patch literal 188 zcmV;t07L%(00000000000RjUA1qKHQ2?`4g4Gs@2UtVA2WRR)VIJ-ihfT*ecl8nW( zLA!fvAgd6DGC9RBDV}F>d+rgsg%KW$D_wlt<1;+?Dsvn~?0cmKE#|}h$SGIr0l@b zeFH-yV-r&|a|=r=Ya3fTdk04+XBSsDcMnf5Zy#Sj|A4@t;E>R;@QBE$=$P2J_=Loy zYCcR`i91)=9bpB_Kwc3?w;Ph{s|K&O`bA! Q+VmMSXU(27ci#L30G=K)Q2+n{ literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/d1ef093f11c8e8c42da35501230bb7030067602e b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/080255be6f3f6d8f95f8779116af43da3c7c7fe1 similarity index 71% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/d1ef093f11c8e8c42da35501230bb7030067602e rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/080255be6f3f6d8f95f8779116af43da3c7c7fe1 index 6bdca2df06eeac059300cc2189b724e959d209f9..083b686ecf2936c5adae8b030c8e6475a185c271 100644 GIT binary patch delta 39 xcmV+?0NDS`0n7oAtRQ$zty;qlh$>~x#Pf%c(N9V19=FvM)9C9yrCgN!Ob>!S6e$1z delta 39 xcmV+?0NDS`0n7oAtROWP@hyJh%8!~O1$4erEp(ZcuQYh>DauiBSBEo-`Xpbv5#;~? diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/3f4491c53865cf9d8975423626980c1a5d547dae b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/3f4491c53865cf9d8975423626980c1a5d547dae new file mode 100644 index 0000000000000000000000000000000000000000..94d5aa73cc9877cf254275eb46cbe6aaa92ada0d GIT binary patch literal 204 zcmZQzU|?VbVJ2o4RyKAHPA+a9UOs*SK_OugQ894|NhxU=Svh$HMI~hwRW)@DO)YI5 zT|IpRLnC7oQ!{f5ODk&|TRVFPM<-_&S2uSLPcLsDUqAnVz@Xre(6I1`$f)R;*tqzF z#H8eu)U@=B%&hF3+`RmP!lL4m(z5c3%Bt#`+PeCN#-`?$*0%PJ&aUpB-oE|`6DLic zGIiSY88c_io-=pe`~|x4aq-`4UM-d@3*3||{55ULUk<+cheWCa*;Axh8b4)3-Eipu E0OJipSO5S3 literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/401f966cf4d9f594cd993c9e429833ae2b298f2b b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/401f966cf4d9f594cd993c9e429833ae2b298f2b new file mode 100644 index 0000000000000000000000000000000000000000..d2484b28e9d70f34a72737544639de88831bf43d GIT binary patch literal 205 zcmZQzU|?VbVJ2o4RyKAHPA+a9UOs*SK_OugQ894|NhxU=Svh$HMI~hwRW)@DO)YI5 zT|IpRLnC7oQ!{f5ODk&|TRVFPM<-_&S2uSLPcLsDUqAnVz@Xre(6I1`$f)R;*tqzF z#H8eu)U@=B%&hF3+`RmP!lL4m(z5c3%Bt#`+PeCN#-`?$*0%PJ&aUpB-oE|`6DLic zGIiSY88c_io-=pe`~|x4aq;Q-LGLBKU+XIdepuFUTQBZkE>BQ|P|#xW9a(a@9}lH4 F000l1LLvYF literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/44c74993d4832e49d818af03c8469ceb6482802f b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/44c74993d4832e49d818af03c8469ceb6482802f new file mode 100644 index 0000000000000000000000000000000000000000..1cb22732517a84dd1ae6256f61cb2b562274e9fb GIT binary patch literal 204 zcmZQzU|?VbVJ2o4RyKAHPA+a9UOs*SK_OugQ894|NhxU=Svh$HMI~hwRW)@DO)YI5 zT|IpRLnC7oQ!{f5ODk&|TRVFPM<-_&S2uSLPcLsDUqAnVz@Xre(6I1`$f)R;*tqzF z#H8eu)U@=B%&hF3+`RmP!lL4m(z5c3%Bt#`+PeCN#-`?$*0%PJ&aUpB-oE|`6DLic zGIiSY88c_io-=pe`~|x4aq*G@ejB5vd;82O74%$W`*7yjIrS6Lw4&73bYGo%e#+$S E0KF|j@b zeFH-yV-r&|a|=r=Ya3fTdk04+XBSsDcMnf5Zy#Sj|A4@t;E>R;@QBE$=$P2J_=Loy zYCcR`i91)=9bpB_Kwc3?w;Ph{s|K&O`bA! z+VmMSXU(27ci#L3y76)G>G?tLCB0wkD+Yd8)^J-d?q4oXP=rv>V(}eWa=9N5r2qiT Cqe3A7 literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/7196add7d06e51a0b6a583581f81dac29df69f7b b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/7196add7d06e51a0b6a583581f81dac29df69f7b new file mode 100644 index 0000000000000000000000000000000000000000..231f7f817c636932fa2cf740ad5ea2aa13067f10 GIT binary patch literal 204 zcmZQzU|?VbVJ2o4RyKAHPA+a9UOs*SK_OugQ894|NhxU=Svh$HMI~hwRW)@DO)YI5 zT|IpRLnC7oQ!{f5ODk&|TRVFPM<-_&S2uSLPcLsDUqAnVz@Xre(6I1`$f)R;*tqzF z#H8eu)U@=B%&hF3+`RmP!lL4m(z5c3%Bt#`+PeCN#-`?$*0%PJ&aUpB-oE|`6DLic zGIiSY88c_io-=pe`~|x4aq)$%mXq8nH&6Oe-t}ktQGMoZF5dH-v(yTYJl?sgBIlkj E0Pb5vWB>pF literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/a94b2e9c5f7896643f5405d040cddacb15f8866a b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/76a08035bc9c0772c895b73439a9d19d84737744 similarity index 71% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/a94b2e9c5f7896643f5405d040cddacb15f8866a rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/76a08035bc9c0772c895b73439a9d19d84737744 index 9775e6c152bbbfd918bb0821b5cb483599e6092a..ee4a672fae0ca5676cc57bb2309c064afc0f2d42 100644 GIT binary patch delta 38 wcmV+>0NMY`0m}i9tRJ{Qqi_US#@fdDeFXr5P~P0pe@h-(#13$a*)wekKwp{>YXATM delta 38 ucmX@jc$#s-8hIT9i*q}4QlF=K7APx;%dWPGagh&=zrXk4ri!H=Cqw`z;Sc8k diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/78c3819333632152791a0a58eacbd67ca19abc4e b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/78c3819333632152791a0a58eacbd67ca19abc4e new file mode 100644 index 0000000000000000000000000000000000000000..a92d163234246450f6e0d490dc7d71f6810e99df GIT binary patch literal 204 zcmZQzU|?VbVJ2o4RyKAHPA+a9UOs*SK_OugQ894|NhxU=Svh$HMI~hwRW)@DO)YI5 zT|IpRLnC7oQ!{f5ODk&|TRVFPM<-_&S2uSLPcLsDUqAnVz@Xre(6I1`$f)R;*tqzF z#H8eu)U@=B%&hF3+`RmP!lL4m(z5c3%Bt#`+PeCN#-`?$*0%PJ&aUpB-oE|`6DLic zGIiSY88c_io-=pe`~|x4aq+(SLGLBKU+XIdepuFUTQBZkE>BQ|P|#xW9a(a@9}lGf E0Lm*u2mk;8 literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/814054a30f7cdc10e4d83e48e6a5b00becf46cf1 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/814054a30f7cdc10e4d83e48e6a5b00becf46cf1 new file mode 100644 index 0000000000000000000000000000000000000000..112ab0f1581880dad36528e3dc3eb464b4f799bf GIT binary patch literal 205 zcmZQzU|?VbVJ2o4RyKAHPA+a9UOs*SK_OugQ894|NhxU=Svh$HMI~hwRW)@DO)YI5 zT|IpRLnC7oQ!{f5ODk&|TRVFPM<-_&S2uSLPcLsDUqAnVz@Xre(6I1`$f)R;*tqzF z#H8eu)U@=B%&hF3+`RmP!lL4m(z5c3%Bt#`+PeCN#-`?$*0%PJ&aUpB-oE|`6DLic zGIiSY88c_io-=pe`~|x4aq&AG78kHY9=mnyXDus3Q^37D7wf&{qK@ztbl)`2<#e!S F001W+LQMbw literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/8c4ea32a7996921e51ec7717035f2826eb9d0853 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/8c4ea32a7996921e51ec7717035f2826eb9d0853 new file mode 100644 index 0000000000000000000000000000000000000000..4d62d872c9cf19d89b5cbf9606dbcaddfe6fef68 GIT binary patch literal 204 zcmZQzU|?VbVJ2o4RyKAHPA+a9UOs*SK_OugQ894|NhxU=Svh$HMI~hwRW)@DO)YI5 zT|IpRLnC7oQ!{f5ODk&|TRVFPM<-_&S2uSLPcLsDUqAnVz@Xre(6I1`$f)R;*tqzF z#H8eu)U@=B%&hF3+`RmP!lL4m(z5c3%Bt#`+PeCN#-`?$*0%PJ&aUpB-oE|`6DLic zGIiSY88c_io-=pe`~|x4aq*KJ78kHY9=mnyXDus3Q^37D7wf&{qK@ztbl)`2<#ezH E0N?{cCjbBd literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/9628ef383581ef1f7591d4316fd75276959c2cab b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/9628ef383581ef1f7591d4316fd75276959c2cab new file mode 100644 index 0000000000000000000000000000000000000000..131cd7aa3926d0632f9273c4923a4797f2568923 GIT binary patch literal 204 zcmZQzU|?VbVJ2o4RyKAHPA+a9UOs*SK_OugQ894|NhxU=Svh$HMI~hwRW)@DO)YI5 zT|IpRLnC7oQ!{f5ODk&|TRVFPM<-_&S2uSLPcLsDUqAnVz@Xre(6I1`$f)R;*tqzF z#H8eu)U@=B%&hF3+`RmP!lL4m(z5c3%Bt#`+PeCN#-`?$*0%PJ&aUpB-oE|`6DLic zGIiSY88c_io-=pe`~|x4aq%1r{o^9$=rX*FVRt$DmF+;kr;2#w)jbofr!L|DpK^UE E0JMuj5&!@I literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/9b80edcb955ebf5d52f0e9c754a51aafd03a032d b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/9b80edcb955ebf5d52f0e9c754a51aafd03a032d new file mode 100644 index 0000000000000000000000000000000000000000..2701f83f9cb45dd27148e74682847f718971d757 GIT binary patch literal 204 zcmZQzU|?VbVJ2o4RyKAHPA+a9UOs*SK_OugQ894|NhxU=Svh$HMI~hwRW)@DO)YI5 zT|IpRLnC7oQ!{f5ODk&|TRVFPM<-_&S2uSLPcLsDUqAnVz@Xre(6I1`$f)R;*tqzF z#H8eu)U@=B%&hF3+`RmP!lL4m(z5c3%Bt#`+PeCN#-`?$*0%PJ&aUpB-oE|`6DLic zGIiSY88c_io-=pe`~|x4aq$m#2>rBqW;#9na@beF{oXQDUtV@=3G%&?zDT_Hj*Pzv E0Q&hup8x;= literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/a5c27f614414c51fafa12bbc298f061d111ac5dd b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/a5c27f614414c51fafa12bbc298f061d111ac5dd new file mode 100644 index 0000000000000000000000000000000000000000..4ceea01ece0550f3e5722e2a7a9e68fba657b6ee GIT binary patch literal 204 zcmZQzU|?VbVJ2o4RyKAHPA+a9UOs*SK_OugQ894|NhxU=Svh$HMI~hwRW)@DO)YI5 zT|IpRLnC7oQ!{f5ODk&|TRVFPM<-_&S2uSLPcLsDUqAnVz@Xre(6I1`$f)R;*tqzF z#H8eu)U@=B%&hF3+`RmP!lL4m(z5c3%Bt#`+PeCN#-`?$*0%PJ&aUpB-oE|`6DLic zGIiSY88c_io-=pe`~|x4aq;OZH@!O;A#pYAkc-Jmr;jGeE4yno=E!Wla{5&2{rTM- E0P`M1IRF3v literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/a6873ce79ac837648b62cf89f6c568706ac00c99 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/a6873ce79ac837648b62cf89f6c568706ac00c99 new file mode 100644 index 0000000000000000000000000000000000000000..c3c516abc5362c3280551e8a5b8d629678fb19a8 GIT binary patch literal 204 zcmZQzU|?VbVJ2o4RyKAHPA+a9UOs*SK_OugQ894|NhxU=Svh$HMI~hwRW)@DO)YI5 zT|IpRLnC7oQ!{f5ODk&|TRVFPM<-_&S2uSLPcLsDUqAnVz@Xre(6I1`$f)R;*tqzF z#H8eu)U@=B%&hF3+`RmP!lL4m(z5c3%Bt#`+PeCN#-`?$*0%PJ&aUpB-oE|`6DLic zGIiSY88c_io-=pe`~|x4aq+$G$xD(y?_B=l6rCbu5>*SazNg61n#?nxETPWd(UPxw(? E0O;&P$N&HU literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/c179fc48504dbe00aa946d65d71e2a0165423b2f b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/c179fc48504dbe00aa946d65d71e2a0165423b2f new file mode 100644 index 0000000000000000000000000000000000000000..8bda288a23a8c5c9f379a02a1de3765c7073e26c GIT binary patch literal 203 zcmZQzU|?VbVJ2o4RyKAHPA+a9UOs*SK_OugQ894|NhxU=Svh$HMI~hwRW)@DO)YI5 zT|IpRLnC7oQ!{f5ODk&|TRVFPM<-_&S2uSLPcLsDUqAnVz@Xre(6I1`$f)R;*tqzF z#H8eu)U@=B%&hF3+`RmP!lL4m(z5c3%Bt#`+PeCN#-`?$*0%PJ&aUpB-oE|`6DLic zGIiSY88c_io-=pe`~|x4aq;Q-LGLBKU+XIdepuFUTQBZkE>BQ|P|#xW9a(a@9}fWl Di%CJg literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/cf7792686f978e3b5c6105d97a3a7c9837368f0d b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/cf7792686f978e3b5c6105d97a3a7c9837368f0d new file mode 100644 index 0000000000000000000000000000000000000000..fc9409f19d6e82f58b26534a85950f0778f060f6 GIT binary patch literal 204 zcmZQzU|?VbVJ2o4RyKAHPA+a9UOs*SK_OugQ894|NhxU=Svh$HMI~hwRW)@DO)YI5 zT|IpRLnC7oQ!{f5ODk&|TRVFPM<-_&S2uSLPcLsDUqAnVz@Xre(6I1`$f)R;*tqzF z#H8eu)U@=B%&hF3+`RmP!lL4m(z5c3%Bt#`+PeCN#-`?$*0%PJ&aUpB-oE|`6DLic zGIiSY88c_io-=pe`~|x4aq+Kpc=grJPLI&s9HJ|`W$X4PZix?@Ov-M*sx!0QbYjUT E0K*_dApigX literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/e007898e3ade64f83149acb974f39b00ed05cde4 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_generic_verify_fuzz_seed_corpus/e007898e3ade64f83149acb974f39b00ed05cde4 new file mode 100644 index 0000000000000000000000000000000000000000..e637ca1b8d84771e60f4069393bd2d702e61bc6a GIT binary patch literal 204 zcmZQzfB;4&W)@a9b`DN1ZXRAfegQ!tVG&U=aS2H&X&G5Lc?Cr!WffI5bq!4|Z5>@b zeFH-yV-r&|a|=r=Ya3fTdk04+XBSsDcMnf5Zy#Sj|A4@t;E>R;@QBE$=$P2J_=Loy zYCcR`i91)=9bpB_Kwc3?w;Ph{s|K&O`bA! z+VmMSXU(27ci#L3y76)GI~*1lutXlab?j#?D??Mjy*n4{z2%~g@D+65G|uI8um%9* C`$9|r literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_copy_buffer_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_copy_buffer_fuzz.cc index 267a3c39..0c4d76d7 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_copy_buffer_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_copy_buffer_fuzz.cc @@ -33,7 +33,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { FuzzedDataProvider fuzzed_data(data, size); fuzzed_data.ConsumeData(&fuzzed_structure, sizeof(fuzzed_structure)); wvoec::ConvertDataToValidEnum(OEMCrypto_BufferType_MaxValue, - &fuzzed_structure.dest_buffer_desc.type); + fuzzed_structure.dest_buffer_desc.type); fuzzed_structure.dest_buffer_desc.buffer_config %= wvoec::MAX_FUZZ_OUTPUT_LENGTH + 1; const std::vector input_buffer = diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_decrypt_cenc_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_decrypt_cenc_fuzz.cc index 843be33f..7519959c 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_decrypt_cenc_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_decrypt_cenc_fuzz.cc @@ -45,7 +45,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { FuzzedDataProvider fuzzed_data(inputs[0].data, inputs[0].size); fuzzed_data.ConsumeData(&fuzzed_structure, sizeof(fuzzed_structure)); wvoec::ConvertDataToValidEnum(OEMCrypto_CipherMode_MaxValue, - &fuzzed_structure.cipher_mode); + fuzzed_structure.cipher_mode); // Allocate sample descriptions. std::vector sample_descriptions( @@ -100,7 +100,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { MAX_FUZZ_SAMPLE_SIZE + 1; wvoec::ConvertDataToValidEnum( OEMCrypto_BufferType_MaxValue, - &fuzzed_sample_description.buffers.output_descriptor.type); + fuzzed_sample_description.buffers.output_descriptor.type); fuzzed_sample_description.buffers.output_descriptor.buffer_config %= MAX_FUZZ_SAMPLE_SIZE + 1; diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.cc index a38c73c2..82a182f7 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.cc @@ -45,9 +45,13 @@ void OEMCryptoLicenseAPIFuzz::Terminate() { OEMCrypto_Terminate(); } -void OEMCryptoLicenseAPIFuzz::LoadLicense() { +void OEMCryptoLicenseAPIFuzz::LoadLicense(bool generic_crypto_keys) { license_messages_.SignAndVerifyRequest(); - license_messages_.CreateDefaultResponse(); + if (generic_crypto_keys) { + license_messages_.CreateResponseWithGenericCryptoKeys(); + } else { + license_messages_.CreateDefaultResponse(); + } license_messages_.EncryptAndSignResponse(); OEMCryptoResult sts = license_messages_.LoadResponse(); CheckStatusAndExitFuzzerOnFailure(sts, OEMCrypto_SUCCESS); diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h index f83bb6f2..036bfa26 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h @@ -5,6 +5,8 @@ #ifndef OEMCRYPTO_FUZZ_HELPER_H_ #define OEMCRYPTO_FUZZ_HELPER_H_ +#include +#include #include #include "FuzzedDataProvider.h" @@ -44,7 +46,9 @@ class OEMCryptoLicenseAPIFuzz { void Terminate(); - void LoadLicense(); + void LoadLicense() { LoadLicense(false); } + + void LoadLicenseWithGenericCryptoKeys() { LoadLicense(true); } LicenseRoundTrip& license_messages() { return license_messages_; } @@ -55,6 +59,8 @@ class OEMCryptoLicenseAPIFuzz { const Session& session() const { return session_; } private: + void LoadLicense(bool generic_crypto_keys); + SessionUtil session_util_; Session session_; LicenseRoundTrip license_messages_; @@ -151,15 +157,23 @@ class LicenseWithUsageEntryFuzz { // Convert data from FuzzedDataProvider to valid enum value. template T ConvertDataToValidEnum(FuzzedDataProvider& fuzzed_data, T max_enum_value) { - return static_cast(fuzzed_data.ConsumeIntegralInRange( - 0, static_cast(max_enum_value))); + using UnsignedT = + typename std::make_unsigned::type>::type; + return static_cast(fuzzed_data.ConsumeIntegralInRange( + 0, static_cast(max_enum_value))); } // Convert data to valid enum value in place. template -void ConvertDataToValidEnum(T max_enum_value, T* t) { - FuzzedDataProvider fuzzed_enum_data(reinterpret_cast(t), sizeof(T)); - *t = ConvertDataToValidEnum(fuzzed_enum_data, max_enum_value); +void ConvertDataToValidEnum(T max_enum_value, T& enum_data) { + using UnsignedT = + typename std::make_unsigned::type>::type; + UnsignedT data; + std::memcpy(&data, &enum_data, sizeof(T)); + const auto max_value = static_cast(max_enum_value); + if (data > max_value) { + enum_data = static_cast(data % (max_value + 1)); + } } // Redirect printf and log statements from oemcrypto functions to a file to diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_decrypt_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_decrypt_fuzz.cc index 8fc748f4..a38cf8b4 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_decrypt_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_decrypt_fuzz.cc @@ -20,7 +20,7 @@ wvoec::OEMCryptoLicenseAPIFuzz& license_api_fuzz = extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { wvoec::RedirectStdoutToFile(); license_api_fuzz.Initialize(); - license_api_fuzz.LoadLicense(); + license_api_fuzz.LoadLicenseWithGenericCryptoKeys(); return 0; } @@ -40,22 +40,25 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { FuzzedDataProvider fuzzed_data(inputs[0].data, inputs[0].size); fuzzed_data.ConsumeData(&fuzzed_structure, sizeof(fuzzed_structure)); wvoec::ConvertDataToValidEnum(OEMCrypto_CipherMode_MaxValue, - &fuzzed_structure.cipher_mode); + fuzzed_structure.cipher_mode); wvoec::ConvertDataToValidEnum(OEMCrypto_Algorithm_MaxValue, - &fuzzed_structure.algorithm); + fuzzed_structure.algorithm); // Copy iv from input data. - const std::vector iv = fuzzed_data.ConsumeRemainingBytes(); + constexpr size_t iv_length = 16; + const std::vector iv = fuzzed_data.ConsumeBytes( + fuzzed_data.remaining_bytes() < iv_length ? 0 : iv_length); // Initialize encrypted and clear buffers. const std::vector encrypted_buffer(inputs[1].data, inputs[1].data + inputs[1].size); std::vector clear_buffer(encrypted_buffer.size()); + // Select key and decrypt. wvoec::Session& session = license_api_fuzz.session(); std::vector key_handle; wvoec::GetKeyHandleIntoVector(session.session_id(), - session.license().keys[0].key_id, - session.license().keys[0].key_id_length, + session.license().keys[1].key_id, + session.license().keys[1].key_id_length, fuzzed_structure.cipher_mode, key_handle); OEMCrypto_Generic_Decrypt(key_handle.data(), key_handle.size(), encrypted_buffer.data(), encrypted_buffer.size(), diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_encrypt_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_encrypt_fuzz.cc index 168641dc..e40c2bb7 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_encrypt_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_encrypt_fuzz.cc @@ -20,7 +20,7 @@ wvoec::OEMCryptoLicenseAPIFuzz& license_api_fuzz = extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { wvoec::RedirectStdoutToFile(); license_api_fuzz.Initialize(); - license_api_fuzz.LoadLicense(); + license_api_fuzz.LoadLicenseWithGenericCryptoKeys(); return 0; } @@ -40,17 +40,20 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { FuzzedDataProvider fuzzed_data(inputs[0].data, inputs[0].size); fuzzed_data.ConsumeData(&fuzzed_structure, sizeof(fuzzed_structure)); wvoec::ConvertDataToValidEnum(OEMCrypto_CipherMode_MaxValue, - &fuzzed_structure.cipher_mode); + fuzzed_structure.cipher_mode); wvoec::ConvertDataToValidEnum(OEMCrypto_Algorithm_MaxValue, - &fuzzed_structure.algorithm); + fuzzed_structure.algorithm); // Copy iv from input data. - const std::vector iv = fuzzed_data.ConsumeRemainingBytes(); + constexpr size_t iv_length = 16; + const std::vector iv = fuzzed_data.ConsumeBytes( + fuzzed_data.remaining_bytes() < iv_length ? 0 : iv_length); // Initialize clear and encrypted buffers. const std::vector clear_buffer(inputs[1].data, inputs[1].data + inputs[1].size); std::vector encrypted_buffer(clear_buffer.size()); + // Select key and encrypt. wvoec::Session& session = license_api_fuzz.session(); std::vector key_handle; wvoec::GetKeyHandleIntoVector(session.session_id(), diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_sign_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_sign_fuzz.cc index 6e31851a..a01b3bb1 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_sign_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_sign_fuzz.cc @@ -20,7 +20,7 @@ wvoec::OEMCryptoLicenseAPIFuzz& license_api_fuzz = extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { wvoec::RedirectStdoutToFile(); license_api_fuzz.Initialize(); - license_api_fuzz.LoadLicense(); + license_api_fuzz.LoadLicenseWithGenericCryptoKeys(); return 0; } @@ -33,18 +33,19 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { FuzzedDataProvider fuzzed_data(data, size); fuzzed_data.ConsumeData(&fuzzed_structure, sizeof(fuzzed_structure)); wvoec::ConvertDataToValidEnum(OEMCrypto_CipherMode_MaxValue, - &fuzzed_structure.cipher_mode); + fuzzed_structure.cipher_mode); wvoec::ConvertDataToValidEnum(OEMCrypto_Algorithm_MaxValue, - &fuzzed_structure.algorithm); + fuzzed_structure.algorithm); // Copy clear buffer from input data. const std::vector clear_buffer = fuzzed_data.ConsumeRemainingBytes(); + // Select key and sign. wvoec::Session& session = license_api_fuzz.session(); std::vector key_handle; wvoec::GetKeyHandleIntoVector(session.session_id(), - session.license().keys[0].key_id, - session.license().keys[0].key_id_length, + session.license().keys[2].key_id, + session.license().keys[2].key_id_length, fuzzed_structure.cipher_mode, key_handle); size_t signature_length = 0; OEMCrypto_Generic_Sign(key_handle.data(), key_handle.size(), diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_verify_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_verify_fuzz.cc index 11890952..a7698fc7 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_verify_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generic_verify_fuzz.cc @@ -12,131 +12,52 @@ namespace { -// Properties deserialized from fuzzed data. -struct FuzzedProperties { - wvoec::OEMCrypto_Generic_Api_Fuzz structure; - std::vector buffer; - std::vector signature; -}; - -// Contains value only if has_value is true. -struct OptionalFuzzedProperties { - FuzzedProperties value; - bool has_value; -}; - // Avoid calling non-trivial destructor. wvoec::OEMCryptoLicenseAPIFuzz& license_api_fuzz = *new wvoec::OEMCryptoLicenseAPIFuzz; -OptionalFuzzedProperties DeserializeFuzzedData(const uint8_t* data, - size_t size) { - OptionalFuzzedProperties fuzzed_properties; - const std::vector inputs = - wvoec::SplitFuzzedData(data, size); - if (inputs.size() < 2 || - inputs[0].size < sizeof(fuzzed_properties.value.structure)) { - fuzzed_properties.has_value = false; - return fuzzed_properties; - } - FuzzedDataProvider fuzzed_data(inputs[0].data, inputs[0].size); - fuzzed_data.ConsumeData(&fuzzed_properties.value.structure, - sizeof(fuzzed_properties.value.structure)); - wvoec::ConvertDataToValidEnum(OEMCrypto_CipherMode_MaxValue, - &fuzzed_properties.value.structure.cipher_mode); - wvoec::ConvertDataToValidEnum(OEMCrypto_Algorithm_MaxValue, - &fuzzed_properties.value.structure.algorithm); - fuzzed_properties.value.buffer = fuzzed_data.ConsumeRemainingBytes(); - fuzzed_properties.value.signature.assign(inputs[1].data, - inputs[1].data + inputs[1].size); - fuzzed_properties.has_value = true; - return fuzzed_properties; -} - } // namespace extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { wvoec::RedirectStdoutToFile(); license_api_fuzz.Initialize(); - license_api_fuzz.LoadLicense(); + license_api_fuzz.LoadLicenseWithGenericCryptoKeys(); return 0; } -extern "C" size_t LLVMFuzzerCustomMutator(uint8_t* data, size_t size, - size_t max_size, unsigned int seed) { - // Deserialize fuzzed data. - OptionalFuzzedProperties fuzzed_properties = - DeserializeFuzzedData(data, size); - if (!fuzzed_properties.has_value) { - return 0; - } - - // Select key and perform verification. - wvoec::Session& session = license_api_fuzz.session(); - std::vector key_handle; - OEMCryptoResult result = wvoec::GetKeyHandleIntoVector( - session.session_id(), session.license().keys[0].key_id, - session.license().keys[0].key_id_length, - fuzzed_properties.value.structure.cipher_mode, key_handle); - if (result == OEMCrypto_SUCCESS) { - // Generate a new signature if verification fails. - result = - OEMCrypto_Generic_Verify(key_handle.data(), key_handle.size(), - fuzzed_properties.value.buffer.data(), - fuzzed_properties.value.buffer.size(), - fuzzed_properties.value.structure.algorithm, - fuzzed_properties.value.signature.data(), - fuzzed_properties.value.signature.size()); - if (result != OEMCrypto_SUCCESS) { - size_t signature_length = 0; - OEMCrypto_Generic_Sign(key_handle.data(), key_handle.size(), - fuzzed_properties.value.buffer.data(), - fuzzed_properties.value.buffer.size(), - fuzzed_properties.value.structure.algorithm, - nullptr, &signature_length); - fuzzed_properties.value.signature.resize(signature_length); - OEMCrypto_Generic_Sign(key_handle.data(), key_handle.size(), - fuzzed_properties.value.buffer.data(), - fuzzed_properties.value.buffer.size(), - fuzzed_properties.value.structure.algorithm, - fuzzed_properties.value.signature.data(), - &signature_length); - const size_t signature_offset = - sizeof(fuzzed_properties.value.structure) + - fuzzed_properties.value.buffer.size() + - sizeof(wvoec::kFuzzDataSeparator); - size = signature_offset + signature_length; - if (size > max_size) { - return 0; - } - memcpy(data + signature_offset, fuzzed_properties.value.signature.data(), - signature_length); - } - } - - return LLVMFuzzerMutate(data, size, max_size); -} - extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - // Deserialize fuzzed data. - const OptionalFuzzedProperties fuzzed_properties = - DeserializeFuzzedData(data, size); - if (!fuzzed_properties.has_value) { + // Split data using separator. + const std::vector inputs = + wvoec::SplitFuzzedData(data, size); + if (inputs.size() < 2) { return 0; } - // Select key and perform verification. + // Deserialize fuzzed data. + wvoec::OEMCrypto_Generic_Api_Fuzz fuzzed_structure; + if (inputs[0].size < sizeof(fuzzed_structure)) { + return 0; + } + FuzzedDataProvider fuzzed_data(inputs[0].data, inputs[0].size); + fuzzed_data.ConsumeData(&fuzzed_structure, sizeof(fuzzed_structure)); + wvoec::ConvertDataToValidEnum(OEMCrypto_CipherMode_MaxValue, + fuzzed_structure.cipher_mode); + wvoec::ConvertDataToValidEnum(OEMCrypto_Algorithm_MaxValue, + fuzzed_structure.algorithm); + const std::vector buffer = + fuzzed_data.ConsumeRemainingBytes(); + const std::vector signature(inputs[1].data, + inputs[1].data + inputs[1].size); + + // Select key and verify. wvoec::Session& session = license_api_fuzz.session(); std::vector key_handle; - wvoec::GetKeyHandleIntoVector( - session.session_id(), session.license().keys[0].key_id, - session.license().keys[0].key_id_length, - fuzzed_properties.value.structure.cipher_mode, key_handle); - OEMCrypto_Generic_Verify(key_handle.data(), key_handle.size(), - fuzzed_properties.value.buffer.data(), - fuzzed_properties.value.buffer.size(), - fuzzed_properties.value.structure.algorithm, - fuzzed_properties.value.signature.data(), - fuzzed_properties.value.signature.size()); + wvoec::GetKeyHandleIntoVector(session.session_id(), + session.license().keys[3].key_id, + session.license().keys[3].key_id_length, + fuzzed_structure.cipher_mode, key_handle); + OEMCrypto_Generic_Verify(key_handle.data(), key_handle.size(), buffer.data(), + buffer.size(), fuzzed_structure.algorithm, + signature.data(), signature.size()); return 0; } diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_install_oem_private_key_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_install_oem_private_key_fuzz.cc index 3e926069..bab90660 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_install_oem_private_key_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_install_oem_private_key_fuzz.cc @@ -9,10 +9,6 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { wvoec::RedirectStdoutToFile(); - if (size < sizeof(OEMCrypto_PrivateKeyType)) { - return 0; - } - wvoec::LicenseWithUsageEntryFuzz entry; entry.Initialize(); entry.CreateUsageTableHeader(); diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_license_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_license_fuzz.cc index 6018be80..20b16f02 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_license_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_license_fuzz.cc @@ -20,7 +20,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { // Convert OEMCrypto_LicenseType in core_response to a valid enum value. wvoec::ConvertDataToValidEnum( OEMCrypto_LicenseType_MaxValue, - &license_api_fuzz.license_messages().core_response().license_type); + license_api_fuzz.license_messages().core_response().license_type); license_api_fuzz.license_messages().EncryptAndSignResponse(); license_api_fuzz.license_messages().LoadResponse(); From a66143bec48283744afb993efd8bf1f5885ebd3f Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Thu, 23 Mar 2023 23:01:28 +0000 Subject: [PATCH 09/27] Fix OEMCrypto_GenerateRSASignature fuzzer Ensure OEMCrypto is in the correct state before invoking OEMCrypto_GenerateRSASignature. Merged from https://widevine-internal-review.googlesource.com/168857 Merged from https://widevine-internal-review.googlesource.com/172171 Merged from https://widevine-internal-review.googlesource.com/172410 Merged from https://widevine-internal-review.googlesource.com/173130 Change-Id: I774f59af8044939c5a9618de348f2120a834e043 --- .../test/fuzz_tests/oemcrypto_fuzz_helper.cc | 18 ++++++++---- .../test/fuzz_tests/oemcrypto_fuzz_helper.h | 28 +++++++++++++++---- .../oemcrypto_generate_rsa_signature_fuzz.cc | 10 ++++--- 3 files changed, 42 insertions(+), 14 deletions(-) diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.cc index 82a182f7..4761f30b 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.cc @@ -33,16 +33,24 @@ void InitializeFuzz(SessionUtil& session_util) { session_util.EnsureTestROT(); } -void OEMCryptoLicenseAPIFuzz::Initialize() { +void SessionFuzz::Initialize() { InitializeFuzz(session_util_); session_.open(); - session_util_.InstallTestDrmKey(&session_); - session_.GenerateNonce(); +} + +void SessionFuzz::Terminate() { + session_.close(); + OEMCrypto_Terminate(); +} + +void OEMCryptoLicenseAPIFuzz::Initialize() { + session_fuzz_.Initialize(); + session_fuzz_.InstallTestDrmKey(); + session_fuzz_.session().GenerateNonce(); } void OEMCryptoLicenseAPIFuzz::Terminate() { - session_.close(); - OEMCrypto_Terminate(); + session_fuzz_.Terminate(); } void OEMCryptoLicenseAPIFuzz::LoadLicense(bool generic_crypto_keys) { diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h index 036bfa26..c92297b1 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h @@ -38,9 +38,28 @@ struct FuzzedData { // OEMCrypto APIs. void InitializeFuzz(SessionUtil& session_util); +class SessionFuzz { + public: + void Initialize(); + + void Terminate(); + + void InstallTestDrmKey() { + session_util_.InstallTestDrmKey(&session_); + } + + Session& session() { return session_; } + + const Session& session() const { return session_; } + + private: + SessionUtil session_util_; + Session session_; +}; + class OEMCryptoLicenseAPIFuzz { public: - OEMCryptoLicenseAPIFuzz() : license_messages_(&session_) {} + OEMCryptoLicenseAPIFuzz() : license_messages_(&session_fuzz_.session()) {} void Initialize(); @@ -54,15 +73,14 @@ class OEMCryptoLicenseAPIFuzz { const LicenseRoundTrip& license_messages() const { return license_messages_; } - Session& session() { return session_; } + Session& session() { return session_fuzz_.session(); } - const Session& session() const { return session_; } + const Session& session() const { return session_fuzz_.session(); } private: void LoadLicense(bool generic_crypto_keys); - SessionUtil session_util_; - Session session_; + SessionFuzz session_fuzz_; LicenseRoundTrip license_messages_; }; diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_rsa_signature_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_rsa_signature_fuzz.cc index f0e003e9..f30eed87 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_rsa_signature_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_rsa_signature_fuzz.cc @@ -23,12 +23,14 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { fuzzed_data.ConsumeRemainingBytes(); std::vector signature(fuzzed_structure.signature_length); - wvoec::OEMCryptoLicenseAPIFuzz license_api_fuzz; - license_api_fuzz.Initialize(); + wvoec::SessionFuzz session_fuzz; + session_fuzz.Initialize(); + session_fuzz.InstallTestDrmKey(); OEMCrypto_GenerateRSASignature( - license_api_fuzz.session().session_id(), message.data(), message.size(), + session_fuzz.session().session_id(), message.data(), message.size(), signature.data(), &fuzzed_structure.signature_length, fuzzed_structure.padding_scheme); - license_api_fuzz.Terminate(); + session_fuzz.Terminate(); + return 0; } From 75d47785313b7c1edf793ccf64cf89e3b1a6912a Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Wed, 26 Apr 2023 21:05:14 +0000 Subject: [PATCH 10/27] Fix spelling mistake Merged from https://widevine-internal-review.googlesource.com/172590 Merged from https://widevine-internal-review.googlesource.com/172610 Merged from https://widevine-internal-review.googlesource.com/172650 Merged from https://widevine-internal-review.googlesource.com/174011 Change-Id: I88cb66704509010fa2e0bee5d0f580173db6fdcd --- .../oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.cc | 2 +- .../oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h | 4 ++-- .../oemcrypto_generate_certificate_key_pair_fuzz.cc | 2 +- .../test/fuzz_tests/oemcrypto_load_provisioning_fuzz.cc | 2 +- .../oemcrypto/test/fuzz_tests/oemcrypto_load_renewal_fuzz.cc | 2 +- .../test/fuzz_tests/oemcrypto_provisioning_request_fuzz.cc | 2 +- .../test/fuzz_tests/oemcrypto_renewal_request_fuzz.cc | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.cc index 4761f30b..50929b1a 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.cc @@ -65,7 +65,7 @@ void OEMCryptoLicenseAPIFuzz::LoadLicense(bool generic_crypto_keys) { CheckStatusAndExitFuzzerOnFailure(sts, OEMCrypto_SUCCESS); } -void OEMCryptoProvisioningAPIFuzz::Intialize() { +void OEMCryptoProvisioningAPIFuzz::Initialize() { InitializeFuzz(session_util_); // Opens a session and Generates Nonce. diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h index c92297b1..192197b1 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h @@ -89,7 +89,7 @@ class OEMCryptoProvisioningAPIFuzz { OEMCryptoProvisioningAPIFuzz() : provisioning_messages_(&session_, session_util_.encoded_rsa_key_) {} - void Intialize(); + void Initialize(); void Terminate(); @@ -120,7 +120,7 @@ class OEMCryptoRenewalAPIFuzz { OEMCryptoRenewalAPIFuzz() : renewal_messages_(&license_api_fuzz_.license_messages()) {} - void Intialize() { license_api_fuzz_.Initialize(); } + void Initialize() { license_api_fuzz_.Initialize(); } void Terminate() { license_api_fuzz_.Terminate(); } diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_certificate_key_pair_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_certificate_key_pair_fuzz.cc index c8364519..cff4bd23 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_certificate_key_pair_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_certificate_key_pair_fuzz.cc @@ -18,7 +18,7 @@ wvoec::OEMCryptoProvisioningAPIFuzz& provisioning_api_fuzz = extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { wvoec::RedirectStdoutToFile(); - provisioning_api_fuzz.Intialize(); + provisioning_api_fuzz.Initialize(); return 0; } diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_provisioning_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_provisioning_fuzz.cc index 06907ff1..bda7ce3b 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_provisioning_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_provisioning_fuzz.cc @@ -13,7 +13,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { } wvoec::OEMCryptoProvisioningAPIFuzz provisioning_api_fuzz; - provisioning_api_fuzz.Intialize(); + provisioning_api_fuzz.Initialize(); provisioning_api_fuzz.provisioning_messages().SignAndVerifyRequest(); // Interpreting input fuzz data as unencrypted(core_response + provisioning // message data) from provisioning server. diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_renewal_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_renewal_fuzz.cc index 00836b4c..8957ee05 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_renewal_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_renewal_fuzz.cc @@ -21,7 +21,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { fuzzed_data.ConsumeRemainingBytes(); wvoec::OEMCryptoRenewalAPIFuzz renewal_response_fuzz; - renewal_response_fuzz.Intialize(); + renewal_response_fuzz.Initialize(); renewal_response_fuzz.license_messages().SignAndVerifyRequest(); renewal_response_fuzz.license_messages().CreateDefaultResponse(); diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_provisioning_request_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_provisioning_request_fuzz.cc index ea1b1b16..7e709f65 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_provisioning_request_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_provisioning_request_fuzz.cc @@ -19,7 +19,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { // hence copying data into a non const pointer. std::vector input(data, data + size); wvoec::OEMCryptoProvisioningAPIFuzz provisioning_api_fuzz; - provisioning_api_fuzz.Intialize(); + provisioning_api_fuzz.Initialize(); provisioning_api_fuzz.provisioning_messages().InjectFuzzedRequestData( input.data(), input.size()); provisioning_api_fuzz.Terminate(); diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_renewal_request_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_renewal_request_fuzz.cc index c9d1e4bc..658bdc13 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_renewal_request_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_renewal_request_fuzz.cc @@ -19,7 +19,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { // hence copying data into a non const pointer. std::vector input(data, data + size); wvoec::OEMCryptoRenewalAPIFuzz renewal_api_fuzz; - renewal_api_fuzz.Intialize(); + renewal_api_fuzz.Initialize(); renewal_api_fuzz.renewal_messages().InjectFuzzedRequestData(input.data(), input.size()); renewal_api_fuzz.Terminate(); From 708670c98bfdcd86a572e2e69ee478db860da915 Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Wed, 10 May 2023 14:46:52 +0000 Subject: [PATCH 11/27] Simplify OEMCrypto_InstallOemPrivateKey fuzzer Merged from https://widevine-internal-review.googlesource.com/174890 Merged from https://widevine-internal-review.googlesource.com/174856 Change-Id: If863e4a8f739ca5645311d7f7b08e6aec4cc7aca --- .../oemcrypto_install_oem_private_key_fuzz.cc | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_install_oem_private_key_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_install_oem_private_key_fuzz.cc index bab90660..310999c5 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_install_oem_private_key_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_install_oem_private_key_fuzz.cc @@ -9,27 +9,17 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { wvoec::RedirectStdoutToFile(); - wvoec::LicenseWithUsageEntryFuzz entry; - entry.Initialize(); - entry.CreateUsageTableHeader(); - // Open a session, create a usage entry. - wvoec::Session* session = entry.license_messages().session(); - session->open(); - entry.InstallTestDrmKey(session); - session->GenerateNonce(); - session->CreateNewUsageEntry(); - std::vector encrypted_usage_header; - session->UpdateUsageEntry(&encrypted_usage_header); + wvoec::SessionFuzz session_fuzz; + session_fuzz.Initialize(); FuzzedDataProvider fuzzed_data(data, size); const OEMCrypto_PrivateKeyType key_type = wvoec::ConvertDataToValidEnum( fuzzed_data, OEMCrypto_PrivateKeyType_MaxValue); const std::vector wrapped_private_key = fuzzed_data.ConsumeRemainingBytes(); - OEMCrypto_InstallOemPrivateKey(session->session_id(), key_type, + OEMCrypto_InstallOemPrivateKey(session_fuzz.session().session_id(), key_type, wrapped_private_key.data(), wrapped_private_key.size()); - session->close(); - OEMCrypto_Terminate(); + session_fuzz.Terminate(); return 0; } From 76cf1cd985cc18c92a56ac86c12a4826fef0ff71 Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Wed, 10 May 2023 14:00:36 +0000 Subject: [PATCH 12/27] Simplify and enable create and remove entitled key session fuzzer Merged from https://widevine-internal-review.googlesource.com/174851 Change-Id: Iebddae2412c66dbaf5bac042518aea58f9b0c315 --- ...te_and_remove_entitled_key_session_fuzz.cc | 36 +++++++++---------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_create_and_remove_entitled_key_session_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_create_and_remove_entitled_key_session_fuzz.cc index d89a9e4c..07c0bd44 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_create_and_remove_entitled_key_session_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_create_and_remove_entitled_key_session_fuzz.cc @@ -2,33 +2,31 @@ // source code may only be used and distributed under the Widevine // License Agreement. +#include "FuzzedDataProvider.h" #include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { wvoec::RedirectStdoutToFile(); - if (size < sizeof(ODK_ParsedLicense) + sizeof(wvoec::MessageData)) { - return 0; + wvoec::SessionFuzz session_fuzz; + session_fuzz.Initialize(); + + FuzzedDataProvider fuzzed_data(data, size); + + uint32_t key_session; + uint32_t* const key_session_ptr = + fuzzed_data.ConsumeBool() ? &key_session : nullptr; + + OEMCrypto_CreateEntitledKeySession(session_fuzz.session().session_id(), + key_session_ptr); + + if (key_session_ptr == nullptr || fuzzed_data.ConsumeBool()) { + key_session = fuzzed_data.ConsumeIntegral(); } - wvoec::OEMCryptoLicenseAPIFuzz license_api_fuzz; - license_api_fuzz.Initialize(); - license_api_fuzz.license_messages().set_license_type( - OEMCrypto_EntitlementLicense); - license_api_fuzz.license_messages().SignAndVerifyRequest(); - // Interpreting input fuzz data as unencrypted (core_response + license - // message data) from license server. - license_api_fuzz.license_messages().InjectFuzzedResponseData(data, size); - license_api_fuzz.license_messages().EncryptAndSignResponse(); - license_api_fuzz.license_messages().LoadResponse(); + OEMCrypto_RemoveEntitledKeySession(key_session); - uint32_t key_session_id; - OEMCrypto_CreateEntitledKeySession(license_api_fuzz.session_id(), - &key_session_id); - - OEMCrypto_RemoveEntitledKeySession(key_session_id); - - license_api_fuzz.Terminate(); + session_fuzz.Terminate(); return 0; } From 8a4160bf8a30b708f8c005923543c1238ac99648 Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Tue, 9 May 2023 20:16:54 +0000 Subject: [PATCH 13/27] Add OEMCrypto_GetRandom fuzzer Merged from https://widevine-internal-review.googlesource.com/174771 Merged from https://widevine-internal-review.googlesource.com/174854 Change-Id: Ia654123bcbe8fa2e7daadaab79c1149ff3cde6b0 --- .../fuzz_tests/oemcrypto_get_random_fuzz.cc | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_random_fuzz.cc diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_random_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_random_fuzz.cc new file mode 100644 index 00000000..e81f9565 --- /dev/null +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_random_fuzz.cc @@ -0,0 +1,24 @@ +// Copyright 2023 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine +// License Agreement. + +#include + +#include "FuzzedDataProvider.h" +#include "OEMCryptoCENC.h" +#include "oemcrypto_fuzz_helper.h" + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { + wvoec::RedirectStdoutToFile(); + wvoec::SessionUtil session_util; + wvoec::InitializeFuzz(session_util); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + std::vector random_data( + FuzzedDataProvider(data, size) + .ConsumeIntegralInRange(0, wvoec::MAX_FUZZ_OUTPUT_LENGTH)); + OEMCrypto_GetRandom(random_data.data(), random_data.size()); + return 0; +} From 31a2f097920bc6b388582641dcc37a43818ea678 Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Wed, 10 May 2023 19:46:16 +0000 Subject: [PATCH 14/27] Enable OEMCrypto_MoveEntry/ReuseUsageEntry fuzzers Merged from https://widevine-internal-review.googlesource.com/174893 Change-Id: Ia46e74450bc20302edaf1c5e2bbde957a1d31c95 --- .../fuzz_tests/oemcrypto_move_usage_entry_fuzz.cc | 15 ++++++++------- .../oemcrypto_reuse_usage_entry_fuzz.cc | 12 +++++------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_move_usage_entry_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_move_usage_entry_fuzz.cc index b59dc381..2e608cb4 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_move_usage_entry_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_move_usage_entry_fuzz.cc @@ -2,6 +2,7 @@ // source code may only be used and distributed under the Widevine Master // License Agreement. +#include "FuzzedDataProvider.h" #include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" @@ -19,12 +20,6 @@ extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { } extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - uint32_t usage_entry_number; - if (size < sizeof(usage_entry_number)) { - return 0; - } - memcpy(&usage_entry_number, data, sizeof(usage_entry_number)); - entry.CreateUsageTableHeader(); wvoec::Session* s = entry.license_messages().session(); s->open(); @@ -32,7 +27,13 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { s->CreateNewUsageEntry(); std::vector encrypted_usage_header; s->UpdateUsageEntry(&encrypted_usage_header); - OEMCrypto_MoveEntry(s->session_id(), usage_entry_number); + s->close(); + + s->open(); + s->ReloadUsageEntry(); + OEMCrypto_MoveEntry( + s->session_id(), + FuzzedDataProvider(data, size).ConsumeIntegral()); s->close(); return 0; diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_reuse_usage_entry_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_reuse_usage_entry_fuzz.cc index 8d99493a..7aef70f9 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_reuse_usage_entry_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_reuse_usage_entry_fuzz.cc @@ -2,6 +2,7 @@ // source code may only be used and distributed under the Widevine Master // License Agreement. +#include "FuzzedDataProvider.h" #include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" @@ -19,20 +20,17 @@ extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { } extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - uint32_t usage_entry_number; - if (size < sizeof(usage_entry_number)) { - return 0; - } - memcpy(&usage_entry_number, data, sizeof(usage_entry_number)); - entry.CreateUsageTableHeader(); wvoec::Session* s = entry.license_messages().session(); s->open(); entry.InstallTestDrmKey(s); s->CreateNewUsageEntry(); s->close(); + s->open(); - OEMCrypto_ReuseUsageEntry(s->session_id(), usage_entry_number); + OEMCrypto_ReuseUsageEntry( + s->session_id(), + FuzzedDataProvider(data, size).ConsumeIntegral()); s->close(); return 0; From 09e6f1c60f2ee3820306f6ec1fda0179633e0afc Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Thu, 11 May 2023 14:01:49 +0000 Subject: [PATCH 15/27] Add OEMCrypto_GetKeyHandle fuzzer Merged from https://widevine-internal-review.googlesource.com/174934 Change-Id: If44423ed51cc2ff10c1b471d39db962a653d8c14 --- .../oemcrypto_get_key_handle_fuzz.cc | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_key_handle_fuzz.cc diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_key_handle_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_key_handle_fuzz.cc new file mode 100644 index 00000000..9d70470e --- /dev/null +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_key_handle_fuzz.cc @@ -0,0 +1,47 @@ +// Copyright 2023 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine +// License Agreement. + +#include + +#include "FuzzedDataProvider.h" +#include "OEMCryptoCENC.h" +#include "oemcrypto_fuzz_helper.h" + +namespace { + +// Avoid calling non-trivial destructor. +wvoec::OEMCryptoLicenseAPIFuzz& license_api_fuzz = + *new wvoec::OEMCryptoLicenseAPIFuzz; + +} // namespace + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { + wvoec::RedirectStdoutToFile(); + license_api_fuzz.Initialize(); + license_api_fuzz.LoadLicense(); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + FuzzedDataProvider fuzzed_data(data, size); + + const OEMCryptoCipherMode cipher_mode = + wvoec::ConvertDataToValidEnum(fuzzed_data, OEMCrypto_CipherMode_MaxValue); + + // key_handle and key_handle_length parameters + size_t key_handle_length_data = fuzzed_data.ConsumeIntegralInRange( + 0, wvoec::MAX_FUZZ_OUTPUT_LENGTH); + std::vector key_handle(key_handle_length_data); + size_t* const key_handle_length = + fuzzed_data.ConsumeBool() ? &key_handle_length_data : nullptr; + + const std::vector content_key_id = + fuzzed_data.ConsumeRemainingBytes(); + + OEMCrypto_GetKeyHandle(license_api_fuzz.session().session_id(), + content_key_id.data(), content_key_id.size(), + cipher_mode, key_handle.data(), key_handle_length); + + return 0; +} From 4f29280b3ef5d33b0d42a47d42670954cfd5ba0a Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Tue, 9 May 2023 21:19:33 +0000 Subject: [PATCH 16/27] Remove unused OEMCrypto_GenerateSignature fuzzer Merged from https://widevine-internal-review.googlesource.com/174772 Merged from https://widevine-internal-review.googlesource.com/176633 Merged from https://widevine-internal-review.googlesource.com/176634 Merged from https://widevine-internal-review.googlesource.com/176670 Change-Id: I36438c102bfe68ff16eab3db301377e858f533c1 --- .../oemcrypto_generate_signature.cc | 36 ------------------- 1 file changed, 36 deletions(-) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_signature.cc diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_signature.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_signature.cc deleted file mode 100644 index 0ea0eb5b..00000000 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_signature.cc +++ /dev/null @@ -1,36 +0,0 @@ -#include "oemcrypto_fuzz_helper.h" -#include "oemcrypto_session_tests_helper.h" -#include "properties.h" - -static bool is_init = false; - -extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - wvoec::SessionUtil session_helper; - if (!is_init) { - wvoec::RedirectStdoutToFile(); - wvoec::global_features.Initialize(); - wvoec::global_features.RestrictFilter("*"); - wvutil::Properties::Init(); - is_init = true; - } - - OEMCrypto_Initialize(); - OEMCrypto_EnterTestMode(); - session_helper.EnsureTestROT(); - - wvoec::Session s; - s.open(); - s.GenerateDerivedKeysFromKeybox(session_helper.keybox_); - - static const uint32_t SignatureBufferMaxLength = size; - vector signature(SignatureBufferMaxLength); - size_t signature_length = signature.size(); - - OEMCryptoResult sts; - sts = OEMCrypto_GenerateSignature(s.session_id(), data, size, - &signature[0], &signature_length); - - s.close(); - OEMCrypto_Terminate(); - return 0; -} From ea43147a08cd9f1058493e34b36e4872650d354c Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Fri, 12 May 2023 14:26:06 +0000 Subject: [PATCH 17/27] Add OEMCrypto_GetDeviceInformation fuzzer Merged from https://widevine-internal-review.googlesource.com/174936 Change-Id: I79bbb8506a13d3142a8b323a7c67d0155973a3f4 --- .../oemcrypto_get_device_information_fuzz.cc | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_device_information_fuzz.cc diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_device_information_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_device_information_fuzz.cc new file mode 100644 index 00000000..191fe381 --- /dev/null +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_device_information_fuzz.cc @@ -0,0 +1,31 @@ +// Copyright 2023 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine +// License Agreement. + +#include + +#include "FuzzedDataProvider.h" +#include "OEMCryptoCENC.h" +#include "oemcrypto_fuzz_helper.h" + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { + wvoec::RedirectStdoutToFile(); + wvoec::SessionUtil session_util; + wvoec::InitializeFuzz(session_util); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + FuzzedDataProvider fuzzed_data(data, size); + + // device_info and device_info_length parameters + size_t device_info_length_data = fuzzed_data.ConsumeIntegralInRange( + 0, wvoec::MAX_FUZZ_OUTPUT_LENGTH); + std::vector device_info(device_info_length_data); + size_t* const device_info_length = + fuzzed_data.ConsumeBool() ? &device_info_length_data : nullptr; + + OEMCrypto_GetDeviceInformation(device_info.data(), device_info_length); + + return 0; +} From 3a0598992092bfdc25404ec36e16b6bb61a1e4fb Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Fri, 12 May 2023 16:10:57 +0000 Subject: [PATCH 18/27] Add OEMCrypto_GetDeviceSignedCsrPayload fuzzer Merged from https://widevine-internal-review.googlesource.com/175050 Change-Id: I28e4b1bc1f82deaf5644d0b2e31d916bf65365d3 --- ...ypto_get_device_signed_csr_payload_fuzz.cc | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_device_signed_csr_payload_fuzz.cc diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_device_signed_csr_payload_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_device_signed_csr_payload_fuzz.cc new file mode 100644 index 00000000..b30fa600 --- /dev/null +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_get_device_signed_csr_payload_fuzz.cc @@ -0,0 +1,50 @@ +// Copyright 2023 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine +// License Agreement. + +#include + +#include "FuzzedDataProvider.h" +#include "OEMCryptoCENC.h" +#include "oemcrypto_fuzz_helper.h" + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { + wvoec::RedirectStdoutToFile(); + wvoec::SessionUtil session_util; + wvoec::InitializeFuzz(session_util); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + // Split data using separator. + const std::vector inputs = + wvoec::SplitFuzzedData(data, size); + if (inputs.size() < 3) { + return 0; + } + + const std::vector challenge(inputs[0].data, + inputs[0].data + inputs[0].size); + + const std::vector encoded_device_info( + inputs[1].data, inputs[1].data + inputs[1].size); + + // signed_csr_payload and signed_csr_payload_length parameters + FuzzedDataProvider signed_csr_payload_fuzzed_data(inputs[2].data, + inputs[2].size); + size_t signed_csr_payload_length_data = + signed_csr_payload_fuzzed_data.ConsumeIntegralInRange( + 0, wvoec::MAX_FUZZ_OUTPUT_LENGTH); + std::vector signed_csr_payload(signed_csr_payload_length_data); + size_t* const signed_csr_payload_length = + signed_csr_payload_fuzzed_data.ConsumeBool() + ? &signed_csr_payload_length_data + : nullptr; + + OEMCrypto_GetDeviceSignedCsrPayload( + challenge.data(), challenge.size(), encoded_device_info.data(), + encoded_device_info.size(), signed_csr_payload.data(), + signed_csr_payload_length); + + return 0; +} From 4aa2bcde4902e3e4109e4512df819e2a7d2e0959 Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Fri, 9 Jun 2023 20:43:06 +0000 Subject: [PATCH 19/27] Fix OEMCrypto_LoadEntitledContentKeys fuzzer - Pass entitled key session to OEMCrypto_LoadEntitledContentKeys. - Refresh corpus files. Merged from https://widevine-internal-review.googlesource.com/176750 Merged from https://widevine-internal-review.googlesource.com/176758 Change-Id: I7edb081933d37897e3b9d83dd00a627b5de64bc9 --- .../043170680cfcfff82b302f215a249f3b5dcafef4 | Bin 772 -> 0 bytes .../04a5434a6ccbfc5fd730762eb03b4aedc02fecb3 | Bin 0 -> 772 bytes .../07d8092ab06df623ae6fee5cdc8c980ba5fd7632 | Bin 772 -> 0 bytes .../0a1de0f3c6da0125dcf7573a37a144ffde4d7b3c | Bin 0 -> 772 bytes .../122d1a11960c26756abee35e8e00f651ab83826b | Bin 772 -> 0 bytes .../1bac9ff28790816e80d3f7f2c87f72c3d5485987 | Bin 0 -> 772 bytes .../1c2e50d75ca628b62b3b05ffe17dcb0bd815074d | Bin 0 -> 772 bytes .../26dd022e20552f6c36def4f19eed5954e9ecbf08 | Bin 0 -> 772 bytes .../2b900789bbacbb6581ce5eb82cb32c845b74ac01 | Bin 0 -> 772 bytes .../2f0790c9a2bc5ef7075cd503925ee48fc8efd7cc | Bin 0 -> 772 bytes .../3063b747267c41526835726740e2752b0efd277a | Bin 0 -> 772 bytes .../30a1c909b57f87d05eebacde8cbf06fe0edb1388 | Bin 772 -> 0 bytes .../3248805594a4813b92c50318c7796358bf4c72aa | Bin 772 -> 0 bytes .../46e509ae9a53927b3c36f04c17cc4bffb9d63619 | Bin 0 -> 772 bytes .../4c4b8424a2c6bee6e9dc90ff7a6a15fbac31b237 | Bin 772 -> 0 bytes .../4e685aa56f776523ece6ffcf9f47f0a35dcc8cbe | Bin 0 -> 772 bytes .../4e8535ce0b1c5294f35d4f957effef1532ac6560 | Bin 0 -> 772 bytes .../4f0a52f6a1d4c7115eb75a4ee2da63899ce546f2 | Bin 772 -> 0 bytes .../5439302b2dcb50225ff9eed132532f2ebdd1ffdf | Bin 772 -> 0 bytes .../54b079a9b59e9c5c0b9bde3a8517c1d7dc06336a | Bin 0 -> 772 bytes .../5d798c32f5c1e458077509799531cca5ac956343 | Bin 0 -> 772 bytes .../6008f01a62c84227dab6dd3187b4107465ebca14 | Bin 0 -> 772 bytes .../60d8d9532b4dae783871f1befc1a71da4caa8405 | Bin 0 -> 772 bytes .../60df090dd8440f5b29c173fc04e6ac4fd83fcfbf | Bin 0 -> 772 bytes .../66cd8fa5bfcf0d6286c9879cbc4110d1db64413b | Bin 772 -> 0 bytes .../67eb049639b91a7ad90147c323f4494d21ad92af | Bin 0 -> 772 bytes .../6aeafb823a606e97ab896a5fde5b2e771b1ddd86 | Bin 0 -> 772 bytes .../70dc0d37f73f8aa50ca695b4f54e16ec694bed37 | Bin 772 -> 0 bytes .../714731f02b06f331811f54cd92dede72377d6e7e | Bin 0 -> 772 bytes .../72a401ddc314e9cdf3cd79080610a57cfedc47ad | Bin 0 -> 772 bytes .../81dd1ccd2485b5f87a1bc69c337fbed7b46bb208 | Bin 0 -> 772 bytes .../8479d72571edf5016e1ea108d9fe5cde9aefb212 | Bin 0 -> 772 bytes .../92ebd373b454fa4569a884216e0382de5505a629 | Bin 0 -> 772 bytes .../93cd53951a9d66d88c5f67223becf152b59fcbdc | Bin 0 -> 772 bytes .../9808dd01e64b4afef70b73e36c4b535dd1cc66c5 | Bin 0 -> 772 bytes .../a5c1794fbf1849e99591df8932fdd396605e9738 | Bin 0 -> 772 bytes .../a5df528e8b43462969b8b861342a1d61a0974275 | Bin 0 -> 772 bytes .../adc436cfb531505ef07ebfe262cbde69d33a1719 | Bin 772 -> 0 bytes .../ae43d3634880e8325da476ab4544faaff31d3165 | Bin 0 -> 772 bytes .../b64e63f278751a31b4bb63044b680811b0f6bcc9 | Bin 0 -> 772 bytes .../bd1b8656218819db11065037bc8681fd2a113bf3 | Bin 0 -> 772 bytes .../bd5fb0e7e72fb293d516857246e3b94941b76517 | Bin 0 -> 772 bytes .../d6350f4e6eaff1726c48e6b283bbeae4f5b30468 | Bin 0 -> 772 bytes .../da6321d50123e1d0ed6352454d69ec4dbf7117ca | Bin 772 -> 0 bytes .../dd618d63065009c9812b2834e623ae90cd363c1a | Bin 0 -> 772 bytes .../debf636b4ae4c2b7ce3a14e866777e4a1bc10594 | Bin 0 -> 772 bytes .../e0fe1c95d8361dee4a3f5e68685ea864a86ad0d4 | Bin 0 -> 772 bytes .../e4913cf245772fc597307400caa868f3da21a8f6 | Bin 0 -> 772 bytes .../e59c6ea9ea826b971d264afa117084272fe3b58c | Bin 772 -> 0 bytes .../e7e70c300f83ca4e989a2e0ebea9d89b22a6b2c9 | Bin 0 -> 772 bytes .../e97d00e4e1fa9804afd6f54dfe6f9b51d3245ac3 | Bin 772 -> 0 bytes .../eb9d4867ea92f1abccb3495e9976bbd297df3f82 | Bin 0 -> 772 bytes .../f82a9473b78b5126bb5676a3437417e3324d9b91 | Bin 772 -> 0 bytes .../oemcrypto_load_entitled_content_keys_fuzz.cc | 6 +++--- 54 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/043170680cfcfff82b302f215a249f3b5dcafef4 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/04a5434a6ccbfc5fd730762eb03b4aedc02fecb3 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/07d8092ab06df623ae6fee5cdc8c980ba5fd7632 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/0a1de0f3c6da0125dcf7573a37a144ffde4d7b3c delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/122d1a11960c26756abee35e8e00f651ab83826b create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/1bac9ff28790816e80d3f7f2c87f72c3d5485987 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/1c2e50d75ca628b62b3b05ffe17dcb0bd815074d create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/26dd022e20552f6c36def4f19eed5954e9ecbf08 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/2b900789bbacbb6581ce5eb82cb32c845b74ac01 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/2f0790c9a2bc5ef7075cd503925ee48fc8efd7cc create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/3063b747267c41526835726740e2752b0efd277a delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/30a1c909b57f87d05eebacde8cbf06fe0edb1388 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/3248805594a4813b92c50318c7796358bf4c72aa create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/46e509ae9a53927b3c36f04c17cc4bffb9d63619 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/4c4b8424a2c6bee6e9dc90ff7a6a15fbac31b237 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/4e685aa56f776523ece6ffcf9f47f0a35dcc8cbe create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/4e8535ce0b1c5294f35d4f957effef1532ac6560 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/4f0a52f6a1d4c7115eb75a4ee2da63899ce546f2 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/5439302b2dcb50225ff9eed132532f2ebdd1ffdf create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/54b079a9b59e9c5c0b9bde3a8517c1d7dc06336a create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/5d798c32f5c1e458077509799531cca5ac956343 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/6008f01a62c84227dab6dd3187b4107465ebca14 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/60d8d9532b4dae783871f1befc1a71da4caa8405 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/60df090dd8440f5b29c173fc04e6ac4fd83fcfbf delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/66cd8fa5bfcf0d6286c9879cbc4110d1db64413b create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/67eb049639b91a7ad90147c323f4494d21ad92af create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/6aeafb823a606e97ab896a5fde5b2e771b1ddd86 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/70dc0d37f73f8aa50ca695b4f54e16ec694bed37 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/714731f02b06f331811f54cd92dede72377d6e7e create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/72a401ddc314e9cdf3cd79080610a57cfedc47ad create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/81dd1ccd2485b5f87a1bc69c337fbed7b46bb208 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/8479d72571edf5016e1ea108d9fe5cde9aefb212 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/92ebd373b454fa4569a884216e0382de5505a629 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/93cd53951a9d66d88c5f67223becf152b59fcbdc create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/9808dd01e64b4afef70b73e36c4b535dd1cc66c5 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/a5c1794fbf1849e99591df8932fdd396605e9738 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/a5df528e8b43462969b8b861342a1d61a0974275 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/adc436cfb531505ef07ebfe262cbde69d33a1719 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/ae43d3634880e8325da476ab4544faaff31d3165 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/b64e63f278751a31b4bb63044b680811b0f6bcc9 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/bd1b8656218819db11065037bc8681fd2a113bf3 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/bd5fb0e7e72fb293d516857246e3b94941b76517 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/d6350f4e6eaff1726c48e6b283bbeae4f5b30468 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/da6321d50123e1d0ed6352454d69ec4dbf7117ca create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/dd618d63065009c9812b2834e623ae90cd363c1a create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/debf636b4ae4c2b7ce3a14e866777e4a1bc10594 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/e0fe1c95d8361dee4a3f5e68685ea864a86ad0d4 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/e4913cf245772fc597307400caa868f3da21a8f6 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/e59c6ea9ea826b971d264afa117084272fe3b58c create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/e7e70c300f83ca4e989a2e0ebea9d89b22a6b2c9 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/e97d00e4e1fa9804afd6f54dfe6f9b51d3245ac3 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/eb9d4867ea92f1abccb3495e9976bbd297df3f82 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/f82a9473b78b5126bb5676a3437417e3324d9b91 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/043170680cfcfff82b302f215a249f3b5dcafef4 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/043170680cfcfff82b302f215a249f3b5dcafef4 deleted file mode 100644 index 40f7308c17b94488167e10d94a2bcb24c65faa5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmZQzKm`I&?m;vF6R+!^_3-hb@V@6u?>^k}lB2O`L96lsYYXT1@ty`9vmVa=y3Yz*0L;9@XaFW2vDzrWyP?JC+4N234E7PP z!!=hF%G$#g=gw{S^qj=9||mIPD)#y3FY2cYp``qAkOG<6MV{26Hc9cX+g7lXQhrtSqAp8*%?ALjt)ONA diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/04a5434a6ccbfc5fd730762eb03b4aedc02fecb3 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/04a5434a6ccbfc5fd730762eb03b4aedc02fecb3 new file mode 100644 index 0000000000000000000000000000000000000000..2f4df33cbf5772e10734913f32ed34977d8b2525 GIT binary patch literal 772 zcmZQzKm`I&?m;vF6ZbyUw9Rjw*aqvA>{&YN1U`IAJAQmA|GbOO8s@Y(7XPz-xOmax zZ;wLlms+p9zlE_Z17yj=99k?gO2(^d_4ZzGhj0Rxh>!a39+bi*`T5ZLuzrBxF z^{!*OQgc6&=co3D{D2MLbLFMsOh?RapO&-GC54T<#=tqeVyj+}fd(5!pw`}J~f|HboJijuD^+wH{+wMRET zE*=(!Fta3}0x-S-8b1Jy57UoM!y*S}P6L|08EE_+XnZIagSvpG?gbj30UB8_dlk_5 X7zRQGEYQ>ipz$-%_#J3`T;>7*t!|>3 literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/07d8092ab06df623ae6fee5cdc8c980ba5fd7632 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/07d8092ab06df623ae6fee5cdc8c980ba5fd7632 deleted file mode 100644 index 75ecfd609cebd6248959ec81f2511eaf7ec409a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmZQzKm`I&?m;vF6E_Ld+i#vGcxN&Zgl>4`F0yoVOf zF5&N&uliTBsCtb#%ydRH05k6p8i0xax&L!^f<;vN!W|78_R2|5)$t72zcxI0-@*E; znr6DX29xiLjxn!A|^BdGw(1OfQi55|Nic>`J1Ax+`OE6=2DGC zb6(#x2o3pu$u7zMvB-|KftS?042w(Fp7`}VV2(!MIVPw*%xC~+-Vrna6K`>p&t4V9 ztib+w1&{ir$>RRjqP1JHm@}K|_cu>yX*<*|t8B1xQDxBS3C;WC+RId#q4wy;$Hl|K z5N4JHQ~<^|K;s9X@nQPW=?pY=4QTusX#5>$d?*)#x`3wc1sb0L8d)&+E1>Z)41@|; Ups5Q$<7c4pJJ9$r`_Rn?040=@WB>pF diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/0a1de0f3c6da0125dcf7573a37a144ffde4d7b3c b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/0a1de0f3c6da0125dcf7573a37a144ffde4d7b3c new file mode 100644 index 0000000000000000000000000000000000000000..7d11b56851609e543bff92c02da903d3d31858de GIT binary patch literal 772 zcmZQzKm`I&ZgPHJNorn6e0FMOd}d0#Ax!+?8s4{MDpDPpov$nNuX;Q`R=6|z&-!iM z;=5;L{n=H$COPM6EaXB z8UD?a4}PmQ?pm-VP43adwg1v(->24Ld4GPfpf-@qJLmY)1}Lugc8^7F4VB))UWJb1G>Z{`0tt8W|2%2)4EJ|Y&U zDeckL5zY*?M>jq$9u|f$vm~GbFunmAKLCvn(~nMPps8y>u(C1C8H-#>ZtY01U{N0{{R3 literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/122d1a11960c26756abee35e8e00f651ab83826b b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/122d1a11960c26756abee35e8e00f651ab83826b deleted file mode 100644 index a50f565261ddfe98f394a7e12c2f98f5e47cf1d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmZQzKm`I&?m;vF6L%Juf5Va>W%tC@N>trD`QF22Y+n=vZe*|R&)UCF?$*I*1=RHQKMNDV_X5L{m023EFS9JAK7@p196 zFoc;U0TqDp4bb=jXndG{bUFh~T>~0_1{!|{8XwBVpe~@Pdx6GhfJPR~{R(J&3{0=leE^`6rb(gCE diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/1bac9ff28790816e80d3f7f2c87f72c3d5485987 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/1bac9ff28790816e80d3f7f2c87f72c3d5485987 new file mode 100644 index 0000000000000000000000000000000000000000..af5021de64012ff3781882323548ce4da4bc2746 GIT binary patch literal 772 zcmZQzKm`I&ZgPHJNorn6e0FMOd}d0#5lno^=Ba-ioMjXC|B>1C_hUza5-$XgPHZqc#|X8E2@Sx^JB$Wk;>XsP z*G%60to)d-@4X4B#mk!$AKh8*@iitQV?*?oMK@7M?T+lZ2m^VI?1C@8Oi+86 z(E!Z6BWM67KKCYL%Zz{LqLjP#NGRIgHLZAgXlgN!M}x{g2fK%#uKvmmKU;HBV;RGi z#ZfXQDKib3q4wy;$Hl|K5N4JHQ~<^|K;s9X@h@IEmi8jbvo|ZxcimQ=;#pT;XtXmt zZcENUQ`dmTpMl2TfyTdo>HL-z*R2*#xpn^5j9wL%-uFW59XJ2maRE);3p73hG_qjs zS3u*hOX4~rtdqI#-;^?joJ$E@`n=V7675G_EYQ>ipz$-%_#J5cZ|hiuYlO1fR?7ZQ R)R-o{&L*eES!}h~LICOI$b|p^ literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/1c2e50d75ca628b62b3b05ffe17dcb0bd815074d b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/1c2e50d75ca628b62b3b05ffe17dcb0bd815074d new file mode 100644 index 0000000000000000000000000000000000000000..613b52f6a255027e4bd130c3748e885123c3f757 GIT binary patch literal 772 zcmZQzKm`I&?m;vF6Zb#r!1KHF@|Rn)!`w8&m40Qp>KyFo`M7BAO4pKD1+ELnLh63* zU0};MJ&`SQk6Cdk%ydRH05k6p8i0x0?$K|X$P#>D-}SXE%b(>)tXkT4$6I=>oJ{l5 zn|D64TzX@3uVZzC-T|HjQBL+;>5Ys~i>WO|f@7EYOZ#j7MmBR5y=Tz6FGehmsjgO0m zg(1u=38(;!Z-B-RK;y&oqth8^>Kf4aGtl@u(D+a;26X{V-3v5612nQ=?pHwLV;Be( Tus~B6fX2^2<9DF(ahVGMP2rdR literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/26dd022e20552f6c36def4f19eed5954e9ecbf08 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/26dd022e20552f6c36def4f19eed5954e9ecbf08 new file mode 100644 index 0000000000000000000000000000000000000000..e80b5766fab03f81d9b5ec0dcaf5967420f949ec GIT binary patch literal 772 zcmZQzKm`I&ZgPHJNorn6e0FMOd}d0#5llS2is=FWMlGZ2m>2usvgv3X-sgRC)%BbA z|D3B0u8jy@baj>II{(*~rq9^NxY4V~7mB)OI@U^Dh+_CP7cHz%?sc&Tcz-?c+K334T_4T&r#xU2)!Z zyFBnv#|n=)W~e>7@p196Foc;U0TqDp4bb=jXndG{bUFh~T>~0_1{!|{8XwBVpe~@P idx6GhfJPR~{R(J&3{0=leE^`5#DVocArHiiw%*?4HGRSV=|VoTceoFAE{#g$4b|l; zxWrm&@V2z>>nCXmY0A}7HGyoH4dXiab&NXpDv0o#r;#4i`JDeMio{_)zWo_=K zKrNU3e&Q+5`>cBNPi!f=<*Km8p@|`zl9=uX&e6q^$@b=K?{K^e2FCs^5Mc!f2_Wqd1_W`^3M8y^=B z3qzP$5>Npc-vEstfX0XEN2fE;)HR^-XQ1(Spz)zx4C(@!x)*4C254l#+^>Mf$1o5o TV1cGC0F9r4#_vGm<1!ZjNRF5+ literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/2f0790c9a2bc5ef7075cd503925ee48fc8efd7cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/2f0790c9a2bc5ef7075cd503925ee48fc8efd7cc new file mode 100644 index 0000000000000000000000000000000000000000..900a20192d10034ee2e0b1c2c753356cfe05d331 GIT binary patch literal 772 zcmZQzKm`I&?m;vF6Mvid_kiBr8QQ`hrXHF8U+PJY=}y+TZ{ksD+cdWe-r?Q%+0?IT zXQ6l8=1%1@Y0rb(V5T#o0hoD*&;U&Qa8XUU!@T0%F=;n8NhkANEj-jNuPgd?b3@_0 zOQ|RN?2ht2n7Bma{^a~j<+HnOV~QD}7BQg#xOs8zw9Ft4vUPn9%^tyd!7;Ca(N@&gCHa zwe1q^aw67=`_JEt<)6%TobkWKf4aGtl@u(D+a;26X{V-3v5612nQ=?pHwLV;Be( Tus~B6fX2^2<9DF(ahVGMZ_Ss? literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/3063b747267c41526835726740e2752b0efd277a b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/3063b747267c41526835726740e2752b0efd277a new file mode 100644 index 0000000000000000000000000000000000000000..41affc3841664604495ec1f6444c17de0d69d40e GIT binary patch literal 772 zcmZQzKm`I&?m;vF6Hk!Nnl8Py%q-H||9shzEepQs=@iXg)wO-);hi}(B_Esu@9l}< zea3C)lUu_2Z=%KrnCXmY0A}7HGyoHC@48#{!TZ|j`?EWJHio_rb?WurR;%SgIuq0$W;6gZ?+6-ziMv0&V;oh# z^X%nidc|MZH;G)`BqsZz+NLUN@up5k)z7UrR_!V&zRj;A@L0$&^oY?VW~e>7@p196 zFoc;U0TqDp4bb=jXndG{bUFh~T>~0_1{!|{8XwBVpe~@Pdx6GhfJPR~{R(J&3{0=leE^`6SmzU)L literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/30a1c909b57f87d05eebacde8cbf06fe0edb1388 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/30a1c909b57f87d05eebacde8cbf06fe0edb1388 deleted file mode 100644 index 75c873c105d402b13d5e9299756e8e8cb925fb2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmZQzKm`I&?m;vF6VHFYSJ*m8c5}K|!?RZ@cAnSXspsdrvPkUP{#%Ag-R`Wkk-ks7 zve?B1(Z!eLG;9-KrZb`en0bfL08G4N>cw{%6R&Tc;31jun{C>a{wZ2)tPc-VU;B2* zN8;2p$5^prv#$5aH}D3q@!sm6vXBvK5fd7KnRgfsz{JZw)?2-GoW9&G^N6IwRRJRh zh9^NuEKb=6wF0NciWt71(-gu4rv`)?4RcgH8+|LwYY`-5c)%0Ft!uWtCVZLxgDQci_{_`h#X z%Wvsmy`Gd6aWqCBW;!DpfSGp)4Zy^gh((lVB|bPQ`IynmOF_0u&|QzZTNuwsa%@}1V!#NshzSkA%sY$*VB*uOO_HRy+nu>_Cv0I)Y1xzI z!9V{s<(#?3XQj%#=k-4$`Q@9Agb9h1O9y_Plu%?{$pp2B84bY9JAwva;@?@U+_&W@ z|J`*}Z1rLBh;?tY1n1ni8`9UWzMl7*#5bMbN&c$#p&D83&r)Aqz9_H847Eo$J}w>> zhA^`vpaL+y0UAF5jSth0PG_L0Ye3`AK;!Q~<3qU^)CDwkFVOf5(8z+hUjdDeVIWk% U0!>{28b1S#-+{)5*@tdE0JVRUBme*a diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/46e509ae9a53927b3c36f04c17cc4bffb9d63619 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/46e509ae9a53927b3c36f04c17cc4bffb9d63619 new file mode 100644 index 0000000000000000000000000000000000000000..8ac3bac6821f1bb1a7058c3ee296d3a27ce93296 GIT binary patch literal 772 zcmZQzKm`I&?m;vF6K@ui{qb!1o0|*g|ElxK)V~rZc-LOz&zC^$*X9+vi`AcO$+4ZzGhga%;Z^$O)ok1ia$uz7=n!k3i2MrUgc?=AUmHO0py zY0kd(W%!nE=A=}IJ+KV3(b~%hwTKA~z|1?024Lc`(=C@AC}KOiKtkl=@^*8N zBfiyfnQ!Oc`c?a~Mb>DA%>2i-0k5CE^joJ;pUNb@&X@^m4>KBonRf&Yz{Dp8>%2=p zH%Zv-(wl9b&)$39)wR0Nygv4gxq+sXEbN*6Aipz$-%_#J5ckd!%|Y^P*)o4-t0&Sc%fbi+yC;?CAW832>Z B$VdPH literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/4c4b8424a2c6bee6e9dc90ff7a6a15fbac31b237 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/4c4b8424a2c6bee6e9dc90ff7a6a15fbac31b237 deleted file mode 100644 index baadceb0426e57926c27c87645a0f018c4746451..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmZQzKm`I&?m;vF6JPk|$Hr{UKf5^(vPrc6`Z+a&DPHg4lqk)$m)XB{I5mCEXWUmI zJE7HfX8VDYtv+AuV5T#o0hoD*&;U&QW%Uh?t21if$4?7UgP}br`#^m1q3mxnGS3?3{FFSe#raF^1vAth-T1h8 zSQx_0l7I@p_y%bF05m>KKRTU(rmg{vKLd@w1C0;mVo(>*)V)CCGe9E?=6(e|AB`<7=-m7evhEpW{`RsMV2GtYppy_ z7_5^zGecrp>N`)_-ARI0O7Hp_gBYO}F`)sNd56&eOg!kVb;J9=CQ90KR(i}@`D&f- zvbcLa-3KJE3X0V3`WyAV;$SwfgUMI!ORbHUbSknKnV|MCqXC$CN6-LF+}Hg|*h@Pj zrM2usvgv3X-sgRC)%BbA z|D3B0u8jy@baj>II{(*~rq9^NxY4V~7mB)OI@U^Dh+_CP7cHz%?sc&Tcz-?c+K334T_4T&r#xU2)!Z zyFBnv#|n=)W~e>7@p196Foc;U0TqDp4bb=jXndG{bUFh~T>~0_1{!|{8XwBVpe~@P idx6GhfJPR~{R(J&3{0=leE^`5yOr2Q( literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/4f0a52f6a1d4c7115eb75a4ee2da63899ce546f2 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/4f0a52f6a1d4c7115eb75a4ee2da63899ce546f2 deleted file mode 100644 index 0cb574d018e9180febc6a58936471b14690553f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmZQzKm`I&?m;vF6WZD4HT zF8}z_f~6PPP1PMTRNXGb2&|EHn(FhiYW?)*^X{qgUu1&X!;A)C<{d!;FmZA2&`+-E z(|9FMyD>?|tc;pAckYgx&pbpG_*4>kPp=D1u$}$PJMP)J9o6A;dhT1NGehmsjgO0m zg(1u=38(;!Z-B-RK;y&oqth8^>Kf4aGtl@u(D+a;26X{V-3v5612nQ=?pHwLV;Be( Vus~B6fX2^2<9DF(VfLY$4*)K2m-zqy diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/5439302b2dcb50225ff9eed132532f2ebdd1ffdf b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/5439302b2dcb50225ff9eed132532f2ebdd1ffdf deleted file mode 100644 index 7791234e8da6795b396e8cc90f35e21df42f0d6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmZQzKm`I&?m;vF6QA(%>rC~Vi`ve9&_D4&Vy46n3+^aOoBK5@_lWeeJh_$nQgw;8 zYObtoVgKVf%!X&?z)WXE12FRrp#hkYz*0L;9@XaFW|yd>xRWhchU^UtN;ik&=v zmggAzuIP@Svi&!7L%4tK-W;{)z<-6mjTJ2^2?r+}Op|1S+QW&g93ry{9&v?M-Idoc}HD@~*B(S#D;iJ-YF6 z@vtz2nI!=gfbk8`_yK5qn0|CR15I568h-{Fe+L>L%Eh2Aps9O-#%F*=7R>z$XnYI< Up#m0Y>H^UC8EE_tG(IkK0W-Ls)Bpeg diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/54b079a9b59e9c5c0b9bde3a8517c1d7dc06336a b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/54b079a9b59e9c5c0b9bde3a8517c1d7dc06336a new file mode 100644 index 0000000000000000000000000000000000000000..1c6aea4e2455ddfc8ee293c3280690745ab20fb9 GIT binary patch literal 772 zcmZQzKm`I&?m;vF6R+OGJ2`>#%M793I?D~co2y-QB36CAP(4r2Gbj1;#$_j$KJ(81 z=EmWkSrAvl#eX6SW;!DpfSGp)4Zy?~Rn%n9^zX|1zG`!*!RK9@7BVxwUNhlwaVh7P zh(lj&c3b;RQILNxoOa2F)zI|e#+i&ziKf4aGtl@u(D+a;26X{V-3v5612nQ=?pHwLV;Be( Tus~B6fX2^2<9DF(ahVGMB2Ja9 literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/5d798c32f5c1e458077509799531cca5ac956343 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/5d798c32f5c1e458077509799531cca5ac956343 new file mode 100644 index 0000000000000000000000000000000000000000..43950c9e6d843748e383adf96dbe37036790619a GIT binary patch literal 772 zcmZQzKm`I&?m;vF6BoMvX4(_MyOnComup7UG(Ir@- zUw8P9H>;d&Ojx(~_4=tXxtG$emxf7@p196 zFoc;U0TqDp4bb=jXndG{bUFh~T>~0_1{!|{8XwBVpe~@Pdx6GhfJPR~{R(J&3{0=leE^`4jtd`aQ literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/6008f01a62c84227dab6dd3187b4107465ebca14 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/6008f01a62c84227dab6dd3187b4107465ebca14 new file mode 100644 index 0000000000000000000000000000000000000000..2f0ec24cd8bd234f92cf36f77d07954662df47be GIT binary patch literal 772 zcmZQzKm`I&?m;vF6Sr8ACb@Aqwuk+fS*QG3vpLsp&MfL6l zJoEDp?F)(N=v^#-1!g)U8i1L12o1o*4Oup1M_xFiTyahPsA1C7sUd5(3jBWVCi=eq zPu?XVn|;?WpNf5|IQiYj=L!izi_Qx%LM>uK12FRrqXC$>L*L?ngC-lFcW(OTq9~pJ zscB_`@01mSzgENv>M*HCMtys{>v}_IuIu`VfyXBnG96-q+QW||mIPD)#y3FY2cYp``qAkOG<6MV{26Hc9cX+g7lXQhrtSqAp8*rCpo5;lLt&;fq5+tBhtL2_{6a&cWjCI{jbmQaVVPOa}O9CnY;~Svy1JL*|{pfTCnz{xw{tPt!4m3WLi$PsLQ}+Um g&j5`qnEMsb_!tI41uW3i1)%XW(D)r_d|c)N0DNwcFaQ7m literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/60df090dd8440f5b29c173fc04e6ac4fd83fcfbf b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/60df090dd8440f5b29c173fc04e6ac4fd83fcfbf new file mode 100644 index 0000000000000000000000000000000000000000..72c00efa0a45affacc5a2e68216a3dec118c0fca GIT binary patch literal 772 zcmZQzKm`I&ZgPHJNorn6e0FMOd}d0#5lozUl5|jL>xX*Znu{6-LnFH`8^u`~*;gi< z6v_8{Aj0;N;eaP+(uTylExvO4%lv9j!%SyH12FRrp#hk9*{VBzo45B*oZ`OxMd}yJ z->FCKzJ-N4-T2oiY1IA3Q^KcDFx}pNg^*H(>g_r&e{V*pMNDV_X5L{m024pwlz)h0 zN>!7i+RXrV%Y>`)UVm)E_wL>%rr9a-^>6q7g&I3*Be-WrE%6W!x}bU3kqK%KGa7)I zcLWW<#BX`|9lgrD*Gl3^pk-%1_wDk4sdtZ87QFuV-C1JiBHO59<+8W@hR;3))|yq` zJ#_UHGt?g4__%mj7{bhwfC|9)259^MH2%cTe{UB%v2s0~c)wQ4A{28b1S#-+{(|9DOqKF#AL)t1GV_`hLkdir z>Kbt;nThFNvDU4Ena+p?VCEe{12FLw0jGTStm`>s`PQFzQSHv#-_G3Klv8Owk*!o@ zi^^5c8?SCUG|yRdp*6Z*GOTppOHoFsMNDV_X5L{m027~bO($$()uqS#5_c?GIAQzK ze>LtoufN~CFwHacZFj`$Ek$V`Pu2aqS9AE-`Vy{+k19-1dzjGx%)BFL04DzMXrX%Z zLA!(7&ipDo&wJhPsX%7@XP?=3+TZ#<3wv`ZeuL_fkgIBb&lW_#_Ya;PK7ko(k8XTi zJS+@hW=TK=V0;5KegGODrXQWoKvUO%#-D-4-+{)5*^h4D1vGUp(D)3{$b#utK;y&2 X(e1N9Qx|~7&p_jMpz&emqT2@mE+wK) diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/67eb049639b91a7ad90147c323f4494d21ad92af b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/67eb049639b91a7ad90147c323f4494d21ad92af new file mode 100644 index 0000000000000000000000000000000000000000..1c22e83b4fa92a016d9eebe58a438269d0b955b6 GIT binary patch literal 772 zcmZQzKm`I&?m;vF6Bk|JHpTwa=Wv?|zk17~&3)JJVE+G%P2=)zshhVP*lVV)=fB#| zKCk~o^U{P)OP3UOnCXmY0A}7HGyoG1lH}9$_qgNnoPRO@j3Y0W|9X%#Yw5la^SJL* zPVP+dk^ShjD%m4Xr8GX3E&s#pv#yL#igJv zL&)_xqH-cnH}BiB*4(Bm`DvDdRo>iMetv}_?t-7nn-!)k@XV;N*4-A%47Eo$J}w>> zhA^`vpaL+y0UAF5jSth0PG_L0Ye3`AK;!Q~<3qU^)CDwkFVOf5(8z+hUjdDeVIWk% S0!>{28b1S#-+{)*Wi9~lzmos} literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/6aeafb823a606e97ab896a5fde5b2e771b1ddd86 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/6aeafb823a606e97ab896a5fde5b2e771b1ddd86 new file mode 100644 index 0000000000000000000000000000000000000000..b0ee50d333cd657c5bee204676d609a2e33dc936 GIT binary patch literal 772 zcmZQzKm`I&?m;vF6F>g&bNRnQPQQ)14Sp}xB>ZwUybmmm6w8#4dhqnxV>=#T_j+I{8q`J*;>EaEVY9(CB0TO2-UM-f|;>85DhZzmP%sYYxVB!;87j?M5 z=nj)u$$v%cqGytoZ}7GAi^}eG1uJLqGThlGX8Y0SWt+y6jH+##hm#loWro_L8y^=B z3qzP$5>Npc-vEstfX0XEN2fE;)HR^-XQ1(Spz)zx4C(@!x)*4C254l#+^>Mf$1o5o TV1cGC0F9r4#_vGm<1!Zj@}QX2 literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/70dc0d37f73f8aa50ca695b4f54e16ec694bed37 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/70dc0d37f73f8aa50ca695b4f54e16ec694bed37 deleted file mode 100644 index 4919d3e9df55a542d6070620f123c17fce59470c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmZQzKm`I&?m;vF6Xz*C$(I&!<%IQXp@y%LT-MQ&J&PTVXle*Wdfx7sHkGsGwBNbh zH#^hTX&k-m<~x5m%ydRH05k6p8i0v+EjKt7$9I^`{Zf*O7Ek8fO6v>vq7U?|%$ajX?-AO6zxO!rFsb=i{9bWk_Jei>OFrxvOc}LIyO#G+u{HK=% zZZ{PvxxL+@`clC&k>BI&?X7G7hW&Iu>^t>QfWKq*&U0&Q3)&d0^ec8QW`^3M8y^=B z3qzP$5>Npc-vEstfX0XEN2fE;)HR^-XQ1(Spz)zx4C(@!x)*4C254l#+^>Mf$1o5o TV1cGC0F9r4#_vGm<1!Zj7lfFn diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/714731f02b06f331811f54cd92dede72377d6e7e b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/714731f02b06f331811f54cd92dede72377d6e7e new file mode 100644 index 0000000000000000000000000000000000000000..ac50b91522dfc917d3c142d55578a1b66a9c6afd GIT binary patch literal 772 zcmd1HkIzo6WPk%UDC-~^5P*u$%sXa!-2LaotuDed-^om56_HuAVluB(;q<*po60`j zHT-et(nG!#k-iHZo}8E|c+L!FFe4g(nRf^cz{CTD(%WiWOnl82C3uD2tkv-RVypL0 zVcuefV`Xn^mA(fmpD8-Bd%{|a$1JaU-{jaPFhVV2LIW`K4x<5>c-g6;@d|zdEQ+~s(tZz{i@3oJeDv+ z?a_^oi-(0FEN&#A0x+`;(D(spe3*W8Is;8z0~&t@8h-~GAIim`E}*GAJu}0nV_ja#``<8nwW%+vRT|zs|bVf7)v*!>RfQj=dZ}UE$@ZZYsM(EYc z|IQs<^}qF>!dvSn|6Cqdzdczt^Tx7&s}7btx_hl&?zwzo`Y%SPMNDV_X5L{m028;( zGj}liz!5JNyy$8Bei8d>qZ~>24Lcc9L%qX=-D6G=jkupb$WWn-w#jupZ`6_aN=)KOv2Q(jUmBj*RFZ|PS>&O zTu5bd;d5rFJ-YF6@vtz2nI!=gfW?Ucln;{+K;y&oqth8^>Kf4aGtl@u(D+a;26X{V j-3v5612nQ=?o~kJV;Be(us~B6fX2^2<9DF(ahVGM?kAD% literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/8479d72571edf5016e1ea108d9fe5cde9aefb212 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/8479d72571edf5016e1ea108d9fe5cde9aefb212 new file mode 100644 index 0000000000000000000000000000000000000000..4b8218a7c74e6606b98c2165e0488e41c60349dd GIT binary patch literal 772 zcmZQzKm`I&?m;vF6F>Vy@%e$%DM~Kl&z<}Zhqc&ydWp;bXH>{{S#VuwZ*9rOXr-wv zo~1`Wsj<{tt-84jW;!DpfSGp)4Zy@VTc}6>e7dvrsi(%~*&7;fewxOs(Vk>^Xl|70 z^!1x6KQB4CxbFBBjg#pgik+Kud6O z!VqSb1XKXVH$dYDpz&e)(di5{bq#3z8EE_+XnZIagSvpG?gbj30UB8__bZ_BF${zX TSfHs3K;vhi@jKA?xXc9rX-<{= literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/92ebd373b454fa4569a884216e0382de5505a629 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/92ebd373b454fa4569a884216e0382de5505a629 new file mode 100644 index 0000000000000000000000000000000000000000..651de5da656a4a4e5e5226fc491f8b9b96e11659 GIT binary patch literal 772 zcmZQzKm`I&?m;vF6W3oY&2-XVL%m1U#yT#gh=;jX$ez9Q*}?;6JWM8b@$J4Ro_zn6 zKK;PLn;#?QC$i0fna+p?VCEe{12A!;2^-c(95`&b;IVn4(TRdwXXi8%_5iWXCp^RW z99Udlnn^e=s+5`f#lSXd;cflRvW!rRn9u;syu)Y!CjRt{YgR${Th<(TxlL6^KRl}T z(8&#ti+R4?s=D%D<52-+-}3DpEiX>(@vBRC8r)#d1ht154ZzGhf(BsXReR1&11wK+_(6U3C6q4wy;$Hl|K z5N4JHQ~<^|K;s9X@nQPW=?pY=4QTusX#5>$d?*)#x`3wc1sb0L8d)&+E1>Z)41@|; Sps5Q$<7c4pJJ9&J%mn~toRdoc literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/93cd53951a9d66d88c5f67223becf152b59fcbdc b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/93cd53951a9d66d88c5f67223becf152b59fcbdc new file mode 100644 index 0000000000000000000000000000000000000000..93314a09df993466cbbe89daad452f43ecf0f32b GIT binary patch literal 772 zcmZQzKm`I&?m;vF6F;oiv9hV_%9&@8&$szFscz2iT{~q$gwEfDABL)Y`i_6@Oghu` zJ~VQfzh>-oe*uflFw+^)0L;8YXaFXDL_y`v%B^SXf-B{&9lYLiG%~;9TiNFRZ;T#S zwokP=Gw<KBonRf&Yz{F=o@E_^i zm%q*T!iQA}C2^h><&T%@Uk~&YdvQ_b=9}kjxx)LeF}$!hZVtI1b;;E^mKkb~ZhTxk zEDT|0Nk9c)d;>Io02&{rADzxXQ`dmTpMl2TfyRe&F{le@>RzDn8K98`bH4%_AHzVX TfCZYm05pCE8ovXLkIP&D+^?OH literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/9808dd01e64b4afef70b73e36c4b535dd1cc66c5 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/9808dd01e64b4afef70b73e36c4b535dd1cc66c5 new file mode 100644 index 0000000000000000000000000000000000000000..950e043e4d4f9027b569539f7e9c51ecf29928ab GIT binary patch literal 772 zcmZQzKm`I&?m;vF6aTfsHSUGuDwkDlyi-$OoLW)p=#%xL+I2;L)vNkdY1v2fj?PZC z$*|%&Vftcc+}xv0Fw+^)0L;8YXaFXD-sbRS%_{aI`JXaBGG8_{5wTD3-jH%qZfjr1 z-oANzdm|NlKN>yGSaY*^X6!Au1~W#eMNDV_X5L{m0280cUFjrjdgtcZ+nyr*7kCcV zuWjnBefq;I*!1O+?H_o~zX@AcQlGMKf4aGtl@u(D+a;26X{V-3v5612nQ=?pHwLV;Be( Tus~B6fX2^2<9DF(ahVGM7EGNt literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/a5c1794fbf1849e99591df8932fdd396605e9738 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/a5c1794fbf1849e99591df8932fdd396605e9738 new file mode 100644 index 0000000000000000000000000000000000000000..cbaf7cc7d0cab3b391dd7147118c9bdc615c9503 GIT binary patch literal 772 zcmZQzKm`I&?m;vF6SwpK%~M=-WbT8?yxhXO-_A__|Ff3&e-4X^*`9yppU*S!nrtbU zC#iEH?bf5}z&7V{nCXmY0A}7HGyoI7zv+f9=hM~3k@{C+3g^uXoN@f1^^?q1e~Q$$ zJW!qZV4~Rmwar(GoEq$JW=!~!c-f2*Y7r9}fSGp~4Zy_tcKQdONjr2~vR7@2HP?#b z4DJ(6s+DWw%2uAevVcdX)9c>RGcqg!iCp`x_wHA1oy-KahZzmP%sYYxVB)(b)J`&$ zdG%%f$%jt@nRFaK*Bs+A-K3Mj?mv6A_+*1yW_LH@$H@eR=U0cd=fesnqmO4>zd<+Aj T0v2fM0?_ywX#5T|J}z?s6{4DB literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/a5df528e8b43462969b8b861342a1d61a0974275 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/a5df528e8b43462969b8b861342a1d61a0974275 new file mode 100644 index 0000000000000000000000000000000000000000..a820254e2dae3827bda374d1b0c4909d06353d19 GIT binary patch literal 772 zcmZQzKm`I&?m;vF6aQ8JtK)9Nkt10;O5*44K6$c`wMLd(VB*5{yT!K55AN~O+aI>+ zAROzGp;8nvc=gYFszMWB>wEJbBvv(8I6B#C`J)R5^R z8~M`wti?9Q@YSnBs%swfDH*9<_gCH9c4qMg*Bd5kyk{;+Du2Gh#N)^Gj~Qx@ZhTxk zEDT|0Nk9c)d;>Io02&{rADzxXQ`dmTpMl2TfyRe&F{le@>RzDn8K98`bH4%_AHzVX TfCZYm05pCE8ovXLkIP&Dr#YCw literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/adc436cfb531505ef07ebfe262cbde69d33a1719 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/adc436cfb531505ef07ebfe262cbde69d33a1719 deleted file mode 100644 index 23877f24b38ba7cd7d67964889c4630581becb24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmZQzKm`I&?m;vF6BnKGSIjP+OaENQpS>bCt$p&>-uJX~)D5C%J)BkmAHEh;{na+p?VCEe{12FLx#VbqJU7I3eCbuYg@k*rwbzOBj@27B-IEe&p z6^?D2zM7?@{K}&b2_KDSP7yHLKZg-&5fd7KnRgfsz{KCCM8(f?3*BSh*sh(h^~`6j zZNBp&KV)2t$)2Sc(mr4KOZ$DKfyUo~#)on-s0(Q7UZC+AppgZ0zXBQ`!$7Ej U1)915G=2sezXOdAvk%>T00-cdYybcN diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/ae43d3634880e8325da476ab4544faaff31d3165 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/ae43d3634880e8325da476ab4544faaff31d3165 new file mode 100644 index 0000000000000000000000000000000000000000..d99206f0a810a82513369a0c1cc056348cc10377 GIT binary patch literal 772 zcmZQzKm`I&?m;vF6OZekc_{kJ^(*Sz=FIOhvAf4~Y08)Fg}n~WJ-WpjwLYO)#3En-3gF!K(h0hst|#yz**ZF^L{d(Xr2LqF8) zYZ|g*UL^`Yh)7sA}^Vs_AsLXn0ZIg08IS)f)8I> zn+%`qJ-#i<J-YF6 z@vtz2nI!=gfbk8`_yK5qn0|CR15I568h-{Fe+L>L%Eh2Aps9O-#%F*=7R>z$XnYI< Up#m0Y>H^UC8EE_tG(IkK0f|+hL;wH) literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/b64e63f278751a31b4bb63044b680811b0f6bcc9 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/b64e63f278751a31b4bb63044b680811b0f6bcc9 new file mode 100644 index 0000000000000000000000000000000000000000..55d7039d7f26d9d361eab7bef83b1dc766d187b2 GIT binary patch literal 772 zcmZQzKm`I&?m;vF6YqQK!FN;nNx;FY96SCT{;H&CapejBZJi?SDVq5`mot8{KGZU4 z^uKLdEioxMbnp4|Fw+^)0L;8YXaFYO&y_Zv>HOW4?T=S5O#Se8O>?>F@uw4~rpI&E zSIqnV%BO4E!nL>VoDOy3|7o_zXB!VA)FLJ{05k6}8i0u}Y%vJga#BS6)?A&9T>0v9 zeYu)0W({UC%^rqxZs}Jt*DOqxi>+PjK^S&}c?O{d(F!PR}0hsu!nnTSm zRsg3@0TW@&x$cT7F$1-xiLfS(T$Ib zhlL@`ED5LpjBkL(4?yF?^rO=mXzCi!_%qP>JJ9%0E(Uc0P2CGLJ_9teVD48y<6{^I U6|g{47l6jkK;w6y@o||80OoL-r2qf` literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/bd1b8656218819db11065037bc8681fd2a113bf3 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/bd1b8656218819db11065037bc8681fd2a113bf3 new file mode 100644 index 0000000000000000000000000000000000000000..7b17d352ba8e70ace9e75130382e12885ff6d9e5 GIT binary patch literal 772 zcmZQzKm`I&?m;vF6Hhu+aNV}Qn`2FwYewt$c_Ou0d;R1@u3R>&aWR%ydRH05k6p8i0xaw+ykq&zE|o`up8wa^HS4aZJ1A@kN;B(2I+PrpEE7GhvAU-%v81Ap9~qH7BQg#n0bfM08G5uXKL$-`i4(Ol7iJ=e{opH zsl9T-VqwkfE%%}~u8NBM$W=7+uS|91q>Myk^=TKKRTU(rmg{vKLd@w1C0;mVo(>*)V)CCGe9E?=6(e?d@Y8XD7 zub9IWe<8E<)`8qv=e#yVcRn#+6Yb9kwTKA~z|1?024Lb7W=*(zRX6Q|NNbtbpVqcH zD)Sc}6Zzbwp!{w5(wM_G(Lpm#sr;#7Gt&{zU{k0)`JV}D4>KBonRf&Yz{DjD@$H@eR=U0cd=fesnqmO4>zd<+Aj T0v2fM0?_ywX#5T|J}z?sj>DRo literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/d6350f4e6eaff1726c48e6b283bbeae4f5b30468 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/d6350f4e6eaff1726c48e6b283bbeae4f5b30468 new file mode 100644 index 0000000000000000000000000000000000000000..3f785b092661536701b19a4b9344df87f3c9024b GIT binary patch literal 772 zcmZQzKm`I&?m;vF6TfYBVg}b#f$yo0Q{EOU^G=&?`C_d0>%h%WW zy)Wc`*UC-&Dzs)g6U=l*GypU25E_7q3k3i9(2!@h_IW`3T(DM}(XVZcP>Yz*0L;9@XaFX@t<3uSR@-wfk4h@GN=O7f z3O>8l`X+nXPWxM;AJ*UAn$iNtGSnHlOI-T1h8 zSQx_0l7I@p_y%bF05twVje@DA+`pPW4>z{GIikbN5UY^Dnot z-gQWKvA2CzzBwoN1sMx8bpdGn3^aZR8o&GgWZ~-hj8!2O$+4ZzGhga%;Z2HQdf3PU57erj}{tZU={HDczOh5Nq#p0n+& zI`jD+@%qUD-7Crx)@iN>TwTBrEz|1>>24Lbheb+9U z@JHu?z)rdRgB&h1v#0CMo3%8Yy*j=#{tpks=ZlIZe8#dH%X=qZeBzM&A%huek8XTi zJS+@hW=TK=V0;5KegGODrXQWoKvUO%#-D-4-+{)5axth2XzE^|@fo0z1#`aw8XvrEYPA!c1pG12FRrp#hkt3~H2@UCuiw+BK{%mvO>))cd_%<`Asp5%usuDipz$-%_#J3`T;>7*YR#6c literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/debf636b4ae4c2b7ce3a14e866777e4a1bc10594 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/debf636b4ae4c2b7ce3a14e866777e4a1bc10594 new file mode 100644 index 0000000000000000000000000000000000000000..bf169c2f718ea0ea933391e846590edea412a505 GIT binary patch literal 772 zcmZQzKm`I&ZgPHJNorn6e0FMOd}d0#5nMbl(qASh^lj7ri&7gSRC67UeK7gMmH#6A z+AeX~o6+y{Ka|M4D4QNSulI1-`omTmV5T#o0hoD*&;U$)`cs~7XFZy_bmL!Y+C0fV z9&|Z)zS;Jc1q}b2bW=}gxOw%|YRul6?w0=9r6Y;yxH}`%A|^BdGw(1OfQi@F@LiAy z>MC7(>Fe2@DI(2R_!M0{oY=n{scse3NjPSj%Of*q#^dDIZ%k+HZrM724-?cLW;6gZ z?+6-ziGR0zxtXbF)8=|1`C0ihOFEZbKPb(yQZA-`$-h$jshg@_HPlq(ZVWGVeE4JU zm(@IHnW6UR#>d6O!VqSb1XKXVH$dYDpz&e)(di5{bq#3z8EE_+XnZIagSvpG?gbj3 f0UB8__bZ_BF${zXSfHs3K;vhi@jKA?xXc9rBlDFG literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/e0fe1c95d8361dee4a3f5e68685ea864a86ad0d4 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/e0fe1c95d8361dee4a3f5e68685ea864a86ad0d4 new file mode 100644 index 0000000000000000000000000000000000000000..a414e8193424bb61a52109fa6304d4125513e8ca GIT binary patch literal 772 zcmZQzKm`I&ZgPHJNorn6e0FMOd}hkQgM3hNvn_}BKX0BPbNCA5M020n)!(~6h#$7h z&2{CkzJEW+qS7&H!2+XQYm^L6-~AcT5jYEGIwKl@*>eaDz{KzUaY(sZ6}{M{c_#0# zqKVr(uDiEtzjB&3uUVCE#i&FXqLhdrIk5A%OKbe&P=%mmNy_tVRLnV|MC zqXC$CN6-LFT#7f|dmiKUyY`QtaW8jsvNN2}C!NvoGt>6=`OvrfT@Ls2)Y*A<-#WrJ zXQq47+tvbRs6D#zaq+M)gqbA)6@bNw0hAAu4?yF?^rO=mXzCi!_%qP>JJ9%0E(Uc0 kP2CGLJ_9teVD42w<6{^I6|g{47l6jkK;w6y@o||80EvN=;{X5v literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/e4913cf245772fc597307400caa868f3da21a8f6 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/e4913cf245772fc597307400caa868f3da21a8f6 new file mode 100644 index 0000000000000000000000000000000000000000..ffe0dc548929372941f90fc5ceb89c8f0c83f099 GIT binary patch literal 772 zcmd1HkIzo6WPk%UDC-~^5P*tb^0GhqIB!35$A-_9hgQhV zXxseraD|r6cd?z?a@lTIqHOoLZG3-<@2QX1rOd=YyOr}Z{T!H?p!P7M0hoD5&;U$4 zfb~_#AuCD07r%DODk;Qit?cfKfyUo~#)on-s0(Q7UZC+AppgZ0 azXBQ`!$7Ej1)915G=2sezXOer%Ul40(VYnZ literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/e59c6ea9ea826b971d264afa117084272fe3b58c b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/e59c6ea9ea826b971d264afa117084272fe3b58c deleted file mode 100644 index e7144919ab91e7611c41a553384182115f5f395c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmZQzKm`I&?m;vF6PNMaxHxi7ukEg-&mO(l>-pcaz4nEmj(XO+__*FYF@GV(#s))o zF{5s41re7=GtR7mna+p?VCEe{12FMr#`pbWYu~B!?$O`$M7R3%i-rlicv*zs%lqss z-+TA9(CeU88@**`9q{+9T6l)@jxQtBA|^BdGw(1OfQe6iAMiDJ2A71}qD?#npBBpe zN@l6jd}?JmeMaQ{w4$ii|2(@CcKl{~BU^T&usyYQArsUdW;6gZ?+6-ziK|{#$+P3W zeQ>&LNz&h_QwPrIDP5KBoj=oh`mXbL=ZgO_%J?>`nM2EPnb;OSzpVJH%usuDipz$-%_#J3`n0@Hx0{{hkmK^{9 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/e7e70c300f83ca4e989a2e0ebea9d89b22a6b2c9 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/e7e70c300f83ca4e989a2e0ebea9d89b22a6b2c9 new file mode 100644 index 0000000000000000000000000000000000000000..8766c31dba1fd42a0e61c295e78c555911f8e20d GIT binary patch literal 772 zcmZQzKm`I&ZgPHJNorn6e0FMOd}hkQgM3i&Lo;WpSSxe|cdbofZIo2uRb5*Ci{sJu zd;N8eS(`;;_5X96yFCA!>-q8{1&e(TY1F_>XG8-qdk&!in0TJvaf|grCc>trs*A3c zseW0d;5VarVdIkfouAlOo%rv6dCNM<`5*oldwbQ03Y@mu#|X8E2@Sx^JB$Wk;_uG; z3H=Cp-=FaLWTN7%ud^O!e!8dkyS-7j>bZI1^v^pprtQ67v_Uz`YU(txibDaG zT5VeLr#4?^hT5YW9~Tb`Lzr0-Pytw+7(n?j`2aLNOg}oEfu^njjXwj8zXOdAt=uT z=GK34J}l~8-tAXk)*lz(P?)mPVMQ||)FLJ{05k6}8i0u>rDf$th}`TW9hy*uZx zL^PdQ_VwYJBNLaY*H!x6GgP+^&}`mQJmFeFt}knO_%0@>Jxbs`z*4ws|{@BZAdio#L`eV^-?JJU8xB8&o2QM>|XUtH0bmQaV zVPOa}O9CnY;~Svy1JL*|{pfTCnz{xw{tPt!4m3WLi$PsLQ}+Um&j5`qnEMsb_!tI4 W1uW3i1)%XW(D)r_e3*Uc<^uqD!JjDr diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/eb9d4867ea92f1abccb3495e9976bbd297df3f82 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/eb9d4867ea92f1abccb3495e9976bbd297df3f82 new file mode 100644 index 0000000000000000000000000000000000000000..6b9777d4ba4096d743b3f0d72f74327046dad59f GIT binary patch literal 772 zcmZQzKm`I&ZgPHJNorn6e0FMOd}d0#AzVB#(qASh^lj7ri&7gSRC67UeK7gMmH#6A z+AeX~o6+y{Ka|M4D4QNSulI1-`omTmV5T#o0hoD*&;U$)`cs~7XFZy_bmL!Y+C0fV z9&|Z)zS;Jc1q}b2bW=}gxOw%|YRul6?w0=9r6Y;yxH}`%A|^BdGw(1OfQi@F@LiAy z>MC7(>Fe2@DI(2R_!M0{oY=n{scse3NjPSj%Of*q#^dDIZ%k+HZrM724-?cLW;6gZ z?+6-ziGR0zxtXbF)8=|1`C0ihOFEZbKPb(yQZA-`$-h$jshg@_HPlq(ZVWGVeE4JU zm(@IHnW6UR#>d6O!VqSb1XKXVH$dYDpz&e)(di5{bq#3z8EE_+XnZIagSvpG?gbj3 f0UB8__bZ_BF${zXSfHs3K;vhi@jKA?xXc9rAr_Sl literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/f82a9473b78b5126bb5676a3437417e3324d9b91 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_entitled_content_keys_fuzz_seed_corpus/f82a9473b78b5126bb5676a3437417e3324d9b91 deleted file mode 100644 index e8bd6793552f69a4e5645e228553f1a8896cfc0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmZQzKm`I&?m;vF6E88TXK;J4%dBMYvlA!XJ(g$f+PZ7UlvIw3w~qhYzN3pHAxdd6 zh4_*jx+nX0|V%v!HJ4 zy!Jctxk87y8{I6AY`OEg=eWqZ^nHv_id6O z!VqSb1XKXVH$dYDpz&e)(di5{bq#3z8EE_+XnZIagSvpG?gbj30UB8__bZ_BF${zX VSfHs3K;vhi@jKA?F#FKW2LQ~(nY91_ diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_entitled_content_keys_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_entitled_content_keys_fuzz.cc index 0714688f..f0a9b45c 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_entitled_content_keys_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_entitled_content_keys_fuzz.cc @@ -47,9 +47,9 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { // Call OEMCrypto_LoadEntitledContentKeys with fuzzed buffers. const std::vector message(inputs[0].data, inputs[0].data + inputs[0].size); - OEMCrypto_LoadEntitledContentKeys( - license_api_fuzz.session().session_id(), message.data(), message.size(), - entitled_content_keys.size(), entitled_content_keys.data()); + OEMCrypto_LoadEntitledContentKeys(key_session, message.data(), message.size(), + entitled_content_keys.size(), + entitled_content_keys.data()); license_api_fuzz.Terminate(); return 0; From ed55c511a3f9182f3bc49a3bf98a1846bf39a51f Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Sat, 10 Jun 2023 03:05:49 +0000 Subject: [PATCH 20/27] Add OEMCrypto_GenerateCertificateKeyPair second stage fuzzer Merged from https://widevine-internal-review.googlesource.com/176771 Change-Id: I8afee6636a44f46a573be5a94f6c12161b57eace --- ...ypto_generate_certificate_key_pair_fuzz.cc | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_certificate_key_pair_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_certificate_key_pair_fuzz.cc index cff4bd23..f66353a7 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_certificate_key_pair_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_generate_certificate_key_pair_fuzz.cc @@ -19,6 +19,38 @@ wvoec::OEMCryptoProvisioningAPIFuzz& provisioning_api_fuzz = extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { wvoec::RedirectStdoutToFile(); provisioning_api_fuzz.Initialize(); + +#ifdef SECOND_STAGE + + const uint32_t session_id = provisioning_api_fuzz.session().session_id(); + + size_t public_key_length = 0; + size_t public_key_signature_length = 0; + size_t wrapped_private_key_length = 0; + OEMCrypto_PrivateKeyType key_type = OEMCrypto_RSA_Private_Key; + OEMCryptoResult result = OEMCrypto_GenerateCertificateKeyPair( + session_id, nullptr, &public_key_length, nullptr, + &public_key_signature_length, nullptr, &wrapped_private_key_length, + &key_type); + wvoec::CheckStatusAndExitFuzzerOnFailure(result, + OEMCrypto_ERROR_SHORT_BUFFER); + + std::vector public_key(public_key_length); + std::vector public_key_signature(public_key_signature_length); + std::vector wrapped_private_key(wrapped_private_key_length); + result = OEMCrypto_GenerateCertificateKeyPair( + session_id, public_key.data(), &public_key_length, + public_key_signature.data(), &public_key_signature_length, + wrapped_private_key.data(), &wrapped_private_key_length, &key_type); + wvoec::CheckStatusAndExitFuzzerOnFailure(result, OEMCrypto_SUCCESS); + + result = OEMCrypto_InstallOemPrivateKey(session_id, key_type, + wrapped_private_key.data(), + wrapped_private_key_length); + wvoec::CheckStatusAndExitFuzzerOnFailure(result, OEMCrypto_SUCCESS); + +#endif + return 0; } From 28e68a866b1ecb7548c21f437fea9e20ed4f6378 Mon Sep 17 00:00:00 2001 From: Vicky Min Date: Tue, 13 Jun 2023 00:04:07 +0000 Subject: [PATCH 21/27] Fix crash in wvoec::LicenseRoundTrip::InjectFuzzedResponseData After the ODK_MAX_NUM_KEYS change, the core response is a pointer to an array instead of an array. This check should ensure the index of the key array can always be accessed. Bug: 286531859 Change-Id: I44604eb977be722ef692de2b61e1f626266a42a7 --- .../oemcrypto/test/oec_session_util.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/libwvdrmengine/oemcrypto/test/oec_session_util.cpp b/libwvdrmengine/oemcrypto/test/oec_session_util.cpp index efed5985..a6c5b51c 100644 --- a/libwvdrmengine/oemcrypto/test/oec_session_util.cpp +++ b/libwvdrmengine/oemcrypto/test/oec_session_util.cpp @@ -719,13 +719,9 @@ void LicenseRoundTrip::InjectFuzzedResponseData(const uint8_t* data, // Copy core_response from data. fuzzed_data.Fill(&core_response_, sizeof(core_response_)); - // Maximum number of keys could be kMaxNumKeys(30). key_array_length can be - // any random value as it is read from fuzz data. - // Key data array(MessageKeyData keys[kMaxNumKeys]) will be looped over - // key_array_length number of times during LoadLicense. If key_array_length is - // more than kMaxNumKeys, setting it to max value of kMaxNumKeys as we should - // not go out of bounds of this array length. For corpus, this value is - // already hard coded to 4. + // If key_array_length is more than kMaxNumKeys, we set it to kMaxNumKeys to + // prevent it from going out of bounds. For corpus, this value is already hard + // coded to 4. if (core_response_.key_array_length > kMaxNumKeys) { core_response_.key_array_length = kMaxNumKeys; } @@ -733,6 +729,13 @@ void LicenseRoundTrip::InjectFuzzedResponseData(const uint8_t* data, // For corpus data, this value gets set to 4, but we need to test other // scenarios too, hence reading key_array_length value. set_num_keys(core_response_.key_array_length); + + // Copy key_array from data. + key_array_.resize(num_keys_); + core_response_.key_array = key_array_.data(); + fuzzed_data.Fill(core_response_.key_array, + num_keys_ * sizeof(*core_response_.key_array)); + ConvertDataToValidBools(&core_response_); // TODO(b/157520981): Once assertion bug is fixed, for loop can be removed. From 5c5433a8d8ad423b9f91479ab1ba98a00db3777f Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Wed, 14 Jun 2023 16:11:12 +0000 Subject: [PATCH 22/27] Update OEMCrypto_LoadLicense corpus for ODK_Packing_ParsedLicense - Regenerate corpus files. - Change nonce endianness. Merged from https://widevine-internal-review.googlesource.com/177010 Change-Id: I5f288a054325097d6ea696cd755fc0557d0eadd1 --- .../0567e5f52c00fed0ad7858164434b02d8e629064 | Bin 6648 -> 0 bytes ... 06ae1005d93d4a19b67d090a020ae37db54e6e3e} | Bin 6648 -> 4288 bytes .../0f5cc252aaf43eaa1570ca07d174a0f96333c592 | Bin 6648 -> 0 bytes .../0fdcae4df7bc325099fb4b3b01a1c9290229f86c | Bin 6648 -> 0 bytes .../1ee4b9ce1a4acc41e912487383ad77f3ccaa97fb | Bin 6648 -> 0 bytes .../2d7246bd48ed8b68599445c98bb822c87f86acd1 | Bin 6648 -> 0 bytes .../2f64b8ffa25844924fe24678067feee9be80f4ec | Bin 6648 -> 0 bytes .../3acf30d485a4370ceb8e64785094a50b768e1ca4 | Bin 6648 -> 0 bytes .../461c08228ae6a0eaa191d24eea1823b46f4a9d67 | Bin 6648 -> 0 bytes .../4b69b92f45febc4dbf5b8fb9a216a290ba51d478 | Bin 6648 -> 0 bytes .../5891055a8932cac4c24862377ab912ff6d775247 | Bin 0 -> 4288 bytes .../592f446db007b4db2d056983a7bb098bf021babe | Bin 0 -> 4288 bytes .../5db53de009652f61b1ed21ee988d0156ce287033 | Bin 6648 -> 0 bytes .../642df2594991f9b5720fce364d0001d8c56d3a89 | Bin 0 -> 4288 bytes .../6449230f671fe77b73dc6e0d40f542c0720628f2 | Bin 0 -> 4288 bytes .../78e527f05b03c2ecd8a0ffc2baeb5dab57088934 | Bin 6648 -> 0 bytes .../7e120b1ec852c448490b9b060a5f35deb486c360 | Bin 6648 -> 0 bytes .../7f701c0f31e68192bc8c829f343fa2326aa4d3dc | Bin 6648 -> 0 bytes ... 81d43836885e32dc8c2b187cb9545bd5c01dfef5} | Bin 6648 -> 4288 bytes .../8243212a7a7160c91e2f9717b855b568f9a34233 | Bin 6648 -> 0 bytes .../85bff933def1ce530a1febd93ef2890ed4bcdcb5 | Bin 6648 -> 0 bytes .../8aeedd64cffd1f59badda7c7e62150d0e7ed4065 | Bin 0 -> 4288 bytes .../903224efa0cc5213ac2aefdf1191d05c703343f6 | Bin 0 -> 4288 bytes .../a06905d0b9421966c527b5ef2ac68bdce1e0cfe5 | Bin 6648 -> 0 bytes .../a3ea4b0c65a01f18d11ad39862b9ef501ed25423 | Bin 0 -> 4288 bytes .../a5daf115b5376cc8052df9ae1bb7693d0c6c64a5 | Bin 0 -> 4288 bytes .../b26b7f292dee13cf6e0366f48ea199ee86a0c201 | Bin 0 -> 4288 bytes .../b452f7b6c615035d63a9825c5c17e049f54648ef | Bin 6648 -> 0 bytes .../bb3b1f380ed32d09a2c2811b68bc7ff5960fb0ff | Bin 0 -> 4288 bytes .../bb8c2201cf10fd7d24fc0c8009a44525f426b033 | Bin 6648 -> 0 bytes .../bd3c74122b8b6ba809feaa063c0e0caf081def4d | Bin 0 -> 4288 bytes ... bea0876bed5520626024667d4f9dc0a4f485aa76} | Bin 6648 -> 4288 bytes ... c1fa9299a3e1e9d51a2239488cb2e7333b58a9e5} | Bin 6648 -> 4288 bytes .../c7a7cd07925450628efa677165d403510d89bf51 | Bin 6648 -> 0 bytes .../c862e8c9d33f4b01c20a9dc77849e5c5856f2474 | Bin 0 -> 4288 bytes .../c96ae0dca69ceb11a79855a19786a559d6b255e3 | Bin 0 -> 4288 bytes ...mcrypto_load_license_fuzz-5919435528601600 | Bin 6652 -> 0 bytes ... d0a0d8d0c842875b97e89957095af3c71f7e9744} | Bin 6648 -> 4288 bytes .../d7014f417415314dd83162570bcafd7935875f00 | Bin 6648 -> 0 bytes .../df85865da57cab1bcbf9a081b850c3c8525098f6 | Bin 0 -> 4288 bytes .../e44281948ed00f87ec981eb880561d983c0c16c3 | Bin 0 -> 4288 bytes .../e598a949c6b14e1a3f96bcdf1b3d9335b07a6085 | Bin 6648 -> 0 bytes .../ecffb38d73f504442070cf4f754d9d2cd87a87d7 | Bin 0 -> 4288 bytes .../ef6f1be8c575823ab46f6cf0e38717809d180301 | Bin 0 -> 4288 bytes .../f0d0117a070069c19108d17b834c6aa44ba11ab2 | Bin 0 -> 4288 bytes .../fa7ec04e797198608d77692abd2c13e98e6e6d28 | Bin 0 -> 4288 bytes .../fuzz_tests/oemcrypto_load_license_fuzz.cc | 6 +++--- .../oemcrypto/test/oec_session_util.cpp | 19 +++++++++++------- 48 files changed, 15 insertions(+), 10 deletions(-) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/0567e5f52c00fed0ad7858164434b02d8e629064 rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/{618cdf5927b2b092d9d7b5e93c30af8708270f11 => 06ae1005d93d4a19b67d090a020ae37db54e6e3e} (53%) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/0f5cc252aaf43eaa1570ca07d174a0f96333c592 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/0fdcae4df7bc325099fb4b3b01a1c9290229f86c delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/1ee4b9ce1a4acc41e912487383ad77f3ccaa97fb delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/2d7246bd48ed8b68599445c98bb822c87f86acd1 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/2f64b8ffa25844924fe24678067feee9be80f4ec delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/3acf30d485a4370ceb8e64785094a50b768e1ca4 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/461c08228ae6a0eaa191d24eea1823b46f4a9d67 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/4b69b92f45febc4dbf5b8fb9a216a290ba51d478 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/5891055a8932cac4c24862377ab912ff6d775247 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/592f446db007b4db2d056983a7bb098bf021babe delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/5db53de009652f61b1ed21ee988d0156ce287033 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/642df2594991f9b5720fce364d0001d8c56d3a89 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/6449230f671fe77b73dc6e0d40f542c0720628f2 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/78e527f05b03c2ecd8a0ffc2baeb5dab57088934 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/7e120b1ec852c448490b9b060a5f35deb486c360 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/7f701c0f31e68192bc8c829f343fa2326aa4d3dc rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/{134a0d85fbcbe367e66d69127114bece71add806 => 81d43836885e32dc8c2b187cb9545bd5c01dfef5} (54%) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/8243212a7a7160c91e2f9717b855b568f9a34233 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/85bff933def1ce530a1febd93ef2890ed4bcdcb5 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/8aeedd64cffd1f59badda7c7e62150d0e7ed4065 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/903224efa0cc5213ac2aefdf1191d05c703343f6 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/a06905d0b9421966c527b5ef2ac68bdce1e0cfe5 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/a3ea4b0c65a01f18d11ad39862b9ef501ed25423 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/a5daf115b5376cc8052df9ae1bb7693d0c6c64a5 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/b26b7f292dee13cf6e0366f48ea199ee86a0c201 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/b452f7b6c615035d63a9825c5c17e049f54648ef create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/bb3b1f380ed32d09a2c2811b68bc7ff5960fb0ff delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/bb8c2201cf10fd7d24fc0c8009a44525f426b033 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/bd3c74122b8b6ba809feaa063c0e0caf081def4d rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/{7dcdad1c2df1656678947b2009a9fcea44f4025d => bea0876bed5520626024667d4f9dc0a4f485aa76} (54%) rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/{e26757270b3d149d1ce10bef32ed0b3a5794977c => c1fa9299a3e1e9d51a2239488cb2e7333b58a9e5} (54%) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/c7a7cd07925450628efa677165d403510d89bf51 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/c862e8c9d33f4b01c20a9dc77849e5c5856f2474 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/c96ae0dca69ceb11a79855a19786a559d6b255e3 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/clusterfuzz-testcase-minimized-oemcrypto_load_license_fuzz-5919435528601600 rename libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/{clusterfuzz-testcase-minimized-oemcrypto_load_license_fuzz-6406770604638208 => d0a0d8d0c842875b97e89957095af3c71f7e9744} (54%) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/d7014f417415314dd83162570bcafd7935875f00 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/df85865da57cab1bcbf9a081b850c3c8525098f6 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/e44281948ed00f87ec981eb880561d983c0c16c3 delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/e598a949c6b14e1a3f96bcdf1b3d9335b07a6085 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/ecffb38d73f504442070cf4f754d9d2cd87a87d7 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/ef6f1be8c575823ab46f6cf0e38717809d180301 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/f0d0117a070069c19108d17b834c6aa44ba11ab2 create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/fa7ec04e797198608d77692abd2c13e98e6e6d28 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/0567e5f52c00fed0ad7858164434b02d8e629064 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/0567e5f52c00fed0ad7858164434b02d8e629064 deleted file mode 100644 index 08541f451a59718d1d93d66fc4d91dfbf49e11ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6648 zcmWgOV*mpI2*qFkV_odK+|<`$Rng%)r)tu2q;9=aiwJfIFZfW*Jp22?28-OU z-AnHum$vjcnOdN{=7r;Ieq8o4p#hkAOWWUW3k>nzFYJEvU)ZN7X~zVnZ;o-D^z)zH zM?2+Li{Sp<$gUV=zGLN=^u5Qd+?>v8$mPgz6`RJI7)w9ZD`h^!gv(xLGyt>LivMNE zl8nhw>3jf3$-&zI diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/618cdf5927b2b092d9d7b5e93c30af8708270f11 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/06ae1005d93d4a19b67d090a020ae37db54e6e3e similarity index 53% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/618cdf5927b2b092d9d7b5e93c30af8708270f11 rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/06ae1005d93d4a19b67d090a020ae37db54e6e3e index dc58149e75a4f5b54425503583a6528c6d09e194..d2cfb477e6648b9eac4d052714cf8796ddec9b5d 100644 GIT binary patch delta 334 zcmexid_ZwR!Q=ys3Oq~<5U}A@KI241k%JgtzRT)p#qUj}xjyo?*Eu4xlMO9E zN+Xp-qbEP%Qi<>>?leEBt0F#QPyN>mk2rIkuikOroaz#-*(zgs;bfQ`%;3Ein^rWw zSwH>pu_NBA=e==Qap;IddaAsY-dpJQ_%k2w#}Hy;xYUU>KAv{L`2 zE BgD3z1 literal 6648 zcmWgOV*mpI2*qFk={9nkmzX#5N`{t7gH0~&t^8vg_uAL_hOYBU5!Ltr!nMnhmU z1V%$(Gz5lh2*BD^21hi{25YkKIF{Wexp!USxit^7jg4joTN%bpe;XOlSaR-d65ksT|8*g*;APdm%`9ns5HJ8mG2HZ)yS-h$t%^ zo?{MESF^SnTE6%R%k=x!Z$s^Q={9nkmzX#5N`{t7gH0~&t^8vg_uAL_hOYBU5!Ltr!nMnhmU z1V%$(Gz5lh2*BD^a>n%v_cOKL{Av2v)|;)qAhJ{yWP&bLs-F*@4-~hK8WP;D7ia8%S}$0)`O{z|5P! z%6q%xtdDH28&|rrP3>=wzQB6C%B^9-IsRO|o6KK@VCphnK9|y;^hZ!euWL8i1L1r?VnR(?IQ8#!^A{jUubIT;n@C-^@_|R`jB` zH!Ob1eub$s>U8r}JgDnDLyy~P?#$yUQLJzBcB@P(NIqzI(=A#`4wt>mXaHv37wfGT z=Bw`R_1OL>hhP4xxy&E&$3Z1eSHJXm-s16_B^aiz^NpBv+9K|qZ+02p{39>(s5nT4d!h4h+4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!3jR5U_df zP!-+Gw@vWN+&+QIcUtK3^7f7l^CKR6oILY({ocbbHR|ug`mGB7pR($l1 zQ!#gTJ@e`2OUs4E=Sm%~)U8N=ay4Ye$7T16&+F8zaoi45r}^UcVqZt=$p;#KpS&X> z$uZsA^K<#l3jwF(rf6N2KhuwHFDycs&;ZQ53%UElg?KcLLM24Gcm551{{G-BXVuM3 z!W*3)q{eR)zY9~>`MI9KTyRly9h uJ9e5+&r_af_qXd^rq6b#jEG&qE$RICryJaTs3$Kv>B{_NAJEMk>3jgS0LJbB diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/1ee4b9ce1a4acc41e912487383ad77f3ccaa97fb b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/1ee4b9ce1a4acc41e912487383ad77f3ccaa97fb deleted file mode 100644 index cab8c50243d8f18c07a90e2ab4c2f07144a0755d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6648 zcmWgOV*mpI2*qFk={9nkmzX#5N`{t7gH0~&t^8vg_uAL_hOYBU5!Ltr!nMnhmU z1V%$(Gz5lh2*BD^o)seL$wil0ijMA|;8~V5>y@(cV}%bNa!*`Z$Mp5VUsaeot0&TS z9PG6-n{M(lmif&7**fLJz6(W%_FCS!S^TSgo=SGIp%ExBH1{yS0a6^WfMG-fF!TN_ zdzYHLTyrKz_l&hYTJp>Iw^(l2SF&dJzPoe2-!2b(15N(86vmXYjg68$4a?wk0wq?n3Q<<{5{sPWsWd)3l`327c`oBWc&5&8!N6z1td;p z6fr;Sy(jPDu2h>tYs_%j3k&a2dNc$^Ltr!nMnhmU1V%$(Gz3ONU^E0qLtr!n&_iHW zaa1)w)0+y1JL*hX#5H^{th($1T_8$H2w`V z{s%O^0V6~J<{l0-z5^OR0F9r4#$SQPZ$RVkK;xf4<3pV{N{xoVXb6mkz-S1JhQMeD zjE2CF4FOoYDq!hvhDK(d0>y9ty>4fkZ;D-OJnt6&sT->;l2&`H-#Q(pt|I@o{N&7h z!@Qekw-q=VKNWm>seA3#*kwJee?os+#f4=j8=4^kqXEujL<2DMN_-LU0 zrg;6vo!#bH_a&C;?XL9cTOkzsixH;IQSqjyWvds_u=SsYTb)F5HlH*RhE#;(Wi^vG>%3b~l(ht5t=c zKLmBp7Acf_aBSyJ2kipyl1$x#I5FK`+iBeM<#E}|j0Rxly)k*IChL28yHCR1X zQ}WboqZv(ROp?z1wTJ&}3KvXWgzB*so>QLjzfjvKSbz2Hqg6c9rwcWI{$-;mq-l4_ z=rb;R;Q>C%7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu;sv=HbofBnx?+D!8k|NRw4 zEYqi=Ni*m!eX#J5Sm?9(o8N<oCoJX+xJV7Ev8kBw5g>$Qtk%npeO7TapZuzs`N hW&2M7UtirW+9vqpF{_J@UG}%T*U+aO(2XB)d;sKuwIToj diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/2f64b8ffa25844924fe24678067feee9be80f4ec b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/2f64b8ffa25844924fe24678067feee9be80f4ec deleted file mode 100644 index 7aac2f96f5e80b8cb9ddfdefb6aed64c5ab82c0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6648 zcmWgOV*mpI2*qFkd6fbtcf>KxGI1JL*xX#5pu{01l=X5J1o`4eb-sI{Zi zXb6mkz-S1JhQMeDjE2By2n^W}fVHb)cc09H zffNT+8v`R6fZ3a9f8XoB%4a3!hrfkuA02;Rq0yYXFL7(eubX=;OgA{kDnJcLQ0{I} z`@G_0kh1Fc@Nj{tbzj7eei!ba`_r#_ujY_Pga%;t<|O>k`r~rV+I{k()9Pz_ zW?U%C;rO%sL9ooWY0avimEiVjosrB*a82&npt~naUoP;x#p6lStWlb`AvLS?6{FLwxTs4WOYS&TByE{3`x~9m`kkueszC920n__T#b_7T%-uXb6mkz-S1JhQMeDjE2By2#kin zXb6mkz-S1dhd|J^I-hSZcbs|oH$!;YrBwmw@~a$@RzFNz=VHp)%9p;w?{S{eb=OO? zj_-Yvqk3cF!MCD3|F-WocyFKWzOMRtiCw|FZ|DAQJG(d};p9p^r|qr3o}-&L()j>z C5yfQy diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/3acf30d485a4370ceb8e64785094a50b768e1ca4 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/3acf30d485a4370ceb8e64785094a50b768e1ca4 deleted file mode 100644 index 57edbd78644324a1c06120bebafd52c513b89e6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6648 zcmWgOV*mpI2*qFkby~EGz3ON zU^E0qLtr!nMnhmU1cqz~z}i)zFJm;5HuOGhhBMN=%)GU;_9}9|wTxRN`*wZLF8ipjS7)3%z$M1H?w?E6e5n`vVd{F0FZC|)JMOsh zPj(4cOWO?o=O!HIxBrkZ-}7X-sN+5dT=p`d0hoF5cl^CP?!HW|xc4~oP*C8?zIw)k zdxK_7{J8y@#`KxJ#V~c7qULdAU+Cau=|8R=E6Z-t_(f&vrORA8#S^)`W^cZZ)4$AU z0A}8nBMh2npGsbQ>y>Dj_3R8sT+PF{tfM-UJodVLQ|Q~`3{yAB=IOMFc2Xe;%VpDj zU%rpK$`cySUAkvu&jYO!&XKcr;PNjlyhrKL5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C z(GWln0gt(y@tvFB8(sY`-MOKm{Uy5mt+e;|PQ$YbdXPMzn_&CyI|jZ;6V z5iBZt_eQ?l?KF{s1^cY-Rq#tETz+RT;dDvJmf6d19m@}xvgMnq@IJ!@IX?oP+T8nJ SEEN{Wzpwi6e{}OkIv)TRT`2ni diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/4b69b92f45febc4dbf5b8fb9a216a290ba51d478 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/4b69b92f45febc4dbf5b8fb9a216a290ba51d478 deleted file mode 100644 index 0a09fb4f2db749e74f6dfa473dccc96b3335f4e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6648 zcmWgOV*mpI2*qFk1JL*hX#5H^{th($1T_8$H2w`V z{s%O^0V6~J<{l0xUjeGl0Zl#tjh}(WUxCJNfbwDH?Ld=1fyRegJ4%g)z-S1JhQMeD zjE2By2#kinkPQJ?yUN`++~@gB&F{8mC(##auW8mzXoor|Z3JedKZ#x-w{I#kRHIA1ioruZX!@yqvL+LEm12k5)0m%cC9qITrJ xgy8j-v<7tZM){Bsfc0w~paBBoOQ7+gTsW10CSQTZ-+{)TfX0V%;nWQ@c>qn9cmMzZ literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/592f446db007b4db2d056983a7bb098bf021babe b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/592f446db007b4db2d056983a7bb098bf021babe new file mode 100644 index 0000000000000000000000000000000000000000..72a258eebebb576343cc4ab0e218a44cef4c30a0 GIT binary patch literal 4288 zcmWgOV*mpI2*qFk4ibd*9D(g zpT1FURlI%34wjoCZO6{PhN-Jhn)k8#fYhSfb9b9X`RH35dsE)uWiKC~uDW~cqu%pg z*~x|$AS<2ra~%Xy98l{S7|{UCy!#Up9vc<-{G2>h-uhYXp`7MeJML3z_oGbHCvCG} zu6+(u_i$I&!@mbJKfd1m`tz@UJ1;*hiEX>Z75AwoA=1N^m-R3%dtvsE(xV|T8Umvs zFd71*Aut*OqaiRF0;3@?8UmvsFw#T7U16{8@5wJkZ(H?EdAMUy5PEnViH}^S7?%I1 zV20qa=uGSFUR-a&r*Z7_``&y^xcv8CM?tRZN9WA@t8z-Jtn~8xwg;bI@pr7gAt5cE yBjvGHBw;POd82$t2*CQa4$uIB@g>msP%fNGK$EXP={9nkmzX#5N`{t7gH0~&t^8vg_uAL_hOYBU5!Ltr!nMnhmU z1V%$(Gz5lh2*BD^FFC{1XI{5hn|{zj;Ji|gp5pNpj7N=F|M7Dln{ivMqzk4l|JLN4Vrfvm%U7A0A`-Y_ltH74hxL=`ev!;t8=rKc-UI&_qQ$ea=#aK zPB;MW-$j$86j!z`aGT(D+_YqyvXtF^(PeLWa!*wLXn2+MuzLrrH0UzqtoebW# zFjgXF?(ekhma|SjaoGzC?@@X*1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz8E?AaGad zVZ~gl1TT&w6^jf%OQOpQyqng+#jr2x`?N(Tzn){VS8DhmBmJC3`QomBAxBhZpZ&h7 o-b?9;gNd$+bZ~5`zRtBUoyDtbXIDrj2JTz?reGnuc_W<<0DGyt&C)R)a;zho@c^&Hc`8z8y zJK4|zWaawc+!;WM18O}3BN~92C%*XkJ-O!k^?!f$&Aj5wVf>+5BL6ARf@3?c zAAbZ>SDIwZv!`84;_lMcX$>#s95?*EG4tsQzf}U;+LC|R`7`3O7iRw`JsJX|Aut*O zqaiRF0;3@?8UmvsFd71*Aut*OBRvH6U%wtd`OljleXGr_UkP*sp@)af0?|FkXD#AT zlvwuf4bNMSaN{|Q%XwZ*wKe^9X*E*;`>`!f+Ifc_If=d3`1rH!y~lpv3B`wazC07= yU@eh|Z`DONZiB0}r>Lr)Vf~nJsHC4SaUm%`E5`ckRJB z*~x|$AS)+Y=6(fI98l{S7|{UCJjQ@7liN467S|f6?f%}7Q@SR+c&f(2dZx2%CDK)4 z_VO@wHbH-znl+S`B_H0dSUh`)f&W$RC95k=PA<%`w|`KTb{LnvF#AX8(GVC7fzc2c z4S~@R7!85Z5Eu=C(GVC7fzc2c=^;@6FYwY=&ASWv8}Gbu^@}@?9v%WKMfl?kweQT{ zINhWtZ-Uyak9=9Ntl|fMGF&npSD^8Cpz$Z5@u6HebpuTv03On8`~Uy| literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/78e527f05b03c2ecd8a0ffc2baeb5dab57088934 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/78e527f05b03c2ecd8a0ffc2baeb5dab57088934 deleted file mode 100644 index bd4f8760d571328f8ad4c3524cd7c4599e08be98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6648 zcmWgOV*mpI2*qFk={9nkmzX#5N`{t7gH0~&t^8vg_uAL_hOYBU5!Ltr!nMnhmU z1V%$(Gz5lh2*BD^8!IpEXL$AVo`zFH`Ob=+l1yA1o*b*67rf%HS?kl~OX6Yb>q^fSLEF zjbCW_e%|T_C0^UZ4{Cd@zx(Y#;g|Dg*D9pVQ%(%DnBC;;ZPhxa?&@12FSGIq)xioSmFA!?=5Wz}rygzGbqrlMSwAYzXb& z*nd~?Doow)ru}kuH{^7;1t+H=DWW{AKGa7)ICtVuX(lg#QxVORdgtU9-iZ@X04 p)+14gsZJi2t*jcy7arHR;1gVIRcu^%T=1&jkw5={9nkmzX#5N`{t7gH0~&t^8vg_uAL_hOYBU5!Ltr!nMnhmU z1V%$(Gz5lh2*BD^UyEPW9_c)H=w0vK0CCks(bpKRYCRAhU{cRGf-eud9E#BU{K(I1q>q^fSD)t zY59xfrWFy+;$gBM1v5Ni#G;>^+U|MmYsd2g?>qJg!qmmW#NTiw0yyOXo z-_47dYyII*-0|FZ&$Mva3k&a2dNc$^Ltr!nMnhmU1V%$(Gz3ONU^E0qLtr!n&_m#H z{7uWlPr4ihssxVnGF}ivm%sP8&y(55bBaw@Du0^4lvvCwVWACA?k?#PS`s_w$ocf6 qz29E@cPw9c_rvqLro8h%{pTyrc^XmSw=Kh1JL*hX#5H^{th($1T_8$H2w`V z{s%O^0V6~J<{l0-z5^OR0F9r4#$SQPZ$RVkK;xf4<3pV{N{xoVXb6mkz-S1JhQMeD zjE2CF4FOoYYJqd>O8)P9`^+skzE|_)m~T4tR#fIF$Fa=^6E1r8g&D)t#YeC9>Xg|$ zUFoNA<9*eh`K`+9{-;MwU%uge!vhsD`!(6ghGww9aA4qqH#-^80L;7;HRXSuft#`y zc(=E#Vg0O<#xcKnn%g6mEwP;CyQ-tqVCov~d`$VYS^9YZ>*NVtn`CEQaQi9|UjOOP zqB-8&QYM8}xa?&@12FUM%n&d-9{Rr0>`?533AM9=IXB%qk|dY6_sq?=sqfO)+Q8I3 zj{VAb{@RSo`=Y0qF(h)WnAxYev*D)5tbN=!xAAVdoPx_RA^f1H|YVR@FreY4g6 zAhXyv+%Iw23k&;EdNc$^Ltr!nMnhmU1V%$(Gz3ONU^E0qLtr!n&_f{V_ExdV0FHAV zi3JR0v(gu!%im``@#S-*(4PHsAMorbd>5_Y`)1+AMyL0;{{4z>)SG|vApgRbrjvh^ jbZyly`yY66%iVJo`zP|0p4#}v?xOF>-*eH;8|i!iRwcdw diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/134a0d85fbcbe367e66d69127114bece71add806 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/81d43836885e32dc8c2b187cb9545bd5c01dfef5 similarity index 54% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/134a0d85fbcbe367e66d69127114bece71add806 rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/81d43836885e32dc8c2b187cb9545bd5c01dfef5 index 70ed9c599bbb1493946e95834b6261daecb9429d..9fc97a34e11847fe25f5f9350e5abf8ce6a77d0e 100644 GIT binary patch literal 4288 zcmWgOV*mpI2*qFkHA;HXx#T=^D}|S zt@gK0dcB-}^`k~^WG>IStuS?w8;?k&ruck0T-SfX)X4QR{y{Hifr2?LIDb zFFV=L0%T=Y>zm_1iUVpr10x!Mnb&s1*z1qZ?&XnOM|>XsyCd8rCgCe>@~S}ATO^6o z`0X5+x_MtDYA-G?_j@C}^w^ep(!G;BC$4HXO4FWI9QelIq1aYj_QLERrAI?xGz3ON zU^E0qLtr!nMnhmU1V%$(Gz3ONV5EnD@#G2fOeS7@urs&3{Cvx1HuUgltzzk0Gd1Mx zB6Xo7&L-|Zjjqdy>a9O&@lDf+y*+XJ!3*(B3a%T|XRuwEYxK1s@ljEn#?2doY;Tzv w7CGCgaATN4S~@R7!85Z5Eu=C(GVC70h)zCA_$n7TUZ(x8iAOwc1+j3A6xkn z=6jd@4_Oy0R5M#lynoVUn~RagGdAh*ChYQuwQu@D1Ni(iV(!-8@H=fgap`us1s~t< zmU!BHQ|;cBkJp_!vy%-?fsSV~==ypZNH@Sdl7t3e_C~FmxoxLd(SrVlovYOy6Qe&K z6Z*p2lVEJ}!0HCfL&gl#M0^T2#Vde1IvBjKkk9~iN-;;!R_KBZbL}B(mnO*Zr zF7!c-)k)ELulU**cvOdE3SBv#@H31#r-yE@^WiCBS7vaze$TM?I(a@Uvwt^S|pCV~oV zTaL+2-{8x9ji^?MP$5X2#extiI@z&I`Y|bBXB~GhtX8O!1aaa3O z5PInJ4!f%|SM_r4)qbvCzACV-vRH0Uo#yWg0_qPY{PNTPuJvb8c%SvjYrkRB0qDk# GSUv#s!UHA% diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/8243212a7a7160c91e2f9717b855b568f9a34233 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/8243212a7a7160c91e2f9717b855b568f9a34233 deleted file mode 100644 index 352ae2edaeffd68ef558f7d4ca6237ac87ec8753..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6648 zcmWgOV*mpI2*qFk$ z{0V6M6KMP!X#5Xod;_Q_VeaEV<2#`71JL*xX#5pu{021s4mAD=G(OaMqts{!jE2By z2#kinXb6mkz-R~z*${xWt8T`NZsghe`GJ+?3(2;{wngG9mv6G`Tkut{l``3TWNsZy zU6uF?7ltLu_l`eF=4T0iFWc*SX5aKQvaEbXxfpTY-k1wj3QfkR|W|$F+5dl9r`LD@zz> z1q)4blyGWU@gAn`*i((4>y2f8na!~i+uz^0;9~SPhZUE-%xC~+ zp3G})?&q%4(=!sby=9mnIN_wB>8xvge36%@u8Tcvf4Ul`E-Mf$hEtfZLC zANQ3Wa~d2hu!%Q&Ghb0fr3sh4u<#zGM?+vV1V%$(Gz3ONU^E0qLtr!nMnhmU1V%#u zJp>#=|D3E#^_i%`;b~jLx6T7yo=xO%*=hB(iC-7I*&i!!6cD$Pd+*xHP`={9nkmzX#5N`{t7gH0~&t^8vg_uAL_hOYBU5!Ltr!nMnhmU z1V%$(Gz5lh2*BD^wPCwf+*50~tF?OaBA3lu;^yn^;G2;%&%f!J?-gBnd1IJ5bEZp8 zg4!$PP6!B9Pmfb%d-6S-`P*adPR8*0&wefR&dE+TGy?_3hQ8y#rk(>lTo};+%)C$P z4rM|c%CZ8p6!#bJlV&o~UvbWZ_14?(@)u70=eg$&Q>T02LruWiW&Uf{PcvHoJVr`J zB+t(__`R9NySsBfn9abHC^Lqwvt9CuPlUwiM1 z>YX_UVCwSQCO4+lWhm*qvEiS3v+hxcyP`Vkn?vE*7r s_x1x{S2#Lk9Lq_SbiQNL;(YC5CgY(Aa%HbM{{4;FQGzgOlm!X_0HoN&JOBUy diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/8aeedd64cffd1f59badda7c7e62150d0e7ed4065 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/8aeedd64cffd1f59badda7c7e62150d0e7ed4065 new file mode 100644 index 0000000000000000000000000000000000000000..24fd910f77f03ec543372d71588555ae6a476977 GIT binary patch literal 4288 zcmWgOV*mpI2*qFk*|tAI)CnOnrW8W5V|4GYF}_tOU`SZHQ|dg3IhDJYxgb4QEJKh wdg|!pHgxkw`H&ER^=loV0RrPopz)zxIF*1VUxCKofySSJ#)op@)D1Lw07*7)9smFU literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/903224efa0cc5213ac2aefdf1191d05c703343f6 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/903224efa0cc5213ac2aefdf1191d05c703343f6 new file mode 100644 index 0000000000000000000000000000000000000000..96f694c031091a683a1544c6d920e7c7e487e6f2 GIT binary patch literal 4288 zcmWgOV*mpI2*qFkVa|~< zYqGu3%Jg#eVZW9jnLuwjn7X$D;re@(?(_S#ESby9q;Y2TX2whJ-#VW5RS;bGD=6z! zcCw)b$V$$+A`gHR2Z#**MuuligM?u{U;Z6$>XgNWPQREN#eBuYB{$_mXHX@7CKZ v0(l*H(9Ij=LqY)7uXTV12#ha*#)op@R05iO1sZ<`8h-*BAIgPOH_+q(M($_R literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/a06905d0b9421966c527b5ef2ac68bdce1e0cfe5 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/a06905d0b9421966c527b5ef2ac68bdce1e0cfe5 deleted file mode 100644 index 02ccf56269424b74fef7466c30b53a8afac1a8ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6648 zcmWgOV*mpI2*qFkAkHS}NKD(f{zs01xcU7oDoKfud^Ajg_JlK|l1b2@r6^_fW5Vzw=N{T=qmyj@&$`uOL6c6AmL&pc}p{&y3mt}pqhcN+6&FZQ(? z-L8r$S)Xn%yQLo=be@529gmci5Id^93>`3gna}{tJdFzr|9DJvY zLpoo>l>S}1L0vQZf`k;H255bnHiaelW+u~ecFUI34ciWDcLltZS-3U4?yC%U+`LU_ z_IkkVWkv%qdow1V`4~~Fsjcayr@is;wK39WZ@09hEKGe-z z9G|z7@8snA`pu2pA{YLrd^kKw=7iqT(lrHW_G-ZF9i>M@U^E0qLtr!nMnhmU1V%$( zGz3ONU^E0qLjYF@eEr|H(Se)ymh8srGu;u|rReJJ$TqBXdKCPRzh?O!U-Jvi{Ji}; zUdA-1OQ{{3ej?ArY)PzixvtQU?sSWjhD)5{G%P+Qv20)Y@p7}Xi1Wp&4-M$%jdVT$ DDfPdR diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/a3ea4b0c65a01f18d11ad39862b9ef501ed25423 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/a3ea4b0c65a01f18d11ad39862b9ef501ed25423 new file mode 100644 index 0000000000000000000000000000000000000000..70c6fdcd104461eeccb5cf2e4c3c60615ddb7ba1 GIT binary patch literal 4288 zcmWgOV*mpI2*qFkqI8F#AX8(GVC7fzc2c z4S~@R7!85Z5Eu=C(GVC7fzc2c=^>!Zt9~neq3pt3<<(C`-esAfhex~bvIRa348NCt ztKasArQN~6{U4K^fk)sKt@Zt;dN!L}`dr#GbklRb|C@PrwO&ZEsdBTX#;3QJrY&=4 wbhz996WzQ~J|qNS{aOcTfWY_?XnZIaP9>npSD^8Cpz$Z5@u6HebpuTv03q&f82|tP literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/a5daf115b5376cc8052df9ae1bb7693d0c6c64a5 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/a5daf115b5376cc8052df9ae1bb7693d0c6c64a5 new file mode 100644 index 0000000000000000000000000000000000000000..f026287a032da8a67d69f40c5399446888c657fb GIT binary patch literal 4288 zcmWgOV*mpI2*qFk6Ic0HXD zVKv|LhcD+lX){vB+INf$c3LW9NKL-`!!&`|jO)ZPU9a?eT-e z>|{d=kd=>%z4ihr4yg4EjA#I6UO{H9@xJSp8(Ldpr@QvqnCf0S8dGvpy5bb)*QcK~ z(%NC__WzzWeR6SL#96nmNK$d8LgX=+9Bt3+vSx&kMFz-f9CvneunLG`gOw< u0SayQm(h(Ip8~AL!rU3Jpp}>|na+}5n_nq>Av@HT zN&29GmA&@QU!n7)S4~+3Q#VOx<68d|b@7z}mp|0Le6#Vwas89_3mlqQ*bdy>vc*I& zJK4|zWM$UgU~eGB0kxii5e>l1lihmO+C6)n>xCS%(pc%vhiQGAo|S$*e%njdfysUL zz8aXiol_Sq+*B*G>hiS{_KQRO**ctG>vj1=Oq219{<7icMt@xP!t5WVM?+vV1V%$( zGz3ONU^E0qLtr!nMnhmU1V%$(q=$eu2T$~q74lP#JL%oBJwIVKdU&i9`Q8|H?QJx7 z>hpWMXE2}LWMPuGuSU`!Z&g=~=*hj>Z7uw4y2k}N&MnMy>uleruyjVuecOju4L`GY xBuf5O_CYsqln)63SijZ*8Xz#f1R5X8g;NP=@)c1JL*hX#5H^{th($1T_8$H2w`V z{s%O^0V6~J<{l0-z5^OR0F9r4#$SQPZ$RVkK;xf4<3pV{N{xoVXb6mkz-S1JhQMeD zjE2CF4FOoY%J*pV+J|rQ0>96^UD=w?{!yf5_JO8JelPc&4DnS`EcJt_^L+cO;N+xl zxi_~pImNM`uq>YY_|Fb@Oad_X#_=}$65nH#0uH$WhsoT5W_V|S}=^6A~kif234zDSflWBV_NIaB9QElk~pXo=VV*|PJ0`F8=nd0~dA6EGYVYUlQvtuG%sA`P!y~|KsrdI^>W&+R_xJoy l>)RT2`m`?Zic=o3a;8jI!&M3wIj1dYoOLt{-Mo>`2LQ$p#fbm_ diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/bb3b1f380ed32d09a2c2811b68bc7ff5960fb0ff b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/bb3b1f380ed32d09a2c2811b68bc7ff5960fb0ff new file mode 100644 index 0000000000000000000000000000000000000000..ae1d6cd28632ef997849bfc035e85cf24d8cb2a4 GIT binary patch literal 4288 zcmWgOV*mpI2*qFkXDZORcFnucZrEUdx3WwzRgrci*z(JlB_m z>|{d=kd^;h_MZb%98l{S7|{UCJh|#+yI+<2tPHN7)FLIujBY`8=hp9oiUHCQX(d-l6vIiq1_h3aWo|+P!5;9F#AX8(GVC7fzc2c z4S~@R7!85Z5Eu=C(GVC7fzc2c=^@bcd}YnOV#AbO6TQ`++iliH4-YT)=QhtQ&6|tA zy4J7%ACX>Ibt`M`&+RuWlULmLzOvjQe9jKeSIeSH_PM<~-N0#ksGl>o@PUqUYU)=@ wP7Vd-YIO5P`H&ER^=loV0RrPopz)zxIF*1VUxCKofySSJ#)op@)D1Lw0ArnTFaQ7m literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/bb8c2201cf10fd7d24fc0c8009a44525f426b033 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/bb8c2201cf10fd7d24fc0c8009a44525f426b033 deleted file mode 100644 index 8f98344fbcc9ade5a8048127d7760a48599a1042..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6648 zcmWgOV*mpI2*qFk1JL*hX#5H^{th($1T_8$H2w`V z{s%O^0V6~J<{l0-z5^OR0F9r4#$SQPZ$RVkK;xf4<3pV{N{xoVXb6mkz-S1JhQMeD zjE2CF4FOoYO4)sT<9-d-XD6c)16dRGI6fcRDkOE7UFFYIy|=gQ?r(>wJEstym^kay z7xVe{@{<=IU$Jffrd5-354JDVlI3{#>Gj*}WJ6PIfx(CdVCEhAHK%jw)5C8|RILhn*Xu{1IJ1nm96gDUv zz9NDiDyHuy7rZf#+U)se;Sr;i>~fJ?4K}fhYq``sSCDMdTKC9{E5J45X diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/bd3c74122b8b6ba809feaa063c0e0caf081def4d b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/bd3c74122b8b6ba809feaa063c0e0caf081def4d new file mode 100644 index 0000000000000000000000000000000000000000..5f3c553c3fde5d25ec74b354c0b5fb43d415cca5 GIT binary patch literal 4288 zcmWgOV*mpI2*qFkiE>|mj=6YXB-JM{#7N+j;-6t9Q*k*8xZvM+#6Jqd(DPm#g3F{is{okG~G_tl?Tija**x5R_NU>^$Lr!3u%22t zVPer9n7X3FVyBpY9r$MdWJP(x)U-B5%`Rruk2>DlgPQ(M`?^98m%T9iN9oZJ7!85Z z5Eu=C(GVC7fzc2c4S~@R7!85Z5E$tp@IG8Y{rs9!k`^YlO)Dm`B%_DNDd*puLF!V8 zfA}Icm{hpjtOmikll9Ry0=L4cFnr{rnEgb y=1BQYeO88U-Y6du0tw}JZ} z$7hRx<4fK%oluP1c~9i;S(v)-A@yWYO&mGc|-2`kq> z%uY7609jf8T{H?vaX_tSU_=8j^R_)WAMxP9uDzu>{<0NGORU<@-K|PJ!|-;dK9j{i zxBF{h>M}mhJ9J2!fz5>RM0I86U#7r|FMfG&pYOO)cH4yg#QV9p?1kAsN{@!XXb6mk zz-S1JhQMeDjE2By2#kinXb6mkz(@}P^&)P!1>5#Hb1M4fE_^k=4m~{d=jR%)+34eP zHq>P4fyxK`m93|~TsmjT*%nQ7^G5lQ5Pd7yj;C=GLm1R6g8jh}$VuYmGl=I=n0pMb_c zfyTdq#{YoEH(-Paz}&}y#&fVBfJ zuU@TRSCNy~B(?U!rcYj9=HGDYwqz2Y)tz2nA*AK&2y5SP1#2xR(VnE3r7xxRsh-11 zY>9wUtWfsv3sX|hRXG|i%}zEn13I3m_)_X&Al(4-2-w~v1c0>{7wp^-nSJ+;)XgJX ztah!mY*=#5AnD5^iBF5ooNC|jhk3&6owDYw@TMlqB^wv-ukD{w;_MkxNrAOLH_TbJ^yABQa#^eW zw!~bhv*vR261lW|Q_T7$vsj~aKFopHd+B0PKp&d2UcvFwR=iM{7n7~n`zw-R^N^;JpaNJW^XyK z?WY50?;T&s<>MT^%=w`Dt<8Pr&A(2~xRWidD3NT9%U)PKkJ6(dFd71*Aut*OqaiRF z0;3@?8UmvsFd71bHw0enN!(kqpwm8sb>>CoR^3i?msXuv&{@V)?YsN)KX$b_ujRj| z^NF1mj4YckA=y=Q`Tf=YgYI+HZZKY(S17wDKjq(zqi1+~8?)q#?UO??^f`Wep_@0- F`2bSU{Yd}- diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/e26757270b3d149d1ce10bef32ed0b3a5794977c b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/c1fa9299a3e1e9d51a2239488cb2e7333b58a9e5 similarity index 54% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/e26757270b3d149d1ce10bef32ed0b3a5794977c rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/c1fa9299a3e1e9d51a2239488cb2e7333b58a9e5 index d8911528a17ea420d0ec1a6c3155484faea6a355..2ed91aa5eae4a60192b2602507d85ff5706d200d 100644 GIT binary patch literal 4288 zcmWgOV*mpI2*qFkF zykB$t-&qbmS@U$ArQO;aVd`RBk9H+_oeSOYPwie;{MsWf4!0JXtokYUY2Pwo+hT{p z>|{d=kd;?6ee;172h@57Ml=93uk7Qz5BuYJ3XJ&G5|{67x)N0ox@zMKxz7>o3G?`T zCe4GX%L{oIa4n$!@GX&meX|*Dwp2@H`hQ&VGrC^9Sfo7gkN_@wVfK&GqaiRF0;3@? z8UmvsFd71*Aut*OqaiRF0;3@?(nBDBchAhuV7fvOh$ycE9ccAenpz)zxICTR}9srQDcL4wZ literal 6648 zcmWgOV*mpI2*qFkVfH#e#bJC2G=2aYKLL$jfyUo~#-D)3KY_-- zfyV!U#y4Pu2*BLOfyQ@0;|HMeGtl@e(D)5#{2gfg6KMPgXnX}|K*QYk15MrlP2K^G z5B2USH5vk=Aut*OqaiRF0;3@?8Ui#6fkZR_YqxAjUAXFn`4Isp&)rMju6Wa2bd@J{ z=8mt`!i;DBu(;e=2vb+K@BSOpvX5VEpZ%|>4Y?5illRhfw!FvtZ_J$)E7M)jnVoEC z26Q~r&ikSJfpi1RBS~lgW}e2!g+=)@GXJkWe2Hh#oC&jLc>R;vwCr!hRtt~!`){|SsYtrC@y4SUT1JOrZJWbZ@clLBeQl8{odQ!g zt$(eb?I^EtndTE(v++X9<-_k*GsjK-@p9A6yf9q$rlJ9udF5}*g!e{ut$4gi z_Qu|Jt?nD^!lz{9WOjs1?hW7c%}o}jZqF8#G>IP@*Q;-_m{9O$(TAqX6IRQtZ+-Zc zrA$(4Vct1h_QK+MlpYO%(GVC7fzc2c4S~@R7!85Z5Eu=C(GVECA@DSCrioSXhR9Q) zcRwG!dZq*2rHj9w^kTR<(Kkz>TsUCrDUoiaRaZCk%5Y8WHgkD(cJ?im(+={QdRtFS i+#x#a=+dLVl27q2GjaDRNpxsl&RTxyFuHjooeu!s*A_AW diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/c7a7cd07925450628efa677165d403510d89bf51 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/c7a7cd07925450628efa677165d403510d89bf51 deleted file mode 100644 index 5442bebbed3e79e4092a3bd863b445894417f5de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6648 zcmWgOV*mpI2*qFk={9nkmzX#5N`{t7gH0~&t^8vg_uAL_hOYBU5!Ltr!nMnhmU z1V%$(Gz5lh2*BD^2`fLZEG(K-viq}Tp4(ael$#Pq+v>BQuYdfMH_~F=<3%ua9Jzi? zO@bER*{h`9-hX)O@5gBW(w;h#qqAluw5Bk$KFdxvGynxg5O+=?km7&^3?mwVnRifs zS498+9|cp7mYucCj^HeFy?wnyqpPs=WLMtAy_+||)Rkq3K7N1oW&Q2D&9BQFnkQ{E ze7|V*S5uGojNAUqR~L)IWiJyNfSFfNsBC7ipKq&jdzwtj(OJ_O*+Y5r??0)0x^CB7 zPvL7bVCrU?CeCVN+wm~%Q0f+q4Sc^P8d()%KQpi;9NrYVUZo-hm%Yqr0A^mnWrK!= zL762R_AH)LbV27zWw`LXq;3&OwHW`CD^9M`iUfJPWVP0Ai%JTkP9g83TADdcq^F}%!0Il-D;{X5v diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/c862e8c9d33f4b01c20a9dc77849e5c5856f2474 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/c862e8c9d33f4b01c20a9dc77849e5c5856f2474 new file mode 100644 index 0000000000000000000000000000000000000000..259383082ece7c038fbcedaf019bc3bd3b6f0623 GIT binary patch literal 4288 zcmWgOV*mpI2*qFkJst<+oZ{`ADo?HBIfwUnP{y=P|D|%8+v$5RW8b{epC0j zw>d4~lvATK!;cbiM@5EX)vhH*Pag;bhkQG6wkMpC>z8QCR({53JI)=iF#B{|>}0)T xniHexn``Lijq)KO0PEK}Km!EEmq6n~xo|20O}+w+zXOdw0gVsk!l@f*@&H@!cDVom literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/c96ae0dca69ceb11a79855a19786a559d6b255e3 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/c96ae0dca69ceb11a79855a19786a559d6b255e3 new file mode 100644 index 0000000000000000000000000000000000000000..c4692d018e7bb3728aef808ef3421c2daa42946f GIT binary patch literal 4288 zcmWgOV*mpI2*qFkWgbgaE8x>i`W97+(U759PwC1T^^yH2w}W{sc5WlnbYBpveOO2NQYg literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/clusterfuzz-testcase-minimized-oemcrypto_load_license_fuzz-5919435528601600 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/clusterfuzz-testcase-minimized-oemcrypto_load_license_fuzz-5919435528601600 deleted file mode 100644 index 58dc14ffc1690766e9314712a4d8bfe1c6f2cf17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6652 zcmWgOV*mpI2*qFkNBCn)(Jb{th($2{ir#C?95?0yLmu z_WeLpZ-6H6fX0VwCr!4w7->9XlOAuvE`L}9r!O>s&p#vPZv73v)3y_r zZkJo|@%?Uzr_DFj?p^tK-I+5x+0Yais7wZ3Urz(+23P^7ig|{cc*yMrXf$k84H8879^6fIYy&i7P4`xjcE)rE&O6&BxA1{95 z=z8xHH>MnYi_7X{5P*8w*u>NfX0_Az8||Ib7x)FdKPbb>;j?3lIo}@p{uI9_3GwU` zKedR$>;-#aw4n%#$x(VV1V%$(Gz3ONU^E0qLtwau0H|#^+D-(=F0t*zC$no_$%Q_s zu{tR_?-gJB0*~sDOra~s6Mlv<=M=F#zlW=RngRmw_GwBAtbO`H%A`(zN1SKE?q;8V zPuEl&x%cJoo);QVcAcAarF*yMc3As#b;3Inu>zfBV^_7eA}%TAt}z8#{Xfl31Qpn} z9Fv{KjmzFtGyt#oy*==`OVMQ{Pb_1ueent^_`4)lhC$}&7Hz8roimIEqKRl z)gOk$Mq$H`rzE2?hig_C?*8JjKYaeHJKIHNk^1AQ)e*nZ{hN4eYFRetkGK-2)iyJI zW|X+A{V51Nbb5!~Rhg@LIrnNmS1(@`*j8CAx2I0?_XPp<2NQnz>3`SyvnagJ`sB6W Suqgp_V@c;Hk*;Mh>Hq*E0cK4A diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/clusterfuzz-testcase-minimized-oemcrypto_load_license_fuzz-6406770604638208 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/d0a0d8d0c842875b97e89957095af3c71f7e9744 similarity index 54% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/clusterfuzz-testcase-minimized-oemcrypto_load_license_fuzz-6406770604638208 rename to libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/d0a0d8d0c842875b97e89957095af3c71f7e9744 index 1a0f23cf40106786464045a4a169cdfadf12c930..2e0d879ef1d9388adadbd3fdf59c77e4c793452b 100644 GIT binary patch literal 4288 zcmWgOV*mpI2*qFkp8~AL!rYml)^+lE!v5!OTf9_)ziVWF zQBFInm-Hd(rO$CCm0u4kVd}1_JDOjy-EAiFbW!h(Zm!@*p=xzuE8FK!i3#;Ew4r6G_40jBjb7aInRI^Xymc|tjBl%?_WRCQ#V_;M;bBhoycxgNbxSzg xcle~Kr=puT%7=sitY7N@4G0B9 zcc95nK;xf4lh-7*_QIx5USHX5}(zbUSA=kY@!1g8~0Ia>Z zVCRm=?7MfQZXVfUwQHqi!;)(TNnajGd|GVgRQrZM%oAqslr?XKH#J!<*|>OrZU2-K zXBW{a3&p-?J(yVO^s<$IEf-#U?I8XI`5b26CXe$~KU0z{;X%Ts zVmr^1g%6AU9>Ub=v0N5SUU_F>{{GT;DT}vhJ#cxmd)K|w84UY{JDOzJpX0R`8qUTh zDJih_=Y~0}mVSJ>PA+S;-K9wKRU8hGve9c>zT5crobR1_ z?_uiFmm8}on7+y0TX0j;*ROxVfwL;QTLtFXF}0??h`G%F1(&@r`$y@~5Eu=C(GVC7 zfzc2c4S~@R7!85Z5Eu=C(GVEvArR5%e(`16os`^y30spB#LUsdLn?hEPs|3XsV37C zH-7kV<@{Cs{kt}=TW-d;^4zOph4qyT><3DcJ{$6B*|({5M`pM>x?Y}`-hF+t&D`2V NgNa7J(ajs_d;ncoaN+;} diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/df85865da57cab1bcbf9a081b850c3c8525098f6 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/df85865da57cab1bcbf9a081b850c3c8525098f6 new file mode 100644 index 0000000000000000000000000000000000000000..f6752016b00935b4933dd2fc33da271643f72893 GIT binary patch literal 4288 zcmWgOV*mpI2*qFkjmMPW?N*xV=GC z+}*gSaf{da^TCy~M2=Mo!qm;ujfq*=y{o~t`S`^dCRXd1_wKy7;g{Df(O1(YgZW?l z&rUY909m;~EAtAF;(%Juz=#H5=4q7|ABoKp3)S=UdH3kg* zsnKFsUJ%-IZfQ+c#Sb%~ulIJ(no@Lb*RrNZB3buB4!v(+)@;o>`eE_wSxHNBPGlZ< yaEO(g!L}UTyiqKs8pvhOD@pqu{C!q16TsUc76_Fm+LS|2!x6a)wW4mDqaveq>s-qm|#r*;Cw%I}$$2Ogn!) zJK4|zWaYu|S*L*%2h@57Ml=93&rG~FMXEyKr$EeaWBp5k>D~+FE^J_*QNb;5QNE(6 zdjd?IkEzz&f-8mvQ!h`Fj(C4T@RrrJDn3lVj4+#NSzt#a7ATYiJ8XwAqQweDD6=?h&X#5Fid?*)A-9VEE07DvTk^lez literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/e598a949c6b14e1a3f96bcdf1b3d9335b07a6085 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/e598a949c6b14e1a3f96bcdf1b3d9335b07a6085 deleted file mode 100644 index b54027c58647dbe9d102ecf7cfa0ec1c503d79bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6648 zcmWgOV*mpI2*qFk~_4RvT>JEw? z|EH33<%F@By2KuyhNE3iORkFQaqeYLb+CCGe2OJI+0YCW7}Z5O;=ra82P|M1(E!Z6 zNjsSrx}J(Z($n)kz(YBrxA(`nM9s@`m@4S}g^oa1V4_IlwojR}(%{7YJ7 zBg&at{i?$t^JUeC!d<$xF1YMvLIW`K{y(04{~~{3!kNcs>xJ$MX)@PZ#;$(vzhJWD z+>NFzfB0eQ%rt(bUOn*P|El|@oNYBfe=9KVi1^%kp+L_hPBJB@!v>eV%xC~+-aj#; z-@oS{Ze;6U$He#L@7#s*0^6QT#hkKId3vcLWr7GyU9IC}_L8KY=hng34XZwvP(wS;%8r%Lo(67GAhHl;-;QsHGlW^o{M)j;k-?RlaHAvKMCmC_NeiqaiRF z0;3@?8UmvsFd71*Aut*OqaiRF0wX;HEPBI(zv^H7w8%)j?YWgbgaE8x>i`W97+(U759PwC1T^^yH2w}W{sc5WlnbYBpveOOKqh+) literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/ef6f1be8c575823ab46f6cf0e38717809d180301 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/ef6f1be8c575823ab46f6cf0e38717809d180301 new file mode 100644 index 0000000000000000000000000000000000000000..fa031685dfb0272d103abbed669e450bb71ae277 GIT binary patch literal 4288 zcmWgOV*mpI2*qFkv0|*o!rZwgWKZy>L-LY0WfoXTwsAaP zeKBP2^~GO=Jzg}tnPjxz52jB2XOz4`!<2JwR$@n;8ofVku3QmyDaQGw+~c|HqmCTC zl$~s70kTrSx=4h| z|5VxnQzx|Y%G#G(xuti$pLyiP?OA)fc3g0GJf@cLS&{L)u}}UwT=qh2A0LqY)7uXTV12#ha*#)op@R05iO1sZ<`8h-*BAIgPOH_+q(bP9XG literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/f0d0117a070069c19108d17b834c6aa44ba11ab2 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/f0d0117a070069c19108d17b834c6aa44ba11ab2 new file mode 100644 index 0000000000000000000000000000000000000000..afa4721fe18fa1a22de33d8275a1d3f347e28f0a GIT binary patch literal 4288 zcmWgOV*mpI2*qFk}2=eFy_B<=Kw;~SpG1T;?YyMOv6E_-42kJ6(dFd71* zAut*OqaiRF0;3@?8UmvsFd71*Au!TIfbB=yE(N2?*?f2PB4Vf9e2yL-McU8bCzX`h zA3LeJ?}LwA?H0e5ISW1-_OEB$dqu~^xBJekjxaX#5>${0V4$C>KuMK$8am=eBuX literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/fa7ec04e797198608d77692abd2c13e98e6e6d28 b/libwvdrmengine/oemcrypto/test/fuzz_tests/corpus/oemcrypto_load_license_fuzz_seed_corpus/fa7ec04e797198608d77692abd2c13e98e6e6d28 new file mode 100644 index 0000000000000000000000000000000000000000..a1bbac3b4132350f4c1fe46cfc32d364fa6c5d5e GIT binary patch literal 4288 zcmWgOV*mpI2*qFkCDBuJ30hU`I%}w?O0;HH0i>kEA#vJhq&b|ohp3V zI6K+U0%T?F0gs(PiUVpr10x!MnYVrNx(7e^JQm}T7Ypq>^C|KZb4UK#wf~+UIUlYX zS@2pErta=G^XuHqkF9Q0rL+GREio_L6}4Gx>b~G2k>!Q~+pey_WiQPBQF=54MnhmU z1V%$(Gz3ONU^E0qLtr!nMnhmU1V(xY=qmYYw`)#`>{j_CKOt?l4|;frOP#&SCjH#u z{yOn8QM1agQ`Snto*!9ao>$$@2Y}#6{_yUv})^nlg7& ybBDUc<*jY#=8f_pApq;wIzR&i#+N|jL%DD&0ZqOFjlTnpKLL#o<-(~OXz~C(4RlQa literal 0 HcmV?d00001 diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_license_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_license_fuzz.cc index 20b16f02..3dc3b07a 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_license_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_license_fuzz.cc @@ -7,14 +7,14 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { wvoec::RedirectStdoutToFile(); - if (size < sizeof(ODK_ParsedLicense) + sizeof(wvoec::MessageData)) { + if (size < sizeof(ODK_Packing_ParsedLicense) + sizeof(wvoec::MessageData)) { return 0; } wvoec::OEMCryptoLicenseAPIFuzz license_api_fuzz; license_api_fuzz.Initialize(); license_api_fuzz.license_messages().SignAndVerifyRequest(); - // Interpreting input fuzz data as unencrypted (core_response + license - // message data) from license server. + // Interpreting input fuzz data as unencrypted core_response + response_data + + // key_array from license server. license_api_fuzz.license_messages().InjectFuzzedResponseData(data, size); // Convert OEMCrypto_LicenseType in core_response to a valid enum value. diff --git a/libwvdrmengine/oemcrypto/test/oec_session_util.cpp b/libwvdrmengine/oemcrypto/test/oec_session_util.cpp index a6c5b51c..e873cb14 100644 --- a/libwvdrmengine/oemcrypto/test/oec_session_util.cpp +++ b/libwvdrmengine/oemcrypto/test/oec_session_util.cpp @@ -713,12 +713,16 @@ void LicenseRoundTrip::InjectFuzzedTimerLimits( void LicenseRoundTrip::InjectFuzzedResponseData(const uint8_t* data, size_t size) { - // Interpreting fuzz data as unencrypted core_response + message_data + // Interpreting fuzz data as unencrypted core_response + response_data + + // key_array FuzzedData fuzzed_data(data, size); // Copy core_response from data. fuzzed_data.Fill(&core_response_, sizeof(core_response_)); + // Copy response_data from data. + fuzzed_data.Fill(&response_data_, sizeof(response_data_)); + // If key_array_length is more than kMaxNumKeys, we set it to kMaxNumKeys to // prevent it from going out of bounds. For corpus, this value is already hard // coded to 4. @@ -756,11 +760,9 @@ void LicenseRoundTrip::InjectFuzzedResponseData(const uint8_t* data, } } - // Copy response_data from data and set nonce to match one in request to pass - // nonce validations. - fuzzed_data.Fill(&response_data_, sizeof(response_data_)); + // Set nonce to match one in request to pass nonce validations. for (uint32_t i = 0; i < num_keys_; ++i) { - response_data_.keys[i].control.nonce = session()->nonce(); + response_data_.keys[i].control.nonce = htonl(session()->nonce()); } } @@ -950,11 +952,14 @@ OEMCryptoResult LicenseRoundTrip::LoadResponse(Session* session, const std::string file_name = GetFileName("oemcrypto_load_license_fuzz_seed_corpus"); // Corpus for license response fuzzer should be in the format: - // core_response + response_data. + // core_response + response_data + key_array. AppendToFile(file_name, reinterpret_cast(&core_response_), - sizeof(ODK_ParsedLicense)); + sizeof(core_response_)); AppendToFile(file_name, reinterpret_cast(&response_data_), sizeof(response_data_)); + AppendToFile( + file_name, reinterpret_cast(core_response_.key_array), + core_response_.key_array_length * sizeof(*core_response_.key_array)); } // Some tests adjust the offset to be beyond the length of the message. Here, From 078682a897330ee723374353bae36d1e67637135 Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Fri, 12 May 2023 17:52:38 +0000 Subject: [PATCH 23/27] Simplify fuzz tests using LicenseWithUsageEntryFuzz Merged from https://widevine-internal-review.googlesource.com/175060 Change-Id: I2f245ac998883e2a31cde361e30b36f00681262c --- .../oemcrypto_deactivate_usage_entry_fuzz.cc | 16 ++++----- .../test/fuzz_tests/oemcrypto_fuzz_helper.h | 21 ++++++----- .../oemcrypto_load_usage_entry_fuzz.cc | 24 ++++++------- .../oemcrypto_load_usage_table_header_fuzz.cc | 2 +- .../oemcrypto_move_usage_entry_fuzz.cc | 35 +++++++------------ .../fuzz_tests/oemcrypto_report_usage_fuzz.cc | 27 +++++++------- .../oemcrypto_reuse_usage_entry_fuzz.cc | 31 ++++++---------- ...emcrypto_shrink_usage_table_header_fuzz.cc | 8 ++++- 8 files changed, 72 insertions(+), 92 deletions(-) diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_deactivate_usage_entry_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_deactivate_usage_entry_fuzz.cc index e52e2863..9644106e 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_deactivate_usage_entry_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_deactivate_usage_entry_fuzz.cc @@ -11,19 +11,15 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { wvoec::LicenseWithUsageEntryFuzz entry; entry.Initialize(); entry.CreateUsageTableHeader(); - // Open a session, create a usage entry. - wvoec::Session* session = entry.license_messages().session(); - session->open(); - entry.InstallTestDrmKey(session); - session->CreateNewUsageEntry(); - session->GenerateNonce(); + entry.InstallTestDrmKey(); + entry.session().CreateNewUsageEntry(); + entry.session().GenerateNonce(); std::vector encrypted_usage_header; - session->UpdateUsageEntry(&encrypted_usage_header); + entry.session().UpdateUsageEntry(&encrypted_usage_header); // LoadLicense sets the pst for usage entry. entry.LoadLicense(); + OEMCrypto_DeactivateUsageEntry(entry.session().session_id(), data, size); + entry.Terminate(); - OEMCrypto_DeactivateUsageEntry(session->session_id(), data, size); - session->close(); - OEMCrypto_Terminate(); return 0; } diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h index 192197b1..a322ebcf 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_fuzz_helper.h @@ -143,33 +143,36 @@ class OEMCryptoRenewalAPIFuzz { class LicenseWithUsageEntryFuzz { public: - LicenseWithUsageEntryFuzz() : license_messages_(&session_) { + LicenseWithUsageEntryFuzz() : license_messages_(&session_fuzz_.session()) { license_messages_.set_pst("my_pst"); } - void Initialize() { InitializeFuzz(session_util_); } + void Initialize() { session_fuzz_.Initialize(); } - void InstallTestDrmKey(Session* session) { - session_util_.InstallTestDrmKey(session); - } + void Terminate() { session_fuzz_.Terminate(); } void CreateUsageTableHeader(); + void InstallTestDrmKey() { session_fuzz_.InstallTestDrmKey(); } + void LoadLicense(); LicenseRoundTrip& license_messages() { return license_messages_; } const LicenseRoundTrip& license_messages() const { return license_messages_; } - const vector& encrypted_usage_header() const { + const std::vector& encrypted_usage_header() const { return encrypted_usage_header_; } + Session& session() { return session_fuzz_.session(); } + + const Session& session() const { return session_fuzz_.session(); } + private: - SessionUtil session_util_; - vector encrypted_usage_header_; + SessionFuzz session_fuzz_; LicenseRoundTrip license_messages_; - Session session_; + std::vector encrypted_usage_header_; }; // Convert data from FuzzedDataProvider to valid enum value. diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_entry_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_entry_fuzz.cc index 5627c41a..d39ef006 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_entry_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_entry_fuzz.cc @@ -35,17 +35,16 @@ extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { extern "C" size_t LLVMFuzzerCustomMutator(uint8_t* data, size_t size, size_t max_size, unsigned int seed) { entry.CreateUsageTableHeader(); - wvoec::Session* s = entry.license_messages().session(); - s->open(); - entry.InstallTestDrmKey(s); - if (LoadUsageEntryWithFuzzedData(s->session_id(), data, size) != + entry.session().open(); + entry.InstallTestDrmKey(); + if (LoadUsageEntryWithFuzzedData(entry.session().session_id(), data, size) != OEMCrypto_SUCCESS) { - s->CreateNewUsageEntry(); + entry.session().CreateNewUsageEntry(); std::vector encrypted_usage_header; - s->UpdateUsageEntry(&encrypted_usage_header); - const uint32_t usage_entry_number = s->usage_entry_number(); + entry.session().UpdateUsageEntry(&encrypted_usage_header); + const uint32_t usage_entry_number = entry.session().usage_entry_number(); const std::vector& encrypted_usage_entry = - s->encrypted_usage_entry(); + entry.session().encrypted_usage_entry(); size = sizeof(usage_entry_number) + encrypted_usage_entry.size(); if (size > max_size) { return 0; @@ -55,14 +54,13 @@ extern "C" size_t LLVMFuzzerCustomMutator(uint8_t* data, size_t size, memcpy(data + sizeof(usage_entry_number), encrypted_usage_entry.data(), encrypted_usage_entry.size()); } - s->close(); + entry.session().close(); return LLVMFuzzerMutate(data, size, max_size); } extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - wvoec::Session s; - s.open(); - LoadUsageEntryWithFuzzedData(s.session_id(), data, size); - s.close(); + entry.session().open(); + LoadUsageEntryWithFuzzedData(entry.session().session_id(), data, size); + entry.session().close(); return 0; } diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_table_header_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_table_header_fuzz.cc index f4667f37..ebf92fa2 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_table_header_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_table_header_fuzz.cc @@ -20,7 +20,7 @@ extern "C" size_t LLVMFuzzerCustomMutator(uint8_t* data, size_t size, memcpy(data, entry.encrypted_usage_header().data(), entry.encrypted_usage_header().size()); } - OEMCrypto_Terminate(); + entry.Terminate(); return LLVMFuzzerMutate(data, size, max_size); } diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_move_usage_entry_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_move_usage_entry_fuzz.cc index 2e608cb4..0c65ed0d 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_move_usage_entry_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_move_usage_entry_fuzz.cc @@ -6,35 +6,24 @@ #include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" -namespace { - -// Avoid calling non-trivial destructor. -wvoec::LicenseWithUsageEntryFuzz& entry = *new wvoec::LicenseWithUsageEntryFuzz; - -} // namespace - -extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { - wvoec::RedirectStdoutToFile(); - entry.Initialize(); - return 0; -} - extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + wvoec::RedirectStdoutToFile(); + + wvoec::LicenseWithUsageEntryFuzz entry; + entry.Initialize(); entry.CreateUsageTableHeader(); - wvoec::Session* s = entry.license_messages().session(); - s->open(); - entry.InstallTestDrmKey(s); - s->CreateNewUsageEntry(); + entry.InstallTestDrmKey(); + entry.session().CreateNewUsageEntry(); std::vector encrypted_usage_header; - s->UpdateUsageEntry(&encrypted_usage_header); - s->close(); + entry.session().UpdateUsageEntry(&encrypted_usage_header); + entry.session().close(); - s->open(); - s->ReloadUsageEntry(); + entry.session().open(); + entry.session().ReloadUsageEntry(); OEMCrypto_MoveEntry( - s->session_id(), + entry.session().session_id(), FuzzedDataProvider(data, size).ConsumeIntegral()); - s->close(); + entry.Terminate(); return 0; } diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_report_usage_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_report_usage_fuzz.cc index c208f344..8b636545 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_report_usage_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_report_usage_fuzz.cc @@ -11,7 +11,7 @@ namespace { constexpr size_t MAX_FUZZ_PST_REPORT_BUFFER_LENGTH = 5 * wvoec::MB; -} // namespace +} // namespace extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { wvoec::RedirectStdoutToFile(); @@ -19,30 +19,29 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { wvoec::LicenseWithUsageEntryFuzz entry; entry.Initialize(); entry.CreateUsageTableHeader(); - // Open a session, create a usage entry. - wvoec::Session* session = entry.license_messages().session(); - session->open(); - entry.InstallTestDrmKey(session); - session->CreateNewUsageEntry(); - session->GenerateNonce(); + entry.InstallTestDrmKey(); + entry.session().CreateNewUsageEntry(); + entry.session().GenerateNonce(); std::vector encrypted_usage_header; - session->UpdateUsageEntry(&encrypted_usage_header); + entry.session().UpdateUsageEntry(&encrypted_usage_header); // Sets pst for usage entry. entry.LoadLicense(); FuzzedDataProvider fuzzed_data(data, size); + + // pst_report_buffer and pst_report_buffer_length parameters size_t pst_report_buffer_length_data = fuzzed_data.ConsumeIntegralInRange( 0, MAX_FUZZ_PST_REPORT_BUFFER_LENGTH); std::vector pst_report_buffer(pst_report_buffer_length_data); size_t* const pst_report_buffer_length = fuzzed_data.ConsumeBool() ? &pst_report_buffer_length_data : nullptr; - const std::vector pst = fuzzed_data.ConsumeRemainingBytes(); - // Call API with fuzzed pst_buffer_length, pst. - OEMCrypto_ReportUsage(session->session_id(), pst.data(), pst.size(), - pst_report_buffer.data(), pst_report_buffer_length); - session->close(); - OEMCrypto_Terminate(); + const std::vector pst = fuzzed_data.ConsumeRemainingBytes(); + + OEMCrypto_ReportUsage(entry.session().session_id(), pst.data(), pst.size(), + pst_report_buffer.data(), pst_report_buffer_length); + + entry.Terminate(); return 0; } diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_reuse_usage_entry_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_reuse_usage_entry_fuzz.cc index 7aef70f9..700e67b7 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_reuse_usage_entry_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_reuse_usage_entry_fuzz.cc @@ -6,32 +6,21 @@ #include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" -namespace { - -// Avoid calling non-trivial destructor. -wvoec::LicenseWithUsageEntryFuzz& entry = *new wvoec::LicenseWithUsageEntryFuzz; - -} // namespace - -extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { - wvoec::RedirectStdoutToFile(); - entry.Initialize(); - return 0; -} - extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + wvoec::RedirectStdoutToFile(); + + wvoec::LicenseWithUsageEntryFuzz entry; + entry.Initialize(); entry.CreateUsageTableHeader(); - wvoec::Session* s = entry.license_messages().session(); - s->open(); - entry.InstallTestDrmKey(s); - s->CreateNewUsageEntry(); - s->close(); + entry.InstallTestDrmKey(); + entry.session().CreateNewUsageEntry(); + entry.session().close(); - s->open(); + entry.session().open(); OEMCrypto_ReuseUsageEntry( - s->session_id(), + entry.session().session_id(), FuzzedDataProvider(data, size).ConsumeIntegral()); - s->close(); + entry.Terminate(); return 0; } diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_shrink_usage_table_header_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_shrink_usage_table_header_fuzz.cc index e9db0bb0..4806ed5e 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_shrink_usage_table_header_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_shrink_usage_table_header_fuzz.cc @@ -14,15 +14,21 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { wvoec::LicenseWithUsageEntryFuzz entry; entry.Initialize(); entry.CreateUsageTableHeader(); + FuzzedDataProvider fuzzed_data(data, size); + const uint32_t new_entry_count = fuzzed_data.ConsumeIntegral(); + + // header_buffer and header_buffer_length parameters size_t header_buffer_length_data = fuzzed_data.ConsumeIntegralInRange( 0, wvoec::MAX_FUZZ_OUTPUT_LENGTH); std::vector header_buffer(header_buffer_length_data); size_t* const header_buffer_length = fuzzed_data.ConsumeBool() ? &header_buffer_length_data : nullptr; + OEMCrypto_ShrinkUsageTableHeader(new_entry_count, header_buffer.data(), header_buffer_length); - OEMCrypto_Terminate(); + + entry.Terminate(); return 0; } From 79c809840e8f91f7ff6dba981c7a571467d2f1be Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Thu, 15 Jun 2023 18:09:15 +0000 Subject: [PATCH 24/27] Add OEMCrypto_QueryKeyControl fuzzer Merged from https://widevine-internal-review.googlesource.com/177111 Merged from https://widevine-internal-review.googlesource.com/177117 Change-Id: Iea28155a369f71557a32cc34da7bd328f78e2413 --- .../oemcrypto_query_key_control_fuzz.cc | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_query_key_control_fuzz.cc diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_query_key_control_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_query_key_control_fuzz.cc new file mode 100644 index 00000000..fb971874 --- /dev/null +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_query_key_control_fuzz.cc @@ -0,0 +1,43 @@ +// Copyright 2023 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine +// License Agreement. + +#include "FuzzedDataProvider.h" +#include "OEMCryptoCENC.h" +#include "oemcrypto_fuzz_helper.h" + +namespace { + +// Avoid calling non-trivial destructor. +wvoec::OEMCryptoLicenseAPIFuzz& license_api_fuzz = + *new wvoec::OEMCryptoLicenseAPIFuzz; + +} // namespace + +extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { + wvoec::RedirectStdoutToFile(); + license_api_fuzz.Initialize(); + license_api_fuzz.LoadLicense(); + return 0; +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + FuzzedDataProvider fuzzed_data(data, size); + + // key_control_block and key_control_block_length parameters + size_t key_control_block_length_data = + fuzzed_data.ConsumeIntegralInRange(0, + wvoec::MAX_FUZZ_OUTPUT_LENGTH); + std::vector key_control_block(key_control_block_length_data); + size_t* const key_control_block_length = + fuzzed_data.ConsumeBool() ? &key_control_block_length_data : nullptr; + + const std::vector content_key_id = + fuzzed_data.ConsumeRemainingBytes(); + + OEMCrypto_QueryKeyControl(license_api_fuzz.session().session_id(), + content_key_id.data(), content_key_id.size(), + key_control_block.data(), key_control_block_length); + + return 0; +} From 9a24732f5bd2be36962f3c644ad67e647cc9e66d Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Thu, 11 May 2023 18:01:48 +0000 Subject: [PATCH 25/27] Replace entitled key session fuzzer Enable multiple OEMCrypto calls in arbitrary order, multiple OEMCrypto sessions, and OEMCrypto_ReassociateEntitledKeySession fuzzing. Merged from https://widevine-internal-review.googlesource.com/174990 Merged from https://widevine-internal-review.googlesource.com/178330 Change-Id: Ic1ac754c74bf0299c8c9f04ffdbfe82cf9f7569d --- ...te_and_remove_entitled_key_session_fuzz.cc | 32 ----- .../oemcrypto_entitled_key_session_fuzz.cc | 136 ++++++++++++++++++ 2 files changed, 136 insertions(+), 32 deletions(-) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_create_and_remove_entitled_key_session_fuzz.cc create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_entitled_key_session_fuzz.cc diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_create_and_remove_entitled_key_session_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_create_and_remove_entitled_key_session_fuzz.cc deleted file mode 100644 index 07c0bd44..00000000 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_create_and_remove_entitled_key_session_fuzz.cc +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2022 Google LLC. All Rights Reserved. This file and proprietary -// source code may only be used and distributed under the Widevine -// License Agreement. - -#include "FuzzedDataProvider.h" -#include "OEMCryptoCENC.h" -#include "oemcrypto_fuzz_helper.h" - -extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - wvoec::RedirectStdoutToFile(); - - wvoec::SessionFuzz session_fuzz; - session_fuzz.Initialize(); - - FuzzedDataProvider fuzzed_data(data, size); - - uint32_t key_session; - uint32_t* const key_session_ptr = - fuzzed_data.ConsumeBool() ? &key_session : nullptr; - - OEMCrypto_CreateEntitledKeySession(session_fuzz.session().session_id(), - key_session_ptr); - - if (key_session_ptr == nullptr || fuzzed_data.ConsumeBool()) { - key_session = fuzzed_data.ConsumeIntegral(); - } - - OEMCrypto_RemoveEntitledKeySession(key_session); - - session_fuzz.Terminate(); - return 0; -} diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_entitled_key_session_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_entitled_key_session_fuzz.cc new file mode 100644 index 00000000..78323dd9 --- /dev/null +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_entitled_key_session_fuzz.cc @@ -0,0 +1,136 @@ +// Copyright 2023 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine +// License Agreement. + +#include + +#include "FuzzedDataProvider.h" +#include "OEMCryptoCENC.h" +#include "oemcrypto_fuzz_helper.h" + +namespace { + +enum class ApiMethod { + kOpenSession, + kCloseSession, + kCreateEntitledKeySession, + kReassociateEntitledKeySession, + kRemoveEntitledKeySession, + kMaxValue = kRemoveEntitledKeySession, +}; + +struct Session { + OEMCrypto_SESSION value; + std::vector::const_iterator iterator; +}; + +Session PickSession(FuzzedDataProvider& fuzzed_data, + const std::vector& sessions) { + Session session; + + session.iterator = + sessions.cbegin() + + fuzzed_data.ConsumeIntegralInRange(0, sessions.size()); + + if (session.iterator != sessions.cend()) { + session.value = *session.iterator; + } else { + session.value = fuzzed_data.ConsumeIntegral(); + } + + return session; +} + +} // namespace + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + wvoec::RedirectStdoutToFile(); + + wvoec::SessionUtil session_util; + wvoec::InitializeFuzz(session_util); + + // Contains all open and some closed OEMCrypto sessions. + std::vector oec_sessions; + + // Contains all current and some removed key sessions. + std::vector key_sessions; + + FuzzedDataProvider fuzzed_data(data, size); + + while (fuzzed_data.remaining_bytes() > 0) { + switch (fuzzed_data.ConsumeEnum()) { + case ApiMethod::kOpenSession: { + OEMCrypto_SESSION session = 0; + const OEMCryptoResult result = OEMCrypto_OpenSession(&session); + + if (result == OEMCrypto_SUCCESS) { + oec_sessions.push_back(session); + } + + break; + } + + case ApiMethod::kCloseSession: { + const Session session = PickSession(fuzzed_data, oec_sessions); + + const OEMCryptoResult result = OEMCrypto_CloseSession(session.value); + + if (result == OEMCrypto_SUCCESS && + session.iterator != oec_sessions.cend() && + fuzzed_data.ConsumeBool()) { + oec_sessions.erase(session.iterator); + } + + break; + } + + case ApiMethod::kCreateEntitledKeySession: { + const OEMCrypto_SESSION oec_session = + PickSession(fuzzed_data, oec_sessions).value; + + OEMCrypto_SESSION key_session_data = 0; + OEMCrypto_SESSION* const key_session = + fuzzed_data.ConsumeBool() ? &key_session_data : nullptr; + + const OEMCryptoResult result = + OEMCrypto_CreateEntitledKeySession(oec_session, key_session); + + if (result == OEMCrypto_SUCCESS) { + key_sessions.push_back(*key_session); + } + + break; + } + + case ApiMethod::kReassociateEntitledKeySession: { + const OEMCrypto_SESSION key_session = + PickSession(fuzzed_data, key_sessions).value; + + const OEMCrypto_SESSION oec_session = + PickSession(fuzzed_data, oec_sessions).value; + + OEMCrypto_ReassociateEntitledKeySession(key_session, oec_session); + + break; + } + + case ApiMethod::kRemoveEntitledKeySession: { + const Session key_session = PickSession(fuzzed_data, key_sessions); + + const OEMCryptoResult result = + OEMCrypto_RemoveEntitledKeySession(key_session.value); + + if (result == OEMCrypto_SUCCESS && + key_session.iterator != key_sessions.cend() && + fuzzed_data.ConsumeBool()) { + key_sessions.erase(key_session.iterator); + } + + break; + } + } + } + + OEMCrypto_Terminate(); + return 0; +} From e19927f4bff97cf484f926987094f71702843d1a Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Fri, 4 Aug 2023 16:56:07 +0000 Subject: [PATCH 26/27] Update OEMCrypto fuzzing documentation - Add details for triaging crashes and writing fuzz tests. - Move internal documentation not needed by partners to g3doc. - Remove infrastructure details covered in the design document. Change-Id: Ib60b2bea954f4371595b0f891434e2274366fdd2 --- .../oemcrypto/test/fuzz_tests/README.md | 331 +++++++----------- ...ld_clusterfuzz.md => clusterfuzz_setup.md} | 99 +++--- .../oemcrypto/test/fuzz_tests/sample_test.cc | 10 - 3 files changed, 171 insertions(+), 269 deletions(-) rename libwvdrmengine/oemcrypto/test/fuzz_tests/{build_clusterfuzz.md => clusterfuzz_setup.md} (66%) delete mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/sample_test.cc diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/README.md b/libwvdrmengine/oemcrypto/test/fuzz_tests/README.md index e1b7b9ca..e506065b 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/README.md +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/README.md @@ -1,229 +1,144 @@ -# OEMCRYPTO Fuzzing +# OEMCrypto fuzzing -Refer to [Setting up Clusterfuzz](build_clusterfuzz.md) if you are interested -in setting up a local instance of cluster fuzz to run fuzzing on your own -OEMCrypto implementations on linux. +ClusterFuzz and Google Cloud infrastructure continuously runs OEMCrypto fuzz +tests and reports crashes. To create a new automated fuzzing setup, refer to +[*ClusterFuzz setup*][1]. -## Objective +## Run fuzz tests locally -* Run fuzzing on OEMCrypto public APIs on linux using google supported - clusterfuzz infrastructure to find security vulnerabilities. - - Design Document - https://docs.google.com/document/d/1mdSV2irJZz5Y9uYb5DmSIddBjrAIZU9q8G5Q_BGpA4I/edit?usp=sharing - - Fuzzing at google - - [go/fuzzing](https://g3doc.corp.google.com/security/fuzzing/g3doc/fuzzing_resources.md?cl=head) -## Monitoring -### Cluster fuzz statistics - -* Performance of OEMCrypto fuzz binaries running continuously using cluster - fuzz infrastructure can be monitored - [here](https://clusterfuzz.corp.google.com/fuzzer-stats). - - The options to select are `Job type: libfuzzer_asan_oemcrypto` and `Fuzzer: - fuzzer name you are looking for` - - Example: [load_license_fuzz](https://clusterfuzz.corp.google.com/fuzzer-stats?group_by=by-day&date_start=2022-07-11&date_end=2022-07-17&fuzzer=libFuzzer_oemcrypto_load_license_fuzz&job=libfuzzer_asan_oemcrypto) - -### Issues filed by clusterfuzz - Fixing those issues - -* Any issues found with the fuzz target under test are reported by clusterfuzz - [here](https://b.corp.google.com/hotlists/2442954). - -* The bug will have a link to the test case that generated the bug. Download - the test case and follow the steps from - [testing fuzzer locally](#testing-fuzzer-locally) section to run the fuzzer - locally using the test case that caused the crash. - -* Once the issue is fixed, consider adding the test case that caused the crash - to the seed corpus zip file. Details about seed corpus and their location - are mentioned in - [this section](#build-oemcrypto-unit-tests-to-generate-corpus). - -## Corpus - -* Once the fuzzer scripts are ready and running continuously using clusterfuzz - or android infrastructure, we can measure the efficiency of fuzzers by - looking at code coverage and number of new features that have been - discovered by fuzzer scripts here Fuzz script statistics. - - A fuzzer which tries to start from random inputs and figure out intelligent - inputs to crash the libraries can be time consuming and not effective. A way - to make fuzzers more effective is by providing a set of valid and invalid - inputs of the library so that fuzzer can use those as a starting point. - These sets of valid and invalid inputs are called corpus. - - The idea is to run OEMCrypto unit tests and read required data into binary - corpus files before calling into respective OEMCrypto APIs under test. - Writing corpus data to binary files is controlled by --generate_corpus flag. - -### Build OEMCrypto unit tests to generate corpus - -* Install Pre-requisites +1. Build the fuzz tests: ```shell - $ sudo apt-get install gyp ninja-build + $ cd + $ oemcrypto/test/fuzz_tests/build_oemcrypto_fuzztests ``` -* download cdm source code (including ODK & OEMCrypto unit tests): +2. Run the fuzz test: ```shell - $ git clone sso://widevine-internal/cdm + $ out/Default/ [] ``` -* Build OEMCrypto unit tests and run with --generate_corpus flag to generate - corpus files: + The corpus directory is optional and can either be a seed corpus from the + `corpus` subdirectory or be an empty directory. The corpus will be extended + with new inputs while the fuzz test is running. + +## Triage crashes + +To reproduce a crash locally for debugging: + +1. Download the minimized testcase from the ClusterFuzz report. + +2. In the *cdm* repository, switch branches based on the Fuzz Target prefix. + The prefix is *oemcrypto* for the master branch, *oemcrypto_v17* for the + oemcrypto-v17 branch, *oemcrypto_v18* for the oemcrypto-v18 branch, etc. + +3. Build the fuzz tests: ```shell - $ cd /path/to/cdm/repo - $ export CDM_DIR=/path/to/cdm/repo + $ oemcrypto/test/fuzz_tests/build_oemcrypto_fuzztests + ``` + +4. Debug the crash: + + ```shell + $ gdb --args -timeout=0 + ``` + + Example after substituting fuzz test and test case paths: + + ```shell + $ gdb --args out/Default/oemcrypto_opk_decrypt_cenc_fuzz -timeout=0 \ + clusterfuzz-testcase-minimized-oemcrypto_v17_opk_decrypt_cenc_fuzz-6727459932078080 + ``` + +5. If reproducing the crash is unsuccessful, download the unminimized testcase + from the ClusterFuzz report and try again. If still unsuccessful, this may + indicate there is a persistent state issue with the fuzz test. + +Once the root cause of the crash is identified, its severity and complexity +should be assessed. The [*SEI CERT C Coding Standard*][2] is a good resource for +risk assessment. The ClusterFuzz report will also provide input in the Security +field. For complex fixes with a longer timeline, ClusterFuzz may report +duplicate crashes with the same root cause. + +## Write fuzz tests + +While fuzzing has random elements, input data mutations are heavily influenced +by coverage feedback. Since discovering new control flow edges is a time +consuming process, input bytes should map to control flow edges in a simple, +predictable way. [`FuzzedDataProvider`][3], a class supplied with LLVM’s +libFuzzer, can be used to easily split input data: + +```cpp +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + FuzzedDataProvider fuzzed_data(data, size); + + // One bit of input data maps to this control flow edge: + if (fuzzed_data.ConsumeBool()) { + // ... + } + + // ... +} +``` + +Fuzzing API methods with complex, structured input, may benefit from a seed +corpus containing a representative set of starting inputs. Unfortunately, +`FuzzedDataProvider` is not suitable for fuzz tests utilizing a seed corpus +since there is no equivalent serialization functionality for generating the +corpus. OEMCrypto fuzz tests have previously used struct-based serialization, +but this is no longer recommended due to portability issues. Protocol Buffers or +another portable serialization format should be considered instead. + +Fuzz tests must be deterministic to reproduce and debug a crash. A common +pitfall is not resetting the OEMCrypto API state between calls to +`LLVMFuzzerTestOneInput`. Fully terminating OEMCrypto between inputs is +preferred, but in some cases, it may be necessary to implement careful +optimizations to achieve acceptable performance. Candidates for optimization +typically have less than 1000 executions per second (exec/s). +`LLVMFuzzerInitialize` can be used for global initialization, but there is no +corresponding termination method. + +A good starting example is [`oemcrypto_install_oem_private_key_fuzz.cc`][4]. +Targets should be added to `oemcrypto_opk_fuzztests.gyp` and, if the fuzz test +applies to partner OEMCrypto implementations, `partner_oemcrypto_fuzztests.gyp`. +The infrastructure expects that the target name starts with *oemcrypto* and ends +with *fuzz*. + +For additional information about writing fuzz tests, see +[*What makes a good fuzz target*][5]. + +## Generate corpus with OEMCrypto unit tests + +1. Build the unit tests: + + ```shell + $ cd + $ export CDM_DIR=${PWD} $ export PATH_TO_CDM_DIR=.. - $ gyp --format=ninja --depth=$(pwd) oemcrypto/oemcrypto_unittests.gyp - $ ninja -C out/Default/ - $ mkdir oemcrypto/test/fuzz_tests/corpus/_seed_corpus - # Generate corpus by excluding buffer overflow tests. - $ ./out/Default/oemcrypto_unittests --generate_corpus \ - --gtest_filter=-"*Huge*" + $ gyp --format=ninja --depth=${PWD} oemcrypto/oemcrypto_unittests.gyp + $ ninja -C out/Default ``` -* There can be lot of duplicate corpus files that are generated from unit - tests. We can minimize the corpus files to only a subset of files that - cover unique paths within the API when run using fuzzer. Run following - command to minimize corpus. +2. Run the unit tests with the `--generate_corpus` flag: ```shell - $ cd /path/to/cdm/repo - # build fuzzer binaries - $ ./oemcrypto/test/fuzz_tests/build_oemcrypto_fuzztests + $ mkdir oemcrypto/test/fuzz_tests/corpus/_seed_corpus + $ out/Default/oemcrypto_unittests --generate_corpus --gtest_filter='-*Huge*' + ``` + +3. The unit tests can generate many duplicate corpus files. To minimize the + corpus to only the subset of inputs that cover unique paths within the API: + + ```shell + $ oemcrypto/test/fuzz_tests/build_oemcrypto_fuzztests $ mkdir /tmp/minimized_corpus - # minimize corpus - $ ./out/Default/ -merge=1 /tmp/minimized_corpus \ - + $ out/Default/ -merge=1 /tmp/minimized_corpus ``` -* To avoid uploading huge binary files to git repository, the minimized corpus - files will be saved in fuzzername_seed_corpus.zip format in blockbuster - project's oemcrypto_fuzzing_corpus GCS bucket using gsutil. If you need - permissions for blockbuster project, contact widevine-engprod@google.com. - - ```shell - $ gsutil cp gs://oemcrypto_fuzzing_corpus/ \ - - ``` - -## Testing fuzzer locally - -* Corpus needed to run fuzz tests locally are available in blockbuster - project's oemcrypto_fuzzing_corpus GCS bucket. If you need permissions for - this project, contact widevine-engprod@google.com. Download corpus. - - ```shell - $ gsutil cp gs://oemcrypto_fuzzing_corpus/ \ - - ``` - -* Add flags to generate additional debugging information. Add '-g3' flag to - oemcrypto_fuzztests.gypi cflags_cc in order to generate additional debug - information locally. - -* Build and test fuzz scripts locally using following commands. The build - script builds fuzz binaries for opk implementation. - - ```shell - $ cd PATH_TO_CDM_DIR - $ ./oemcrypto/test/fuzz_tests/build_oemcrypto_fuzztests - $ mkdir /tmp/new_interesting_corpus - $ ./out/Default/fuzzer_binary /tmp/new_interesting_corpus \ - /path/to/fuzz/seed/corpus/folder - ``` - -* In order to run fuzz script against a crash input, follow the above steps - and run the fuzz binary against crash input rather than seed corpus. - - ```shell - $ ./out/Default/fuzzer_binary crash_input_file - ``` -## Adding a new OEMCrypto fuzz script -* In order to fuzz a new OEMCrypto API in future, a fuzz script can be added - to oemcrypto/test/fuzz_tests folder which starts with oemcrypto and ends - with fuzz.cc(GCB build script for oemcrypto fuzzers expects the format). - -* In the program, define the function LLVMFuzzerTestOneInput with the following signature: - ``` - extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - - return 0; - } - ``` - *Note*: Make sure LLVMFuzzerTestOneInput calls the function you want to fuzz. - -* Add a new target to oemcrypto_fuzztests.gyp file and follow instructions in - [testing fuzzer locally](#testing-fuzzer-locally) to build and test locally. - -## Building OEMCrypto fuzz scripts and uploading them to Google Cloud Storage: - -* We are using Google Cloud Buid (GCB) in order to setup continuous - integration which uploads OEMCrypto fuzz binaries to Google Cloud Storage. - GCB expects build script in form of a docker image that is uploaded to - Google Container Registry(GCR). - - The cloud build scripts (docker images) for widevine projects are - [here](https://widevine-internal.googlesource.com/cloud/+/refs/heads/master/docker/README.md) - - Refer to README of the project to setup a new docker image and uploading - the image to GCR. - -* Git on borg repository needs to be integrated with GCB and a git trigger - needs to be set up in order to achieve continuous integration. Git trigger - will mention which docker image the GCB needs to use in order to build fuzz - binaries. GCB searches for docker images from GCR. - - Design document lists the steps to create a git trigger. - -### Adding a new fuzz script to the build script: - -* As long as a new fuzz script is added which starts with oemcrypto and ends - with fuzz, the build command can be added to build_oemcrypto_fuzztests. - GCB script uses build_oemcrypto_fuzztests script to build fuzz binaries - and make them available for clusterfuzz to run continuously. - -* If the new fuzzer cannot follow the naming convention OR GCB script needs - to be updated for any other reason, refer to [this section](https://docs.google.com/document/d/1mdSV2irJZz5Y9uYb5DmSIddBjrAIZU9q8G5Q_BGpA4I/edit#heading=h.bu9yfftdonkg) - section. - -## Generate code coverage reports locally - -* Code coverage is a means of measuring fuzzer performance. We want to make - sure that our fuzzer covers all the paths in our code and make any tweeks to - fuzzer logic so we can maximize coverage to get better results. - - Coverage reports for git on borg project is not automated and needs to be - generated manually. Future plan is to build a dashboard for git on borg - coverage reports. - -### Generate code coverage reports using script from Google cloud build -* A docker image with script to generate code coverage reports for oemcrypto - fuzz scripts is linked with a GCB trigger - `oemcrypto-fuzzing-code-coverage-git-trigger`. More information about clang - source based coverage can be found - [here](https://clang.llvm.org/docs/SourceBasedCodeCoverage.html). - -* This trigger when invoked compiles oemcrypto fuzz scripts with clang source - based code coverage enabled, downloads latest corpus from cluster fuzz - for the respective fuzzer, generates and uploads code coverage html reports - to [GCS](https://pantheon.corp.google.com/storage/browser/oemcrypto_fuzzing_code_coverage_reports;tab=objects?forceOnBucketsSortingFiltering=false&project=google.com:blockbuster-1154&prefix=). - -* The trigger can be invoked manually using cloud scheduler - `oemcrypto_fuzzing_code_coverage_reports`. - -* In order to generate latest code coverage reports from master branch, - go to pantheon->cloud scheduler->oemcrypto_fuzzing_code_coverage_reports and - click on `RUN NOW` button. - -* The above step should invoke a google cloud build. Go to cloud build console - and find latest build job with Trigger Name - `oemcrypto-fuzzing-code-coverage-git-trigger`. - -* Once the build job is successful, latest code coverage reports can be - downloaded from [GCS](https://pantheon.corp.google.com/storage/browser/oemcrypto_fuzzing_code_coverage_reports;tab=objects?forceOnBucketsSortingFiltering=false&project=google.com:blockbuster-1154&prefix=). - The coverage report folder uploaded to GCS is appended with timestamp. +[1]: clusterfuzz_setup.md +[2]: https://wiki.sei.cmu.edu/confluence/display/c/SEI+CERT+C+Coding+Standard +[3]: https://github.com/llvm/llvm-project/blob/main/compiler-rt/include/fuzzer/FuzzedDataProvider.h +[4]: oemcrypto_install_oem_private_key_fuzz.cc +[5]: https://github.com/google/fuzzing/blob/master/docs/good-fuzz-target.md diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/build_clusterfuzz.md b/libwvdrmengine/oemcrypto/test/fuzz_tests/clusterfuzz_setup.md similarity index 66% rename from libwvdrmengine/oemcrypto/test/fuzz_tests/build_clusterfuzz.md rename to libwvdrmengine/oemcrypto/test/fuzz_tests/clusterfuzz_setup.md index f3a0108b..4a455a98 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/build_clusterfuzz.md +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/clusterfuzz_setup.md @@ -1,14 +1,14 @@ -# OEMCRYPTO Fuzzing - Build clustefuzz and run fuzzing +# ClusterFuzz setup + +[ClusterFuzz][1] ## Objective -* Run fuzzing on OEMCrypto public APIs on linux by building open sourced - clusterfuzz source code in order to find security vulnerabilities. - - [Clusterfuzz][1] +* Run fuzzing on OEMCrypto public APIs on Linux by building open sourced + ClusterFuzz source code in order to find security vulnerabilities. * Partners who implement OEMCrypto can follow these instructions to build - clusterfuzz, the fuzzing framework and run fuzzing using fuzzer scripts + ClusterFuzz, the fuzzing framework and run fuzzing using fuzzer scripts provided by the Widevine team at Google. ## Glossary @@ -17,32 +17,32 @@ inputs are fed to APIs in order to crash those, thereby catching any security vulnerabilities with the code. -* Fuzzing engines - [libfuzzer][4], afl, honggfuzz are the actual fuzzing - engines that get the coverage information from API, use that to generate - more interesting inputs which can be passed to fuzzer. +* Fuzzing engines - [libFuzzer][4], AFL, Honggfuzz, etc. are the actual + fuzzing engines that get the coverage information from API, use that to + generate more interesting inputs which can be passed to fuzzer. * Seed corpus - Fuzzing engine trying to generate interesting inputs from an empty file is not efficient. Seed corpus is the initial input that a fuzzer can accept and call the API with that. Fuzzing engine can then mutate this seed corpus to generate more inputs to fuzzer. -* Clusterfuzz - ClusterFuzz is a scalable fuzzing infrastructure that finds +* ClusterFuzz - ClusterFuzz is a scalable fuzzing infrastructure that finds security and stability issues in software. Google uses ClusterFuzz to fuzz - all Google products. Clusterfuzz provides us with the capability, tools to + all Google products. ClusterFuzz provides us with the capability, tools to upload fuzz binaries and make use of the fuzzing engines to run fuzzing, - find crashes and organizes the information. Clusterfuzz framework is open + find crashes and organizes the information. ClusterFuzz framework is open sourced, the source code can be downloaded and framework can be built - locally or by using google cloud. + locally or by using Google Cloud. * Fuzzing output - Fuzzing is used to pass random inputs to API in order to ensure that API is crash resistant. We are not testing functionality via fuzzing. Fuzz scripts run continuously until they find a crash with the API under test. -## Building fuzz scripts +## Build fuzz scripts This section outlines the steps to build fuzz binaries that can be run -continuously using clusterfuzz. +continuously using ClusterFuzz. > **Note:** All the directories mentioned below are relative to cdm repository > root directory. @@ -50,8 +50,8 @@ continuously using clusterfuzz. 1. Fuzz scripts for OEMCrypto APIs are provided by the Widevine team at Google located under `oemcrypto/test/fuzz_tests` directory. -> **Note:** Prerequisites to run the following step are [here][10]. We also need -> to install ninja. + > **Note:** Prerequisites to run the following step are [here][10]. We also + > need to install Ninja. 2. Build a static library of your OEMCrypto implementation. * Compile and link your OEMCrypto implementation source with @@ -64,13 +64,11 @@ continuously using clusterfuzz. * This will generate fuzz binaries under the `out/Default` directory. - - -> **Note:** Alternatively, you can use your own build systems, for which you -> will need to define your own build files with the OEMCrypto fuzz source files -> included. You can find the the fuzz source files in -> `oemcrypto/test/fuzz_tests/partner_oemcrypto_fuzztests.gyp` and -> `oemcrypto/test/fuzz_tests/partner_oemcrypto_fuzztests.gypi`. + > **Note:** Alternatively, you can use your own build systems, for which you + > will need to define your own build files with the OEMCrypto fuzz source + > files included. You can find the the fuzz source files in + > `oemcrypto/test/fuzz_tests/partner_oemcrypto_fuzztests.gyp` and + > `oemcrypto/test/fuzz_tests/partner_oemcrypto_fuzztests.gypi`. 3. Seed corpus for each fuzz script can be found under `oemcrypto/test/fuzz_tests/corpus` directory. Some fuzzers are simple and do @@ -78,7 +76,7 @@ continuously using clusterfuzz. 4. Create a zip file `oemcrypto_fuzzers_yyyymmddhhmmss.zip` with fuzz binaries and respective seed corpus zip files. Structure of a sample zip file with - fuzzer binaries and seed corpus would look like following: + fuzzer binaries and seed corpus would look like this: ``` * fuzzerA @@ -88,59 +86,58 @@ continuously using clusterfuzz. * fuzzerC (fuzzerC doesn't have seed corpus associated with it) ``` -## Building clusterfuzz +## Build ClusterFuzz -* OEMCrypto implementation can be fuzzed by building clusterfuzz code which is - open sourced and using it to run fuzzing. Use a Linux VM to build - clusterfuzz. +OEMCrypto implementation can be fuzzed by building ClusterFuzz code, which is +open source, and using it to run fuzzing. Use a Linux VM to build ClusterFuzz. -> **Note:** You may see some issues with python modules missing, please install -> those modules if you see errors. If you have multiple versions of python on +> **Note:** You may see some issues with Python modules missing. Please install +> those modules if you see errors. If you have multiple versions of Python on > the VM, then use `python -m pipenv shell` when you are at [this][3] > step. -* Follow these [instructions][2] in order to download clusterfuzz repository, - build it locally or create a continuous fuzz infrastructure setup using - google cloud. +Follow these [instructions][2] in order to download the ClusterFuzz repository, +build it locally or create a continuous fuzz infrastructure setup using Google +Cloud. -## Running fuzzers on local clusterfuzz instance +## Run fuzzers on local ClusterFuzz instance -* If you prefer to run fuzzing on a local machine instead of having a - production setup using google cloud, then follow these [instructions][6] to - add a job to the local clusterfuzz instance. +If you prefer to run fuzzing on a local machine instead of having a production +setup using Google Cloud, then follow these [instructions][5] to add a job to +the local ClusterFuzz instance. > **Note:** Job name should have a fuzzing engine and sanitizer as part of it. A -> libfuzzer and asan jobs should have libfuzzer_asan in the job name. +> libFuzzer and AddressSanitizer job should have libfuzzer_asan in the job name. * Create a job e:g:`libfuzzer_asan_oemcrypto` and upload previously created `oemcrypto_fuzzers_yyyymmddhhmmss.zip` as a custom build. Future uploads of zip file should have a name greater than current name. Following the above naming standard will ensure zip file names are always in ascending order. -* Once the job is added and clusterfuzz bot is running, fuzzing should be up +* Once the job is added and ClusterFuzz bot is running, fuzzing should be up and running. Results can be monitored as mentioned [here][6]. -* On a local clusterfuzz instance, only one fuzzer is being fuzzed at a time. +* On a local ClusterFuzz instance, only one fuzzer is being fuzzed at a time. -> **Note:** Fuzzing is time consuming. Finding issues as well as clusterfuzz +> **Note:** Fuzzing is time consuming. Finding issues as well as ClusterFuzz > regressing and fixing the issues can take time. We need fuzzing to run at > least for a couple of weeks to have good coverage. -## Finding fuzz crashes +## Find fuzz crashes -Once the clusterfuzz finds an issue, it logs crash information such as the -build, test case and stack trace for the crash. +* Once the ClusterFuzz finds an issue, it logs crash information such as the + build, test case and stack trace for the crash. * Test cases tab should show the fuzz crash and test case that caused the crash. Run `./fuzz_binary ` in order to debug the crash locally. -More information about different types of logs is as below: +More information about different types of logs is below: * [Bot logs][7] will show information related to fuzzing, number of crashes that a particular fuzzer finds, number of new crashes, number of known crashes etc. -* [Local GCS][8] in your clusterfuzz checkout folder will store the fuzz +* [Local GCS][8] in your ClusterFuzz checkout folder will store the fuzz binaries that are being fuzzed, seed corpus etc. * `local_gcs/test-fuzz-logs-bucket` will store information related to fuzz @@ -151,16 +148,16 @@ More information about different types of logs is as below: * `/path/to/my-bot/clusterfuzz/log.txt` will have any log information from fuzzer script and OEMCrypto implementation. -## Fixing issues +## Fix issues -* Once you are able to debug using the crash test case, apply fix to the +1. Once you are able to debug using the crash test case, apply fix to the implementation, create `oemcrypto_fuzzers_yyyymmddhhmmss.zip` with latest fuzz binaries. -* Upload the latest fuzz binary to the fuzz job that was created earlier. +2. Upload the latest fuzz binary to the fuzz job that was created earlier. Fuzzer will recognize the fix and mark the crash as fixed in test cases tab once the regression finishes. You do not need to update crashes as fixed, - clusterfuzz will do that. + ClusterFuzz will do that. [1]: https://google.github.io/clusterfuzz/ [2]: https://google.github.io/clusterfuzz/getting-started/ diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/sample_test.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/sample_test.cc deleted file mode 100644 index 68903939..00000000 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/sample_test.cc +++ /dev/null @@ -1,10 +0,0 @@ -#include -#include - -extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - if (size > 0 && data[0] == 'H') - if (size > 1 && data[1] == 'I') - if (size > 2 && data[2] == '!') - __builtin_trap(); - return 0; -} From 14c5d6ee5f07dbcd38b67e705f61b147881cb401 Mon Sep 17 00:00:00 2001 From: Ian Benz Date: Thu, 30 Nov 2023 23:41:35 +0000 Subject: [PATCH 27/27] Move internal fuzz target naming scheme to g3doc Change-Id: I400b0a34c670673aba9dd347ec41060b4b23897a --- libwvdrmengine/oemcrypto/test/fuzz_tests/README.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/README.md b/libwvdrmengine/oemcrypto/test/fuzz_tests/README.md index e506065b..249fe2f7 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/README.md +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/README.md @@ -29,17 +29,13 @@ To reproduce a crash locally for debugging: 1. Download the minimized testcase from the ClusterFuzz report. -2. In the *cdm* repository, switch branches based on the Fuzz Target prefix. - The prefix is *oemcrypto* for the master branch, *oemcrypto_v17* for the - oemcrypto-v17 branch, *oemcrypto_v18* for the oemcrypto-v18 branch, etc. - -3. Build the fuzz tests: +2. Build the fuzz tests: ```shell $ oemcrypto/test/fuzz_tests/build_oemcrypto_fuzztests ``` -4. Debug the crash: +3. Debug the crash: ```shell $ gdb --args -timeout=0 @@ -52,7 +48,7 @@ To reproduce a crash locally for debugging: clusterfuzz-testcase-minimized-oemcrypto_v17_opk_decrypt_cenc_fuzz-6727459932078080 ``` -5. If reproducing the crash is unsuccessful, download the unminimized testcase +4. If reproducing the crash is unsuccessful, download the unminimized testcase from the ClusterFuzz report and try again. If still unsuccessful, this may indicate there is a persistent state issue with the fuzz test.