Deal with using static key id issues
diff --git a/src/Recipient.c b/src/Recipient.c
index ecc1c1e..a40bef5 100644
--- a/src/Recipient.c
+++ b/src/Recipient.c
@@ -172,7 +172,7 @@
pkeyMessage = (cn_cbor *) pKeyPrivate;
if (!ECDH_ComputeSecret(pCose, &pkeyMessage, pKeyPublic, &pbSecret, &cbSecret, CBOR_CONTEXT_PARAM_COMMA perr)) goto errorReturn;
- if (pkeyMessage->parent == NULL) {
+ if (!fStatic && pkeyMessage->parent == NULL) {
if (!_COSE_map_put(pCose, COSE_Header_ECDH_EPHEMERAL, pkeyMessage, COSE_UNPROTECT_ONLY, perr)) goto errorReturn;
}
}
diff --git a/src/cose.h b/src/cose.h
index 358de79..8add444 100644
--- a/src/cose.h
+++ b/src/cose.h
@@ -156,7 +156,7 @@
COSE_Header_ECDH_STATIC = -2,
COSE_Header_ECDH_EPK = -1,
COSE_Header_ECDH_SPK = -2,
- COSE_Header_ECDH_SPK_KID = -2,
+ COSE_Header_ECDH_SPK_KID = -3,
} COSE_Header;
diff --git a/test/test.c b/test/test.c
index 7be7116..cb22d57 100644
--- a/test/test.c
+++ b/test/test.c
@@ -168,11 +168,11 @@
int operation;
int keyNew;
} RgStringKeys[7] = {
- { "kty", 0, OPERATION_IGNORE, 0},
- { "kid", 0, OPERATION_NONE, 1},
- { "crv", 2, OPERATION_STRING, -1},
- { "x", 2, OPERATION_BASE64, -2},
- { "y", 2, OPERATION_BASE64, -3},
+ { "kty", 0, OPERATION_IGNORE, COSE_Key_Type},
+ { "kid", 0, OPERATION_NONE, COSE_Key_ID},
+ { "crv", 2, OPERATION_STRING, COSE_Key_EC2_Curve},
+ { "x", 2, OPERATION_BASE64, COSE_Key_EC2_X},
+ { "y", 2, OPERATION_BASE64, COSE_Key_EC2_Y},
{ "d", 2, OPERATION_BASE64, -4},
{ "k", 4, OPERATION_BASE64, -1}
};