Example #1
0
def sign():
    if request.method == 'POST':

        key = request.form['key'].strip()

        if 'upload' in request.query_string:
            file = request.files['file']
            return render_template('sign.html',
                                   xml=file.read(),
                                   signed='',
                                   key=key,
                                   is_valid=True)

        key = request.form['key'].strip()
        xml = request.form['xml'].strip()
        signed = request.form['signed'].strip()
        is_valid = False
        if 'verify' in request.query_string:
            is_valid = jbelt.verify(signed)
        elif key and xml:
            signed = jbelt.sign(xml,
                                keys=jbelt.calc_keys(base64.b64decode(key)))
            is_valid = jbelt.verify(signed)
        return render_template('sign.html',
                               xml=xml,
                               signed=signed,
                               key=key,
                               is_valid=is_valid)
    else:
        return render_template('sign.html',
                               xml='',
                               signed='',
                               key=base64.b64encode(
                                   str(jbelt.genKeys()['priv'])))
Example #2
0
def genkeys():
    length = request.form['length'] if request.method == 'POST' else 128

    keys = jbelt.genKeys(int(length))

    keys['priv'] = base64.b64encode(str(keys['priv']))
    keys['pub'] = base64.b64encode(str(keys['pub']))
    return render_template('keys.html', **keys)
Example #3
0
def genkeys():
    length = request.form["length"] if request.method == "POST" else 128

    keys = jbelt.genKeys(int(length))

    keys["priv"] = base64.b64encode(str(keys["priv"]))
    keys["pub"] = base64.b64encode(str(keys["pub"]))
    return render_template("keys.html", **keys)
Example #4
0
    def test_key_gen(self):
        keys = jbelt.genKeys()
        self.assertTrue(str(keys['priv']))
        self.assertTrue(str(keys['pub']))
        self.assertTrue(isinstance(keys['priv'], bytearray))
        self.assertTrue(isinstance(keys['pub'], bytearray))
        self.assertEqual(len(keys['priv']), 32)

        self.assertEqual(len(keys['pub']), 64)
        self.assertNotEqual(keys['pub'], keys['priv'])
Example #5
0
 def test_encryption(self):
     keys = jbelt.genKeys()
     ecrypted = jbelt.enc(test_xml, str(keys['pub']))
     jbelt.dec(ecrypted, str(keys['priv']))
Example #6
0
 def test_key_calc(self):
     keys = jbelt.genKeys()
     self.assertEqual(jbelt.calc_keys(keys['priv']).getPublic().getBytes(),
                      keys['pub'])
Example #7
0
def sign():
    if request.method == "POST":

        key = request.form["key"].strip()

        if "upload" in request.query_string:
            file = request.files["file"]
            return render_template("sign.html", xml=file.read(), signed="", key=key, is_valid=True)

        key = request.form["key"].strip()
        xml = request.form["xml"].strip()
        signed = request.form["signed"].strip()
        is_valid = False
        if "verify" in request.query_string:
            is_valid = jbelt.verify(signed)
        elif key and xml:
            signed = jbelt.sign(xml, keys=jbelt.calc_keys(base64.b64decode(key)))
            is_valid = jbelt.verify(signed)
        return render_template("sign.html", xml=xml, signed=signed, key=key, is_valid=is_valid)
    else:
        return render_template("sign.html", xml="", signed="", key=base64.b64encode(str(jbelt.genKeys()["priv"])))