INNER CODE UNIT · Python
get_sig_nistlevel
open-quantum-safe/oqs-provider · oqs-template/generate.py:60
def get_sig_nistlevel(family, alg):
if 'LIBOQS_SRC_DIR' not in os.environ:
print("Must include LIBOQS_SRC_DIR in environment")
exit(1)
# translate family names in generate.yml to directory names for liboqs algorithm datasheets
if family['family'] == 'CRYSTALS-Dilithium': datasheetname = 'dilithium'
else: datasheetname = family['family'].lower().replace('-', '_')
# load datasheet
algymlfilename = os.path.join(os.environ['LIBOQS_SRC_DIR'], 'docs', 'algorithms', 'sig', '{:s}.yml'.format(datasheetname))
algyml = yaml.safe_load(file_get_contents(algymlfilename, encoding='utf-8'))
# hacks to match names
def matches(name, alg):
def simplify(s):
return s.lower().replace('_', '').replace('-', '').replace('+', '')
if 'SLH_DSA_PURE' in name: name = name.replace('_PURE', '')
if simplify(name) == simplify(alg['name']): return True
return False
# find the variant that matches