Skip to content

Commit c312090

Browse files
committed
feat: Validate keyChecksum length
Signed-off-by: Louis Chemineau <[email protected]>
1 parent af20670 commit c312090

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/services/metadataUtils.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,21 @@ export async function decryptMetadataInfo(metadata: Metadata, metadataPrivateKey
2222
{ iv: base64ToBuffer(iv) },
2323
)
2424

25-
const metadataInfo = JSON.parse(await unzipBuffer(compressedMetadataInfo))
25+
const metadataInfo = JSON.parse(await unzipBuffer(compressedMetadataInfo)) as MetadataInfo
2626

27-
verifyMetadataKey(metadataInfo, metadataPrivateKey)
27+
validateKeyChecksums(metadataInfo, metadata)
28+
validateMetadataKey(metadataInfo, metadataPrivateKey)
2829

2930
return metadataInfo
3031
}
3132

32-
export async function verifyMetadataKey(metadataInfo: MetadataInfo, metadataPrivateKey: CryptoKey): Promise<void> {
33+
function validateKeyChecksums(metadataInfo: MetadataInfo, metadata: Metadata): void {
34+
if (metadataInfo.keyChecksums?.length !== metadata.users?.length) {
35+
throw new Error('Key checksums length does not match users length')
36+
}
37+
}
38+
39+
export async function validateMetadataKey(metadataInfo: MetadataInfo, metadataPrivateKey: CryptoKey): Promise<void> {
3340
if (metadataInfo.keyChecksums === undefined) {
3441
return
3542
}

0 commit comments

Comments
 (0)