self_encryption_nodejs/util.rs
1use napi::Result;
2use napi_derive::napi;
3
4use crate::{XorName, map_error};
5
6/// Verifies and deserializes a chunk by checking its content hash matches the provided name.
7///
8/// # Arguments
9///
10/// * `name` - The expected XorName hash of the chunk content
11/// * `bytes` - The serialized chunk content to verify
12///
13/// # Returns
14///
15/// * `Result<EncryptedChunk>` - The deserialized chunk if verification succeeds
16/// * `Error` - If the content hash doesn't match or deserialization fails
17#[napi]
18pub fn verify_chunk(name: &XorName, bytes: &[u8]) -> Result<crate::EncryptedChunk> {
19 let name = name.0;
20 self_encryption::verify_chunk(name, bytes)
21 .map_err(map_error)
22 .map(crate::EncryptedChunk)
23}