File tree 2 files changed +7
-5
lines changed
2 files changed +7
-5
lines changed Original file line number Diff line number Diff line change @@ -38,7 +38,7 @@ def code_verifier(n_bytes=64):
38
38
Returns:
39
39
Bytestring, representing urlsafe base64-encoded random data.
40
40
"""
41
- verifier = base64 .urlsafe_b64encode (os .urandom (n_bytes ))
41
+ verifier = base64 .urlsafe_b64encode (os .urandom (n_bytes )). rstrip ( b'=' )
42
42
# https://tools.ietf.org/html/rfc7636#section-4.1
43
43
# minimum length of 43 characters and a maximum length of 128 characters.
44
44
if len (verifier ) < 43 :
@@ -60,6 +60,8 @@ def code_challenge(verifier):
60
60
code_verifier().
61
61
62
62
Returns:
63
- Bytestring, representing a urlsafe base64-encoded sha256 hash digest.
63
+ Bytestring, representing a urlsafe base64-encoded sha256 hash digest,
64
+ without '=' padding.
64
65
"""
65
- return base64 .urlsafe_b64encode (hashlib .sha256 (verifier ).digest ())
66
+ digest = hashlib .sha256 (verifier ).digest ()
67
+ return base64 .urlsafe_b64encode (digest ).rstrip (b'=' )
Original file line number Diff line number Diff line change @@ -33,7 +33,7 @@ def test_verifier(self, fake_urandom):
33
33
fake_urandom .return_value = canned_randomness
34
34
expected = (
35
35
b'mBBEN_O3qvzd003ioywGoLCptI_L0PWGTjJwjF0hV5rt'
36
- b'NTSZnY12XKcvgfNKmMOQ7rCMt1pjIwVNME8I2gkfBw== '
36
+ b'NTSZnY12XKcvgfNKmMOQ7rCMt1pjIwVNME8I2gkfBw'
37
37
)
38
38
result = _pkce .code_verifier ()
39
39
self .assertEqual (result , expected )
@@ -50,5 +50,5 @@ def test_verifier_too_short(self):
50
50
51
51
def test_challenge (self ):
52
52
result = _pkce .code_challenge (b'SOME_VERIFIER' )
53
- expected = b'6xJCQsjTtS3zjUwd8_ZqH0SyviGHnp5PsHXWKOCqDuI= '
53
+ expected = b'6xJCQsjTtS3zjUwd8_ZqH0SyviGHnp5PsHXWKOCqDuI'
54
54
self .assertEqual (result , expected )
You can’t perform that action at this time.
0 commit comments