Add capabilities query
Add a simple function to query the bootloader for capabilities.
Ultimately, this API should be available to the running app, but the
simulator can use this to determine what to test.
diff --git a/boot/bootutil/src/Makefile b/boot/bootutil/src/Makefile
index 8a69d87..cd38b0f 100644
--- a/boot/bootutil/src/Makefile
+++ b/boot/bootutil/src/Makefile
@@ -3,3 +3,4 @@
include $(ZEPHYR_BASE)/ext/lib/crypto/mbedtls/Makefile.include
obj-y += loader.o bootutil_misc.o image_validate.o image_rsa.o image_ec256.o
+obj-y += caps.o
diff --git a/boot/bootutil/src/caps.c b/boot/bootutil/src/caps.c
new file mode 100644
index 0000000..ae67939
--- /dev/null
+++ b/boot/bootutil/src/caps.c
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2017 Linaro Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <bootutil/caps.h>
+
+uint32_t bootutil_get_caps(void)
+{
+ uint32_t res = 0;
+
+#ifdef BOOTUTIL_SIGN_RSA
+ res |= BOOTUTIL_CAP_RSA2048;
+#endif
+#ifdef BOOTUTIL_SIGN_EC
+ res |= BOOTUTIL_CAP_ECDSA_P224;
+#endif
+#ifdef BOOTUTIL_SIGN_EC256
+ res |= BOOTUTIL_CAP_ECDSA_P256;
+#endif
+#ifdef BOOTUTIL_OVERWRITE_ONLY
+ res |= BOOTUTIL_CAP_OVERWRITE_UPGRADE;
+#else
+ res |= BOOTUTIL_CAP_SWAP_UPGRADE;
+#endif
+
+ return res;
+}