libimcv: Allow pts_t.set_peer_public_value() to fail
This commit is contained in:
@@ -178,8 +178,10 @@ bool imc_attestation_process(pa_tnc_attr_t *attr, imc_msg_t *msg,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
pts->set_peer_public_value(pts, initiator_value, initiator_nonce);
|
|
||||||
if (!pts->calculate_secret(pts))
|
if (!pts->set_peer_public_value(pts, initiator_value,
|
||||||
|
initiator_nonce) ||
|
||||||
|
!pts->calculate_secret(pts))
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -134,11 +134,11 @@ bool imv_attestation_process(pa_tnc_attr_t *attr, imv_msg_t *out_msg,
|
|||||||
}
|
}
|
||||||
|
|
||||||
responder_value = attr_cast->get_responder_value(attr_cast);
|
responder_value = attr_cast->get_responder_value(attr_cast);
|
||||||
pts->set_peer_public_value(pts, responder_value,
|
|
||||||
responder_nonce);
|
|
||||||
|
|
||||||
/* Calculate secret assessment value */
|
/* Calculate secret assessment value */
|
||||||
if (!pts->calculate_secret(pts))
|
if (!pts->set_peer_public_value(pts, responder_value,
|
||||||
|
responder_nonce) ||
|
||||||
|
!pts->calculate_secret(pts))
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -232,7 +232,7 @@ METHOD(pts_t, get_my_public_value, bool,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
METHOD(pts_t, set_peer_public_value, void,
|
METHOD(pts_t, set_peer_public_value, bool,
|
||||||
private_pts_t *this, chunk_t value, chunk_t nonce)
|
private_pts_t *this, chunk_t value, chunk_t nonce)
|
||||||
{
|
{
|
||||||
this->dh->set_other_public_value(this->dh, value);
|
this->dh->set_other_public_value(this->dh, value);
|
||||||
@@ -246,6 +246,7 @@ METHOD(pts_t, set_peer_public_value, void,
|
|||||||
{
|
{
|
||||||
this->responder_nonce = nonce;
|
this->responder_nonce = nonce;
|
||||||
}
|
}
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
METHOD(pts_t, calculate_secret, bool,
|
METHOD(pts_t, calculate_secret, bool,
|
||||||
|
|||||||
@@ -152,8 +152,9 @@ struct pts_t {
|
|||||||
*
|
*
|
||||||
* @param value Peer public DH value
|
* @param value Peer public DH value
|
||||||
* @param nonce Peer DH nonce
|
* @param nonce Peer DH nonce
|
||||||
|
* @return TRUE if public value set successfully
|
||||||
*/
|
*/
|
||||||
void (*set_peer_public_value) (pts_t *this, chunk_t value, chunk_t nonce);
|
bool (*set_peer_public_value) (pts_t *this, chunk_t value, chunk_t nonce);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calculates assessment secret to be used for TPM Quote as ExternalData
|
* Calculates assessment secret to be used for TPM Quote as ExternalData
|
||||||
|
|||||||
Reference in New Issue
Block a user