ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙpython-pam ========== Python pam module supporting py3 (and py2) Commandline example: ``` [david@Scott python-pam]$ python pam.py Username: david Password: 0 Success [david@Scott python-pam]$ python2 pam.py Username: david Password: 0 Success ``` Inline examples: ``` [david@Scott python-pam]$ python Python 3.4.1 (default, May 19 2014, 17:23:49) [GCC 4.9.0 20140507 (prerelease)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import pam >>> p = pam.pam() >>> p.authenticate('david', 'correctpassword') True >>> p.authenticate('david', 'badpassword') False >>> p.authenticate('david', 'correctpassword', service='login') True >>> p.authenticate('david', 'correctpassword', service='unknownservice') False >>> p.authenticate('david', 'correctpassword', service='login', resetcreds=True) True >>> p.authenticate('david', 'correctpassword', encoding='latin-1') True >>> print('{} {}'.format(p.code, p.reason)) 0 Success >>> p.authenticate('david', 'badpassword') False >>> print('{} {}'.format(p.code, p.reason)) 7 Authentication failure >>> ```