yowsup icon indicating copy to clipboard operation
yowsup copied to clipboard

[TODO] Encrypted media send doesn't work

Open ghost opened this issue 9 years ago • 7 comments

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: ��� HEX:1f9e96e0

DEBUG:yowsup.layers.logger.layer:rx:

and retries...

ghost avatar Apr 02 '16 16:04 ghost

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...

msshapira avatar Apr 05 '16 18:04 msshapira

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.

jlguardi avatar Apr 08 '16 11:04 jlguardi

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.

uraid avatar Apr 08 '16 21:04 uraid

@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 avatar Apr 09 '16 08:04 jlguardi

@jlguardi this shared key is the media_key field?

mniak avatar May 04 '17 22:05 mniak

@mniak yes, it is.

jlguardi avatar May 05 '17 06:05 jlguardi

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.

mniak avatar May 05 '17 14:05 mniak