diff --git a/app/containers/message/Image.tsx b/app/containers/message/Image.tsx index 1c55c803c..c6ce996e5 100644 --- a/app/containers/message/Image.tsx +++ b/app/containers/message/Image.tsx @@ -202,22 +202,26 @@ const ImageContainer = ({ showAttachment(imageCached); }; + const image = ( + + ); + if (msg) { return ( - + {image} ); } - return ( - - ); + return image; }; ImageContainer.displayName = 'MessageImageContainer'; diff --git a/app/lib/methods/handleMediaDownload.ts b/app/lib/methods/handleMediaDownload.ts index f2c9ba1fb..731892108 100644 --- a/app/lib/methods/handleMediaDownload.ts +++ b/app/lib/methods/handleMediaDownload.ts @@ -232,14 +232,14 @@ export function downloadMediaFile({ // const vector = b64ToBuffer(encryption.iv); // const vector = Base64.decode(encryption.iv); // const vector = Base64.decode(encryption.iv); - const vector = base64Decode(encryption.iv); + const vector = b64ToBuffer(encryption.iv); console.log('🚀 ~ returnnewPromise ~ vector:', vector); const decryptedFile = await decryptAESCTR(result.uri.substring(7), exportedKeyArrayBuffer, vector); console.log('🚀 ~ handleMediaDownload ~ decryptedFile:', decryptedFile); - if (result?.uri) { - return resolve(result.uri); + if (decryptedFile) { + return resolve(`file://${decryptedFile}`); } return reject(); } catch (e) { diff --git a/app/lib/methods/sendFileMessage.ts b/app/lib/methods/sendFileMessage.ts index 59b97b303..b095d9a31 100644 --- a/app/lib/methods/sendFileMessage.ts +++ b/app/lib/methods/sendFileMessage.ts @@ -123,10 +123,10 @@ export function sendFileMessage( // const { version: serverVersion } = store.getState().server; // if (encryptedFileInfo.t === E2E_MESSAGE_TYPE && compareServerVersion(serverVersion, 'greaterThanOrEqualTo', '6.8.0')) { - // formData.push({ - // name: 't', - // data: encryptedFileInfo.t - // }); + formData.push({ + name: 't', + data: 'e2e' + }); // formData.push({ // name: 'e2e', // data: encryptedFileInfo.e2e @@ -139,6 +139,7 @@ export function sendFileMessage( 'X-Auth-Token': token, 'X-User-Id': id }; + console.log('🚀 ~ returnnewPromise ~ RocketChatSettings.customHeaders:', RocketChatSettings.customHeaders); try { const data = formData.map(item => { @@ -168,12 +169,16 @@ export function sendFileMessage( const mediaConfirm = await fetch(`${server}/api/v1/rooms.mediaConfirm/${rid}/${json.file._id}`, { method: 'POST', - headers, + headers: { + 'Content-Type': 'application/json', + 'X-Auth-Token': token, + 'X-User-Id': id + }, body: JSON.stringify({ - msg: fileInfo.msg, - tmid: fileInfo.tmid, - description: fileInfo.description, - t: fileInfo.t, + msg: '', + // tmid: fileInfo.tmid, + // description: fileInfo.description, + t: 'e2e', content }) }); diff --git a/app/views/ShareView/index.tsx b/app/views/ShareView/index.tsx index 3014849f8..83913d215 100644 --- a/app/views/ShareView/index.tsx +++ b/app/views/ShareView/index.tsx @@ -7,6 +7,7 @@ import ShareExtension from 'rn-extensions-share'; import { Q } from '@nozbe/watermelondb'; import SimpleCrypto from 'react-native-simple-crypto'; import EJSON from 'ejson'; +import { sha256 } from 'js-sha256'; import { IMessageComposerRef, MessageComposerContainer } from '../../containers/MessageComposer'; import { InsideStackParamList } from '../../stacks/types'; @@ -276,21 +277,22 @@ class ShareView extends Component { const key = await generateAESCTRKey(); const exportedKey = await exportAESCTR(key); - console.log('🚀 ~ ShareView ~ send= ~ exportedKey:', exportedKey, exportedKey.k); + // console.log('🚀 ~ ShareView ~ send= ~ exportedKey:', exportedKey, exportedKey.k); const exportedKeyArrayBuffer = b64URIToBuffer(exportedKey.k); - console.log('🚀 ~ ShareView ~ send= ~ exportedKeyArrayBuffer:', exportedKeyArrayBuffer); + console.log('BASE64 BASE64 BASE64 key:', exportedKey, exportedKey.k); + console.log('BASE64 BASE64 BASE64 vector:', bufferToB64(vector)); const encryptedFile = await encryptAESCTR(path, exportedKeyArrayBuffer, vector); - console.log('🚀 ~ ShareView ~ send= ~ encryptedFile:', encryptedFile); + // console.log('🚀 ~ ShareView ~ send= ~ encryptedFile:', encryptedFile); - const decryptedFile = await decryptAESCTR(encryptedFile, exportedKeyArrayBuffer, vector); - console.log('🚀 ~ ShareView ~ send= ~ decryptedFile:', decryptedFile); + // const decryptedFile = await decryptAESCTR(encryptedFile, exportedKeyArrayBuffer, vector); + // console.log('🚀 ~ ShareView ~ send= ~ decryptedFile:', decryptedFile); const getContent = async (_id: string, fileUrl: string) => { - console.log('🚀 ~ ShareView ~ getContent ~ _id:', _id, fileUrl); + // console.log('🚀 ~ ShareView ~ getContent ~ _id:', _id, fileUrl); const attachments = []; - console.log('🚀 ~ ShareView ~ getContent ~ attachment.encryption.exportedKey:', vector, exportedKey); + // console.log('🚀 ~ ShareView ~ getContent ~ attachment.encryption.exportedKey:', vector, exportedKey); const attachment = { title: name, @@ -311,7 +313,7 @@ class ShareView extends Component { const data = EJSON.stringify({ attachments }); - console.log('🚀 ~ ShareView ~ getContent ~ attachments:', attachments, data); + // console.log('🚀 ~ ShareView ~ getContent ~ attachments:', attachments, data); return { algorithm: 'rc.v1.aes-sha2', @@ -324,7 +326,7 @@ class ShareView extends Component { room.rid, { rid: room.rid, - // name, + name: sha256(name), description, size, type: 'file',