示例#1
0
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(),
    )
示例#2
0
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(),
    )
示例#3
0
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()
示例#4
0
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()