Exemplo n.º 1
0
def test_signing(tmpdir, key_size, algo_id):
    private_key, public_key = make_rsa_keypair(key_size)

    message_p = tmpdir.join('message.txt')
    message_p.write('hello world')
    mar_p = tmpdir.join('test.mar')
    with mar_p.open('w+b') as f:
        with MarWriter(f,
                       signing_key=private_key,
                       channel='release',
                       productversion='99.9',
                       signing_algorithm=algo_id) as m:
            with tmpdir.as_cwd():
                m.add('message.txt')

    assert mar_p.size() > 0
    with mar_p.open('rb') as f:
        with MarReader(f) as m:
            assert m.mardata.additional.count == 1
            assert m.mardata.signatures.count == 1
            assert len(m.mardata.index.entries) == 1
            assert m.mardata.index.entries[0].name == 'message.txt'
            m.extract(str(tmpdir.join('extracted')))
            assert (tmpdir.join('extracted',
                                'message.txt').read('rb') == b'hello world')
            assert m.verify(public_key)
Exemplo n.º 2
0
def test_main_create_signed_badkeysize(tmpdir):
    priv, pub = make_rsa_keypair(1024)
    tmpdir.join('hello.txt').write('hello world')
    tmpdir.join('key.pem').write(priv)
    with tmpdir.as_cwd():
        with raises(SystemExit):
            cli.main(['--productversion', 'foo', '--channel', 'bar', '-k',
                      'key.pem', '-c', 'test.mar', 'hello.txt'])
Exemplo n.º 3
0
def test_main_create_signed_badkeysize(tmpdir):
    priv, pub = make_rsa_keypair(1024)
    tmpdir.join('hello.txt').write('hello world')
    tmpdir.join('key.pem').write(priv)
    with tmpdir.as_cwd():
        with raises(SystemExit):
            cli.main(['--productversion', 'foo', '--channel', 'bar', '-k',
                      'key.pem', '-c', 'test.mar', 'hello.txt'])
Exemplo n.º 4
0
def test_bad_keysize(key_size, signer, verifier):
    priv, pub = make_rsa_keypair(key_size)

    with pytest.raises(ValueError):
        verifier(pub, b'')

    with pytest.raises(ValueError):
        signer(priv)
Exemplo n.º 5
0
def test_main_create_signed_v1(tmpdir, key_size):
    priv, pub = make_rsa_keypair(key_size)
    tmpdir.join('hello.txt').write('hello world')
    tmpdir.join('key.pem').write(priv)
    with tmpdir.as_cwd():
        cli.main([
            '--productversion', 'foo', '--channel', 'bar', '-k', 'key.pem',
            '-c', 'test.mar', 'hello.txt'
        ])
        cli.main(['-v', 'test.mar', '-k', 'key.pem'])
Exemplo n.º 6
0
def mar_sha384(tmpdir_factory):
    """MAR signed with SHA384"""
    tmpdir = tmpdir_factory.mktemp('data')
    message_p = tmpdir.join('message.txt')
    message_p.write('hello world')
    mar_p = tmpdir.join('test_sha384.mar')
    private_key, public_key = make_rsa_keypair(4096)
    with mar_p.open('w+b') as f:
        with MarWriter(f, signing_key=private_key, channel='release',
                       productversion='99.9', signing_algorithm='sha384') as m:
            with tmpdir.as_cwd():
                m.add('message.txt')
    return mar_p
Exemplo n.º 7
0
def mar_sha384(tmpdir_factory):
    """MAR signed with SHA384"""
    tmpdir = tmpdir_factory.mktemp('data')
    message_p = tmpdir.join('message.txt')
    message_p.write('hello world')
    mar_p = tmpdir.join('test_sha384.mar')
    private_key, public_key = make_rsa_keypair(4096)
    with mar_p.open('w+b') as f:
        with MarWriter(f,
                       signing_key=private_key,
                       channel='release',
                       productversion='99.9',
                       signing_algorithm='sha384') as m:
            with tmpdir.as_cwd():
                m.add('message.txt')
    return mar_p
Exemplo n.º 8
0
def test_verify_wrongkey():
    private, public = make_rsa_keypair(2048)
    with MarReader(open(TEST_MAR_BZ2, 'rb')) as m:
        assert not m.verify(public)
Exemplo n.º 9
0
def test_keys():
    return {
        2048: make_rsa_keypair(2048),
        4096: make_rsa_keypair(4096),
    }
Exemplo n.º 10
0
def test_keys():
    return {
        2048: make_rsa_keypair(2048),
        4096: make_rsa_keypair(4096),
    }
Exemplo n.º 11
0
def test_verify_with_privatekey(key_size, signer, verifier):
    priv, pub = make_rsa_keypair(key_size)

    assert verifier(priv, b'')
Exemplo n.º 12
0
def test_good_keysize(key_size, signer, verifier):
    priv, pub = make_rsa_keypair(key_size)

    assert verifier(pub, b'')
    assert signer(priv)