mirror of
https://github.com/henrydcase/pqc.git
synced 2024-11-22 23:48:58 +00:00
refactor testvector check
This commit is contained in:
parent
f7fb850ecf
commit
8c68841417
16
test/check_testvectors.py
Executable file → Normal file
16
test/check_testvectors.py
Executable file → Normal file
@ -18,9 +18,9 @@ SCHEMEFULL = SCHEME.replace('/', '_') # e.g. crypto_kem_kyber768
|
|||||||
SCHEMESHORT = SCHEME.split('/')[1].upper()
|
SCHEMESHORT = SCHEME.split('/')[1].upper()
|
||||||
|
|
||||||
def get_hash(scheme):
|
def get_hash(scheme):
|
||||||
with open(f"{scheme}/META.yml", 'r') as stream:
|
with open(f"{scheme}/META.yml", 'r') as stream:
|
||||||
meta = yaml.load(stream)
|
meta = yaml.load(stream)
|
||||||
return hex(meta['testvectors-sha3-256']).replace('0x', '')
|
return hex(meta['testvectors-sha3-256']).replace('0x', '')
|
||||||
|
|
||||||
|
|
||||||
expectedTestvectorsHash = get_hash(SCHEME)
|
expectedTestvectorsHash = get_hash(SCHEME)
|
||||||
@ -29,10 +29,10 @@ subprocess.run(["make", "testvectors", f"SCHEME={SCHEME}"])
|
|||||||
implementations = [x for x in os.listdir('bin') if 'testvectors' in x and SCHEMEFULL in x]
|
implementations = [x for x in os.listdir('bin') if 'testvectors' in x and SCHEMEFULL in x]
|
||||||
|
|
||||||
for impl in implementations:
|
for impl in implementations:
|
||||||
testvectors = subprocess.run([f"bin/{impl}"],stdout=subprocess.PIPE)
|
testvectors = subprocess.run([f"bin/{impl}"],stdout=subprocess.PIPE)
|
||||||
testvectorsHash = hashlib.sha3_256(testvectors.stdout).hexdigest()
|
testvectorsHash = hashlib.sha3_256(testvectors.stdout).hexdigest()
|
||||||
if testvectorsHash.lower() != expectedTestvectorsHash.lower():
|
if testvectorsHash.lower() != expectedTestvectorsHash.lower():
|
||||||
print(f"testvectors of {SCHEME} should be {expectedTestvectorsHash}, but is {testvectorsHash}")
|
print(f"testvectors of {SCHEME} should be {expectedTestvectorsHash}, but is {testvectorsHash}")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user