/* ============================================================================= * sha256_backend.h - SHA-256 추상 인터페이스 * * 서명(sig.c)은 이 인터페이스만 사용한다. 기본 구현은 sha256_sw.c (공개 도메인, * 자급식)이며, 원하면 mbedTLS 백엔드로 교체할 수 있다(둘 다 동일 다이제스트). * 자급식 구현 덕분에 TLS 스택 없이도 호스트/ARM 컴파일 게이트에서 검증 가능. * ===========================================================================*/ #ifndef SHA256_BACKEND_H #define SHA256_BACKEND_H #include #include #define SHA256_DIGEST_LEN 32 typedef struct { uint32_t state[8]; uint64_t bitlen; uint8_t buffer[64]; uint32_t buflen; } sha256_ctx; void sha256_init(sha256_ctx *ctx); void sha256_update(sha256_ctx *ctx, const uint8_t *data, size_t len); void sha256_final(sha256_ctx *ctx, uint8_t out[SHA256_DIGEST_LEN]); /* 원샷 헬퍼: out = SHA256(data[0..len)) */ void sha256(const uint8_t *data, size_t len, uint8_t out[SHA256_DIGEST_LEN]); #endif /* SHA256_BACKEND_H */