U ��$[� � @ s d Z dgZdZdZdZddlZddlmZmZm Z m Z mZmZm Z ddlmZmZmZmZmZ dd lmZ dd lmZ G dd� de �ZG d d� de �ZG dd� de �Ze eeeee��eee��e�ZG dd� de �ZdZdZdZdZdZeed��Z eed��Z!e j"Z"ee"_#eege"_$e%e!d��r:e!j&Z&ee&_#eege&_$e!j'Z'ee'_#eeee�ee�ge'_$e!j(Z(ee(_#eege(_$e!j)Z)ee)_#eege)_$e!j*Z*ee*_#eege*_$G dd� d�Z+dd� Z,e-dk�rddl.Z.ddl/Z/dd� Z0e+� Z+e0d e/�1� �Z2e+�,e2e/�/� � e3d!�4e+j5e+j6�� dS )"z� PAM module for python Provides an authenticate function that will allow the caller to authenticate a user against the Pluggable Authentication Modules (PAM) on the system. Implemented using ctypes, so no compilation is necessary. �pamz1.8.4z David Ford <david@blue-labs.org>z2018 June 15� N)�CDLL�POINTER� Structure� CFUNCTYPE�cast�byref�sizeof)�c_void_p�c_size_t�c_char_p�c_char�c_int)�memmove)�find_libraryc @ s"