[TODO] Encrypted media send doesn't work
When trying to forward encrypted image using echoClient, we get the following error: Message com.whatsapp.proto.Message is missing required fields: image_message.media_key
Full log:
DEBUG:yowsup.layers.logger.layer:rx:
3 ! ��M�7��j�8x 9�t�҂����x�YTA"��5M=��!BH1�b��|�^� =ב�;�Wv �/���U}H�=�©Ѵ��}��v x�@��x���l{x����PD�]xbF���n�W ���q�ܗ�YFS���!���r��'�lڍ��8>�Pq{�쓣���X� �-s���uNE�/(2���T�O��F}�»�X����0@x�}�:��1�rÒe��X���z�PT�g��+�0�/�������>�Pf<���}b�H�Cez� �f���M�n�M�E��(���Ë%1+=��@@ZE��TT���WX�ZΏ�U��{�o���GB9U%�t ����q�T�1lS,�����#�~�}|��h�Hv���ܕ�g��ϑ��'���A��h[�c�P�K�t܆m�� 2k)o��Y8X�Ym�Z��L�9��<��E�� ����"qD�A�e�E��Dˌ�w6bz4�9�Y�$j����v[��,�̜ͣo�4B���0�?�ϓJ�_BL�t�~���C�\���T�h ����v�{1>�� IKD_�E��@���ΔP����oS��؊?�ki{V�Gf=]����b�K��9�8��C����Yʷ��e�>_�, J=�ٙb��IwgIj�Z��0^����v 6t�'�_���[�yĆ-g����O�E��]���c�:�O�Q��E��NJ���L��D^�^dώ���{?ypU�����~O=�[W�Q����|�}�$�0��R��x*؞�ҕ>�/a��>�7ѩe ��#�sIMBԑ�ח�O��>R����P�bL��m�Q x �d2� T��\�#�ʮ*�G�����5��}b�C�������J�1�m�ګ�����8�?UK;A{��������"K��a�ȕK)��NA�_lWۼ���|��t���8U�(Tgi��O�������q C���tp���� ��m��8( ���&��G��f��r�9�4Рb#��� ��QS���3��7?:�Rv�7�.U�+�����U_�ꁷ<%�?~��HdJQ�Y�[��4#:��<��c��J�i+� [� zR����E���S]Ҙ҆-�IX�k�Gͫ/#���x�K΅҄�k�+�;��/e��d�ޭ���d�g ���bZ,�����$��5x�X9�f,h���Q�=���=İB-�n ���:/�;�Yñ%����8��Y�KkR������CBې_� �Y;�B� ��X� /����LRU'"�&U�@P��j"�azV����/kc��� �n������?���E� F �2ti�~j�HV��wMB?YQ�T��&t� ;h����+�J�"��W�0������TƝ�L�6�=����;�<���%C���b2V'R�DX��F���FN�U�q��������Z?��ey���!������c)E��� ��pr����y�Ok(f�9� �C&^�j-���ՋZ t�aF�p���Iݻ�#�v3��I�6���3�!��1�0����A�)T �B c������n&p��|�ޢ%�!�AY�T���+��3)�B��C� Y+�ij��i����"Cq��;� ���nT��gQD#�/�����K,�\�+II����pr�V�D����ocɌUj�x9�1�GBD�\oT�#(q�O�{�S;fuQ<Ͷ�Q;il����ߩ��X2�YK��&#�Y����X���¸��7��^���&] b���a�{�v���I���a&����r��|9�R9����s�9�y�[,+2�&�&� '��<���Ihs�S�������Y� ���a��f���sQ�h鐣���ku��N��������l��m��{�╦_jԦ%�F�27��=CV��k�1tP4<=M*q B^P����(�آ$�����>{8��ˤ�T��#�X��Ֆ�Lk�!�e���&�4�k��0偋�u��f�~�/�w1��}ၮb�5V�(Ƨ� (�62�)�gV�����ٺe� Uy�Ptn�@��Î��d�%7K���f��/�����5<�SFZ=�����I��}@�#��y~�.�5D+��v�V�̷�C�T�t(� ݙ�W��]^�����N��{gGY��߫�pwށ�vǘr���0ȵ�An�JN���� 9���=��D�b� ���u���]�fzxxᇌ�' pzT `�K�e���ϯO�����s �F}Jw!�/�n}V��e�;(��/���l�+�������6��ݕ��p��l~�IV�8�6e����A�!sh�9�R���_���w$[���"�܄ngl�;��X>�G��m?\�22d�J��1�j�v��Ә 5[�[�H����]������:�$~8��e�mAV����O�F+��ɻ�4���Ӹq���'����ؙ=�t&�<B2P2@�DZew,�l�ʗV��T ��$fX��C����մ0�\�Io1/kC�;�#���^�\oH�,Q��<u+:�"{���VӐ�v��-��(��~�2v��E��fI �#ڏղB��<%_o�L(;(Y��/,ܓE�{w�#�]��MⰭ9�"���M���wB3�h�I��eV�p�^���!��s*lË�a)I HEX:330a2105110a149f934db4378b9e6a8c387820399974d1d282d6d1e79c788e20f55954411000180022d015e0354d3dfada00214248143184624a0891cf7cd35eb6203dd791d8053ba257760ace2fc3f7c8557d4818c63defc2a9d1b487927d80cd0e76d78d0b78f740aecc7815831aedb66c7b789d9c918f5edb045044c65d786246ec12dae16e17b657099598b07189dc97c3594653f8efba211a16c1feb17200c5e027896cda8db1ee383ee450717b9cec93a31ec9d3078058cc0bc52d7387c09775044e45a42f2832c616f39a54d54fa781467dcfc2bbee5882dd01d0c6304078ea7d10b13addea0631131d977211c392659ac8588d008df6137ae95054b7b7080667a4a91c2b2a8b30b72f9f92b0a0abf4c63e8c50663c07f09f817d1162cf48c943657a159520d3668d95b44d9a6eec4d13198345a40fd3289215958b10c38b25e508312b3db4f940405a45c5e8d7ae035454e9e6ca035758c3195ace8f81558f6912fcbe7b876fb185f94742395525b1740c08baee12a0b271a202548c316c532ca2cffefd912305b17ea47d7c9ee568ea4876ceeaab14dc95c967e9f0cf91d8108b279acb1df841a413bb685b8a639950f94bc9061874dc8650086daf882000326b296fb8cc593858b601596df75a1fcbe24cd43996b33c18aed445a7e86015def8f8a8227144bb4114d9651cbe45a80e0ea244cb8cfc02770f36627a1834df39e8005993246affb5c5ec765b1aadfa2c85cda3cc9c6f853442e8a7d630803fbfcf934a860e2a068ebc424c8174d37eb1abd80543ff5c9a94e60354f6680ce7a9de0517b476f77b313ea3fd0c49064b445fee45819a40f9ec94ce94509acfd417b46f5380f3d88a3fab6b697b5600e90247663d5de719c0b2e262b54bf090399e38c41bee431ab2e3ffd11a7f59cab76e7f3508a38665b03e1d5ffb2c0c4a3db3d999628a1bac497767496ac7165a02b3de305e85b7d217a2007609367492278a5f03aea4b85bd879c4862d670f12b8eca9c2164ff84586f15d87f98e05a0631fc23aaa7fb14ff77fef5189ac45e1f3c78ae98ad24cab1290445ed05e64cf8e84b4ca7b3f79706055f18bddf70fa67e4f3d8d5b57a751f2e0f3e87cc57df824f011309fd6175294f8782ad89eef5fd2953eab2f6185c63eca37d1a96520de07a60223c473494d42d491b9d797c74fb2ca3e5287f0bdf25096624c8bfd6db9c29c8f05510b780acda7e612217f64188ff31732e5091a548008a9c35cf52396caae2abe47ea98d8eb8035ede87d62bf0143b1f6a79f18d5f9dd4ac131c30f6de2daabb5a0dbc519e738fb2a3f55044b3b417bbefd04a0f3f99eb498224bfcbb619fc895134b298cec4e41c6135f6c57dbbca2f9f77cbefd01748bd82a95388efd55bb28546769dbf14f9b03d0d8de1c82b3cb710943fdeed174709d1f8319e99120d8d06db210e212381928201990ed9726dbf447efe566a3d6720fba0039198c34d0a0620223e1f518b1209bc05104539aabc333151903ecf41a373f3aa452768137a72e55cb2bb3055fc8e5f4ed60555fb7ea81b73c258c3f7e171c100084b148644a5105cd59a95b89c81e34233aef17ca3cf58f0b13af63df1008fc4aa4692bc50b5bef0b7a52a4b5918345a0c11097535d3008d298d2862d9a4958ad6bdb47cdab1c2f23ae8bc478994bce85717fd284ce6b932be43be1bc2f65ecfa64eb1bdead5c60c6dc03c164035f9b02670b879aca625a16022cbe89ff178f3315a6851924a6d93578d71858399a662c68bdc18951a63d82ed893dc4b0422d976e0bf717a4bc3a2f9d3bcd59c3b125e51ea6a49b38f7b059c34b6b5219abf00507c4f51a1afb8a4342db902afd0bb6593bc142f6038e7d209ce958940b2f96b4e8d64c525527228d2655c01d40509300e06a22f1617a035615ffa8fabf2f056b1063b78dfd20806eb0e1b8f5d3f23fcbccd81945c809460bad2a327469e57e6aa04856d1cc774d425c3f5951ab549fb02674d00b8f493b68af9f1ab6912bd44ac222c0e957903011ab8fa7a98f41a006e5e8d354c69d11b4164ceb36c63da70e85bad53bdf3caab69925ca7f43daf1ac62320100562752e24458d005e346d0e4b807464ed655967183b9c62a9f2aae001f1ae7ddeb5a3f9fab6579c117b68721ecf1e4f7bec66329458690fa20b1a2137072add1f3b679a34f6b2866ee39cd0909f1431f062610185ee96a2db9daf2d58b5a0c68b0b4723c9d78dd688753d3b73721558ae0b608152d46157b4e41a80429540d7401e86146975f7084b2af49ddbb0ed023ee7633efe1499336a7dfeb33ef2188ed318830b9adc0cc0c8542096399f1fe1619b5c1a06e260170039d16bf7ca9dea225e321fb144159c9541c07d6cff32b8bbe3329bb4211f48143e50a59052b99696abb90697308e186cdc222437183fe3bcb09dafdca6e54fdcf675144235ff46c7f2fde1ee3aac9d65f4b122cfd0e5c605cc42b4949b1a481bd7072da0056ff1244d9609cfee56f63c98c551d6a8d78391719f231ef474244d35c6f54fc2328711ac64fbd1b7bf5533b667551003ccdb613c314511f3b696ca2a81fe191dfa9cf60a658329e594bbbdb26239359ae9494f758d0e7d5c2b8e9fe37bdb1145e97cbf5265d0b62adc6d2a3088161d77bdd76bbbd1f1eba49c3fbfc6126fcfdd31b0e18cb72b017e67c39945239b2bfaa900f731418fd39d079d55b042c2b32c526e426aa0a27aeaf3c94e990496873ad1f5397ba9ad407cce3e259ec20b39a806199e266a4928e2605ad7315519968e990a3e79af46b75b5d84ef09be1eab7fb89b9026ce19c6dfd9305047bede295a6115f6ad4a625fb46ac3237fca18f5e3d164356c7dc6bb03174508f90343c603d4d2a710c425e50a0e2a2c028ec0fd8a2240605b5d40702efb0c43e7b38ff169ccba4d754aa8323b158fe19c6d5969b054c6b8721bb1465b4d7f226c634a96bdacb301fe5818b957584b966ea7ea42fdc773199907de181ae62cb3556c428c6a7c40b1f28a33632fd29d36756ad0fe4f1b5a20ed9ba65ce0955798150746e17b240aedec38efee41564e425374b94a6e96688b22fabb7d7d6049c1f353c8e35e853465a3d19ebec83faaf0049b3c87d40b123cec8797e18822eec35442beabe768156c6ccb7ee43b254cf7428f61120dd998a5790ab5d5e93a2e900a1b84ec208ede17b674759a5f211dfabe37077de81e076c79872fbe61eef1c30c8b504b941116e05cb4a4ed71df7bf8c090839b2105fdb1897603d92fa1844a16062e90b9ec81bbf75f0a4ec5dd01e667a147878e1878c477f952720707a540c0460b0164bd965a5cadecfaf4f94adce08b6ddd77320ea467d4a7721ba2f876e7d56f68265933b2885d52f9984bc6cc72bfafa81f90ee79906f536e3c3dd95885fc87015e0e96c7e9149561c05b938e9361f6502b2c1cac041fb217368913913a3f10852ff82d75f14f0ae811477245bb78ced0022f2dc846e676c933b92fe15583ebc1647cbc66d3f5c83323264824a82893194116aa576c6e4d3980add80355b0f14ca2a085bd21e48881080f0df5dadc28093c0008a9e8a3ab21c24017e38e88065b86d4156849880dd4f91462bcaefc9bbc034b4eeb11f03d3b87195fbd927dafd98c1d8993dae7426e43c4232503240aec7b16502772cb56cbaca97569c7fa5ac5420a3922466589ec043159391b8d0d5b430845cc0496f311b2f6b43fd3b88ae082315a8efa45e01a95c6f48b62c5191bb3c12752b3ae0227bf1c3e71d56d390d376aea42d979d28ee9a7eb33276adc44510d0d66649170abc9005f275ea513e75766ec26605203c9f3b2859c7178c2f2cdc9345947b7716e323e55d81fe1d4de2b0ad39ac2299908b4dbff9a8774233f66819a549a19165560fcd70b35ee6f119cc21ee02f6732a6c11c38bad6129490dee1b23da8fd5b242e1843c255f6f804c28
Echoing image https://mmi723.whatsapp.net/d/xMfjotZQ1w0QQzeepVOCbFb_6iM/AnOSQ48R3t2NpFSAs-JzHoi82dF98gogwdgQX01R86dp.enc to 97XXXXXXXX65
WARNING:yowsup.layers.axolotl.layer:Message com.whatsapp.proto.Message is missing required fields: image_message.media_key
DEBUG:yowsup.layers.logger.layer:tx:
DEBUG:yowsup.layers.logger.layer:rx:
and retries...
Same here. I tried to set the mediaKey to be the same as the original message mediaKey, but I guess that's not enough. Maybe the only way round is to download it and then re-upload it...
I'm not able to send encrypted media yet and so forward function doesn't works for encrypted media.
Reupload in plain mode could be a solution but I'm trying to enable media encryption. I've some improvements in the master but still WIP.
I gratefully accept comments and PR.
Maybe the reason forwarding an encrypted media doesn't work is that it's encrypted using the senders public key. So by forwarding the encrypted media we send an invalid message that can't be decrypted by the recipient. This can be verified by having 2 different yowsup clients- one forwards an encrypted media to the other. If the other yowsup gets the contents of the original encrypted media it'll try to decrypt it and maybe will log the error. If this is really the case then 'messageProtocolEntity.forward' need to have a check if there is an encrypted media and decrypt-re encrypt it, then forward it.
@yairh it isn't true. Encrypted media file is encrypted with a shared key sent in the message. And the message is encrypted with correct keys. However, protofuf arrives corrupted. I'm WIP.
@jlguardi this shared key is the media_key field?
@mniak yes, it is.
I've kinda fixed it in tgalal/yowsup pull request 2027.
In reality I still can't send messages, but the EchoLayer is now working to me.
I've added some missing media_layer parsing capabilities on the layer_receive and some serialization logic for this field also.