public SurjectionProof CalculateEcCommitmentProof(long pollId, EcSurjectionProofRequest proofRequest) { if (proofRequest is null) { throw new ArgumentNullException(nameof(proofRequest)); } string ecCommitment = proofRequest.EcCommitment.ToHexString(); var pollSelection = _dataAccessService.GetPollSelection(pollId, ecCommitment); byte[] ecBf = pollSelection.EcBlindingFactor.HexStringToByteArray(); byte[] bf = ConfidentialAssetsHelper.SumScalars(ecBf, proofRequest.PartialBlindingFactor); var sp = ConfidentialAssetsHelper.CreateSurjectionProof(proofRequest.EcCommitment, proofRequest.CandidateCommitments, proofRequest.Index, bf); return(sp); }
public IActionResult CalculateSurjectionProof(long pollId, [FromBody] EcSurjectionProofRequest request) { return(Ok(_electionCommitteeService.CalculateEcCommitmentProof(pollId, request))); }