Exemplo n.º 1
0
 def verifyElection(self):
     report = Report(self.electionID)
     view = VerifierView()
     report.attach(view)
     verify_svc = VerifyService.getInstance()
     data_dict =  dict()
     bb = self.bulletinBoard.state.toJSON()
     ead = self.electionAdministrator.state.toJSON()
     eau = self.authorities[0].state.toJSON()
     json_eau = json.loads(eau)
     data_dict.update(json.loads(bb))
     data_dict.update(json.loads(ead))
     data_dict.update({'e_bold': json_eau['encryptions']})
     # import pdb; pdb.set_trace()
     verify_svc.verify(data_dict,report,self.secparams)
Exemplo n.º 2
0
def main():
    """ptionally runs only subtree,
       start verifier and print result."""
    init_socket(HOST, PORT, args.electionID)
    data_dict = getData()
    secparams = getSecparams(data_dict)
    report = Report(args.electionID)
    console = ConsoleView(step=args.step, depth=args.depth, data=args.data)
    report.attach(console)
    verify_svc = VerifyService.getInstance()
    if args.test:
        TestResult.setReport(report)
        data_dict = prepareData(data_dict, secparams)
        run_sub_tests(verify_svc.root_test, args.test, data_dict)
    else:
        verify_svc.verify(data_dict, report, secparams)
