diff options
Diffstat (limited to 'debian/patches/py3_support')
| -rw-r--r-- | debian/patches/py3_support | 241 | 
1 files changed, 241 insertions, 0 deletions
| diff --git a/debian/patches/py3_support b/debian/patches/py3_support new file mode 100644 index 0000000..88baca9 --- /dev/null +++ b/debian/patches/py3_support @@ -0,0 +1,241 @@ +--- a/srp/_srp.c ++++ b/srp/_srp.c +@@ -895,7 +895,7 @@ static void ver_dealloc( PyVerifier * se +     if ( self->bytes_s != NULL ) +         free( (char *)self->bytes_s ); +          +-    self->ob_type->tp_free( (PyObject *) self ); ++    Py_TYPE(self)->tp_free( (PyObject *) self ); + } +  +  +@@ -903,7 +903,7 @@ static void usr_dealloc( PyUser * self ) + { +     if ( self->usr != NULL ) +         srp_user_delete( self->usr ); +-    self->ob_type->tp_free( (PyObject *) self ); ++    Py_TYPE(self)->tp_free( (PyObject *) self ); + } +  +  +--- a/srp/test_srp.py ++++ b/srp/test_srp.py +@@ -1,4 +1,5 @@ + #!/usr/bin/env python ++from __future__ import print_function +  + import unittest + import os.path +@@ -7,18 +8,19 @@ import sys + import time + import thread +  ++ + this_dir = os.path.dirname( os.path.abspath(__file__) ) +-     ++ + build_dir = os.path.join( os.path.dirname(this_dir), 'build' ) +  + if not os.path.exists( build_dir ): +-    print 'Please run "python setup.py build" prior to running tests' ++    print('Please run "python setup.py build" prior to running tests') +     sys.exit(1) +-     ++ + plat_dirs = [ d for d in os.listdir('build') if d.startswith('lib') ] +  + if not len(plat_dirs) == 1: +-    print 'Unexpected build result... aborting' ++    print('Unexpected build result... aborting') +  + plat_dir = os.path.join( build_dir, plat_dirs[0] ) +  +@@ -33,7 +35,7 @@ import srp._ctsrp as _ctsrp + try: +     import srp._srp as _srp + except ImportError: +-    print 'Failed to import srp._srp. Aborting tests' ++    print('Failed to import srp._srp. Aborting tests') +     sys.exit(1) +  +  +@@ -62,17 +64,17 @@ class SRPTests( unittest.TestCase ): +  +         usr      = User( username, password, hash_alg, ng_type, n_hex, g_hex ) +         uname, A = usr.start_authentication() +-     ++ +         # username, A => server +         svr      = Verifier( uname, _s, _v, A, hash_alg, ng_type, n_hex, g_hex ) +         s,B      = svr.get_challenge() +-         ++ +         # s,B => client +         M        = usr.process_challenge( s, B ) +-         ++ +         # M => server +         HAMK     = svr.verify_session( M ) +-     ++ +         # HAMK => client +         usr.verify_session( HAMK ) +  +@@ -143,24 +145,24 @@ password = 'testpassword' + NLEFT = 0 +  + def do_auth( mod, hash_alg, ng_type, _s, _v ): +-     ++ +     usr      = mod.User( username, password, hash_alg, ng_type) +     uname, A = usr.start_authentication() +-     ++ +     # username, A => server +     svr      = mod.Verifier( uname, _s, _v, A, hash_alg, ng_type) +     s,B      = svr.get_challenge() +-     ++ +     # s,B => client +     M        = usr.process_challenge( s, B ) +-     ++ +     # M => server +     HAMK     = svr.verify_session( M ) +-     ++ +     # HAMK => client +     usr.verify_session( HAMK ) +-     +-    if not svr.authenticated() or not usr.authenticated():  ++ ++    if not svr.authenticated() or not usr.authenticated(): +         raise Exception('Authentication failed!') +  +  +@@ -169,7 +171,7 @@ def performance_test( mod, hash_alg, ng_ +     _s, _v = srp.create_salted_verification_key( username, password, hash_alg, ng_type ) +  +     NLEFT = niter +-     ++ +     def test_thread(): +         global NLEFT +         while NLEFT > 0: +@@ -188,75 +190,78 @@ def performance_test( mod, hash_alg, ng_ +  +  + def get_param_str( mod, hash_alg, ng_type ): +-     ++ +     m = { 'srp._pysrp' : 'Python', +           'srp._ctsrp' : 'ctypes', +           'srp._srp'   : 'C     ' } +-     ++ +     cfg = '%s, %s, %d:' % (m[mod.__name__], hash_map[hash_alg], prime_map[ng_type]) +  +     return cfg +  +-     ++ + def param_test( mod, hash_alg, ng_type, niter=10 ): +     duration = performance_test( mod, hash_alg, ng_type, niter ) +     cfg = get_param_str( mod, hash_alg, ng_type ) +-    print '   ', cfg.ljust(20), '%.6f' % (duration/niter) ++    print('   ', cfg.ljust(20), '%.6f' % (duration/niter)) +     return duration/niter +-     ++ +  + def print_default_timings(): +-    print '*'*60 +-    print 'Default Parameter Timings:' ++    print('*'*60) ++    print('Default Parameter Timings:') +     py_time = param_test( _pysrp, srp.SHA1, srp.NG_2048 ) +     ct_time = param_test( _ctsrp, srp.SHA1, srp.NG_2048 ) +     c_time  = param_test( _srp,   srp.SHA1, srp.NG_2048 ) +-    print '' +-    print 'Performance increases: ' +-    print '   ctypes-module : ', py_time/ct_time +-    print '   C-module      : ', py_time/c_time ++    print('') ++    print('Performance increases: ') ++    print('   ctypes-module : ', py_time/ct_time) ++    print('   C-module      : ', py_time/c_time) +  +  + def print_performance_table(): +     ng_types = [ srp.NG_1024, srp.NG_2048, srp.NG_4096, srp.NG_8192 ] +     hash_types = [ srp.SHA1, srp.SHA224, srp.SHA256, srp.SHA384, srp.SHA512 ] +  +-    print '*'*60 +-    print 'Hash Algorithm vs Prime Number performance table' +-    print '' +-    print '       |', ++    print('*'*60) ++    print('Hash Algorithm vs Prime Number performance table') ++    print('') ++    print('       |') +     for ng in ng_types: +-        print ('NG_%d' % prime_map[ng]).rjust(12), +-    print '' +-    print '-'*60 ++        print ('NG_%d' % prime_map[ng]).rjust(12) ++    print('') ++    print('-'*60) +  +     for hash_alg in hash_types: +  +-        print '%s |' % hash_map[hash_alg], ++        print('%s |' % hash_map[hash_alg],) +         for ng in ng_types: +-            print '{0:>12f}'.format(performance_test(_srp, hash_alg, ng) / 10), +-        print '' ++            print('{0:>12f}'.format( ++                performance_test(_srp, hash_alg, ng) / 10)) ++        print('') +  +  + def print_thread_performance(): +-    print '*'*60 +-    print 'Thread Performance Test:' ++    print('*'*60) ++    print('Thread Performance Test:') +     niter = 100 +     for nthreads in range(1,11): +-        print '   Thread Count {0:>2}: {1:8f}'.format(nthreads, performance_test(_srp, srp.SHA1, srp.NG_2048, niter, nthreads)/niter) ++        print('   Thread Count {0:>2}: {1:8f}'.format( ++            nthreads, performance_test( ++                _srp, srp.SHA1, srp.NG_2048, niter, nthreads)/niter)) +  +  +-print '*'*60 +-print '*' +-print '* Testing Implementation' +-print '*' ++print('*'*60) ++print('*') ++print('* Testing Implementation') ++print('*') + suite = unittest.TestLoader().loadTestsFromTestCase(SRPTests) + unittest.TextTestRunner(verbosity=1).run(suite) +  +-print '*'*60 +-print '*' +-print '* Performance Testing' +-print '*' ++print('*'*60) ++print('*') ++print('* Performance Testing') ++print('*') + print_thread_performance() + print_performance_table() + print_default_timings() +@@ -264,5 +269,3 @@ print_default_timings() +  + # Pause briefly to ensure no background threads are still executing + time.sleep(0.1) +- +- | 
