Ejemplo n.º 1
0
    def test_simple_dont_replace(self, mycmd, gen_mail):
        mycmd.run_ok(["add-account", "account1"])
        mail = gen_mail()
        gen_header = mycmd.run_ok(["make-header", "*****@*****.**"])
        mail.add_header("Autocrypt", gen_header)

        out1 = mycmd.run_ok(["process-outgoing"], input=mail.as_string())
        m = mime.parse_message_from_string(out1)
        assert len(m.get_all("Autocrypt")) == 1
        x1 = mime.parse_ac_headervalue(m["Autocrypt"])
        x2 = mime.parse_ac_headervalue(gen_header)
        assert x1 == x2
Ejemplo n.º 2
0
    def test_encrypted_if_mutual(self, bcmd, ac_sender, linematch):
        bcmd.run_ok(["mod-account", "default", "--prefer-encrypt=mutual"])
        ac_sender.modify(prefer_encrypt='mutual')
        ac_sender.ac_headerval = ac_sender.make_ac_header(ac_sender.adr)
        send_adr = ac_sender.adr
        msg = mime.gen_mail_msg(
            From=send_adr, To=[bcmd.bot_adr],
            Autocrypt=ac_sender.ac_headerval,
            Subject="hello", _dto=True)

        out = bcmd.run_ok(["bot-reply"], input=msg.as_string())

        reply_msg = mime.parse_message_from_string(out)
        assert reply_msg["Subject"] == "Re: " + msg["Subject"]
        assert reply_msg["From"] == bcmd.bot_adr
        assert reply_msg["To"] == msg["From"]
        assert reply_msg["Autocrypt"]
        r = mime.parse_ac_headervalue(reply_msg["Autocrypt"])
        assert r.addr == bcmd.bot_adr
        assert r.keydata

        ac_sender.process_incoming(reply_msg)
        decrypted = ac_sender.decrypt_mime(reply_msg)
        body = decode_body(decrypted.dec_msg)
        linematch(body, """
            *processed*account*default*
        """)
        assert "no Autocrypt header" not in body
        assert "prefer_encrypt=mutual" in body
        assert "recommendation is encrypt" in body
        print(body)
Ejemplo n.º 3
0
    def test_reply_with_autocrypt(self, bcmd, ac_sender, linematch):
        send_adr = ac_sender.adr
        msg = mime.gen_mail_msg(From=send_adr,
                                To=[bcmd.bot_adr],
                                Autocrypt=ac_sender.ac_headerval,
                                Subject="hello",
                                _dto=True)

        out = bcmd.run_ok(["bot-reply"], input=msg.as_string())

        reply_msg = mime.parse_message_from_string(out)
        linematch(decode_body(reply_msg), """
            *processed*account*default*
        """)
        assert reply_msg["Subject"] == "Re: " + msg["Subject"]
        assert reply_msg["From"] == bcmd.bot_adr
        assert reply_msg["To"] == msg["From"]
        assert reply_msg["Autocrypt"]
        r = mime.parse_ac_headervalue(reply_msg["Autocrypt"])
        assert r.addr == bcmd.bot_adr
        assert r.keydata
        body = decode_body(reply_msg)
        assert "no Autocrypt header" not in body
        assert "recommendation is available" in body
        print(body)
Ejemplo n.º 4
0
def test_make_and_parse_header_value():
    addr, keydata = "[email protected]", b64encode(b'123')
    h = mime.make_ac_header_value(addr=addr, keydata=keydata)
    r = mime.parse_ac_headervalue(h)
    assert not r.error
    assert r.keydata == keydata
    assert r.addr == addr
    assert not r.extra_attr
Ejemplo n.º 5
0
def test_make_and_parse_header_prefer_encrypt():
    addr, keydata = "[email protected]", b64encode(b'123')
    h = mime.make_ac_header_value(addr=addr,
                                  keydata=keydata,
                                  prefer_encrypt="notset")
    r = mime.parse_ac_headervalue(h)
    assert "notset" in r.error
    assert not r.keydata
Ejemplo n.º 6
0
def test_make_and_parse_header_value_with_full_addr(addr):
    addr, keydata = "name <{}>".format(addr), b64encode(b'123')
    h = mime.make_ac_header_value(addr=addr, keydata=keydata)
    assert "[email protected]" in h
    r = mime.parse_ac_headervalue(h)
    assert not r.error
    assert r.keydata == keydata
    assert r.addr == "[email protected]"
    assert not r.extra_attr
Ejemplo n.º 7
0
def test_parse_ac_headervalue_bad_input(input):
    r = mime.parse_ac_headervalue(input)
    assert r.error