SYMBOL INDEX (145 symbols across 29 files) FILE: src/wa_crypt_tools/lib/constants.py class C (line 1) | class C: FILE: src/wa_crypt_tools/lib/db/db.py class Database (line 10) | class Database(abc.ABC): method __str__ (line 17) | def __str__(self): method decrypt (line 21) | def decrypt(self, key: Key, encrypted: bytes) -> bytes: method encrypt (line 25) | def encrypt(self, key: Key, props: Props, decrypted: bytes) -> bytes: method get_iv (line 29) | def get_iv(self) -> bytes: FILE: src/wa_crypt_tools/lib/db/db12.py class Database12 (line 18) | class Database12(Database): method __init__ (line 23) | def __init__(self, key: Key14 = None, encrypted=None, method __str__ (line 145) | def __str__(self): method decrypt (line 152) | def decrypt(self, key: Key14, encrypted: bytes) -> bytes: method encrypt (line 203) | def encrypt(self, key: Key14, props: Props, decrypted: bytes) -> bytes: method get_iv (line 223) | def get_iv(self) -> bytes: FILE: src/wa_crypt_tools/lib/db/db14.py class Database14 (line 17) | class Database14(Database): method __init__ (line 19) | def __init__(self, key: Key14 = None, encrypted=None, file_hash=None, method encrypt (line 143) | def encrypt(self, key: Key, props: Props, decrypted: bytes) -> bytes: method __str__ (line 183) | def __str__(self): method get_iv (line 191) | def get_iv(self) -> bytes: method decrypt (line 195) | def decrypt(self, key: Key14, encrypted: bytes) -> bytes: FILE: src/wa_crypt_tools/lib/db/db15.py class Database15 (line 17) | class Database15(Database): method __str__ (line 18) | def __str__(self): method __init__ (line 22) | def __init__(self, *, key: Key15 = None, encrypted=None, iv: bytes = None method decrypt (line 118) | def decrypt(self, key: Key15, encrypted: bytes) -> bytes: method encrypt (line 160) | def encrypt(self, key: Key15, props: Props, decrypted: bytes) -> bytes: method get_iv (line 190) | def get_iv(self) -> bytes: FILE: src/wa_crypt_tools/lib/db/dbfactory.py class DatabaseFactory (line 18) | class DatabaseFactory: method from_file (line 20) | def from_file(encrypted): FILE: src/wa_crypt_tools/lib/key/key.py class Key (line 5) | class Key(abc.ABC): method __init__ (line 7) | def __init__(self, keyarray: bytes = None): method __str__ (line 11) | def __str__(self) -> str: method get (line 15) | def get(self) -> bytes: method dump (line 19) | def dump(self) -> bytes: FILE: src/wa_crypt_tools/lib/key/key14.py class Key14 (line 15) | class Key14(Key): method __init__ (line 20) | def __init__(self, keyarray: bytes = None, method get (line 130) | def get(self) -> bytes: method get_serversalt (line 133) | def get_serversalt(self) -> bytes: method get_googleid (line 136) | def get_googleid(self) -> bytes: method get_cipher_version (line 139) | def get_cipher_version(self) -> bytes: method get_key_version (line 142) | def get_key_version(self) -> bytes: method __str__ (line 145) | def __str__(self) -> str: method __repr__ (line 163) | def __repr__(self) -> str: method dump (line 167) | def dump(self) -> bytes: method file_dump (line 179) | def file_dump(self, file: Path): FILE: src/wa_crypt_tools/lib/key/key15.py class Key15 (line 16) | class Key15(Key): method __init__ (line 20) | def __init__(self, keyarray: bytes = None, key: bytes = None): method get (line 59) | def get(self) -> bytes: method get_root (line 68) | def get_root(self) -> bytes: method get_metadata_encryption (line 74) | def get_metadata_encryption(self) -> bytes: method get_metadata_authentication (line 83) | def get_metadata_authentication(self) -> bytes: method dump (line 92) | def dump(self) -> bytes: method file_dump (line 96) | def file_dump(self, file: Path): method __str__ (line 100) | def __str__(self) -> str: method __repr__ (line 110) | def __repr__(self) -> str: FILE: src/wa_crypt_tools/lib/key/keyfactory.py class KeyFactory (line 13) | class KeyFactory: method new (line 15) | def new(file: Path): method from_file (line 28) | def from_file(file: Path): method from_hex (line 58) | def from_hex(hexstring: str) -> Key15: FILE: src/wa_crypt_tools/lib/logformat.py class CustomFormatter (line 4) | class CustomFormatter(logging.Formatter): method format (line 20) | def format(self, record): FILE: src/wa_crypt_tools/lib/props.py class Props (line 6) | class Props: method __init__ (line 7) | def __init__(self, *, v_features=None, wa_version: str = C.DEFAULT_APP... method enable_feature (line 28) | def enable_feature(self, feature: int): method disable_feature (line 32) | def disable_feature(self, feature: int): method get_feature (line 36) | def get_feature(self, feature: int) -> bool: method get_features (line 40) | def get_features(self) -> list[int]: method get_wa_version (line 50) | def get_wa_version(self) -> str: method get_jid (line 53) | def get_jid(self) -> str: method get_proto (line 56) | def get_proto(self): method __str__ (line 59) | def __str__(self): FILE: src/wa_crypt_tools/lib/utils.py function test_decompression (line 20) | def test_decompression(test_data: bytes) -> bool: function create_jba (line 45) | def create_jba(out: bytes) -> JavaByteArray: function hexstring2bytes (line 57) | def hexstring2bytes(string: str) -> bytes: function javaintlist2bytes (line 75) | def javaintlist2bytes(barr: JavaArray) -> bytes: function encryptionloop (line 83) | def encryptionloop(*, first_iteration_data: bytes, privateseed: bytes = ... function mcrypt1_metadata_decrypt (line 104) | def mcrypt1_metadata_decrypt(*, key, encoded: str): function get_mcrypt1_name (line 141) | def get_mcrypt1_name(*, key, name: str, md5: bytes) -> bytes: function header_info (line 157) | def header_info(header): FILE: src/wa_crypt_tools/wacreatekey.py function parsecmdline (line 26) | def parsecmdline() -> argparse.Namespace: function main (line 45) | def main(): FILE: src/wa_crypt_tools/wadecrypt.py function parsecmdline (line 63) | def parsecmdline() -> argparse.Namespace: function chunked_decrypt (line 89) | def chunked_decrypt(file_hash, cipher, encrypted, decrypted, buffer_size... function main (line 231) | def main(): FILE: src/wa_crypt_tools/waencrypt.py function parsecmdline (line 21) | def parsecmdline() -> argparse.Namespace: function main (line 60) | def main(): FILE: src/wa_crypt_tools/waguess.py function oscillate (line 48) | def oscillate(n: int, n_min: int, n_max: int): function find_data_offset (line 94) | def find_data_offset(header: bytes, iv_offset: int, key: bytes, starting... function guess_offsets (line 122) | def guess_offsets(key: bytes, encrypted: io.BufferedReader, def_iv_offse... function parsecmdline (line 170) | def parsecmdline() -> argparse.Namespace: function decrypt (line 192) | def decrypt(cipher, encrypted, decrypted): function main (line 244) | def main(): FILE: src/wa_crypt_tools/wainfo.py function parsecmdline (line 24) | def parsecmdline() -> argparse.Namespace: function main (line 37) | def main(): FILE: tests/lib/db/test_db.py class TestDatabase (line 2) | class TestDatabase(): FILE: tests/lib/test_constants.py class TestConstants (line 4) | class TestConstants: method test_zip_header (line 5) | def test_zip_header(self): FILE: tests/lib/test_utils.py class TestUtils (line 4) | class TestUtils: method test_hexstring2bytes (line 6) | def test_hexstring2bytes(self): FILE: tests/test_createkey.py class TestCreatekey (line 11) | class TestCreatekey: method test_createkey (line 12) | def test_createkey(self): method test_createkey14 (line 23) | def test_createkey14(self): FILE: tests/test_decrypt.py class TestDecryption (line 12) | class TestDecryption: method test_decryption15 (line 13) | def test_decryption15(self): method test_decryption14 (line 25) | def test_decryption14(self): method test_decryption12 (line 37) | def test_decryption12(self): FILE: tests/test_encrypt.py class TestEncryption (line 12) | class TestEncryption: method test_encryption15 (line 13) | def test_encryption15(self): method test_encryption14 (line 34) | def test_encryption14(self): method test_encryption14_noexpiry (line 55) | def test_encryption14_noexpiry(self): method test_encryption12 (line 75) | def test_encryption12(self): FILE: tests/tools-invocation/test_wacreatekey.py class TestWaCreateKey (line 10) | class TestWaCreateKey: method test_no_input (line 11) | def test_no_input(self): method test_hex_key (line 22) | def test_hex_key(self): method test_invalid_hex_key (line 35) | def test_invalid_hex_key(self): method test_invalid_hex_key_length (line 42) | def test_invalid_hex_key_length(self): method test_custom_output (line 49) | def test_custom_output(self): method test_not_overwrite_file (line 59) | def test_not_overwrite_file(self): method test_overwrite_file (line 74) | def test_overwrite_file(self): method test_crypt14_key (line 89) | def test_crypt14_key(self): method call_wacreatekey_14 (line 104) | def call_wacreatekey_14(self, arguments): method test_crypt14_key_not_all_parameters (line 114) | def test_crypt14_key_not_all_parameters(self): method test_crypt14_invalid_server_salt (line 143) | def test_crypt14_invalid_server_salt(self): method test_crypt14_invalid_google_id (line 158) | def test_crypt14_invalid_google_id(self): method test_crypt14_invalid_google_id_length (line 173) | def test_crypt14_invalid_google_id_length(self): method test_crypt14_invalid_key_version (line 188) | def test_crypt14_invalid_key_version(self): method test_crypt14_invalid_cipher_version (line 203) | def test_crypt14_invalid_cipher_version(self): FILE: tests/utils/utils.py function Propen (line 5) | def Propen(command): function cmp_files (line 12) | def cmp_files(file1: str, file2: str): function rm_if_found (line 19) | def rm_if_found(file: str): FILE: utils/WA_HMACSHA256_Loop.java class WA_HMACSHA256_Loop (line 13) | public class WA_HMACSHA256_Loop { method nestedHMACSHA256NoKey (line 15) | public static byte[] nestedHMACSHA256NoKey(byte[] first_iteration_data... method nestedHmacSHA256 (line 18) | public static byte[] nestedHmacSHA256(byte[] first_iteration_data, byt... FILE: utils/password_data_key_to_hashcat.py class Log (line 26) | class Log: method i (line 30) | def i(msg: str): method f (line 35) | def f(msg: str): function parsecmdline (line 41) | def parsecmdline() -> argparse.Namespace: function barrtoint (line 49) | def barrtoint(barr: javaobj.beans.BlockData) -> int: function javaintlist2bytes (line 54) | def javaintlist2bytes(barr: javaobj.beans.JavaArray) -> bytes: function read_password_data_key (line 62) | def read_password_data_key(passworddatakeyfilestream) -> str: function main (line 99) | def main(): FILE: utils/protobuf_bruteforce.py function parsecmdline (line 15) | def parsecmdline() -> argparse.Namespace: function load_file (line 27) | def load_file(file_name: str, byte_range=0, reverse=False) -> bytes: function get_truncated_stream (line 57) | def get_truncated_stream(content: bytes, start: int, end: int) -> BytesIO: function main (line 62) | def main(): function protoparse (line 89) | def protoparse(stream): class Message (line 93) | class Message: function search (line 99) | def search(whole_file: bytes, keep_going: bool, offset=0):