update upload validation to use shared AES-GCM size constants on the backend.

This commit is contained in:
2026-10-19 02:59:52 +02:00
parent 7b9b8ec107
commit f2987da2fe
5 changed files with 8 additions and 4 deletions
+2 -2
View File
@@ -1,3 +1,4 @@
import { AES_GCM_AUTH_TAG_BYTE_LENGTH } from '../consts/crypto/aesGcmAuthTagByteLength';
import { AltchaConfig } from '../types/config/AltchaConfig';
import { AppConfig } from '../types/config/AppConfig';
import { NodeEnv } from '../types/NodeEnv';
@@ -34,7 +35,6 @@ export const getAltchaConfig = (): AltchaConfig => {
};
export const getAppConfig = (): AppConfig => {
const aesGcmCiphertextOverheadBytes = 16;
const jsonBase64ByteRatioNumerator = 4;
const jsonBase64ByteRatioDenominator = 3;
@@ -61,7 +61,7 @@ export const getAppConfig = (): AppConfig => {
upload: {
maxViewsMax: envInt('VALIDATION_UPLOAD_MAX_VIEWS_MAX'),
maxImageBytes,
maxCiphertextBytes: maxImageBytes + aesGcmCiphertextOverheadBytes,
maxCiphertextBytes: maxImageBytes + AES_GCM_AUTH_TAG_BYTE_LENGTH,
maxRequestBodyBytes:
Math.ceil((maxImageBytes * jsonBase64ByteRatioNumerator) / jsonBase64ByteRatioDenominator) +
jsonBodyPaddingBytes