Skip to content

Commit

Permalink
feat: Validate keyChecksum length
Browse files Browse the repository at this point in the history
Signed-off-by: Louis Chemineau <louis@chmn.me>
  • Loading branch information
artonge committed Jan 9, 2025
1 parent af20670 commit c312090
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions src/services/metadataUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,21 @@ export async function decryptMetadataInfo(metadata: Metadata, metadataPrivateKey
{ iv: base64ToBuffer(iv) },
)

const metadataInfo = JSON.parse(await unzipBuffer(compressedMetadataInfo))
const metadataInfo = JSON.parse(await unzipBuffer(compressedMetadataInfo)) as MetadataInfo

verifyMetadataKey(metadataInfo, metadataPrivateKey)
validateKeyChecksums(metadataInfo, metadata)
validateMetadataKey(metadataInfo, metadataPrivateKey)

return metadataInfo
}

export async function verifyMetadataKey(metadataInfo: MetadataInfo, metadataPrivateKey: CryptoKey): Promise<void> {
function validateKeyChecksums(metadataInfo: MetadataInfo, metadata: Metadata): void {
if (metadataInfo.keyChecksums?.length !== metadata.users?.length) {
throw new Error('Key checksums length does not match users length')
}
}

export async function validateMetadataKey(metadataInfo: MetadataInfo, metadataPrivateKey: CryptoKey): Promise<void> {
if (metadataInfo.keyChecksums === undefined) {
return
}
Expand Down

0 comments on commit c312090

Please sign in to comment.