Org.BouncyCastle.Crypto.Agreement.JPake.JPakeParticipant.ValidateRound3PayloadReceived C# (CSharp) Méthode

ValidateRound3PayloadReceived() public méthode

Validates the payload received from the other participant during round 3. See JPakeParticipant for more details on round 3. After execution, the State state will be STATE_ROUND_3_VALIDATED. Throws CryptoException if validation fails. Throws InvalidOperationException if called prior to CalculateKeyingMaterial or multiple times
public ValidateRound3PayloadReceived ( Org.BouncyCastle.Crypto.Agreement.JPake.JPakeRound3Payload round3PayloadReceived, BigInteger keyingMaterial ) : void
round3PayloadReceived Org.BouncyCastle.Crypto.Agreement.JPake.JPakeRound3Payload The round 3 payload received from the other participant.
keyingMaterial BigInteger The keying material as returned from CalculateKeyingMaterial().
Résultat void
        public virtual void ValidateRound3PayloadReceived(JPakeRound3Payload round3PayloadReceived, BigInteger keyingMaterial)
        {
            if (this.state >= STATE_ROUND_3_VALIDATED)
                throw new InvalidOperationException("Validation already attempted for round 3 payload for " + this.participantId);
            if (this.state < STATE_KEY_CALCULATED)
                throw new InvalidOperationException("Keying material must be calculated prior to validating round 3 payload for " + this.participantId);

            JPakeUtilities.ValidateParticipantIdsDiffer(participantId, round3PayloadReceived.ParticipantId);
            JPakeUtilities.ValidateParticipantIdsEqual(this.partnerParticipantId, round3PayloadReceived.ParticipantId);

            JPakeUtilities.ValidateMacTag(
                this.participantId,
                this.partnerParticipantId,
                this.gx1,
                this.gx2,
                this.gx3,
                this.gx4,
                keyingMaterial,
                this.digest,
                round3PayloadReceived.MacTag);

            // Clear the rest of the fields.
            this.gx1 = null;
            this.gx2 = null;
            this.gx3 = null;
            this.gx4 = null;

            this.state = STATE_ROUND_3_VALIDATED;
        }
    }