Proto commits in ElDavoo/wa-crypt-tools

These 14 commits are when the Protocol Buffers files have changed:

Commit:b16a805
Author:Davide Palma
Committer:GitHub

Move the protobuf schema to edition 2026 (#278) Edition 2026 enforces the 2024 naming style, so C14_cipher, C15_IV and Key_Type become C14Cipher, C15IV and KeyType; the files, and so the modules, keep their names. Types another .proto imports are declared `export`, since symbol visibility now defaults to strict. The classes are protoc 36.2 output, which checks for protobuf >= 7.36.2, hence the raised floor. mypy-protobuf stops at edition 2024, so the stubs are generated from a copy with the edition line lowered; the two resolve these files to the same features and the stub diff is only the renames. Claude-Session: https://claude.ai/code/session_01Gx9y2cnq6f7RfHKhr5hUt5 Co-authored-by: Davide Palma <git@davidepalma.it> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

Commit:878b61d
Author:Davide Palma
Committer:GitHub

Use WhatsApp's own names in the protobuf schema (#242) Read out of com.whatsapp 2.26.34.7 rather than guessed. classes6.dex holds BackupPrefix as a GeneratedMessageLite whose *_FIELD_NUMBER constants and newMessageInfo field-name array survived obfuscation, which gives the real name of every field including the one this library had been carrying as an unknown. key_type -> key_type_deprecated c14_cipher -> wa_provided_key_data c15_iv -> e2ee_key_data info -> backup_metadata IV -> encryption_iv google_id -> google_id_salt cipher_version -> backup_cipher_header jidSuffix -> jid_suffix f_5 .. f_39 -> <migration>_migration_finished That last one settles what the "feature table" is: not features but a record of which database migrations had already run when the backup was written. Three fields that were not modelled are in the schema now: passkey_encryption_metadata (5), key_type_new (6), and inside BackupExpiry backup_encrypted_hash_salt and backup_encrypted_hash (40, 41), which every backup that is not a msgstore carries. Also device_model (2), backup_export_file_size (38), identifier_type (42), lid_suffix (43) and display_suffix (44), with types taken from the app's own schema string rather than assumed. Two things the app does that this schema now mirrors: fields 2 and 3 are not a oneof -- its message schema lists them as two ordinary optional fields -- and fields 1 and 6 are verified by one shared Internal$EnumVerifier, so Key_Type carries all five values. What this project called HSM_CONTROLLED is really E2EE_DEPRECATED, and the value every 2.26 crypt15 backup puts in field 6 is E2EE_ENCRYPTION_KEY: the 64-digit key, as against a password or a passkey. Renaming a field cannot change the wire format, so nothing about what is read or written changes. Every fixture header still re-serialises to exactly the bytes it was parsed from, and the three byte-for-byte reproduction tests still pass. Props addressed the flags by building "f_" + number, which no longer names anything, so it looks them up by field number in the descriptor instead -- and takes its max_feature from the schema, so the range keeps up on its own when the proto grows another flag. Regenerated with protoc 29.6 from a throwaway nix flake; gencode moves 29.5 -> 29.6. Claude-Session: https://claude.ai/code/session_01WKq8MBAKTJkMd5DGNY3jdW Co-authored-by: Davide Palma <git@davidepalma.it> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

Commit:9097cd6
Author:Davide Palma (ElDavo)

Update proto files to edition 2023

Commit:8b02689
Author:Davide Palma (ElDavo)

regen proto, update tested version

The documentation is generated from this commit.

Commit:f9fcd06
Author:David
Committer:David

proto improvements Give more meaningful names to variables and proto messages

Commit:58d13d5
Author:David

proto class fix the mistery of the zero-fielded tag has finally been discovered.

Commit:947e62f
Author:David

introduce props, improve encryption Props are feature flags in msgstore headers, now they have their class

Commit:5957e34
Author:David
Committer:David

add feature 39 to message table

Commit:9c6b17c
Author:David

move proto files

Commit:e3b6439
Author:Mikel12455

Changed folder structure to work as package

Commit:efe2330
Author:David

Unified crypt14 and crypt15 code

Commit:19be945
Author:David

Move and update the proto files

Commit:c25268d
Author:David

Added more protobuf guesses

Commit:5520493
Author:David

repo reorganization