primes.py 772 B

12345678910111213141516171819202122232425262728293031
  1. # Copyright (c) Twisted Matrix Laboratories.
  2. # See LICENSE for details.
  3. #
  4. """
  5. Parsing for the moduli file, which contains Diffie-Hellman prime groups.
  6. Maintainer: Paul Swartz
  7. """
  8. from typing import Dict, List, Tuple
  9. def parseModuliFile(filename: str) -> Dict[int, List[Tuple[int, int]]]:
  10. with open(filename) as f:
  11. lines = f.readlines()
  12. primes: Dict[int, List[Tuple[int, int]]] = {}
  13. for l in lines:
  14. l = l.strip()
  15. if not l or l[0] == "#":
  16. continue
  17. tim, typ, tst, tri, sizestr, genstr, modstr = l.split()
  18. size = int(sizestr) + 1
  19. gen = int(genstr)
  20. mod = int(modstr, 16)
  21. if size not in primes:
  22. primes[size] = []
  23. primes[size].append((gen, mod))
  24. return primes