Exemple #1
0
    def importKeyStoreCb(self, path, filename):
        if not filename or len(filename) < 1:
            return

        try:
            full = os.path.join(path, filename[0])
            if full.endswith(".json"):
                with open(full) as f:
                    jsonKS = utils.readJsonStream(f)
                    App.get_running_app().keyStore = \
                            key_store.KeyStore.readStoreFromJson(jsonKS)
            else:
                config = configparser.RawConfigParser()
                config.optionxform = str
                with open(full) as f:
                    config.readfp(f)
                App.get_running_app().keyStore = \
                        key_store.KeyStore.readStore(config)

            App.get_running_app().curSearchPath = path
        except (IOError, UnicodeDecodeError, ValueError,
                configparser.Error) as e:
            displayError(e)
        except KeyError:
            displayError(_("Malformed crypto container"))

        self.dismissPopup()
        self.buildKSTree()
Exemple #2
0
    def loadAESCb(self, path, filename):
        if not filename or len(filename) < 1:
            return

        try:
            full = os.path.join(path, filename[0])
            with open(full) as f:
                if full.endswith(".json"):
                    jsonAES = utils.readJsonStream(f)
                    self.aesInput.text = jsonAES["base64AESKey"]
                else:
                    self.aesInput.text = f.read()

            App.get_running_app().curSearchPath = path
        except (IOError, UnicodeDecodeError, ValueError) as e:
            displayError(e)
        except KeyError:
            displayError(_("Malformed crypto container"))

        self.dismissPopup()
Exemple #3
0
    def loadDEPCb(self, path, filename):
        if not filename or len(filename) < 1:
            return

        try:
            with open(os.path.join(path, filename[0])) as f:
                jsonDEP = utils.readJsonStream(f)
                self.dep = verify.parseDEPAndGroups(jsonDEP)

            App.get_running_app().curSearchPath = path
        except (IOError, UnicodeDecodeError, ValueError,
                verify.DEPException) as e:
            displayError(e)
            self.dismissPopup()
            return

        self.verifyAbort()
        if not self.updateDEPDisplay():
            self.verify_button.disabled = True
            self.dep = None

        self.dismissPopup()
Exemple #4
0

def usage():
    print("Usage: ./cert_extract.py <output dir>")
    sys.exit(0)


if __name__ == "__main__":
    import gettext
    gettext.install('rktool', './lang', True)

    if len(sys.argv) != 2:
        usage()

    outDir = sys.argv[1]
    if not os.path.exists(outDir):
        os.mkdir(outDir)
    os.chdir(outDir)

    dep = utils.readJsonStream(sys.stdin)
    groups = verify.parseDEPAndGroups(dep)
    for recs, cert, cert_list in groups:
        groupCerts = list(cert_list)
        if cert:
            groupCerts.append(cert)

        for co in groupCerts:
            cs = key_store.numSerialToKeyId(co.serial)
            with open('{}.crt'.format(cs), 'w') as f:
                f.write(utils.addPEMCertHeaders(utils.exportCertToPEM(co)))
Exemple #5
0
        keyStore = KeyStore.readStore(config)

        aesKey = None
        with open(sys.argv[3]) as f:
            aesKey = f.read().strip()

        data = keyStore.writeStoreToJson(aesKey)
        print(json.dumps(data, sort_keys=False, indent=2))

    elif sys.argv[2] == 'fromJson':
        if len(sys.argv) != 4:
            usage()

        keyStore = None
        with open(sys.argv[3]) as f:
            keyStore = KeyStore.readStoreFromJson(utils.readJsonStream(f))

    elif sys.argv[2] == 'add':
        if len(sys.argv) < 4:
            usage()

        config = configparser.RawConfigParser()
        config.optionxform = str
        config.read(filename)
        keyStore = KeyStore.readStore(config)

        newKey = None
        with open(sys.argv[3]) as f:
            newKey = f.read()

        if len(sys.argv) == 4:
 def load_state(filename):
     with open(filename, 'r') as f:
         stateJson = utils.readJsonStream(f)
         return ClusterState.readStateFromJson(stateJson)
    elif sys.argv[2] == 'copyCashRegister':
        if len(sys.argv) != 6:
            usage()

        state = load_state(filename)
        srcState = load_state(sys.argv[4])

        state.cashRegisters[int(sys.argv[3])] = srcState.cashRegisters[int(
            sys.argv[5])]

    elif sys.argv[2] == 'updateCashRegister':
        if len(sys.argv) != 5 and len(sys.argv) != 6:
            usage()

        with open(sys.argv[4]) as f:
            dep = verify.parseDEPAndGroups(utils.readJsonStream(f))

        key = None
        if len(sys.argv) == 6:
            with open(sys.argv[5]) as f:
                key = base64.b64decode(f.read().encode("utf-8"))

        state = load_state(filename)

        for recs, cert, chain in dep:
            state.cashRegisters[int(sys.argv[3])].updateFromDEPGroup(recs, key)

    else:
        usage()

    stateJson = state.writeStateToJson()
Exemple #8
0
    if sys.argv[1] == 'keyStore':
        if len(sys.argv) == 5:
            with open(sys.argv[4]) as f:
                key = base64.b64decode(f.read().encode("utf-8"))

        config = configparser.RawConfigParser()
        config.optionxform = str
        config.read(sys.argv[2])
        keyStore = key_store.KeyStore.readStore(config)

    elif sys.argv[1] == 'json':
        if len(sys.argv) != 4:
            usage()

        with open(sys.argv[2]) as f:
            jsonStore = utils.readJsonStream(f)

            key = utils.loadKeyFromJson(jsonStore)
            keyStore = key_store.KeyStore.readStoreFromJson(jsonStore)

    else:
        usage()

    pool = None
    if nprocs > 1:
        import multiprocessing
        pool = multiprocessing.Pool(nprocs)

    dep = None
    with open(sys.argv[3]) as f:
        dep = utils.readJsonStream(f)