diff --git a/app/aboot/aboot.c b/app/aboot/aboot.c
index 5024edc..f24bc3f 100644
--- a/app/aboot/aboot.c
+++ b/app/aboot/aboot.c
@@ -2368,6 +2368,47 @@
         return 0;
 }
 
+int store_userkey(uint8_t *user_key, uint32_t user_key_size)
+{
+        if (!devinfo_present) {
+                dprintf(CRITICAL, "DeviceInfo not initalized \n");
+                return -EINVAL;
+        }
+
+        if (user_key_size > ARRAY_SIZE(device.user_public_key)) {
+                dprintf(CRITICAL, "StoreUserKey, UserKeySize too large!\n");
+                return -ENODEV;
+        }
+
+        memcpy(device.user_public_key, user_key, user_key_size);
+        device.user_public_key_length = user_key_size;
+        write_device_info(&device);
+        return 0;
+}
+
+int erase_userkey()
+{
+        if (!devinfo_present) {
+                dprintf(CRITICAL, "DeviceInfo not initalized \n");
+                return -EINVAL;
+        }
+        memset(device.user_public_key, 0, ARRAY_SIZE(device.user_public_key));
+        device.user_public_key_length = 0;
+        write_device_info(&device);
+        return 0;
+}
+
+int get_userkey(uint8_t **user_key, uint32_t *user_key_size)
+{
+        if (!devinfo_present) {
+                dprintf(CRITICAL, "DeviceInfo not initalized \n");
+                return -EINVAL;
+        }
+        *user_key = device.user_public_key;
+        *user_key_size = device.user_public_key_length;
+        return 0;
+}
+
 void read_device_info(device_info *dev)
 {
 	if(target_is_emmc_boot())
diff --git a/include/platform.h b/include/platform.h
index f6f739f..bce5970 100644
--- a/include/platform.h
+++ b/include/platform.h
@@ -97,4 +97,7 @@
 uint32_t get_page_size();
 int read_rollback_index(uint32_t loc, uint64_t *roll_back_index);
 int write_rollback_index(uint32_t loc, uint64_t roll_back_index);
+int get_userkey(uint8_t **user_key, uint32_t *user_key_size);
+int erase_userkey();
+int store_userkey(uint8_t *user_key, uint32_t user_key_size);
 #endif
