mirror of
https://github.com/morgan9e/noiseprotocol
synced 2026-04-14 00:14:05 +09:00
noise/noise_protocol.py * Added validation of given function names vs available crypto methods * Members of NoiseProtocol should now refer to proper classes/methods after initialization of an instance noise/patterns.py * Added method for application of pattern modifiers noise/crypto.py * Provisioned ed448 function noise/state.py * Changed references to NoiseProtocol instances to make it more consistent throughout the code
37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
import logging
|
|
import json
|
|
import os
|
|
|
|
import pytest
|
|
|
|
from noise.state import HandshakeState
|
|
from noise.noise_protocol import NoiseProtocol
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
vector_files = ['vectors/cacophony.txt']
|
|
|
|
|
|
def prepare_test_vectors():
|
|
vectors = []
|
|
for path in vector_files:
|
|
with open(os.path.join(os.path.dirname(__file__), path)) as fd:
|
|
logging.info(f'Reading vectors from file {path}')
|
|
vectors.extend(json.load(fd))
|
|
return vectors
|
|
|
|
|
|
@pytest.fixture(params=prepare_test_vectors())
|
|
def vector(request):
|
|
yield request.param
|
|
|
|
|
|
def test_vector(vector):
|
|
logging.info(f"Testing vector {vector['protocol_name']}")
|
|
init_protocol = NoiseProtocol(vector['protocol_name'])
|
|
resp_protocol = NoiseProtocol(vector['protocol_name'])
|
|
initiator = HandshakeState.initialize(noise_protocol=init_protocol, handshake_pattern=init_protocol.pattern,
|
|
initiator=True, prologue=vector['init_prologue'])
|
|
responder = HandshakeState.initialize(noise_protocol=resp_protocol, handshake_pattern=resp_protocol.pattern,
|
|
initiator=True, prologue=vector['resp_prologue'])
|