Exemplo n.º 3
0
    @completness_decorate()
    def runTest(self,election_data):
        """
        >>> res = bpet.runTest({'ballot': {'x_hat': '263518785695519210822934891748164623242004662660378716689020850692883349845715619569150976763632660209814323226684777952502271501482214238098189821107101445008800701142745472306936360472845963621399951486329045115577461266759124823278080759098155666004881563571591138599284655812670587814377864582419643794428844590307756586599062962517963665498326726746983714168446197332428857160306848762870180689566672942616548352316535826713335914767153048240172974253527008722319318961327206907627096459442154043230334996683079451458754707747802132547566058740438096989016907336228743652613910322638663961646488541330679259712582005791453471010631237383044002441691473236440743932697210808265040283135860340122284334088242902371295417108963436014612781376143575265507934399843254830257119121684118038389480655816331881835164752226552943433974393648237710797477952427507991479139852592681823936439340602945029599058968387575724267398367', 'a_bold': [['1921458892249490206594745283326191260301505990342195446041626806247980482870389432992718511025356985845915787488224408207061395168577396430477475047838178513410129584754895004247150749811368258345493019430442062996448760324560566621530854849432263879215250102182728896508198612766800177267102874236241521399519031408103624309620238901319689859179642109665697967507839364957210016560012917568087076974129167392939376643359848220371360638293024995065687893659545453552103136205233679119450050036729305425502698899133996744873992348383990370495179098272127419024963261951108772265503475645588879424020141262541459325456333565324635024095629459976182711584348989148923691659390484786702344732733795075642540417213696944856794424449339281367813918523480223450976921087084107910720174347431376388407571723525537383167836421864924400451775236979918881270737381677414643490822150072954889166435266116110286862619841969204883635329646', '3875820727394460400419869633973148548608647951123787913829403322770497699306254966790073146373971506193900033969022887887003734569427486637123284046102887179802388315419427717495379362368341055079431936477343075473472358941852710718599505494414973931671999072734269158726654561854188620576208033367719350259470145292674797566989931781526005773320611839886542848262863104971305053319696466487393523232691198326769552660353309970295226402740267556667045860202051844665535162545367651130317471703289541369040261833950273354054307398742206150252885069046183935033218471895416127653733810107727003948833588143322553610148980438275317181462740829962271849232259610825122285270312448257119767176588121463594053524643885764100246592945256260269102735872280081623075830611187485783630238339727767317430223705270450510462206216020146548278302584075981454435692052714641907242336879988468649998238573661018967442181981683353350886152552']], 'pi': [['2998277617598611660103597014267217637911111509541910796150106567576027309268085330109743863686284792349689459711883915813487399306951830997125698460727024273064264882293675364721623471283893314650439265651904957448756576216123500603066916901868491689858144042428926115894675784002052773948992324020291922024008635176271163953538396223339141165111085882258470413473745975449900519286053083254400990805021487468958114773711492953662757250494987347917197554489102904775617321565359556816274286205458975561953690492055488137897010987362004887902395128708875885935072107344994567811014280944936012087012193828952093168947374174821847875544354612940179243308128447972750237661700435307846637236520352496946129821757491623239537365322925977002798658988419684310204506919343627158233090292739473595438013146213005844444202701765814566860016904333544054344720643539151771444638870183309359991684781491906970722246120434728596799506665', '2508783316762603899038850463384643192824092065479059423840737371365344507643122708022088020874952007379521042470676176474480588076164965327879305100771825362247911557565386721718644300147019639302139026695503924105770170965804096436559493330216823426536579468919700561922611722548648456368802823799508653943775121632643473938156864103362746675195268170057645137822273745625446936305038915078430748968070625970503121817145255614077331825973358340653464140261053385926511594884234077164834582071398101187720473122696236355328223056578521126594195220582244540247536040976058684402615233987657744387961500599912711872692668452101394864389240507463962960294978181039003620711590789331243627375200919610536083174327247670157774873214789932415773606213498572873212706834211662877238396014079400990157769266270611230585120538844729027007747556778645966080002217132591869263837266772038277065168914722868636746808525787458983285901304', '3163662748196355931650972484771792269147186260737608868491308619734904168469480497246214867431603717942513532262914805977040248841189833525947071185528040672445963813688625145520130369637995395059551747045868753156877250399463149363461471964082927184406050956151125354679447667866937278506151073576309762653422516987034503721757762101193688617263261262243555104241271028633522056872745673340176572950029608918267110436146302027456340786243737490924327149192048086097694301506755813557628385943230256295770699955543010302495410522177223735755641453018350128758780173141739016229047403895660119766162560355957160356781630969067418422691667465998789363303541643044372581563726408541743952699506797705813163202658393122953989284483877281345843773380008385261841890386490457981716209276696012113027185330982305237741635836226718571622393526646250693384044107207699571033202807328049154144104827312958092733506526738827830330655033'], ['76461475578143884112144556109293240941119817203804269402238333407536831226795', '3207401680365962931452700094767538685838406448219623160045844210702112962279219880453531138925095143674742392950462558646828959296755632218498685166437370127537359187972947044368422455536410714327234828812815704427358204104094716558455636514927135008131348286314298892530198916375722311121752765219551093657686913226500454035671869997909425584427883899046931160230738217171283162640186899801314465848527760665728688784952657553238906159229039675114266415809759156426964824994639848115297810656714175974926806405081941426919872426602659329167707202240586776508366928152893763157535013405985051155993738404860293575613431388150610684089328439127534820604310756975431004539570871851920401309715662696504278469543369941220601281296803482073959414680602356117281884651233645610802282651668785296989593435925028252129185363694136694869547456754053063357920137587119429159272269515599762380895004348592694398795610467774776972522308', '1840448650297170135208258793919213991377545686515149384193739882124819569727690909704522391218616486858968086761139294288843107187807102013869644990177064129862361904971261285108799914023649207763554883171918692959202805763891347682345453110883663489567485847481295826911243401524651054408092433060183611448238369603145292845991597544613790546344256330070794864529998622695564802172852974837177220642053169146883205153927842861855799346417187312714147738501873369346860611012502696974841657009174203378521266833371560699733412875017747899933534272438941378030644990819775147160632809417650390943552438097821918594259259771983234181479028775233960511688266491801515928342138519257030486940901157272942686648924746434810601158267472498918227939167297634502148451329191690142061578095765945412270112847709585799365781549591100793100991039890369470380034545406958620789883660837587003173776163350236210953110988750427218168770573']]}})
        >>> res.test_result
        'successful'
        """
        try:
            ballot = self.test_data
            pk_s = self.election_data['publicKey']
            secparams = self.election_data['secparams']
            self.test_result.addTestData('publicKey',pk_s)
            pk = mpz(pk_s)
            pi = generateBallotProof(ballot)
            a_bold = [mpzList(item) for item in ballot['a_bold']]
            x_hat = mpz(ballot['x_hat'])
            res=CheckBallotProof(pi,x_hat,a_bold,pk,secparams)
            return 'successful' if res else 'failed'
        except KeyError:
            return 'skipped'

if __name__ == '__main__':
    import doctest
    from chvote.Common.SecurityParams import secparams_l1,secparams_l2,secparams_l3
    from chvote.verifier.TestResult import TestResult
    from app.verifier.Report import Report
    TestResult.setReport(Report("1"))
    bpe_test = BallotProofEvidenceTest("1.1","TEST","TEST",["ballot"])
    bpe_test.election_data = {'publicKey':'3472538235133839389015944286952315604040689209664186848798473856666132978063501893882726951987017755257908514622890077497900974546741464247724823886880667730733405188594502069185279622070855196994013194272006008147824646494376493105061154358635810662414569357908786840704250719607345490347329972445544184889884761990101639889398166900457354032927430720293819401572708052946354591498258180901242459233974472058984500205118770465159273586181411251298575509605329423345517149194725402342450043717416121965054076892084096251250030982637380158431284226139870672610757036743348319579456977554066423727543214711892400027022667701714700709441058774269797372995558483809677719629624858408968124658893731141431698781698062089298666548161926054089972547108604679435478693379203452902238806747999621095534151665940272758131380607186197133272652066276058131595865737110370238537597996086783115670024195575781248547072840030960234570985330','secparams': secparams_l3,}
    doctest.testmod(extraglobs = {'bpet': bpe_test})