Skip to content

Commit 6fbdd99

Browse files
committed
f cleanup, use pytest.unittest
See PR #108 from @a-detiste (thanks!)
1 parent b6f7fab commit 6fbdd99

File tree

3 files changed

+150
-122
lines changed

3 files changed

+150
-122
lines changed

python/py_vapid/__init__.py

+16-8
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
import time
99
import re
1010
import copy
11-
import typing
11+
12+
from typing import cast
1213

1314
from argparse import Namespace
1415
from cryptography.hazmat.backends import default_backend
@@ -55,11 +56,11 @@ def __init__(
5556
5657
"""
5758
if conf is None:
58-
conf = Namespace()
59+
conf = Namespace(no_strict=False)
5960
self.conf = conf
6061
self.private_key = private_key
61-
if private_key:
62-
self._public_key = self.private_key.public_key()
62+
if self._private_key:
63+
self._public_key = self._private_key.public_key()
6364

6465
@classmethod
6566
def from_raw(cls, private_raw, conf: None | Namespace = None):
@@ -109,10 +110,15 @@ def from_der(cls, private_key, conf: None | Namespace = None):
109110
key = serialization.load_der_private_key(
110111
b64urldecode(private_key), password=None, backend=default_backend()
111112
)
112-
return cls(key, conf=conf)
113+
if key is None:
114+
raise VapidException("Could not load private key")
115+
else:
116+
return cls(cast(ec.EllipticCurvePrivateKey, key), conf=conf)
113117

114118
@classmethod
115-
def from_file(cls, private_key_file=None, conf: None | Namespace = None):
119+
def from_file(
120+
cls, private_key_file: str = "private_key.pem", conf: None | Namespace = None
121+
):
116122
"""Initialize VAPID using a file containing a private key in PEM or
117123
DER format.
118124
@@ -190,7 +196,7 @@ def private_key(self, value):
190196
self._public_key = self.private_key.public_key()
191197

192198
@property
193-
def public_key(self):
199+
def public_key(self) -> ec.EllipticCurvePublicKey:
194200
"""The VAPID public ECDSA key
195201
196202
The public key is currently read only. Set it via the `.private_key`
@@ -200,11 +206,13 @@ def public_key(self):
200206
:returns ec.EllipticCurvePublicKey
201207
202208
"""
209+
if not self._public_key:
210+
raise VapidException("Public key is undefined.")
203211
return self._public_key
204212

205213
def generate_keys(self):
206214
"""Generate a valid ECDSA Key Pair."""
207-
self.private_key = ec.generate_private_key(ec.SECP256R1, default_backend())
215+
self.private_key = ec.generate_private_key(ec.SECP256R1(), default_backend())
208216

209217
def private_pem(self):
210218
return self.private_key.private_bytes(

0 commit comments

Comments
 (0)