INNER CODE UNIT · Python
gen_kem_table
open-quantum-safe/oqs-provider · oqs-template/generate_oid_nid_table.py:72
def gen_kem_table(oqslibdocdir):
liboqs_kem_docs_dir = os.path.join(oqslibdocdir, 'algorithms', 'kem')
liboqs_kems = {}
for root, _, files in os.walk(liboqs_kem_docs_dir):
for fil in files:
if fil.endswith(".yml"):
with open(os.path.join(root, fil), mode='r', encoding='utf-8') as f:
algyml = yaml.safe_load(f.read())
liboqs_kems[algyml['name']]=algyml
if 'SIKE' in liboqs_kems:
liboqs_kems['SIDH']=liboqs_kems['SIKE']
# TODO: Workaround for wrong upstream name for Kyber:
liboqs_kems['CRYSTALS-Kyber']=liboqs_kems['Kyber']
table_header = ['Family', 'Implementation Version', 'Variant', 'NIST round', 'Claimed NIST Level',
'Code Point', 'Hybrid Elliptic Curve (if any)']
table = []
hybrid_elliptic_curve = ''