pyUmbral/umbral/config.py

41 lines
1.0 KiB
Python
Raw Normal View History

2018-02-08 00:18:50 +00:00
from cryptography.hazmat.primitives.asymmetric import ec
class _CONFIG:
2018-02-08 00:18:50 +00:00
__curve = None
__params = None
@classmethod
def params(cls):
if not cls.__params:
raise RuntimeError("No default curve has been set; you need one for default params.")
else:
return cls.__params
2018-02-08 00:18:50 +00:00
@classmethod
def curve(cls):
if not cls.__curve:
raise RuntimeError("No default curve has been set.")
else:
return cls.__curve
@classmethod
def set_curve(cls, curve: ec.EllipticCurve=None):
if cls.__curve:
raise RuntimeError("You can only set the default curve once. Do it once and then leave it alone.")
else:
from umbral.params import UmbralParameters
2018-02-08 00:18:50 +00:00
cls.__curve = curve
cls.__params = UmbralParameters(curve)
2018-02-08 00:18:50 +00:00
def set_default_curve(curve: ec.EllipticCurve=None):
_CONFIG.set_curve(curve)
2018-02-08 00:18:50 +00:00
def default_curve():
return _CONFIG.curve()
def default_params():
return _CONFIG.params()