Skip to content

Latest commit

 

History

History
13 lines (8 loc) · 2.61 KB

README.md

File metadata and controls

13 lines (8 loc) · 2.61 KB

Модул за електронно гласуване към мобилното приложение на Да, България

Публикуваният тук код представлява часта от сървърния код към мобилното приложение на Движение Да, България, обслужваща електронното дистанционно гласуване за вътрешни избори.

Класът VoteManager дефинира следните ключови методи:

  • castVote - подаване на криптиран и подписан глас. Криптирането се извършва с публичния ключ на системата. Гласът съхранява заедно с подписа, за да може да бъде заменен от гласоподавателя при промяна на неговото решение
  • anonymizeVotes - извиква се от администратор на системата след края на периода за гласуване. Методът анонимизира гласовете, като преди това проверява подписите, гарантирайкки, че гласът не е бил променен, прехвърля криптираната част в отделна таблица и изтрива информацията, идентифицираща гласа
  • decryptVotes - декирптира вече анонимизираните гласове с частния ключ на системата. Частният ключ се съхранява от Комисията за вътрешни избори и се въвежда в системата чак след като гласовете са анонимизирани

След това данните от декриптираните гласове се преброяват съгласно вътрешните правила. Декриптираните данни могат да се предоставят на заинтересованите страни за да направят паралелно преброяване.

В допълнение, SendVotesToBlockchain.php позволява конфигуриране на cron job, който извлича подадените гласове и ги изпраща към LogSentinel - услуга, която гарантира неподменимостта на данните, използвайки криптографките методи, използвани от блокчейн технологията.