| 12345678910111213141516171819202122232425262728293031323334353637 |
- #!/usr/bin/env python3
- """AES-256 + HMAC-SHA1 encrypt/decrypt round-trip using the actual Cipher API."""
- import sys, base64
- from core.tools.crypter import Cipher
- PASSPHRASE = "U-NATi0n!"
- KEY = base64.b64encode(PASSPHRASE.encode("utf-8"))
- SAMPLES = [
- "hello",
- "x",
- "Mensaje en espanol con accent",
- "Mensaje en español con ñ y emoji",
- "A" * 60,
- ]
- err = []
- for sample in SAMPLES:
- try:
- c = Cipher(KEY, sample)
- enc = c.encrypt()
- c2 = Cipher(KEY, enc.decode("utf-8"))
- dec = c2.decrypt()
- if dec is None:
- err.append(f"decrypt returned None for {sample!r}")
- continue
- dec_s = dec.decode("utf-8", errors="replace")
- if not sample.startswith(dec_s) and not dec_s.startswith(sample[:len(dec_s)]):
- err.append(f"roundtrip mismatch for {sample!r}: got {dec_s!r}")
- except Exception as e:
- err.append(f"exception for {sample!r}: {type(e).__name__}: {e}")
- print(f"round-trips ok: {len(SAMPLES) - len(err)} / {len(SAMPLES)}")
- for e in err:
- print("FAIL:", e)
- sys.exit(0 if not err else 1)
|