Example #1
0
    def __handle_valid(self, root, vote_file):

        code = root.split('/').pop()
        user_key = htscommon.get_user_key(code)
        fn = self._reg.path(user_key + [vote_file])

        bdoc = bdocpythonutils.BDocContainer()
        bdoc.load(fn)
        profile = bdocpythonutils.ManifestProfile('TM')
        bdoc.validate(profile)
        haal = bdoc.documents["%s.evote" % self._elid]

        voter = htscommon.get_votefile_voter(vote_file)
        b64haal = base64.b64encode(haal).strip()

        self._log3.log_info(tyyp=3,
                            haal_rasi=ksum.votehash(haal),
                            jaoskond=voter['jaoskond'],
                            jaoskond_omavalitsus=voter['jaoskond_omavalitsus'],
                            ringkond=voter['ringkond'],
                            ringkond_omavalitsus=voter['ringkond_omavalitsus'],
                            isikukood=code)

        return [
            voter['jaoskond_omavalitsus'], voter['jaoskond'],
            voter['ringkond_omavalitsus'], voter['ringkond'], b64haal
        ]
Example #2
0
    def __handle_valid(self, root, vote_file):

        code = root.split('/').pop()
        user_key = htscommon.get_user_key(code)
        fn = self._reg.path(user_key + [vote_file])

        bdoc = bdocpythonutils.BDocContainer()
        bdoc.load(fn)
        profile = bdocpythonutils.ManifestProfile('TM')
        bdoc.validate(profile)
        haal = bdoc.documents["%s.evote" % self._elid]

        voter = htscommon.get_votefile_voter(vote_file)
        b64haal = base64.b64encode(haal).strip()

        self._log3.log_info(
            tyyp=3,
            haal_rasi=ksum.votehash(haal),
            jaoskond=voter['jaoskond'],
            jaoskond_omavalitsus=voter['jaoskond_omavalitsus'],
            ringkond=voter['ringkond'],
            ringkond_omavalitsus=voter['ringkond_omavalitsus'],
            isikukood=code)

        return [voter['jaoskond_omavalitsus'], voter['jaoskond'],
            voter['ringkond_omavalitsus'], voter['ringkond'], b64haal]
Example #3
0
    def __load_bdoc(self, elid):
        voter_key = htscommon.get_user_key(self._voter_code)
        sreg = Election().get_sub_reg(elid)
        for votefile in sreg.list_keys(voter_key):
            if htscommon.VALID_VOTE_PATTERN.match(votefile):
                bdoc = bdocpythonutils.BDocContainer()
                bdoc.load(sreg.path(voter_key + [votefile]))
                bdoc.validate(bdocpythonutils.ManifestProfile("TM"))

                self._voter = htscommon.get_votefile_voter(votefile)
                break

        if not bdoc:
            evlog.log_error("No valid BDOC found for voter %s using vote ID %s" % \
                    (self._voter, self._vote_id))
            raise HTSVerifyException, evcommon.VERIFY_ERROR

        return bdoc
Example #4
0
    def tyhistusperioodi(self):

        pc_cache = {}
        vc = htscommon.VoteCounter()
        self._log1.cache(pc_cache, 'isikukood')
        jaoskonnad = {}
        jaoskonnad_rev = {}
        self.__load_jaoskonnad(jaoskonnad, jaoskonnad_rev)
        tic = ticker.Counter(\
            'Hääli:', '\tArvesse minevaid: %d\tKorduvaid: %d')
        tic.start('Koostan e-hääletanute nimekirja:')
        for path in os.walk(self._reg.path(['hts', 'votes'])):
            root = path[0]
            for vote_file in path[2]:
                if htscommon.VALID_VOTE_PATTERN.match(vote_file):
                    code = root.split('/').pop()
                    if not code in pc_cache:
                        self._errmsg = \
                            "Serveri andmestruktuurid ei ole kooskõlalised"
                        raise Exception(self._errmsg)

                    voter = htscommon.get_votefile_voter(vote_file)
                    voter['isikukood'] = code
                    jaoskonnad_rev['%s\t%s\t%s\t%s' % (\
                        voter['jaoskond_omavalitsus'], \
                        voter['jaoskond'], voter['ringkond_omavalitsus'], \
                        voter['ringkond'])].append(voter)
                    vc.inc_valid()
                elif htscommon.AUTOREVOKED_VOTE_PATTERN.match(vote_file):
                    vc.inc_autorevoked()
                else:
                    vc.inc_unknown()
                tic.tick(1, vc.valid(), vc.autorevoked())

        tic.finish()

        valijaid1 = self.__write_masinloetav(jaoskonnad_rev)
        valijaid2 = self.__write_inimloetav(jaoskonnad)
        if not (valijaid1 == valijaid2):
            self._errmsg = 'Viga nimekirjade koostamisel'
            raise Exception(self._errmsg)

        return vc.valid() + vc.autorevoked(), vc.autorevoked(), valijaid1
