def rsa_pkcs1v15_decrypt(private_key, ciphertext):
if not isinstance(private_key, PrivateKey):<EOL><INDENT>raise TypeError(pretty_message(<EOL>'''<STR_LIT>''',<EOL>type_name(private_key)<EOL>))<EOL><DEDENT>if not isinstance(ciphertext, byte_cls):<EOL><INDENT>raise TypeError(pretty_message(<EOL>'''<STR_LIT>''',<EOL>type_name(ciphertext)<EOL>))<EOL><DEDENT>key_length = private_key.byte_size<EOL>buffer = buffer_from_bytes(key_length)<EOL>output_length = new(Security, '<STR_LIT>', key_length)<EOL>if osx_version_info < (<NUM_LIT:10>, <NUM_LIT:8>):<EOL><INDENT>padding = SecurityConst.kSecPaddingNone<EOL><DEDENT>else:<EOL><INDENT>padding = SecurityConst.kSecPaddingPKCS1<EOL><DEDENT>result = Security.SecKeyDecrypt(<EOL>private_key.sec_key_ref,<EOL>padding,<EOL>ciphertext,<EOL>len(ciphertext),<EOL>buffer,<EOL>output_length<EOL>)<EOL>handle_sec_error(result)<EOL>output = bytes_from_buffer(buffer, deref(output_length))<EOL>if osx_version_info < (<NUM_LIT:10>, <NUM_LIT:8>):<EOL><INDENT>output = remove_pkcs1v15_encryption_padding(key_length, output)<EOL><DEDENT>return output<EOL>
Decrypts a byte string using an RSA private key. Uses PKCS#1 v1.5 padding.

:param private_key:
    A PrivateKey object

:param ciphertext:
    A byte string of the encrypted data

:raises:
    ValueError - when any of the parameters contain an invalid value
    TypeError - when any of the parameters are of the wrong type
    OSError - when an error is returned by the OS crypto library

:return:
    A byte string of the original plaintext