Skip to content

Conversation

@progval
Copy link

@progval progval commented Jul 23, 2021

Implements GH-1 (using submodules instead of installing a package, but it's a detail)

There are still some missing parts, but I can't figure out how to use some of the test vectors.

Namely:

  • clientVerifyChallenge, serverVerifyAuth, clientVerifyAccept: raise exceptions (possibly related to the hardcoded zeroed nonces?)
  • serverCreateAccept: result is an opaque string and doesn't match (need to seed the RNG?)
  • clientVerifyChallenge: sometimes raises AttributeError: 'SHSClientCrypto' object has no attribute 'remote_ephemeral_key'; I'm probably not restoring the state properly, but can't find how
  • clean: the resulting state is randomized, so there is no way to test it

There are also a bunch of FIXME comments.

Exhaustive test results
=================================================================================================== short test summary info ====================================================================================================
FAILED secret_handshake/test_packets.py::test_all[clientVerifyChallenge0] - secret_handshake.crypto.SHSError: Error decrypting server acceptance message
FAILED secret_handshake/test_packets.py::test_all[serverVerifyAuth0] - nacl.exceptions.CryptoError: An error occurred trying to decrypt the message
FAILED secret_handshake/test_packets.py::test_all[serverCreateAccept0] - AssertionError: assert '2a0d09a2f11d41512f360b55f3a73e7263d33bd5e500e919916c3496ac8dd0b58c9faadd159fb503e86da1adea580484583c03c971b15469876059c820fb...
FAILED secret_handshake/test_packets.py::test_all[clean0] - AssertionError: assert {'app_key': '291356d28154da68e8a9ee4fed71497c0a67d121a41b544d7a6157e76e0df5bc',\n 'local': {'app_mac': 'cbb21c28c30588794b69a1257b450d15ac...
FAILED secret_handshake/test_packets.py::test_all[clientVerifyAccept0] - secret_handshake.crypto.SHSError: Error decrypting server acceptance message
FAILED secret_handshake/test_packets.py::test_all[clean1] - AssertionError: assert {'app_key': '291356d28154da68e8a9ee4fed71497c0a67d121a41b544d7a6157e76e0df5bc',\n 'local': {'app_mac': '35557d683c8768df41bd740588ae98a6af...
FAILED secret_handshake/test_packets.py::test_all[clientVerifyChallenge1] - AttributeError: 'SHSClientCrypto' object has no attribute 'remote_ephemeral_key'
FAILED secret_handshake/test_packets.py::test_all[clientVerifyChallenge2] - AttributeError: 'SHSClientCrypto' object has no attribute 'remote_ephemeral_key'
FAILED secret_handshake/test_packets.py::test_all[clientVerifyChallenge3] - secret_handshake.crypto.SHSError: Error decrypting server acceptance message
FAILED secret_handshake/test_packets.py::test_all[serverVerifyAuth1] - nacl.exceptions.CryptoError: An error occurred trying to decrypt the message
FAILED secret_handshake/test_packets.py::test_all[clientVerifyChallenge4] - secret_handshake.crypto.SHSError: Error decrypting server acceptance message
FAILED secret_handshake/test_packets.py::test_all[serverVerifyAuth2] - KeyError: 'hello'
FAILED secret_handshake/test_packets.py::test_all[clientVerifyChallenge5] - secret_handshake.crypto.SHSError: Error decrypting server acceptance message
FAILED secret_handshake/test_packets.py::test_all[serverVerifyAuth3] - nacl.exceptions.CryptoError: An error occurred trying to decrypt the message
FAILED secret_handshake/test_packets.py::test_all[clientVerifyChallenge6] - secret_handshake.crypto.SHSError: Error decrypting server acceptance message
FAILED secret_handshake/test_packets.py::test_all[serverVerifyAuth4] - nacl.exceptions.CryptoError: An error occurred trying to decrypt the message
FAILED secret_handshake/test_packets.py::test_all[serverCreateAccept1] - AssertionError: assert 'bd6c4ccce9ac9b97365c4252df859458863b9b614010f3a2faa3384ad1117a44e83f9b4145167608fae4873c27c2fd7021a44c69b9234d33c52c15210db8...
FAILED secret_handshake/test_packets.py::test_all[clean2] - AssertionError: assert {'app_key': '291356d28154da68e8a9ee4fed71497c0a67d121a41b544d7a6157e76e0df5bc',\n 'local': {'app_mac': 'fe073362eeb287f42c6ab1e52f3b4e9d83...
FAILED secret_handshake/test_packets.py::test_all[clientVerifyAccept1] - secret_handshake.crypto.SHSError: Error decrypting server acceptance message
FAILED secret_handshake/test_packets.py::test_all[clean3] - AssertionError: assert {'app_key': '291356d28154da68e8a9ee4fed71497c0a67d121a41b544d7a6157e76e0df5bc',\n 'local': {'app_mac': '9379c0b59dde0475be8f266763cdfb847c...
FAILED secret_handshake/test_packets.py::test_all[clientVerifyChallenge7] - secret_handshake.crypto.SHSError: Error decrypting server acceptance message
FAILED secret_handshake/test_packets.py::test_all[serverVerifyAuth5] - nacl.exceptions.CryptoError: An error occurred trying to decrypt the message
FAILED secret_handshake/test_packets.py::test_all[serverCreateAccept2] - AssertionError: assert '7dbb52f89b089c838b65954275d681de696d0dd1c60afe5e1281aa54d8f4cbeaf19072b70afb8e7c8dc3413106b221f6373a7c6615cf2b5346496bb9597c...
FAILED secret_handshake/test_packets.py::test_all[clean4] - AssertionError: assert {'app_key': '291356d28154da68e8a9ee4fed71497c0a67d121a41b544d7a6157e76e0df5bc',\n 'local': {'app_mac': '8599b4218c3d036adeb92cc033e7bb1150...
FAILED secret_handshake/test_packets.py::test_all[clientVerifyAccept2] - secret_handshake.crypto.SHSError: Error decrypting server acceptance message
FAILED secret_handshake/test_packets.py::test_all[clean5] - AssertionError: assert {'app_key': '291356d28154da68e8a9ee4fed71497c0a67d121a41b544d7a6157e76e0df5bc',\n 'local': {'app_mac': '95531d23df8b214cd021253f28a690a7f0...
FAILED secret_handshake/test_packets.py::test_all[clientVerifyChallenge8] - secret_handshake.crypto.SHSError: Error decrypting server acceptance message
FAILED secret_handshake/test_packets.py::test_all[serverVerifyAuth6] - nacl.exceptions.CryptoError: An error occurred trying to decrypt the message
FAILED secret_handshake/test_packets.py::test_all[clientVerifyChallenge9] - secret_handshake.crypto.SHSError: Error decrypting server acceptance message
FAILED secret_handshake/test_packets.py::test_all[serverVerifyAuth7] - nacl.exceptions.CryptoError: An error occurred trying to decrypt the message
FAILED secret_handshake/test_packets.py::test_all[serverCreateAccept3] - AssertionError: assert '9a56f176f3619ab9dee2f7bdf03234567907fb509c6425919ac01be3a0fd811343723c3e3579630b3f44920625931b092eeac8d1013b0bc0707bdb712cd5...
FAILED secret_handshake/test_packets.py::test_all[clean6] - AssertionError: assert {'app_key': 'b68a48ae57a2da3442e004bdd4209e562246d619b939f2078c733a275110806e',\n 'local': {'app_mac': '8e8087bea8e13c9eab452b3352d6b589b2...
FAILED secret_handshake/test_packets.py::test_all[clientVerifyAccept3] - secret_handshake.crypto.SHSError: Error decrypting server acceptance message
FAILED secret_handshake/test_packets.py::test_all[clean7] - AssertionError: assert {'app_key': 'b68a48ae57a2da3442e004bdd4209e562246d619b939f2078c733a275110806e',\n 'local': {'app_mac': '2e6bb016b1e64096c12ff813db57fe2a87...
FAILED secret_handshake/test_packets.py::test_all[clientVerifyChallenge10] - secret_handshake.crypto.SHSError: Error decrypting server acceptance message
FAILED secret_handshake/test_packets.py::test_all[serverVerifyAuth8] - nacl.exceptions.CryptoError: An error occurred trying to decrypt the message
FAILED secret_handshake/test_packets.py::test_all[serverCreateAccept4] - AssertionError: assert '2cf4cf8805504a3b6ff872e55a8c9d1f25748b247e3b43b71a38dd96464d0fddb13edff4f9e49a33bb36f772a643b34db68fae3dfccad8bdc23e83308981...
FAILED secret_handshake/test_packets.py::test_all[clean8] - AssertionError: assert {'app_key': 'b68a48ae57a2da3442e004bdd4209e562246d619b939f2078c733a275110806e',\n 'local': {'app_mac': '711c100e21e02e82bbc45a0530cc075d3f...
FAILED secret_handshake/test_packets.py::test_all[clientVerifyAccept4] - secret_handshake.crypto.SHSError: Error decrypting server acceptance message
FAILED secret_handshake/test_packets.py::test_all[clean9] - AssertionError: assert {'app_key': 'b68a48ae57a2da3442e004bdd4209e562246d619b939f2078c733a275110806e',\n 'local': {'app_mac': '8213f07a3a5a5427f45beb488c6085e530...
FAILED secret_handshake/test_packets.py::test_all[clientVerifyChallenge11] - secret_handshake.crypto.SHSError: Error decrypting server acceptance message
FAILED secret_handshake/test_packets.py::test_all[serverVerifyAuth9] - nacl.exceptions.CryptoError: An error occurred trying to decrypt the message
FAILED secret_handshake/test_packets.py::test_all[clientVerifyChallenge12] - secret_handshake.crypto.SHSError: Error decrypting server acceptance message
FAILED secret_handshake/test_packets.py::test_all[serverVerifyAuth10] - nacl.exceptions.CryptoError: An error occurred trying to decrypt the message
FAILED secret_handshake/test_packets.py::test_all[clientVerifyChallenge13] - secret_handshake.crypto.SHSError: Error decrypting server acceptance message
FAILED secret_handshake/test_packets.py::test_all[serverVerifyAuth11] - nacl.exceptions.CryptoError: An error occurred trying to decrypt the message
FAILED secret_handshake/test_packets.py::test_all[serverCreateAccept5] - AssertionError: assert '6cb2989f97201ccd810d738ef2b76f161a1d5c7253fb84ebc69f04cee5ccaad7be1723c923f747d97630e6adfec68eee33096b3f50bb7bdec6994e0d3192...
FAILED secret_handshake/test_packets.py::test_all[clean10] - AssertionError: assert {'app_key': 'b68a48ae57a2da3442e004bdd4209e562246d619b939f2078c733a275110806e',\n 'local': {'app_mac': '296212cfdd5b384f3cb7151986fe51086...
FAILED secret_handshake/test_packets.py::test_all[clientVerifyAccept5] - secret_handshake.crypto.SHSError: Error decrypting server acceptance message
FAILED secret_handshake/test_packets.py::test_all[clean11] - AssertionError: assert {'app_key': 'b68a48ae57a2da3442e004bdd4209e562246d619b939f2078c733a275110806e',\n 'local': {'app_mac': 'b4db803c02f166ac13cf84f93694125f9...
================================================================================================ 50 failed, 109 passed in 2.18s ================================================================================================

@progval progval marked this pull request as draft July 23, 2021 20:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant