@@ -30,7 +30,7 @@ public EncodingHandler(ClientHandler client) : this(client,
3030 public EncodingHandler ( ClientHandler client , FullEKey eKey , int eSize ) : this ( client . OpenEKey ( eKey , eSize ) )
3131 {
3232 }
33-
33+
3434 public EncodingHandler ( Stream ? stream , bool leaveOpen = false )
3535 {
3636 ArgumentNullException . ThrowIfNull ( stream ) ;
@@ -56,7 +56,7 @@ public EncodingHandler(Stream? stream, bool leaveOpen=false)
5656 CKeyEKeyHeaderKeys = cKeyEKeyHeaders . Select ( x => x . FirstKey ) . ToArray ( ) ;
5757 CKeyEKeyPages_CKeys = new LinearCKeyEntry [ cKeyEKeyHeaders . Length ] [ ] ;
5858 CKeyEKeyPages_EKeys = new FullEKey [ cKeyEKeyHeaders . Length ] [ ] [ ] ;
59-
59+
6060 for ( var pageIdx = 0 ; pageIdx < cKeyEKeyHeaders . Length ; pageIdx ++ ) {
6161 var page = new byte [ cKeyEKeyPageSize * 1024 ] ;
6262 stream . DefinitelyRead ( page ) ;
@@ -69,27 +69,27 @@ public EncodingHandler(Stream? stream, bool leaveOpen=false)
6969 var pageEntryCount = page . Length / structSize ; // (approx)
7070 CKeyEKeyPages_CKeys [ pageIdx ] = new LinearCKeyEntry [ pageEntryCount ] ;
7171 CKeyEKeyPages_EKeys [ pageIdx ] = new FullEKey [ pageEntryCount ] [ ] ;
72-
72+
7373 var pageSpan = ( ReadOnlySpan < byte > ) page ;
7474 var entryIdx = 0 ;
7575 while ( true ) {
7676 if ( pageSpan . Length < structSize ) break ;
7777 var foundEntry = SpanHelper . ReadStruct < CKeyEKeyEntry > ( ref pageSpan ) ;
7878 if ( foundEntry . EKeyCount == 0 ) break ; // end
79-
79+
8080 var ekeyArray = SpanHelper . ReadArray < FullEKey > ( ref pageSpan , foundEntry . EKeyCount ) ;
81-
81+
8282 CKeyEKeyPages_CKeys [ pageIdx ] [ entryIdx ] = new LinearCKeyEntry {
8383 CKey = foundEntry . CKey ,
8484 ContentSize = foundEntry . ContentSize
8585 } ;
8686 CKeyEKeyPages_EKeys [ pageIdx ] [ entryIdx ] = ekeyArray . ToArray ( ) ;
8787 entryIdx ++ ;
8888 }
89-
89+
9090 CKeyEKeyPages_CKeys [ pageIdx ] = CKeyEKeyPages_CKeys [ pageIdx ] . AsSpan ( 0 , entryIdx ) . ToArray ( ) ;
9191 }
92-
92+
9393 var eKeyESpecPageSize = header . m_eKeyESpecPageSize . ToInt ( ) ;
9494 var eKeyEspecPageCount = header . m_eKeyEspecPageCount . ToInt ( ) ;
9595 var eKeyESpecHeaders = reader . ReadArray < PageHeader > ( ( int ) eKeyEspecPageCount ) ;
@@ -98,7 +98,7 @@ public EncodingHandler(Stream? stream, bool leaveOpen=false)
9898 for ( var pageIdx = 0 ; pageIdx < eKeyESpecHeaders . Length ; pageIdx ++ ) {
9999 var page = new byte [ eKeyESpecPageSize * 1024 ] ;
100100 stream . DefinitelyRead ( page ) ;
101-
101+
102102 var entries = MemoryMarshal . Cast < byte , EKeyESpecEntry > ( page ) ;
103103 for ( var entryIdx = 0 ; entryIdx < entries . Length ; entryIdx ++ )
104104 {
@@ -113,15 +113,15 @@ public EncodingHandler(Stream? stream, bool leaveOpen=false)
113113
114114 private bool FindCKey ( CKey cKey , out int pageIndex , out int foundIndex ) {
115115 var searchResult = Array . BinarySearch ( CKeyEKeyHeaderKeys , cKey ) ;
116-
116+
117117 if ( searchResult >= 0 ) {
118118 pageIndex = searchResult ;
119119 } else {
120120 var firstElementLarger = ~ searchResult ;
121121 pageIndex = firstElementLarger - 1 ;
122122 if ( pageIndex < 0 ) goto NOT_FOUND ;
123123 }
124-
124+
125125 var speculativeEntry = new LinearCKeyEntry {
126126 CKey = cKey
127127 } ;
@@ -131,7 +131,7 @@ private bool FindCKey(CKey cKey, out int pageIndex, out int foundIndex) {
131131 if ( foundIndex >= 0 ) {
132132 return true ;
133133 }
134-
134+
135135 NOT_FOUND :
136136 foundIndex = 0 ;
137137 pageIndex = 0 ;
@@ -141,11 +141,13 @@ private bool FindCKey(CKey cKey, out int pageIndex, out int foundIndex) {
141141 public bool TryGetEncodingEntry ( CKey cKey , out ReadOnlySpan < FullEKey > entry ) {
142142 if ( ! FindCKey ( cKey , out var pageIndex , out var foundIndex ) ) {
143143 entry = Array . Empty < FullEKey > ( ) ;
144- Logger . Debug ( nameof ( EncodingHandler ) , $ "Unable to get EKey for { cKey . ToHexString ( ) } (This is okay, can be due to bundle encryption)") ;
144+ if ( cKey != default ) {
145+ Logger . Debug ( nameof ( EncodingHandler ) , $ "Unable to get EKey for { cKey . ToHexString ( ) } (This is okay, can be due to bundle encryption)") ;
146+ }
145147 //Console.Out.WriteLine($"cant get ekey for {cKey.ToHexString()}. a o");
146148 return false ;
147149 }
148-
150+
149151 entry = CKeyEKeyPages_EKeys [ pageIndex ] [ foundIndex ] ;
150152 return true ;
151153 }
@@ -203,11 +205,11 @@ public IEnumerable<string> GetESpecs() {
203205 var terminatorIdx = span . IndexOf ( ( byte ) 0 ) ;
204206 Debug . Assert ( terminatorIdx != - 1 ) ;
205207 Debug . Assert ( terminatorIdx != 0 ) ;
206-
208+
207209 var especAscii = span . Slice ( 0 , terminatorIdx ) ;
208210 var espec = Encoding . ASCII . GetString ( especAscii ) ;
209211 yield return espec ;
210-
212+
211213 pos += terminatorIdx + 1 ;
212214 }
213215 }
@@ -257,7 +259,7 @@ public int CompareTo(CKeyEKeyEntry other) {
257259 return CKey . CompareTo ( other . CKey ) ;
258260 }
259261 }
260-
262+
261263 private struct LinearCKeyEntry : IComparable < LinearCKeyEntry > {
262264 public CKey CKey ;
263265 public UInt32BE ContentSize ;
@@ -267,4 +269,4 @@ public int CompareTo(LinearCKeyEntry other) {
267269 }
268270 }
269271 }
270- }
272+ }
0 commit comments