def test_verify_excluded_modified_fails(key, obj): modified = copy(obj) modified['mySignedData'] = 'foo bar' jsf = JSF(modified) with pytest.raises(InvalidJWSSignature): jsf.verify('signature', key=key)
def test_verify_chain(): jsf = JSF(p256_es256_r2048_rs256_chai_jwk) jsf.verify('signature')
def test_verify_excluded_intact_succeeds(key, obj): jsf = JSF(obj) jsf.verify('signature', key=key)
def test_verify_excluded_modified_succeeds(key, obj): modified = copy(obj) modified['myUnsignedData'] = 'foo bar' jsf = JSF(modified) jsf.verify('signature', key=key)
def test_verify_named(): jsf = JSF(p256_es256_name) jsf.verify('authorizationSignature')
def test_verify_extensions(obj): jsf = JSF(obj) with pytest.raises(InvalidJWSSignature) as e: jsf.verify('signature') assert 'Unknown extension' in str(e.value)
def test_verify_jwk_fails(obj): modified = copy(obj) modified['name'] = 'Jane' jsf = JSF(modified) with pytest.raises(InvalidJWSSignature): jsf.verify('signature')
def test_verify_jwk_succeeds(obj): jsf = JSF(obj) jsf.verify('signature')
def test_verify_key_fails(key, obj): modified = copy(obj) modified['name'] = 'Jane' jsf = JSF(modified) with pytest.raises(InvalidJWSSignature): jsf.verify('signature', key=p256privatekey)
def test_verify_key_succeeds(key, obj): jsf = JSF(obj) jsf.verify('signature', key=key)
from jsf import JSF from fastapi import FastAPI app = FastAPI(docs_url="/") generator = JSF.from_json("custom.json") @app.get("/generate", response_model=generator.pydantic()) def read_root(): return generator.generate()