Ensure outgoing filesize limit considers padding and encryption
This commit is contained in:
parent
8166024700
commit
85b130a12d
1 changed files with 6 additions and 4 deletions
|
@ -21,6 +21,7 @@ import { handleVideoAttachment } from './handleVideoAttachment';
|
|||
import { isHeic, stringToMIMEType } from '../types/MIME';
|
||||
import { ToastType } from '../types/Toast';
|
||||
import { isImageTypeSupported, isVideoTypeSupported } from './GoogleChrome';
|
||||
import { getAttachmentCiphertextLength } from '../AttachmentCrypto';
|
||||
|
||||
export async function processAttachment(
|
||||
file: File,
|
||||
|
@ -79,10 +80,11 @@ export async function processAttachment(
|
|||
|
||||
function isAttachmentSizeOkay(attachment: Readonly<AttachmentType>): boolean {
|
||||
const limitKb = getMaximumOutgoingAttachmentSizeInKb(getRemoteConfigValue);
|
||||
// this needs to be cast properly
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
if ((attachment.data.byteLength / KIBIBYTE).toFixed(4) >= limitKb) {
|
||||
const limitBytes =
|
||||
getMaximumOutgoingAttachmentSizeInKb(getRemoteConfigValue) * KIBIBYTE;
|
||||
|
||||
const paddedAndEncryptedSize = getAttachmentCiphertextLength(attachment.size);
|
||||
if (paddedAndEncryptedSize > limitBytes) {
|
||||
window.reduxActions.toast.showToast({
|
||||
toastType: ToastType.FileSize,
|
||||
parameters: getRenderDetailsForLimit(limitKb),
|
||||
|
|
Loading…
Reference in a new issue