mirror of
https://github.com/NinjaCheetah/libWiiPy.git
synced 2025-04-26 13:21:01 -04:00
Add separate methods to content.py for getting all contents vs 1 content by index
This commit is contained in:
parent
bfe937f58f
commit
c2b7724fdd
@ -42,8 +42,8 @@ class ContentRegion:
|
|||||||
start_offset += 64 - (content.content_size % 64)
|
start_offset += 64 - (content.content_size % 64)
|
||||||
self.content_start_offsets.append(start_offset)
|
self.content_start_offsets.append(start_offset)
|
||||||
|
|
||||||
def get_enc_content(self, index: int) -> bytes:
|
def get_enc_content_by_index(self, index: int) -> bytes:
|
||||||
"""Gets an individual content from the content region based on the provided content record, in encrypted form.
|
"""Gets an individual content from the content region based on the provided index, in encrypted form.
|
||||||
|
|
||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
@ -66,8 +66,22 @@ class ContentRegion:
|
|||||||
content_enc = content_region_data.read(bytes_to_read)
|
content_enc = content_region_data.read(bytes_to_read)
|
||||||
return content_enc
|
return content_enc
|
||||||
|
|
||||||
def get_content(self, index: int, title_key: bytes) -> bytes:
|
def get_enc_contents(self) -> List[bytes]:
|
||||||
"""Gets an individual content from the content region based on the provided content record, in decrypted form.
|
"""Gets a list of all encrypted contents from the content region.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
List[bytes]
|
||||||
|
A list containing all encrypted contents.
|
||||||
|
"""
|
||||||
|
enc_contents: List[bytes] = []
|
||||||
|
# Iterate over every content and add it to a list, then return it.
|
||||||
|
for content in range(self.num_contents):
|
||||||
|
enc_contents.append(self.get_enc_content_by_index(content))
|
||||||
|
return enc_contents
|
||||||
|
|
||||||
|
def get_content_by_index(self, index: int, title_key: bytes) -> bytes:
|
||||||
|
"""Gets an individual content from the content region based on the provided index, in decrypted form.
|
||||||
|
|
||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
@ -82,7 +96,7 @@ class ContentRegion:
|
|||||||
The decrypted content listed in the content record.
|
The decrypted content listed in the content record.
|
||||||
"""
|
"""
|
||||||
# Load the encrypted content at the specified index and then decrypt it with the Title Key.
|
# Load the encrypted content at the specified index and then decrypt it with the Title Key.
|
||||||
content_enc = self.get_enc_content(index)
|
content_enc = self.get_enc_content_by_index(index)
|
||||||
content_dec = decrypt_content(content_enc, title_key, self.content_records[index].index,
|
content_dec = decrypt_content(content_enc, title_key, self.content_records[index].index,
|
||||||
self.content_records[index].content_size)
|
self.content_records[index].content_size)
|
||||||
# Hash the decrypted content and ensure that the hash matches the one in its Content Record.
|
# Hash the decrypted content and ensure that the hash matches the one in its Content Record.
|
||||||
@ -97,3 +111,22 @@ class ContentRegion:
|
|||||||
# "Actual hash is: {}".format(content_dec_hash.hexdigest()))
|
# "Actual hash is: {}".format(content_dec_hash.hexdigest()))
|
||||||
print("mismatch idiot")
|
print("mismatch idiot")
|
||||||
return content_dec
|
return content_dec
|
||||||
|
|
||||||
|
def get_contents(self, title_key: bytes) -> List[bytes]:
|
||||||
|
"""Gets a list of all contents from the content region, in decrypted form.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
title_key : bytes
|
||||||
|
The Title Key for the title the content is from.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
List[bytes]
|
||||||
|
A list containing all decrypted contents.
|
||||||
|
"""
|
||||||
|
dec_contents: List[bytes] = []
|
||||||
|
# Iterate over every content, get the decrypted version of it, then add it to a list and return it.
|
||||||
|
for content in range(self.num_contents):
|
||||||
|
dec_contents.append(self.get_content_by_index(content, title_key))
|
||||||
|
return dec_contents
|
||||||
|
Loading…
x
Reference in New Issue
Block a user