/// <summary> /// Creates and returns the payload to send to the other participant during round 3. /// /// See JPakeParticipant for more details on round 3. /// /// After execution, the State state} will be STATE_ROUND_3_CREATED. /// Throws InvalidOperationException if called prior to CalculateKeyingMaterial, or multiple /// times. /// </summary> /// <param name="keyingMaterial">The keying material as returned from CalculateKeyingMaterial().</param> public virtual JPakeRound3Payload CreateRound3PayloadToSend(BigInteger keyingMaterial) { if (this.state >= STATE_ROUND_3_CREATED) { throw new InvalidOperationException("Round 3 payload already created for " + this.participantId); } if (this.state < STATE_KEY_CALCULATED) { throw new InvalidOperationException("Keying material must be calculated prior to creating round 3 payload for " + this.participantId); } BigInteger macTag = JPakeUtilities.CalculateMacTag( this.participantId, this.partnerParticipantId, this.gx1, this.gx2, this.gx3, this.gx4, keyingMaterial, this.digest); this.state = STATE_ROUND_3_CREATED; return(new JPakeRound3Payload(participantId, macTag)); }
public virtual JPakeRound3Payload CreateRound3PayloadToSend(BigInteger keyingMaterial) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) if (state >= STATE_ROUND_3_CREATED) { throw new InvalidOperationException("Round 3 payload already created for " + participantId); } if (state < STATE_KEY_CALCULATED) { throw new InvalidOperationException("Keying material must be calculated prior to creating round 3 payload for " + participantId); } BigInteger magTag = JPakeUtilities.CalculateMacTag(participantId, partnerParticipantId, gx1, gx2, gx3, gx4, keyingMaterial, digest); state = STATE_ROUND_3_CREATED; return(new JPakeRound3Payload(participantId, magTag)); }