key = b'\xfe?\xb5\x06\x99tI\xdb\xe7\x8da\xb4g\x86\xb02', nonce = b'\x13\x90\xf2B\xae \x8a!\xe0F7\xe9', counter = 0
content = b'\xba\xab\'\xd1t}+\xff\xe1\xb7\x1f\xaa6\xd0k\x84\x03\xf0c#r\xae\xe8wF\xb9b\x0b&w4`\xfd~\xd1\xa2\xb0\xaf\xfa=\xfe\x83\...F\xe9,\x7fI\xc9r\x06\x8bp\x9f\x19$\x85\xff\x01\xac\x1e\xc6\xa6\x03\x14\x15\xbf\xc1\xf1\x8a\xd8vA\xbe\xf3{\xbd\xf0\x00>'
def decrypt_record(key, nonce, counter, content):
decryptor = Cipher(
algorithms.AES(key),
modes.GCM(iv(nonce, counter), tag=content[-TAG_LENGTH:]),
backend=default_backend(),
).decryptor()
> return decryptor.update(content[:-TAG_LENGTH]) + decryptor.finalize()
^^^^^^^^^^^^^^^^^^^^
E cryptography.exceptions.InvalidTag
venv/lib/python3.14/site-packages/http_ece/__init__.py:231: InvalidTag
During handling of the above exception, another exception occurred:
...
content = b'\xba\xab\'\xd1t}+\xff\xe1\xb7\x1f\xaa6\xd0k\x84\x03\xf0c#r\xae\xe8wF\xb9b\x0b&w4`\xfd~\xd1\xa2\xb0\xaf\xfa=\xfe\x83\...F\xe9,\x7fI\xc9r\x06\x8bp\x9f\x19$\x85\xff\x01\xac\x1e\xc6\xa6\x03\x14\x15\xbf\xc1\xf1\x8a\xd8vA\xbe\xf3{\xbd\xf0\x00>'
salt = b')\x95\xc7\x8a\xbe\xf1W\x15\x102L!\x7f\xe2\x17\x9f', key = None
private_key = <cryptography.hazmat.bindings._rust.openssl.ec.ECPrivateKey object at 0x7a24e95cebb0>
dh = b'\x04"x\x07\xb8\xd18\x10h\xeeNnD G\xea\xee/\xa0\xef\x8fNf\xe5X\xbd\xd5\x99%\xb2\x02\xef\x0c\xc3\\@A\xd2c\xe3\x1fG&_\xd4\xfc\x1bf\xa7\x84\x1a\xc9\xd9X\xb7\xd3\xfa)I\x18\x84\xb1\x98`\x91'
auth_secret = None
keyid = b"\xc6\xa1\x90m\r\xabP\xbe\x99&\xdb\xb1>\xfa>\xdb\xf4\x94\xa3\x03~\xbc\x91k5f\xcb0\x13\x83\x93\xb2\xfc\xad\x15\xe4\x05...f\xad+ c\xab\xf5'F\xe1\xe2G\x8a\x85\x07\xf5\xb7]\xde\xd82\x03\xa6\x0cIR4L@\xc4\xdb%\x9e1\x1frc\x0eskL\xf5\x8e'\xc4\xca"
keylabel = 'P-256', rs = 4155227212, version = 'aes128gcm'
...
try:
for i in list(range(0, len(content), chunk)):
data = decrypt_record(key_, nonce_, counter, content[i : i + chunk])
if version == "aes128gcm":
last = (i + chunk) >= len(content)
result += unpad(data, last)
else:
result += unpad_legacy(data)
counter += 1
except InvalidTag as ex:
> raise ECEException(f"Decryption error: {ex!r}")
E http_ece.ECEException: Decryption error: InvalidTag()
venv/lib/python3.14/site-packages/http_ece/__init__.py:307: ECEException
> assert b64d(data[outp]) == result
E AssertionError: assert b')\x95\xc7\x...\xbd\xf0\x00>' == b'\x16Y\xbe<\...1\xe6\xf2\x9b'
E
E At index 0 diff: b')' != b'\x16'
E
E Full diff:
E + (b')\x95\xc7\x8a\xbe\xf1W\x15\x102L!\x7f\xe2\x17\x9f\xf7\xab\xbcL'
E + b'\xa3\xc6\xa1\x90m\r\xabP\xbe\x99&\xdb\xb1>\xfa>\xdb\xf4\x94\xa3\x03~\xbc\x91'
E + b'k5f\xcb0\x13\x83\x93\xb2\xfc\xad\x15\xe4\x05\xb6\xc1S\xe1\x94W]u\xec\x1c'...
E
E ...Full output truncated (87 lines hidden), use '-vv' to show
http_ece/tests/test_ece.py:475: AssertionError
While updating things for #89 I tried running all of the tests by copying the
encrypted_data.jsonfile to thepython/http_ecedirectory. The tests are failing with:TestNode.test_decrypt
and
TestNode.test_encrypt
(Perhaps and endian error?)