+void sha512_256_init(sha512_ctx *ctx)
+{
+ SET64(ctx->a, 0x22312194, 0xfc2bf72c);
+ SET64(ctx->b, 0x9f555fa3, 0xc84c64c2);
+ SET64(ctx->c, 0x2393b86b, 0x6f53b151);
+ SET64(ctx->d, 0x96387719, 0x5940eabd);
+ SET64(ctx->e, 0x96283ee2, 0xa88effe3);
+ SET64(ctx->f, 0xbe5e1e25, 0x53863992);
+ SET64(ctx->g, 0x2b0199fc, 0x2c85b8aa);
+ SET64(ctx->h, 0x0eb72ddc, 0x81c52ca2);
+ ctx->off = 0;
+ ctx->nh = ctx->nl = 0;
+}
+
+void sha512_224_init(sha512_ctx *ctx)
+{
+ SET64(ctx->a, 0x8c3d37c8, 0x19544da2);
+ SET64(ctx->b, 0x73e19966, 0x89dcd4d6);
+ SET64(ctx->c, 0x1dfab7ae, 0x32ff9c82);
+ SET64(ctx->d, 0x679dd514, 0x582f9fcf);
+ SET64(ctx->e, 0x0f6d2b69, 0x7bd44da8);
+ SET64(ctx->f, 0x77e36f73, 0x04c48942);
+ SET64(ctx->g, 0x3f9d85a8, 0x6a1d36c8);
+ SET64(ctx->h, 0x1112e6ad, 0x91d692a1);
+ ctx->off = 0;
+ ctx->nh = ctx->nl = 0;
+}
+
+/* --- @sha512_set@, etc. --- *