bool COSE_Enveloped_Free(HCOSE_ENVELOPED h) { #ifdef USE_CBOR_CONTEXT cn_cbor_context context; #endif COSE_Enveloped * p = (COSE_Enveloped *)h; if (!IsValidEnvelopedHandle(h)) return false; if (p->m_message.m_refCount > 1) { p->m_message.m_refCount--; return true; } #ifdef USE_CBOR_CONTEXT context = ((COSE_Enveloped *)h)->m_message.m_allocContext; #endif _COSE_RemoveFromList(&EnvelopedRoot, &p->m_message); _COSE_Enveloped_Release((COSE_Enveloped *)h); COSE_FREE((COSE_Enveloped *)h, &context); return true; }
bool COSE_Encrypt_Free(HCOSE_ENCRYPT h) { #ifdef USE_CBOR_CONTEXT cn_cbor_context context; #endif COSE_Encrypt * pEncrypt = (COSE_Encrypt *)h; if (!IsValidEncryptHandle(h)) return false; #ifdef USE_CBOR_CONTEXT context = ((COSE_Encrypt *)h)->m_message.m_allocContext; #endif _COSE_Encrypt_Release(pEncrypt); _COSE_RemoveFromList(&EncryptRoot, &pEncrypt->m_message); COSE_FREE((COSE_Encrypt *)h, &context); return true; }