--- /dev/null
+/* This module exists solely to check compile-time assertions. It should be
+ compiled when building the project, and building should be terminated if
+ errors are encountered. However, any object it produces need not be
+ included in the build.
+*/
+
+
+#include <stddef.h>
+
+#include "crypto/aes.h"
+#include "Context.h"
+
+/* Declare CheckAssertion so that if any of the declarations below differ
+ from it, the compiler will report an error.
+*/
+extern char CheckAssertion[1];
+
+/* Ensure that ContextKey is the offset of the ks member of the AES context
+ structures.
+*/
+extern char CheckAssertion[ContextKey == offsetof(aes_encrypt_ctx, ks)];
+extern char CheckAssertion[ContextKey == offsetof(aes_decrypt_ctx, ks)];
+ /* If these assertions fail, change the definition of ContextKey in
+ Context.h to match the offset of the ks field.
+ */
+
+/* Ensure that ContextKeyLength is the offset of the inf member of the AES
+ context structures.
+*/
+extern char CheckAssertion[ContextKeyLength == offsetof(aes_encrypt_ctx, inf)];
+extern char CheckAssertion[ContextKeyLength == offsetof(aes_decrypt_ctx, inf)];
+ /* If these assertions fail, change the definition of ContextKeyLength in
+ Context.h to match the offset of the inf field.
+ */