diff --git a/dumper/dumper.c b/dumper/dumper.c
index d18a108..728d410 100644
--- a/dumper/dumper.c
+++ b/dumper/dumper.c
@@ -180,7 +180,8 @@
 FOO Sign0Body[4] = {
 	{ "protected", CN_CBOR_BYTES, 0, &RecurseHeaderMap, 1, 0 },
 	{ "unprotected", CN_CBOR_MAP, 0, HeaderMap, _countof(HeaderMap), 0 },
-	{ "payload", CN_CBOR_BYTES, 0, NULL, 0, 0 }
+	{ "payload", CN_CBOR_BYTES, 0, NULL, 0, 0 },
+	{ "signature", CN_CBOR_BYTES, 0, NULL, 0, 0}
 };
 
 FOO EnvelopedMessage = {
diff --git a/src/Recipient.c b/src/Recipient.c
index 3b21268..618fef3 100644
--- a/src/Recipient.c
+++ b/src/Recipient.c
@@ -1221,32 +1221,35 @@
 	cnArrayT = cn_cbor_array_create(CBOR_CONTEXT_PARAM_COMMA &cbor_error);
 	CHECK_CONDITION_CBOR(cnArrayT != NULL, cbor_error);
 
-	cnParam = _COSE_map_get_int(pcose, COSE_Header_KDF_U_nonce, COSE_BOTH, perr);
-	if (cnParam != NULL) {
-		cnT = cn_cbor_clone(cnParam, CBOR_CONTEXT_PARAM_COMMA &cbor_error);
-		CHECK_CONDITION_CBOR(cnT != NULL, cbor_error);
-		CHECK_CONDITION_CBOR(cn_cbor_array_append(cnArrayT, cnT, &cbor_error), cbor_error);
-		cnT = NULL;
-		cnParam = NULL;
-	}
-
 	cnParam = _COSE_map_get_int(pcose, COSE_Header_KDF_U_name, COSE_BOTH, perr);
 	if (cnParam != NULL) {
 		cnT = cn_cbor_clone(cnParam, CBOR_CONTEXT_PARAM_COMMA &cbor_error);
-		CHECK_CONDITION_CBOR(cnT != NULL, cbor_error);
-		CHECK_CONDITION_CBOR(cn_cbor_array_append(cnArrayT, cnT, &cbor_error), cbor_error);
-		cnT = NULL;
-		cnParam = NULL;
 	}
+	else cnT = cn_cbor_null_create(CBOR_CONTEXT_PARAM_COMMA &cbor_error);
+	CHECK_CONDITION_CBOR(cnT != NULL, cbor_error);
+	CHECK_CONDITION_CBOR(cn_cbor_array_append(cnArrayT, cnT, &cbor_error), cbor_error);
+	cnT = NULL;
+	cnParam = NULL;
+
+	cnParam = _COSE_map_get_int(pcose, COSE_Header_KDF_U_nonce, COSE_BOTH, perr);
+	if (cnParam != NULL) {
+		cnT = cn_cbor_clone(cnParam, CBOR_CONTEXT_PARAM_COMMA &cbor_error);
+	}
+	else cnT = cn_cbor_null_create(CBOR_CONTEXT_PARAM_COMMA &cbor_error);
+	CHECK_CONDITION_CBOR(cnT != NULL, cbor_error);
+	CHECK_CONDITION_CBOR(cn_cbor_array_append(cnArrayT, cnT, &cbor_error), cbor_error);
+	cnT = NULL;
+	cnParam = NULL;
 
 	cnParam = _COSE_map_get_int(pcose, COSE_Header_KDF_U_other, COSE_BOTH, perr);
 	if (cnParam != NULL) {
 		cnT = cn_cbor_clone(cnParam, CBOR_CONTEXT_PARAM_COMMA &cbor_error);
-		CHECK_CONDITION_CBOR(cnT != NULL, cbor_error);
-		CHECK_CONDITION_CBOR(cn_cbor_array_append(cnArrayT, cnT, &cbor_error), cbor_error);
-		cnT = NULL;
-		cnParam = NULL;
 	}
+	else cnT = cn_cbor_null_create(CBOR_CONTEXT_PARAM_COMMA &cbor_error);
+	CHECK_CONDITION_CBOR(cnT != NULL, cbor_error);
+	CHECK_CONDITION_CBOR(cn_cbor_array_append(cnArrayT, cnT, &cbor_error), cbor_error);
+	cnT = NULL;
+	cnParam = NULL;
 
 	CHECK_CONDITION_CBOR(cn_cbor_array_append(pArray, cnArrayT, &cbor_error), cbor_error);
 	cnArrayT = NULL;
@@ -1254,32 +1257,35 @@
 	cnArrayT = cn_cbor_array_create(CBOR_CONTEXT_PARAM_COMMA &cbor_error);
 	CHECK_CONDITION_CBOR(cnArrayT != NULL, cbor_error);
 
-	cnParam = _COSE_map_get_int(pcose, COSE_Header_KDF_V_nonce, COSE_BOTH, perr);
-	if (cnParam != NULL) {
-		cnT = cn_cbor_clone(cnParam, CBOR_CONTEXT_PARAM_COMMA &cbor_error);
-		CHECK_CONDITION_CBOR(cnT != NULL, cbor_error);
-		CHECK_CONDITION_CBOR(cn_cbor_array_append(cnArrayT, cnT, &cbor_error), cbor_error);
-		cnT = NULL;
-		cnParam = NULL;
-	}
-
 	cnParam = _COSE_map_get_int(pcose, COSE_Header_KDF_V_name, COSE_BOTH, perr);
 	if (cnParam != NULL) {
 		cnT = cn_cbor_clone(cnParam, CBOR_CONTEXT_PARAM_COMMA &cbor_error);
-		CHECK_CONDITION_CBOR(cnT != NULL, cbor_error);
-		CHECK_CONDITION_CBOR(cn_cbor_array_append(cnArrayT, cnT, &cbor_error), cbor_error);
-		cnT = NULL;
-		cnParam = NULL;
 	}
+	else cnT = cn_cbor_null_create(CBOR_CONTEXT_PARAM_COMMA &cbor_error);
+	CHECK_CONDITION_CBOR(cnT != NULL, cbor_error);
+	CHECK_CONDITION_CBOR(cn_cbor_array_append(cnArrayT, cnT, &cbor_error), cbor_error);
+	cnT = NULL;
+	cnParam = NULL;
+
+	cnParam = _COSE_map_get_int(pcose, COSE_Header_KDF_V_nonce, COSE_BOTH, perr);
+	if (cnParam != NULL) {
+		cnT = cn_cbor_clone(cnParam, CBOR_CONTEXT_PARAM_COMMA &cbor_error);
+	}
+	else cnT = cn_cbor_null_create(CBOR_CONTEXT_PARAM_COMMA &cbor_error);
+	CHECK_CONDITION_CBOR(cnT != NULL, cbor_error);
+	CHECK_CONDITION_CBOR(cn_cbor_array_append(cnArrayT, cnT, &cbor_error), cbor_error);
+	cnT = NULL;
+	cnParam = NULL;
 
 	cnParam = _COSE_map_get_int(pcose, COSE_Header_KDF_V_other, COSE_BOTH, perr);
 	if (cnParam != NULL) {
 		cnT = cn_cbor_clone(cnParam, CBOR_CONTEXT_PARAM_COMMA &cbor_error);
-		CHECK_CONDITION_CBOR(cnT != NULL, cbor_error);
-		CHECK_CONDITION_CBOR(cn_cbor_array_append(cnArrayT, cnT, &cbor_error), cbor_error);
-		cnT = NULL;
-		cnParam = NULL;
 	}
+	else cnT = cn_cbor_null_create(CBOR_CONTEXT_PARAM_COMMA &cbor_error);
+	CHECK_CONDITION_CBOR(cnT != NULL, cbor_error);
+	CHECK_CONDITION_CBOR(cn_cbor_array_append(cnArrayT, cnT, &cbor_error), cbor_error);
+	cnT = NULL;
+	cnParam = NULL;
 
 	CHECK_CONDITION_CBOR(cn_cbor_array_append(pArray, cnArrayT, &cbor_error), cbor_error);
 	cnArrayT = NULL;
diff --git a/src/cbor.c b/src/cbor.c
index 40f5144..a229b0f 100644
--- a/src/cbor.c
+++ b/src/cbor.c
@@ -172,3 +172,14 @@
 	pcn->type = CN_CBOR_FALSE + (boolValue != 0);
 	return pcn;
 }
