#ifndef BROMBERG_SL2_H
#define BROMBERG_SL2_H

#include "hash_matrix.h"
#include <stddef.h>

// Initialize lookup tables (call once before hashing)
void bromberg_init(void);

// Hash a byte array
hash_matrix_t bromberg_hash(const uint8_t* bytes, size_t len);

// Compose two hashes (homomorphic property: hash(a||b) = compose(hash(a), hash(b)))
hash_matrix_t bromberg_compose(hash_matrix_t h1, hash_matrix_t h2);

// Convert hash to hex string (64 hex chars + null terminator)
void bromberg_to_hex(hash_matrix_t h, char out[65]);

#endif
