Example #1
0
def test_decode_only_ability():
    bits = 2048
    key, public = rsa.generate_rsa(bits)

    jwt = JWT(key)
    token = jwt.encode(foo="bar")

    with pytest.raises(RuntimeError):
        jwt.decode(token)
Example #2
0
def test_encode_only_ability():
    bits = 2048
    key, public = rsa.generate_rsa(bits)

    token = JWT(key).encode(foo="bar")

    jwt = JWT(None, public)
    assert "foo" in jwt.decode(token)

    with pytest.raises(RuntimeError):
        jwt.encode(foo=None)
Example #3
0
def test_jwt_token(expired, nbf):
    bits = 2048
    key, public = rsa.generate_rsa(bits)

    jwt = JWT(key, public)

    token = jwt.encode(foo="bar", expired=expired, nbf=nbf)

    assert token
    assert "foo" in jwt.decode(token)

    header, data, signature = token.split(".")

    signature = signature[::-1]

    with pytest.raises(InvalidSignatureError):
        jwt.decode(".".join((header, data, signature)))

    header = base64.b64encode(b'{"alg":"none"}').decode()

    with pytest.raises(InvalidAlgorithmError):
        jwt.decode(".".join((header, data, "")))