Example #1
0
def test_meta_assign_read_ac():
    obj = objects.AppData(0xf1d0)
    old_meta = {'read': obj.meta['read']}
    obj.meta = {'read': 'never'}
    with pytest.raises(IOError):
        print(obj.read())

    obj.meta = old_meta
Example #2
0
def test_meta_assign_change_ac():
    obj = objects.AppData(0xf1d0)
    old_meta = {'change': obj.meta['change']}
    obj.meta = {'change': 'never'}
    with pytest.raises(IOError):
        print(obj.write(b'\x00\x00\x00'))

    obj.meta = old_meta
Example #3
0
def test_meta_assign_complex_ac(ki):
    obj = objects.AppData(0xf1d0)
    for key, value in ki.items():
        if key not in obj.meta:
            old_meta = {key: 'always'}
        else:
            old_meta = {key: obj.meta[key]}
        obj.meta = {key: value}
        assert {key: value} == {key: obj.meta[key]}
        obj.meta = old_meta
Example #4
0
def test_tls_prf_secret_from_appdata_minimum(hash_alg):
    app_data = objects.AppData(0xf1d0)
    app_data.write(bytes().fromhex(secret))
    old_type = app_data.meta['type']
    old_execute_ac = app_data.meta['execute']
    app_data.meta = {'type': 'pre_sh_secret', 'execute': 'always'}
    optiga_ec.tls_prf(app_data,
                      32,
                      seed=bytes().fromhex(seed),
                      hash_algorithm=hash_alg)
    app_data.meta = {'type': old_type, 'execute': old_execute_ac}
Example #5
0
def test_hkdf_secret_from_appdata(hash_alg):
    app_data = objects.AppData(0xf1d0)
    app_data.write(bytes().fromhex(secret))
    old_type = app_data.meta['type']
    old_execute_ac = app_data.meta['execute']
    app_data.meta = {'type': 'pre_sh_secret', 'execute': 'always'}
    derived_key = optiga_ec.hkdf(app_data,
                                 32,
                                 hash_algorithm=hash_alg,
                                 export=True)
    app_data.meta = {'type': old_type, 'execute': old_execute_ac}
Example #6
0
def test_meta_set_object_type(obj_type):
    obj = objects.AppData(0xf1d0)
    old_meta = None
    if 'type' in obj.meta:
        old_meta = {'type': obj.meta['type']}
    obj.meta = {'type': obj_type}

    assert obj.meta['type'] == obj_type

    if old_meta is not None:
        obj.meta = old_meta
Example #7
0
def test_meta_assign_used_size():
    obj = objects.AppData(0xf1d0)
    with pytest.raises(OSError):
        obj.meta = {'used_size': 100}
Example #8
0
def test_meta_check_used_size():
    obj = objects.AppData(0xf1d0)
    assert isinstance(obj.meta['used_size'], int)
    assert isinstance(obj.used_size, int)
Example #9
0
def test_meta_check_max_size():
    obj = objects.AppData(0xf1d0)
    assert 140 == obj.meta['max_size']
    assert 140 == obj.max_size
Example #10
0
def test_meta_assign_wrong_tag_value():
    obj = objects.AppData(0xf1d0)
    with pytest.raises(ValueError):
        obj.meta = {'change': 'nie'}
Example #11
0
def test_meta_assign_wrong_tag():
    obj = objects.AppData(0xf1d0)
    with pytest.raises(ValueError):
        obj.meta = {'write': 'never'}
Example #12
0
def test_meta_read_appdata():
    obj = objects.AppData(0xf1d0)
    print(obj.meta)