More annotation

This commit is contained in:
Manav Rathi
2025-06-05 15:24:48 +05:30
parent f1d9fc61c5
commit d858fdef75
2 changed files with 23 additions and 17 deletions

View File

@@ -111,7 +111,7 @@ let _comlinkWorker: ComlinkWorker<typeof CryptoWorker> | undefined;
/**
* Lazily created, cached, instance of a CryptoWorker web worker.
*/
export const sharedCryptoWorker = async () =>
export const sharedCryptoWorker = () =>
(_comlinkWorker ??= createComlinkCryptoWorker()).remote;
/** A shorter alias of {@link sharedCryptoWorker} for use within this file. */
@@ -144,7 +144,7 @@ export const toB64URLSafe = (bytes: Uint8Array): Promise<string> =>
/**
* Convert a base64 string to bytes ({@link Uint8Array}).
*/
export const fromB64 = (b64String: string) =>
export const fromB64 = (b64String: string): Promise<Uint8Array> =>
inWorker()
? ei._fromB64(b64String)
: sharedWorker().then((w) => w.fromB64(b64String));
@@ -160,7 +160,7 @@ export const toHex = (b64String: string): Promise<string> =>
/**
* Convert a hex string to the base64 representation of the underlying bytes.
*/
export const fromHex = (hexString: string) =>
export const fromHex = (hexString: string): Promise<string> =>
inWorker()
? ei._fromHex(hexString)
: sharedWorker().then((w) => w.fromHex(hexString));
@@ -286,7 +286,7 @@ export const encryptMetadataJSON = (
* Encrypt the given data using chunked streaming encryption, but process all
* the chunks in one go.
*/
export const encryptStreamBytes = async (
export const encryptStreamBytes = (
data: Uint8Array,
key: BytesOrB64,
): Promise<EncryptedFile> =>
@@ -305,11 +305,11 @@ export const initChunkEncryption = async (key: BytesOrB64) =>
/**
* Encrypt a chunk as part of a chunked streaming encryption.
*/
export const encryptStreamChunk = async (
export const encryptStreamChunk = (
data: Uint8Array,
state: StateAddress,
isFinalChunk: boolean,
) =>
): Promise<Uint8Array> =>
inWorker()
? ei._encryptStreamChunk(data, state, isFinalChunk)
: sharedWorker().then((w) =>
@@ -332,7 +332,10 @@ export const decryptBox = (
* Variant of {@link decryptBox} that returns the decrypted bytes as it is
* (without encoding them to base64).
*/
export const decryptBoxBytes = (box: EncryptedBox, key: BytesOrB64) =>
export const decryptBoxBytes = (
box: EncryptedBox,
key: BytesOrB64,
): Promise<Uint8Array> =>
inWorker()
? ei._decryptBoxBytes(box, key)
: sharedWorker().then((w) => w.decryptBoxBytes(box, key));
@@ -366,7 +369,10 @@ export const decryptBlob = (
* A variant of {@link decryptBlobBytes} that returns the result bytes directly
* (instead of encoding them as a base64 string).
*/
export const decryptBlobBytes = (blob: EncryptedBlob, key: BytesOrB64) =>
export const decryptBlobBytes = (
blob: EncryptedBlob,
key: BytesOrB64,
): Promise<Uint8Array> =>
inWorker()
? ei._decryptBlobBytes(blob, key)
: sharedWorker().then((w) => w.decryptBlobBytes(blob, key));
@@ -374,10 +380,10 @@ export const decryptBlobBytes = (blob: EncryptedBlob, key: BytesOrB64) =>
/**
* Decrypt the result of {@link encryptStreamBytes}.
*/
export const decryptStreamBytes = async (
export const decryptStreamBytes = (
file: EncryptedFile,
key: BytesOrB64,
) =>
): Promise<Uint8Array> =>
inWorker()
? ei._decryptStreamBytes(file, key)
: sharedWorker().then((w) => w.decryptStreamBytes(file, key));
@@ -396,10 +402,10 @@ export const initChunkDecryption = async (header: string, key: BytesOrB64) =>
*
* This function is used in tandem with {@link initChunkDecryption}.
*/
export const decryptStreamChunk = async (
export const decryptStreamChunk = (
data: Uint8Array,
state: StateAddress,
) =>
): Promise<Uint8Array> =>
inWorker()
? ei._decryptStreamChunk(data, state)
: sharedWorker().then((w) => w.decryptStreamChunk(data, state));

View File

@@ -36,7 +36,7 @@ export const toB64 = async (input: Uint8Array) => {
*
* This is the converse of {@link toBase64}.
*/
export const fromB64 = async (input: string) => {
export const fromB64 = async (input: string): Promise<Uint8Array> => {
await sodium.ready;
return sodium.from_base64(input, sodium.base64_variants.ORIGINAL);
};
@@ -117,7 +117,7 @@ export const toHex = async (input: string) => {
*
* This is the inverse of {@link toHex}.
*/
export const fromHex = async (input: string) => {
export const fromHex = async (input: string): Promise<string> => {
await sodium.ready;
return await toB64(sodium.from_hex(input));
};
@@ -478,7 +478,7 @@ export const encryptStreamChunk = async (
data: Uint8Array,
pushState: sodium.StateAddress,
isFinalChunk: boolean,
) => {
): Promise<Uint8Array> => {
await sodium.ready;
const tag = isFinalChunk
? sodium.crypto_secretstream_xchacha20poly1305_TAG_FINAL
@@ -577,7 +577,7 @@ export const decryptMetadataJSON = async (
export const decryptStreamBytes = async (
{ encryptedData, decryptionHeader }: EncryptedFile,
key: BytesOrB64,
) => {
): Promise<Uint8Array> => {
await sodium.ready;
const pullState = sodium.crypto_secretstream_xchacha20poly1305_init_pull(
await fromB64(decryptionHeader),
@@ -647,7 +647,7 @@ export const initChunkDecryption = async (
export const decryptStreamChunk = async (
data: Uint8Array,
pullState: StateAddress,
) => {
): Promise<Uint8Array> => {
await sodium.ready;
const pullResult = sodium.crypto_secretstream_xchacha20poly1305_pull(
pullState,