def test_rsa_keygen(capsys): with mock.patch("sys.argv", ["jwt-rsa-keygen"]): keygen() stdout, stderr = capsys.readouterr() data = json.loads(stdout) assert "public" in data assert "private" in data private = load_private_key(data["private"]) public = load_public_key(data["public"]) payload = os.urandom(1024 * 16) signature = private.sign( payload, padding.PSS( mgf=padding.MGF1(hashes.SHA256()), salt_length=padding.PSS.MAX_LENGTH, ), hashes.SHA256(), ) public.verify( signature, payload, padding.PSS( mgf=padding.MGF1(hashes.SHA256()), salt_length=padding.PSS.MAX_LENGTH, ), hashes.SHA256(), )
def test_pem_format(capsys): with mock.patch("sys.argv", ["jwt-rsa-keygen", "-P"]): keygen() stdout, stderr = capsys.readouterr() private_bytes, public_bytes = [ x.strip().encode() for x in stdout.split("\n\n", 1) ] public = serialization.load_pem_public_key(public_bytes, default_backend()) private = serialization.load_pem_private_key( private_bytes, None, default_backend(), ) payload = os.urandom(1024 * 16) signature = private.sign( payload, padding.PSS( mgf=padding.MGF1(hashes.SHA256()), salt_length=padding.PSS.MAX_LENGTH, ), hashes.SHA256(), ) public.verify( signature, payload, padding.PSS( mgf=padding.MGF1(hashes.SHA256()), salt_length=padding.PSS.MAX_LENGTH, ), hashes.SHA256(), )
def test_rsa_verify(capsys): with mock.patch("sys.argv", ["jwt-rsa-keygen"]): keygen() stdout, stderr = capsys.readouterr() with mock.patch("sys.stdin", StringIO(stdout)): verify()
def test_rsa_verify(capsys): with mock.patch('sys.argv', ['jwt-rsa-keygen']): keygen() stdout, stderr = capsys.readouterr() with mock.patch('sys.stdin', StringIO(stdout)): verify()