Skip to content
Snippets Groups Projects
Select Git revision
  • develop default protected
  • 284-browse-redesign
  • 334-don-t-display-an-empty-page-browser
  • 316-ultrasonic
  • ButterflyOfFire/funkwhale-patch-1
  • master
  • 303-json-ld
  • 278-search-browse
  • 0.15
  • 0.14.2
  • 0.14.1
  • 0.14
  • 0.13
  • 0.12
  • 0.11
  • 0.10
  • 0.9.1
  • 0.9
  • 0.8
  • 0.7
  • 0.6.1
  • 0.6
  • 0.5.4
  • 0.5.3
  • 0.5.2
  • 0.5.1
  • 0.5
  • 0.4
28 results

test_signing.py

Blame
  • Forked from funkwhale / funkwhale
    Loading
    test_signing.py 1.15 KiB
    import cryptography.exceptions
    import io
    import pytest
    import requests_http_signature
    
    from funkwhale_api.federation import signing
    
    
    def test_can_sign_and_verify_request(factories):
        private, public = factories['federation.KeyPair']()
        auth = factories['federation.SignatureAuth'](key=private)
        request = factories['federation.SignedRequest'](
            auth=auth
        )
        prepared_request = request.prepare()
        assert 'date' in prepared_request.headers
        assert 'authorization' in prepared_request.headers
        assert prepared_request.headers['authorization'].startswith('Signature')
        assert requests_http_signature.HTTPSignatureAuth.verify(
            prepared_request,
            key_resolver=lambda **kwargs: public
        ) is None
    
    
    def test_verify_fails_with_wrong_key(factories):
        wrong_private, wrong_public = factories['federation.KeyPair']()
        request = factories['federation.SignedRequest']()
        prepared_request = request.prepare()
    
        with pytest.raises(cryptography.exceptions.InvalidSignature):
            requests_http_signature.HTTPSignatureAuth.verify(
                prepared_request,
                key_resolver=lambda **kwargs: wrong_public
            )