diff --git a/arch/arm/boards/optimus/optimus.c b/arch/arm/boards/optimus/optimus.c
index b00210d..17beae0 100644
--- a/arch/arm/boards/optimus/optimus.c
+++ b/arch/arm/boards/optimus/optimus.c
@@ -55,6 +55,7 @@
 #include <board_id.h>
 #include <tpm_lite/tlcl.h>
 #include <environment.h>
+#include <recovery.h>
 
 #define PHY_DEVICE      "phy0"
 
diff --git a/commands/bootm.c b/commands/bootm.c
index c193819..747b8a8 100644
--- a/commands/bootm.c
+++ b/commands/bootm.c
@@ -49,6 +49,7 @@
 #include <secure_boot.h>
 #include <antirebootloop.h>
 #include <board_id.h>
+#include <recovery.h>
 
 #ifdef CONFIG_NAND_COMCERTO_ECC_HW_BCH
 extern uint32_t temp_nand_ecc_errors[];
@@ -334,9 +335,16 @@
 				goto err_out;
 			}
 
-			if (rsa_get_public_key(board_id, &public_key) != 0) {
-				printf("Could not get public key!\n");
-				goto err_out;
+			if (!is_recovery_mode()) {
+				if (rsa_get_public_key(board_id, &public_key) != 0) {
+					printf("Could not get public key!\n");
+					goto err_out;
+				}
+			} else {
+				if (rsa_get_recovery_key(board_id, &public_key) != 0) {
+					printf("Could not get public key!\n");
+					goto err_out;
+				}
 			}
 
 			if (rsa_verify(public_key, sig, SB_SIG_LEN, hash) != 0) {
diff --git a/include/recovery.h b/include/recovery.h
new file mode 100644
index 0000000..a815bbd
--- /dev/null
+++ b/include/recovery.h
@@ -0,0 +1,6 @@
+#ifndef __RECOVERY_H
+#define __RECOVERY_H
+
+int is_recovery_mode(void);
+
+#endif /* __RECOVERY_H */
diff --git a/include/rsa_public_key.h b/include/rsa_public_key.h
index 71a0825..447cec6 100644
--- a/include/rsa_public_key.h
+++ b/include/rsa_public_key.h
@@ -19,4 +19,8 @@
 
 int rsa_get_public_key(int board_id, const struct rsa_public_key **key);
 
+#ifdef CONFIG_COMCERTO_BOOTLOADER
+int rsa_get_recovery_key(int board_id, const struct rsa_public_key **key);
+#endif
+
 #endif
diff --git a/lib/rsa/rsa_public_keys.c b/lib/rsa/rsa_public_keys.c
index fa40dc9..871aac6 100644
--- a/lib/rsa/rsa_public_keys.c
+++ b/lib/rsa/rsa_public_keys.c
@@ -142,6 +142,45 @@
 };
 #endif
 
+#ifdef CONFIG_COMCERTO_BOOTLOADER
+/* Keys to verify the signature of a recovery image */
+static const struct rsa_public_key recovery_keys[] = {
+	/* Optimus / Sideswipe */
+	{
+	},
+
+	/* SpaceCast */
+        { .n0inv = 2795114361u,
+	  .modulus = {
+			0xe17fd537, 0xa3c8cb00, 0x932ee36d, 0xc73c251a, 0xfab26fa4, 0x60c7ab00,
+			0x1468dbfd, 0xcff11b21, 0xcff22a1d, 0x98057ec2, 0x052fc7ea, 0x8adc183c,
+			0xcb273fca, 0xca676ea5, 0x32ec71b3, 0xf85c1297, 0xd1361b2f, 0x3b042ba7,
+			0x6f1298a3, 0x3cbb1ec3, 0xf3f3236f, 0xc5911a46, 0x5763bb53, 0x8245bffc,
+			0xca4164d8, 0xc1bf0062, 0x85471268, 0x68a0c01d, 0x3c296f90, 0xabd8d75d,
+			0xe23924fa, 0xcc5662cf, 0x77a4d814, 0x113c5183, 0x31e559ba, 0xb6c08aa4,
+			0x22a2bef9, 0x313739a1, 0xa8a57320, 0xab7241eb, 0x9e0c9dea, 0x01c255eb,
+			0xe40b3989, 0x2f01f596, 0x8356d053, 0x78e23be2, 0x8f0d9f9f, 0x09022096,
+			0x34a371a4, 0x0920ec0a, 0x5436f15d, 0x747537ec, 0xaf363081, 0xdbb6cc2e,
+			0x229d8b82, 0x4b9b298c, 0x7bf3f4c9, 0xf2447fb3, 0xf95c482f, 0x4413e804,
+			0x122bab97, 0x4f99ee1e, 0x148b2564, 0xad1c425d
+		},
+	  .rr = {
+			0xb5e135c2, 0xe5d20b16, 0xd657f9f6, 0xe957d210, 0x9dfd33c9, 0x71bedfc7,
+			0xeb570397, 0x356df96e, 0x30d89660, 0x90f4f10a, 0x88113810, 0x785cf0e1,
+			0xb14858e8, 0xd7aeba86, 0xc7995ce2, 0x14872d4e, 0x1d87cf00, 0xa97490ff,
+			0x8c4bdf64, 0x61dcbe9d, 0x989499eb, 0x4bd61725, 0x9625bf64, 0x288391af,
+			0xbfaa0134, 0xf90b0d27, 0x951a1bd2, 0xa9f5468f, 0x76e41638, 0xefcb50f4,
+			0xaa8eec52, 0x0421f434, 0xbf89794f, 0x08ed9a86, 0x9808d3e7, 0xc34c72f8,
+			0xd25c759a, 0x10d0442c, 0x35e606fc, 0x977e88e8, 0x2c3b4f81, 0x973bcf11,
+			0x7704760d, 0xbba4cbcd, 0xf0fe3a2b, 0x76813378, 0x90791b81, 0xad678e73,
+			0x8620d2cc, 0x3fa28ae1, 0xdf9f91c3, 0xba2fa335, 0x4dffb2c0, 0x61c27230,
+			0x98665fe1, 0x6378d57b, 0xcbb52ffd, 0xecda0f98, 0x69635ba9, 0xe9f2d4a1,
+			0x8ae1b8d7, 0x079a8d27, 0x62294cff, 0x75017f67
+		},
+	},
+};
+#endif
+
 static int get_key_id(int board_id) {
 	if ((board_id < 0) || (board_id > MAX_BOARD_ID)) {
 		printf("Invalid board ID: %d\n", board_id);
@@ -161,3 +200,16 @@
 
 	return 0;
 }
+
+#ifdef CONFIG_COMCERTO_BOOTLOADER
+int rsa_get_recovery_key(int board_id, const struct rsa_public_key **key) {
+	int index = get_key_id(board_id);
+	if (index < 0) {
+		return -1;
+	}
+
+	*key = &recovery_keys[index];
+
+	return 0;
+}
+#endif
