This commit is contained in:
Manav Rathi
2025-06-05 10:28:18 +05:30
parent e6fd962c75
commit e864ea367a
14 changed files with 49 additions and 60 deletions

View File

@@ -1,6 +1,6 @@
import { Box, Button, Stack, Typography, useTheme } from "@mui/material";
import { EnteLogo } from "ente-base/components/EnteLogo";
import { decryptMetadataJSON_New } from "ente-base/crypto";
import { decryptMetadataJSON } from "ente-base/crypto";
import React, { useEffect, useMemo, useState } from "react";
import { prettyFormatCode } from "utils/format";
@@ -47,12 +47,12 @@ const Page: React.FC = () => {
}
try {
const decryptedCode = (await decryptMetadataJSON_New(
const decryptedCode = (await decryptMetadataJSON(
{
encryptedData: base64UrlToBytes(data),
decryptionHeader: base64UrlToBytes(header),
encryptedData: base64URLToBytes(data),
decryptionHeader: base64URLToBytes(header),
},
base64UrlToBytes(key),
base64URLToBytes(key),
)) as SharedCode;
setSharedCode(decryptedCode);
} catch (error) {
@@ -228,8 +228,8 @@ const Page: React.FC = () => {
export default Page;
const base64UrlToBytes = (base64Url: string): Uint8Array => {
const base64 = base64Url.replace(/-/g, "+").replace(/_/g, "/");
const base64URLToBytes = (base64URL: string): Uint8Array => {
const base64 = base64URL.replace(/-/g, "+").replace(/_/g, "/");
return Uint8Array.from(atob(base64), (c) => c.charCodeAt(0));
};

View File

@@ -1,4 +1,4 @@
import { decryptBox, decryptMetadataJSON_New } from "ente-base/crypto";
import { decryptBox, decryptMetadataJSON } from "ente-base/crypto";
import {
authenticatedRequestHeaders,
ensureOk,
@@ -156,7 +156,7 @@ export const authenticatorEntityDiff = async (
authenticatorKey: string,
): Promise<AuthenticatorEntityDiffResult> => {
const decrypt = (encryptedData: string, decryptionHeader: string) =>
decryptMetadataJSON_New(
decryptMetadataJSON(
{ encryptedData, decryptionHeader },
authenticatorKey,
);

View File

@@ -199,17 +199,14 @@ const decryptEnteFile = async (
{ encryptedData: encryptedKey, nonce: keyDecryptionNonce },
collectionKey,
);
const fileMetadata = await worker.decryptMetadataJSON_New(
metadata,
fileKey,
);
const fileMetadata = await worker.decryptMetadataJSON(metadata, fileKey);
let fileMagicMetadata: FileMagicMetadata | undefined;
let filePubMagicMetadata: FilePublicMagicMetadata | undefined;
if (magicMetadata?.data) {
fileMagicMetadata = {
...encryptedFile.magicMetadata,
// @ts-expect-error TODO: Need to use zod here.
data: await worker.decryptMetadataJSON_New(
data: await worker.decryptMetadataJSON(
{
encryptedData: magicMetadata.data,
decryptionHeader: magicMetadata.header,
@@ -222,7 +219,7 @@ const decryptEnteFile = async (
filePubMagicMetadata = {
...pubMagicMetadata,
// @ts-expect-error TODO: Need to use zod here.
data: await worker.decryptMetadataJSON_New(
data: await worker.decryptMetadataJSON(
{
encryptedData: pubMagicMetadata.data,
decryptionHeader: pubMagicMetadata.header,

View File

@@ -1,5 +1,5 @@
import type { User } from "ente-accounts/services/user";
import { encryptMetadataJSON_New, sharedCryptoWorker } from "ente-base/crypto";
import { encryptMetadataJSON, sharedCryptoWorker } from "ente-base/crypto";
import { ensureLocalUser } from "ente-base/local-user";
import log from "ente-base/log";
import { apiURL } from "ente-base/origins";
@@ -79,7 +79,7 @@ const createCollection = async (
if (magicMetadataProps) {
const magicMetadata = await updateMagicMetadata(magicMetadataProps);
const { encryptedData, decryptionHeader } =
await cryptoWorker.encryptMetadataJSON_New(
await cryptoWorker.encryptMetadataJSON(
magicMetadataProps,
collectionKey,
);
@@ -356,7 +356,7 @@ export const updateCollectionMagicMetadata = async (
return;
}
const { encryptedData, decryptionHeader } = await encryptMetadataJSON_New(
const { encryptedData, decryptionHeader } = await encryptMetadataJSON(
updatedMagicMetadata.data,
collection.key,
);
@@ -396,7 +396,7 @@ export const updateSharedCollectionMagicMetadata = async (
return;
}
const { encryptedData, decryptionHeader } = await encryptMetadataJSON_New(
const { encryptedData, decryptionHeader } = await encryptMetadataJSON(
updatedMagicMetadata.data,
collection.key,
);
@@ -435,7 +435,7 @@ export const updatePublicCollectionMagicMetadata = async (
return;
}
const { encryptedData, decryptionHeader } = await encryptMetadataJSON_New(
const { encryptedData, decryptionHeader } = await encryptMetadataJSON(
updatedPublicMagicMetadata.data,
collection.key,
);

View File

@@ -335,7 +335,7 @@ export const getPublicCollection = async (
if (fetchedCollection.pubMagicMetadata?.data) {
collectionPublicMagicMetadata = {
...fetchedCollection.pubMagicMetadata,
data: await cryptoWorker.decryptMetadataJSON_New(
data: await cryptoWorker.decryptMetadataJSON(
{
encryptedData: fetchedCollection.pubMagicMetadata.data,
decryptionHeader:

View File

@@ -28,7 +28,7 @@ export const _initChunkEncryption = libsodium.initChunkEncryption;
export const _encryptStreamChunk = libsodium.encryptStreamChunk;
export const _encryptMetadataJSON_New = (jsonValue: unknown, key: BytesOrB64) =>
export const _encryptMetadataJSON = (jsonValue: unknown, key: BytesOrB64) =>
_encryptBlob(new TextEncoder().encode(JSON.stringify(jsonValue)), key);
export const _decryptBoxBytes = libsodium.decryptBoxBytes;
@@ -45,7 +45,7 @@ export const _initChunkDecryption = libsodium.initChunkDecryption;
export const _decryptStreamChunk = libsodium.decryptStreamChunk;
export const _decryptMetadataJSON_New = async (
export const _decryptMetadataJSON = async (
blob: EncryptedBlob,
key: BytesOrB64,
) =>

View File

@@ -253,10 +253,10 @@ export const encryptStreamChunk = async (
*
* @param key The encryption key.
*/
export const encryptMetadataJSON_New = (jsonValue: unknown, key: BytesOrB64) =>
export const encryptMetadataJSON = (jsonValue: unknown, key: BytesOrB64) =>
inWorker()
? ei._encryptMetadataJSON_New(jsonValue, key)
: sharedWorker().then((w) => w.encryptMetadataJSON_New(jsonValue, key));
? ei._encryptMetadataJSON(jsonValue, key)
: sharedWorker().then((w) => w.encryptMetadataJSON(jsonValue, key));
/**
* Decrypt a box encrypted using {@link encryptBox} and returns the decrypted
@@ -333,13 +333,10 @@ export const decryptStreamChunk = async (
* @returns The decrypted JSON value. Since TypeScript does not have a native
* JSON type, we need to return it as an `unknown`.
*/
export const decryptMetadataJSON_New = (
blob: EncryptedBlob,
key: BytesOrB64,
) =>
export const decryptMetadataJSON = (blob: EncryptedBlob, key: BytesOrB64) =>
inWorker()
? ei._decryptMetadataJSON_New(blob, key)
: sharedWorker().then((w) => w.decryptMetadataJSON_New(blob, key));
? ei._decryptMetadataJSON(blob, key)
: sharedWorker().then((w) => w.decryptMetadataJSON(blob, key));
/**
* Generate a new public/private keypair.

View File

@@ -26,7 +26,7 @@ export class CryptoWorker {
encryptStreamBytes = ei._encryptStreamBytes;
initChunkEncryption = ei._initChunkEncryption;
encryptStreamChunk = ei._encryptStreamChunk;
encryptMetadataJSON_New = ei._encryptMetadataJSON_New;
encryptMetadataJSON = ei._encryptMetadataJSON;
decryptBoxBytes = ei._decryptBoxBytes;
decryptBox = ei._decryptBox;
decryptBlobBytes = ei._decryptBlobBytes;
@@ -34,7 +34,7 @@ export class CryptoWorker {
decryptStreamBytes = ei._decryptStreamBytes;
initChunkDecryption = ei._initChunkDecryption;
decryptStreamChunk = ei._decryptStreamChunk;
decryptMetadataJSON_New = ei._decryptMetadataJSON_New;
decryptMetadataJSON = ei._decryptMetadataJSON;
chunkHashInit = ei._chunkHashInit;
chunkHashUpdate = ei._chunkHashUpdate;
chunkHashFinal = ei._chunkHashFinal;

View File

@@ -1,7 +1,7 @@
/* TODO: Audit this file */
/* eslint-disable @typescript-eslint/ban-ts-comment */
import { encryptMetadataJSON_New } from "ente-base/crypto";
import { encryptMetadataJSON } from "ente-base/crypto";
import { apiURL } from "ente-base/origins";
import { updateMagicMetadata } from "ente-gallery/services/magic-metadata";
import type {
@@ -37,8 +37,10 @@ export const updateFileMagicMetadata = async (
file,
updatedMagicMetadata,
} of fileWithUpdatedMagicMetadataList) {
const { encryptedData, decryptionHeader } =
await encryptMetadataJSON_New(updatedMagicMetadata.data, file.key);
const { encryptedData, decryptionHeader } = await encryptMetadataJSON(
updatedMagicMetadata.data,
file.key,
);
reqBody.metadataList.push({
id: file.id,
magicMetadata: {
@@ -80,11 +82,10 @@ export const updateFilePublicMagicMetadata = async (
file,
updatedPublicMagicMetadata,
} of fileWithUpdatedPublicMagicMetadataList) {
const { encryptedData, decryptionHeader } =
await encryptMetadataJSON_New(
updatedPublicMagicMetadata.data,
file.key,
);
const { encryptedData, decryptionHeader } = await encryptMetadataJSON(
updatedPublicMagicMetadata.data,
file.key,
);
reqBody.metadataList.push({
id: file.id,
magicMetadata: {

View File

@@ -53,7 +53,7 @@ export async function updateMagicMetadata<T>(
//
// See: [Note: Use passthrough for metadata Zod schemas]
// @ts-expect-error TODO: Need to use zod here.
originalMagicMetadata.data = await cryptoWorker.decryptMetadataJSON_New(
originalMagicMetadata.data = await cryptoWorker.decryptMetadataJSON(
{
encryptedData: originalMagicMetadata.data,
decryptionHeader: originalMagicMetadata.header,

View File

@@ -1448,7 +1448,7 @@ const encryptFile = async (
decryptionHeader: await worker.toB64(thumbnailDecryptionHeaderBytes),
};
const encryptedMetadata = await worker.encryptMetadataJSON_New(
const encryptedMetadata = await worker.encryptMetadataJSON(
metadata,
fileKey,
);
@@ -1458,10 +1458,7 @@ const encryptFile = async (
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
if (pubMagicMetadata) {
const { encryptedData, decryptionHeader } =
await worker.encryptMetadataJSON_New(
pubMagicMetadata.data,
fileKey,
);
await worker.encryptMetadataJSON(pubMagicMetadata.data, fileKey);
encryptedPubMagicMetadata = {
version: pubMagicMetadata.version,
count: pubMagicMetadata.count,

View File

@@ -1,7 +1,4 @@
import {
decryptMetadataJSON_New,
encryptMetadataJSON_New,
} from "ente-base/crypto";
import { decryptMetadataJSON, encryptMetadataJSON } from "ente-base/crypto";
import { authenticatedRequestHeaders, ensureOk } from "ente-base/http";
import { apiURL } from "ente-base/origins";
import { type Location } from "ente-base/types";
@@ -437,7 +434,7 @@ export const decryptPublicMagicMetadata = async (
const jsonValue =
typeof envelope.data == "string"
? await decryptMetadataJSON_New(
? await decryptMetadataJSON(
{
encryptedData: envelope.data,
decryptionHeader: envelope.header,
@@ -682,7 +679,7 @@ const updateMagicMetadataRequest = async (
([, v]) => v !== null && v !== undefined,
);
const { encryptedData, decryptionHeader } = await encryptMetadataJSON_New(
const { encryptedData, decryptionHeader } = await encryptMetadataJSON(
Object.fromEntries(validEntries),
file.key,
);

View File

@@ -325,7 +325,7 @@ export async function decryptFile(
{ encryptedData: encryptedKey, nonce: keyDecryptionNonce },
collectionKey,
);
const fileMetadata = await worker.decryptMetadataJSON_New(
const fileMetadata = await worker.decryptMetadataJSON(
metadata,
fileKey,
);
@@ -338,7 +338,7 @@ export async function decryptFile(
...file.magicMetadata,
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
data: await worker.decryptMetadataJSON_New(
data: await worker.decryptMetadataJSON(
{
encryptedData: magicMetadata.data,
decryptionHeader: magicMetadata.header,
@@ -353,7 +353,7 @@ export async function decryptFile(
...pubMagicMetadata,
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
data: await worker.decryptMetadataJSON_New(
data: await worker.decryptMetadataJSON(
{
encryptedData: pubMagicMetadata.data,
decryptionHeader: pubMagicMetadata.header,

View File

@@ -234,7 +234,7 @@ export const getCollectionWithSecrets = async (
...collection.magicMetadata,
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
data: await cryptoWorker.decryptMetadataJSON_New(
data: await cryptoWorker.decryptMetadataJSON(
{
encryptedData: collection.magicMetadata.data,
decryptionHeader: collection.magicMetadata.header,
@@ -249,7 +249,7 @@ export const getCollectionWithSecrets = async (
...collection.pubMagicMetadata,
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
data: await cryptoWorker.decryptMetadataJSON_New(
data: await cryptoWorker.decryptMetadataJSON(
{
encryptedData: collection.pubMagicMetadata.data,
decryptionHeader: collection.pubMagicMetadata.header,
@@ -265,7 +265,7 @@ export const getCollectionWithSecrets = async (
...collection.sharedMagicMetadata,
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
data: await cryptoWorker.decryptMetadataJSON_New(
data: await cryptoWorker.decryptMetadataJSON(
{
encryptedData: collection.sharedMagicMetadata.data,
decryptionHeader: collection.sharedMagicMetadata.header,