Files
labs-information-security/lab2-the-RSA-algorithm/app/app.py
T

81 lines
2.1 KiB
Python
Raw Normal View History

2026-07-12 14:06:45 +04:00
import json
import sys
from cli.parse_args import parse_args
def main() -> int:
args = parse_args()
try:
if args.cmd == "keygen":
# Класс для режима генерации ключей
from modes.keygen import KeygenMode
runner = KeygenMode()
result = runner.run(
p=args.p,
q=args.q,
min=args.min,
max=args.max,
bits=args.bits,
seed=args.seed,
)
elif args.cmd == "encrypt":
# Класс для режима шифрования
from modes.encrypt import EncryptMode
runner = EncryptMode()
result = runner.run(
text=args.text,
m=args.m,
n=args.n,
e=args.e,
)
elif args.cmd == "decrypt":
# Класс для режима расшифрования
from modes.decrypt import DecryptMode
runner = DecryptMode()
result = runner.run(
c=args.c,
n=args.n,
d=args.d,
)
elif args.cmd == "auto":
from modes.auto import AutoMode
runner = AutoMode()
result = runner.run(
text=args.text,
m=args.m,
p=args.p,
q=args.q,
min=args.min,
max=args.max,
bits=args.bits,
seed=args.seed,
)
else:
raise RuntimeError(f"Неизвестная команда: {args.cmd}")
# Печать результата, если он что-то возвращает
if result is not None:
if isinstance(result, (dict, list)):
print(json.dumps(result, ensure_ascii=False, indent=2))
else:
print(result)
return 0
except Exception as exc:
print(f"Ошибка: {exc}", file=sys.stderr)
return 1
if __name__ == "__main__":
main()