+
+cn_cbor * cn_cbor_null_create(CBOR_CONTEXT_COMMA cn_cbor_errback * errp)
+{
+	cn_cbor * pcn = CN_CALLOC(context);
+	if (pcn == NULL) {
+		if (errp != NULL) errp->err = CN_CBOR_ERR_OUT_OF_MEMORY;
+		return NULL;
+	}
+	pcn->type = CN_CBOR_NULL;
+	return pcn;
+}
diff --git a/src/cose.h b/src/cose.h
index 6d1cecd..12be235 100644
--- a/src/cose.h
+++ b/src/cose.h
@@ -148,11 +148,11 @@
 	COSE_Header_Operation_Time = 8,
 
 	COSE_Header_HKDF_salt = -20,
-	COSE_Header_KDF_U_nonce = -21,
-	COSE_Header_KDF_U_name = -22,
+	COSE_Header_KDF_U_name = -21,
+	COSE_Header_KDF_U_nonce = -22,
 	COSE_Header_KDF_U_other = -23,
-	COSE_Header_KDF_V_nonce = -24,
-	COSE_Header_KDF_V_name = -25,
+	COSE_Header_KDF_V_name = -24,
+	COSE_Header_KDF_V_nonce = -25,
 	COSE_Header_KDF_V_other = -26,
 
 	COSE_Header_KDF_PUB_other = -999,
