#include "rar.hpp" #include "sha256.hpp" static const uint32 K[64] = …; // SHA-256 functions. We could optimize Ch and Maj a little, // but with no visible speed benefit. #define Ch(x, y, z) … #define Maj(x, y, z) … // Sigma functions. #define Sg0(x) … #define Sg1(x) … #define sg0(x) … #define sg1(x) … void sha256_init(sha256_context *ctx) { … } static void sha256_transform(sha256_context *ctx) { … } void sha256_process(sha256_context *ctx, const void *Data, size_t Size) { … } void sha256_done(sha256_context *ctx, byte *Digest) { … } void sha256_get(const void *Data, size_t Size, byte *Digest) { … }