Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 public IActionResult CalculateSurjectionProof(long pollId, [FromBody] EcSurjectionProofRequest request)
 {
     return(Ok(_electionCommitteeService.CalculateEcCommitmentProof(pollId, request)));
 }