Skip to content

Commit 785f9b5

Browse files
authored
Merge pull request #103 from web-push-libs/crypto
Fixes for cryptography update
2 parents 2fd4828 + 368e592 commit 785f9b5

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

pywebpush/__init__.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import requests
1919
from cryptography.hazmat.backends import default_backend
2020
from cryptography.hazmat.primitives.asymmetric import ec
21+
from cryptography.hazmat.primitives import serialization
2122
from py_vapid import Vapid
2223

2324

@@ -186,7 +187,10 @@ def encode(self, data, content_encoding="aes128gcm"):
186187
# The server key is an ephemeral ECDH key used only for this
187188
# transaction
188189
server_key = ec.generate_private_key(ec.SECP256R1, default_backend())
189-
crypto_key = server_key.public_key().public_numbers().encode_point()
190+
crypto_key = server_key.public_key().public_bytes(
191+
encoding=serialization.Encoding.X962,
192+
format=serialization.PublicFormat.UncompressedPoint
193+
)
190194

191195
if isinstance(data, six.string_types):
192196
data = bytes(data.encode('utf8'))

pywebpush/tests/test_webpush.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from nose.tools import eq_, ok_, assert_is_not, assert_raises
88
import http_ece
99
from cryptography.hazmat.primitives.asymmetric import ec
10+
from cryptography.hazmat.primitives import serialization
1011
from cryptography.hazmat.backends import default_backend
1112
import py_vapid
1213

@@ -38,8 +39,10 @@ def _gen_subscription_info(self,
3839

3940
def _get_pubkey_str(self, priv_key):
4041
return base64.urlsafe_b64encode(
41-
priv_key.public_key().public_numbers().encode_point()
42-
).strip(b'=')
42+
priv_key.public_key().public_bytes(
43+
encoding=serialization.Encoding.X962,
44+
format=serialization.PublicFormat.UncompressedPoint
45+
)).strip(b'=')
4346

4447
def test_init(self):
4548
# use static values so we know what to look for in the reply
@@ -106,7 +109,6 @@ def test_encode(self):
106109
push._repad(encoded['crypto_key']))
107110
raw_auth = base64.urlsafe_b64decode(
108111
push._repad(subscription_info['keys']['auth']))
109-
110112
decoded = http_ece.decrypt(
111113
encoded['body'],
112114
salt=raw_salt,

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from setuptools import find_packages, setup
55

66

7-
__version__ = "1.8.0"
7+
__version__ = "1.9.0"
88

99

1010
def read_from(file):

0 commit comments

Comments
 (0)