boot_serial: Fix echo command code no longer compiling

Fixing missed update from cddl to zcbor.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
diff --git a/boot/boot_serial/src/boot_serial.c b/boot/boot_serial/src/boot_serial.c
index 4a4a63d..e8c2fe2 100644
--- a/boot/boot_serial/src/boot_serial.c
+++ b/boot/boot_serial/src/boot_serial.c
@@ -63,6 +63,7 @@
 #endif
 
 #include "serial_recovery_cbor.h"
+#include "serial_recovery_echo.h"
 #include "bootutil/boot_hooks.h"
 
 BOOT_LOG_MODULE_DECLARE(mcuboot);
@@ -491,37 +492,34 @@
 
 
 #ifdef MCUBOOT_BOOT_MGMT_ECHO
-static bool
-decode_echo(cbor_state_t *state, cbor_string_type_t *result)
-{
-    size_t bsstrdecoded;
-    int ret;
-
-    if (!map_start_decode(state)) {
-        return false;
-    }
-    ret = multi_decode(2, 2, &bsstrdecoded, (void *)tstrx_decode, state, result, sizeof(cbor_string_type_t));
-    map_end_decode(state);
-    return ret;
-}
-
-
 static void
 bs_echo(char *buf, int len)
 {
-    size_t bsstrdecoded;
-    cbor_string_type_t str[2];
+    struct Echo echo = { 0 };
+    size_t decoded_len;
+    uint32_t rc = MGMT_ERR_EINVAL;
+    uint_fast8_t result = cbor_decode_Echo((const uint8_t *)buf, len, &echo, &decoded_len);
 
-    if (entry_function((const uint8_t *)buf, len, str, &bsstrdecoded, (void *)decode_echo, 1, 2)) {
-        map_start_encode(&cbor_state, 10);
-        tstrx_put(&cbor_state, "r");
-        if (tstrx_encode(&cbor_state, &str[1]) && map_end_encode(&cbor_state, 10)) {
-            boot_serial_output();
-        } else {
-            reset_cbor_state();
-            bs_rc_rsp(MGMT_ERR_ENOMEM);
-        }
+    if ((result != ZCBOR_SUCCESS) || (len != decoded_len)) {
+        goto out;
     }
+
+    if (echo._Echo_d.value == NULL) {
+        goto out;
+    }
+
+    zcbor_map_start_encode(cbor_state, 10);
+    zcbor_tstr_put_term(cbor_state, "r");
+    if (zcbor_tstr_encode(cbor_state, &echo._Echo_d) && zcbor_map_end_encode(cbor_state, 10)) {
+        boot_serial_output();
+        return;
+    } else {
+        rc = MGMT_ERR_ENOMEM;
+    }
+
+out:
+    reset_cbor_state();
+    bs_rc_rsp(rc);
 }
 #endif