Example #5
0
    def tyhistusperioodi(self):

        pc_cache = {}
        vc = htscommon.VoteCounter()
        self._log1.cache(pc_cache, 'isikukood')
        jaoskonnad = {}
        jaoskonnad_rev = {}
        self.__load_jaoskonnad(jaoskonnad, jaoskonnad_rev)
        tic = ticker.Counter(\
            'Hääli:', '\tArvesse minevaid: %d\tKorduvaid: %d')
        tic.start('Koostan e-hääletanute nimekirja:')
        for path in os.walk(self._reg.path(['hts', 'votes'])):
            root = path[0]
            for vote_file in path[2]:
                if htscommon.VALID_VOTE_PATTERN.match(vote_file):
                    code = root.split('/').pop()
                    if not code in pc_cache:
                        self._errmsg = \
                            "Serveri andmestruktuurid ei ole kooskõlalised"
                        raise Exception(self._errmsg)

                    voter = htscommon.get_votefile_voter(vote_file)
                    voter['isikukood'] = code
                    jaoskonnad_rev['%s\t%s\t%s\t%s' % (\
                        voter['jaoskond_omavalitsus'], \
                        voter['jaoskond'], voter['ringkond_omavalitsus'], \
                        voter['ringkond'])].append(voter)
                    vc.inc_valid()
                elif htscommon.AUTOREVOKED_VOTE_PATTERN.match(vote_file):
                    vc.inc_autorevoked()
                else:
                    vc.inc_unknown()
                tic.tick(1, vc.valid(), vc.autorevoked())

        tic.finish()

        valijaid1 = self.__write_masinloetav(jaoskonnad_rev)
        valijaid2 = self.__write_inimloetav(jaoskonnad)
        if not (valijaid1 == valijaid2):
            self._errmsg = 'Viga nimekirjade koostamisel'
            raise Exception(self._errmsg)

        return vc.valid() + vc.autorevoked(), vc.autorevoked(), valijaid1
Example #6
0
    def __tyhista_korduv_haal(self, code, haale_rasi):

        user_key = htscommon.get_user_key(code)
        if not self._reg.check(user_key):
            return

        flist = self._reg.list_keys(user_key)
        for elem in flist:
            if htscommon.VALID_VOTE_PATTERN.match(elem):
                rev_name = htscommon.change_votefile_name(\
                    elem, htscommon.BAUTOREVOKED)
                old_name = self._reg.path(user_key + [elem])
                new_name = self._reg.path(user_key + [rev_name])

                bdoc = bdocpythonutils.BDocContainer()
                bdoc.load(old_name)
                profile = bdocpythonutils.ManifestProfile('TM')
                bdoc.validate(profile)

                vote = bdoc.documents["%s.evote" % self._elid]
                voter = htscommon.get_votefile_voter(elem)
                vote_time = htscommon.get_votefile_time(elem)

                # logimine
                self._log2.log_info(
                    tyyp=2,
                    haal_rasi=ksum.votehash(vote),
                    jaoskond=voter['jaoskond'],
                    jaoskond_omavalitsus=voter['jaoskond_omavalitsus'],
                    ringkond=voter['ringkond'],
                    ringkond_omavalitsus=voter['ringkond_omavalitsus'],
                    isikukood=code,
                    pohjus='korduv e-hääl: ' + haale_rasi)
                self._revlog.log_info(
                    tegevus='korduv e-hääl',
                    isikukood=code,
                    nimi=voter['nimi'],
                    timestamp=vote_time,
                    operaator='',
                    pohjus=haale_rasi)

                os.rename(old_name, new_name)
