Verify and decode an encoded string. Return an object or None.
(data, key, digestmod=None)
| 3466 | |
| 3467 | |
| 3468 | def cookie_decode(data, key, digestmod=None): |
| 3469 | """ Verify and decode an encoded string. Return an object or None.""" |
| 3470 | depr(0, 13, "cookie_decode() will be removed soon.", |
| 3471 | "Do not use this API directly.") |
| 3472 | data = tob(data) |
| 3473 | if cookie_is_encoded(data): |
| 3474 | sig, msg = data.split(tob('?'), 1) |
| 3475 | digestmod = digestmod or hashlib.sha256 |
| 3476 | hashed = hmac.new(tob(key), msg, digestmod=digestmod).digest() |
| 3477 | if _lscmp(sig[1:], base64.b64encode(hashed)): |
| 3478 | return pickle.loads(base64.b64decode(msg)) |
| 3479 | return None |
| 3480 | |
| 3481 | |
| 3482 | def cookie_is_encoded(data): |
nothing calls this directly
no test coverage detected
searching dependent graphs…