Skip to content

Commit 4b361d0

Browse files
assertion alter with keys, seg size -1
1 parent 16496e8 commit 4b361d0

File tree

1 file changed

+28
-30
lines changed

1 file changed

+28
-30
lines changed

xtest/test_tdfs.py

Lines changed: 28 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -211,15 +211,6 @@ def change_assertion_statement(manifest: tdfs.Manifest) -> tdfs.Manifest:
211211
return manifest
212212

213213

214-
def change_assertion_binding(manifest: tdfs.Manifest) -> tdfs.Manifest:
215-
assert manifest.assertions
216-
assertion = manifest.assertions[0]
217-
altered_binding = base64.b64encode(change_last_three(base64.b64decode(assertion.binding.signature)))
218-
assertion.binding.signature = altered_binding
219-
manifest.assertions[0] = assertion
220-
return manifest
221-
222-
223214
## TAMPER TESTS
224215

225216

@@ -293,21 +284,21 @@ def test_tdf_with_altered_seg_sig(
293284
assert b"tamper" in exc.output or b"IntegrityError" in exc.output
294285

295286

296-
# def test_tdf_with_altered_seg_size(
297-
# encrypt_sdk: tdfs.sdk_type, decrypt_sdk: tdfs.sdk_type, pt_file: str, tmp_dir: str
298-
# ):
299-
# skip_hexless_skew(encrypt_sdk, decrypt_sdk)
300-
# ct_file = do_encrypt_with(pt_file, encrypt_sdk, "ztdf", tmp_dir)
301-
# assert os.path.isfile(ct_file)
302-
# b_file = tdfs.update_manifest("broken_seg_size", ct_file, change_segment_size)
303-
# fname = os.path.basename(b_file).split(".")[0]
304-
# rt_file = f"{tmp_dir}test-{fname}.untdf"
305-
# try:
306-
# tdfs.decrypt(decrypt_sdk, b_file, rt_file, "ztdf")
307-
# assert False, "decrypt succeeded unexpectedly"
308-
# except subprocess.CalledProcessError as exc:
309-
# assert b"segment" in exc.output
310-
# assert b"tamper" in exc.output or b"IntegrityError" in exc.output
287+
def test_tdf_with_altered_seg_size(
288+
encrypt_sdk: tdfs.sdk_type, decrypt_sdk: tdfs.sdk_type, pt_file: str, tmp_dir: str
289+
):
290+
skip_hexless_skew(encrypt_sdk, decrypt_sdk)
291+
ct_file = do_encrypt_with(pt_file, encrypt_sdk, "ztdf", tmp_dir)
292+
assert os.path.isfile(ct_file)
293+
b_file = tdfs.update_manifest("broken_seg_size", ct_file, change_segment_size)
294+
fname = os.path.basename(b_file).split(".")[0]
295+
rt_file = f"{tmp_dir}test-{fname}.untdf"
296+
try:
297+
tdfs.decrypt(decrypt_sdk, b_file, rt_file, "ztdf")
298+
assert False, "decrypt succeeded unexpectedly"
299+
except subprocess.CalledProcessError as exc:
300+
assert b"segment" in exc.output
301+
assert b"tamper" in exc.output or b"IntegrityError" in exc.output
311302

312303

313304
def test_tdf_with_altered_enc_seg_size(
@@ -428,12 +419,13 @@ def test_tdf_with_altered_assertion_statement(
428419
assert b"tamper" in exc.output or b"IntegrityError" in exc.output
429420

430421

431-
def test_tdf_with_altered_assertion_sig(
422+
def test_tdf_with_altered_assertion_with_keys(
432423
encrypt_sdk: tdfs.sdk_type,
433424
decrypt_sdk: tdfs.sdk_type,
434425
pt_file: str,
435426
tmp_dir: str,
436-
assertion_file_no_keys: str,
427+
assertion_file_rs_and_hs_keys: str,
428+
assertion_verification_file_rs_and_hs_keys: str,
437429
):
438430
skip_hexless_skew(encrypt_sdk, decrypt_sdk)
439431
if not tdfs.supports(encrypt_sdk, "assertions"):
@@ -445,17 +437,23 @@ def test_tdf_with_altered_assertion_sig(
445437
encrypt_sdk,
446438
"ztdf",
447439
tmp_dir,
448-
scenario="assertions",
449-
az=assertion_file_no_keys,
440+
scenario="assertions-keys-roundtrip",
441+
az=assertion_file_rs_and_hs_keys,
450442
)
451443
assert os.path.isfile(ct_file)
452444
b_file = tdfs.update_manifest(
453-
"altered_assertion_binding", ct_file, change_assertion_binding
445+
"altered_assertion_statement", ct_file, change_assertion_statement
454446
)
455447
fname = os.path.basename(b_file).split(".")[0]
456448
rt_file = f"{tmp_dir}test-{fname}.untdf"
457449
try:
458-
tdfs.decrypt(decrypt_sdk, b_file, rt_file, "ztdf")
450+
tdfs.decrypt(
451+
decrypt_sdk,
452+
b_file,
453+
rt_file,
454+
"ztdf",
455+
assertion_verification_file_rs_and_hs_keys,
456+
)
459457
assert False, "decrypt succeeded unexpectedly"
460458
except subprocess.CalledProcessError as exc:
461459
assert b"assertion" in exc.output

0 commit comments

Comments
 (0)