Example #7
0
    def __tyhista_korduv_haal(self, code, haale_rasi):

        user_key = htscommon.get_user_key(code)
        if not self._reg.check(user_key):
            return

        flist = self._reg.list_keys(user_key)
        for elem in flist:
            if htscommon.VALID_VOTE_PATTERN.match(elem):
                rev_name = htscommon.change_votefile_name(\
                    elem, htscommon.BAUTOREVOKED)
                old_name = self._reg.path(user_key + [elem])
                new_name = self._reg.path(user_key + [rev_name])

                bdoc = bdocpythonutils.BDocContainer()
                bdoc.load(old_name)
                profile = bdocpythonutils.ManifestProfile('TM')
                bdoc.validate(profile)

                vote = bdoc.documents["%s.evote" % self._elid]
                voter = htscommon.get_votefile_voter(elem)
                vote_time = htscommon.get_votefile_time(elem)

                # logimine
                self._log2.log_info(
                    tyyp=2,
                    haal_rasi=ksum.votehash(vote),
                    jaoskond=voter['jaoskond'],
                    jaoskond_omavalitsus=voter['jaoskond_omavalitsus'],
                    ringkond=voter['ringkond'],
                    ringkond_omavalitsus=voter['ringkond_omavalitsus'],
                    isikukood=code,
                    pohjus='korduv e-hääl: ' + haale_rasi)
                self._revlog.log_info(tegevus='korduv e-hääl',
                                      isikukood=code,
                                      nimi=voter['nimi'],
                                      timestamp=vote_time,
                                      operaator='',
                                      pohjus=haale_rasi)

                os.rename(old_name, new_name)
Example #8
0
    def __handle_userrevoked(self, root, vote_file):

        code = root.split('/').pop()
        user_key = htscommon.get_user_key(code)

        fn = self._reg.path(user_key + [vote_file])

        bdoc = bdocpythonutils.BDocContainer()
        bdoc.load(fn)
        profile = bdocpythonutils.ManifestProfile('TM')
        bdoc.validate(profile)
        haal = bdoc.documents["%s.evote" % self._elid]

        voter = htscommon.get_votefile_voter(vote_file)
        pohjus = self._reg.read_string_value(user_key, 'reason').value
        self._log2.log_info(tyyp=2,
                            haal_rasi=ksum.votehash(haal),
                            jaoskond=voter['jaoskond'],
                            jaoskond_omavalitsus=voter['jaoskond_omavalitsus'],
                            ringkond=voter['ringkond'],
                            ringkond_omavalitsus=voter['ringkond_omavalitsus'],
                            isikukood=code,
                            pohjus=pohjus)
Example #9
0
    def __handle_userrevoked(self, root, vote_file):

        code = root.split('/').pop()
        user_key = htscommon.get_user_key(code)

        fn = self._reg.path(user_key + [vote_file])

        bdoc = bdocpythonutils.BDocContainer()
        bdoc.load(fn)
        profile = bdocpythonutils.ManifestProfile('TM')
        bdoc.validate(profile)
        haal = bdoc.documents["%s.evote" % self._elid]

        voter = htscommon.get_votefile_voter(vote_file)
        pohjus = self._reg.read_string_value(user_key, 'reason').value
        self._log2.log_info(
            tyyp=2,
            haal_rasi=ksum.votehash(haal),
            jaoskond=voter['jaoskond'],
            jaoskond_omavalitsus=voter['jaoskond_omavalitsus'],
            ringkond=voter['ringkond'],
            ringkond_omavalitsus=voter['ringkond_omavalitsus'],
            isikukood=code,
            pohjus=pohjus)