diff --git a/firmware/2lib/2secdata.c b/firmware/2lib/2secdata.c
index 0c5a34e..c2983e7 100644
--- a/firmware/2lib/2secdata.c
+++ b/firmware/2lib/2secdata.c
@@ -42,27 +42,22 @@
 int vb2_secdata_init(struct vb2_context *ctx)
 {
 	struct vb2_shared_data *sd = vb2_get_sd(ctx);
-	struct vb2_secdata *sec = (struct vb2_secdata *)ctx->secdata;
 	int rv;
 
-	/* Data must be new enough to have a CRC */
-	if (sec->struct_version < 2)
-		return VB2_ERROR_SECDATA_VERSION;
-
 	rv = vb2_secdata_check_crc(ctx);
 	if (rv)
 		return rv;
 
-	/* Read this now to make sure crossystem has it even in rec mode. */
-	rv = vb2_secdata_get(ctx, VB2_SECDATA_VERSIONS,
-			     &sd->fw_version_secdata);
-	if (rv)
-		return rv;
-
 	/* Set status flag */
 	sd->status |= VB2_SD_STATUS_SECDATA_INIT;
 	// TODO: unit test for that
 
+	/* Read this now to make sure crossystem has it even in rec mode. */
+	rv = vb2_secdata_get(ctx, VB2_SECDATA_VERSIONS,
+			     &sd->fw_version_secdata);
+	if (rv)
+		return rv;
+
 	return VB2_SUCCESS;
 }
 
@@ -72,6 +67,9 @@
 {
 	struct vb2_secdata *sec = (struct vb2_secdata *)ctx->secdata;
 
+	if (!(vb2_get_sd(ctx)->status & VB2_SD_STATUS_SECDATA_INIT))
+		return VB2_ERROR_SECDATA_GET_UNINITIALIZED;
+
 	switch(param) {
 	case VB2_SECDATA_FLAGS:
 		*dest = sec->flags;
@@ -93,6 +91,9 @@
 	struct vb2_secdata *sec = (struct vb2_secdata *)ctx->secdata;
 	uint32_t now;
 
+	if (!(vb2_get_sd(ctx)->status & VB2_SD_STATUS_SECDATA_INIT))
+		return VB2_ERROR_SECDATA_SET_UNINITIALIZED;
+
 	/* If not changing the value, don't regenerate the CRC. */
 	if (vb2_secdata_get(ctx, param, &now) == VB2_SUCCESS && now == value)
 		return VB2_SUCCESS;
diff --git a/firmware/2lib/include/2return_codes.h b/firmware/2lib/include/2return_codes.h
index 4f56bdb..0c368de 100644
--- a/firmware/2lib/include/2return_codes.h
+++ b/firmware/2lib/include/2return_codes.h
@@ -102,6 +102,12 @@
 	/* Invalid flags passed to vb2_secdata_set() */
 	VB2_ERROR_SECDATA_SET_FLAGS,
 
+	/* Called vb2_secdata_get() with uninitialized secdata */
+	VB2_ERROR_SECDATA_GET_UNINITIALIZED,
+
+	/* Called vb2_secdata_set() with uninitialized secdata */
+	VB2_ERROR_SECDATA_SET_UNINITIALIZED,
+
         /**********************************************************************
 	 * Common code errors
 	 */
diff --git a/tests/vb2_secdata_tests.c b/tests/vb2_secdata_tests.c
index 5128331..ca2a1ec 100644
--- a/tests/vb2_secdata_tests.c
+++ b/tests/vb2_secdata_tests.c
@@ -15,6 +15,7 @@
 
 #include "2common.h"
 #include "2api.h"
+#include "2misc.h"
 #include "2secdata.h"
 
 static void test_changed(struct vb2_context *ctx, int changed, const char *why)
@@ -35,7 +36,6 @@
 		.workbuf = workbuf,
 		.workbuf_size = sizeof(workbuf),
 	};
-	struct vb2_secdata *s = (struct vb2_secdata *)c.secdata;
 	uint32_t v = 1;
 
 	/* Blank data is invalid */
@@ -58,12 +58,6 @@
 	TEST_EQ(vb2_secdata_init(&c),
 		 VB2_ERROR_SECDATA_CRC, "Init invalid CRC");
 
-	/* Version 1 didn't have a CRC, so init should reject it */
-	vb2_secdata_create(&c);
-	s->struct_version = 1;
-	TEST_EQ(vb2_secdata_init(&c),
-		VB2_ERROR_SECDATA_VERSION, "Init old version");
-
 	vb2_secdata_create(&c);
 	c.flags = 0;
 
@@ -101,6 +95,15 @@
 	TEST_EQ(vb2_secdata_set(&c, -1, 456),
 		VB2_ERROR_SECDATA_SET_PARAM, "Set invalid");
 	test_changed(&c, 0, "Set invalid field doesn't change data");
+
+	/* Read/write uninitialized data fails */
+	vb2_get_sd(&c)->status &= ~VB2_SD_STATUS_SECDATA_INIT;
+	TEST_EQ(vb2_secdata_get(&c, VB2_SECDATA_VERSIONS, &v),
+		VB2_ERROR_SECDATA_GET_UNINITIALIZED, "Get uninitialized");
+	test_changed(&c, 0, "Get uninitialized doesn't change data");
+	TEST_EQ(vb2_secdata_set(&c, VB2_SECDATA_VERSIONS, 0x123456ff),
+		VB2_ERROR_SECDATA_SET_UNINITIALIZED, "Set uninitialized");
+	test_changed(&c, 0, "Set uninitialized doesn't change data");
 }
 
 int main(int argc, char* argv[])
