free(this);
}
+METHOD(tkm_diffie_hellman_t, get_id, dh_id_type,
+ private_tkm_diffie_hellman_t *this)
+{
+ return this->context_id;
+}
+
/*
* Described in header.
*/
.get_dh_group = _get_dh_group,
.destroy = _destroy,
},
+ .get_id = _get_id,
},
.group = group,
.context_id = tkm->idmgr->acquire_id(tkm->idmgr, TKM_CTX_DH),
typedef struct tkm_diffie_hellman_t tkm_diffie_hellman_t;
#include <library.h>
+#include <tkm/types.h>
/**
* diffie_hellman_t implementation using the trusted key manager.
* Implements diffie_hellman_t interface.
*/
diffie_hellman_t dh;
+
+ /**
+ * Get Diffie-Hellman context id.
+ *
+ * @return id of this DH context.
+ */
+ dh_id_type (*get_id)(tkm_diffie_hellman_t * const this);
+
};
/**
dh = tkm_diffie_hellman_create(MODP_4096_BIT);
fail_if(!dh, "MODP_4096 not created");
+ fail_if(!dh->get_id(dh), "Invalid context id (0)");
dh->dh.destroy(&dh->dh);
}