Your IP : 172.28.240.42


Current Path : /usr/lib/python2.7/dist-packages/Crypto/PublicKey/
Upload File :
Current File : //usr/lib/python2.7/dist-packages/Crypto/PublicKey/_slowmath.pyc


T:Nc@sdZdZdgZddlZejddkrTejddkrTddlTndd	lmZmZd
e	fdYZ
defd
YZdddddZdefdYZddZdS(sUPure Python implementation of the RSA-related portions of Crypto.PublicKey._fastmath.s$Id$t
rsa_constructiNiii(t*(tsizetinverseterrorcBseZRS((t__name__t
__module__(((s>/usr/lib/python2.7/dist-packages/Crypto/PublicKey/_slowmath.pyR%st_RSAKeycBsPeZdZdZdZdZdZdZdZdZ	RS(cCs|t||j|jS(N(tpowtetn(tselftmtr((s>/usr/lib/python2.7/dist-packages/Crypto/PublicKey/_slowmath.pyt_blind)scCst||j||jS(N(RR
(RRR
((s>/usr/lib/python2.7/dist-packages/Crypto/PublicKey/_slowmath.pyt_unblind-scCs|jstdnt|drt|drt|drt||j|jd|j}t||j|jd|j}||}|dkr||j}n||j|j}||j|St||j|jS(NsNo private keytptqtuii(	thas_privatet	TypeErrorthasattrRtdRRRR
(Rtctm1tm2th((s>/usr/lib/python2.7/dist-packages/Crypto/PublicKey/_slowmath.pyt_decrypt1s-##
cCst||j|jS(N(RR	R
(RR((s>/usr/lib/python2.7/dist-packages/Crypto/PublicKey/_slowmath.pyt_encrypt?scCs(|jstdn|j|S(NsNo private key(RRR(RR((s>/usr/lib/python2.7/dist-packages/Crypto/PublicKey/_slowmath.pyt_signCscCs|j||kS(N(R(RRtsig((s>/usr/lib/python2.7/dist-packages/Crypto/PublicKey/_slowmath.pyt_verifyHscCs
t|dS(NR(R(R((s>/usr/lib/python2.7/dist-packages/Crypto/PublicKey/_slowmath.pyRKscCst|jdS(s7Return the maximum number of bits that can be encryptedi(RR
(R((s>/usr/lib/python2.7/dist-packages/Crypto/PublicKey/_slowmath.pyRNs(
RRRRRRRRRR(((s>/usr/lib/python2.7/dist-packages/Crypto/PublicKey/_slowmath.pyR(s							cCsZt|tstt|ts*tt|ttdfsKtt|ttdfsltt|ttdfstt|ttdfstt}||_||_|dk	r||_n|dk	r||_	n|dk	r||_
n|dk	r)||_n-|dk	rV|dk	rVt|||_n|S(sConstruct an RSAKey objectN(
t
isinstancetlongtAssertionErrorttypetNoneRR
R	RRRRR(R
R	RRRRtobj((s>/usr/lib/python2.7/dist-packages/Crypto/PublicKey/_slowmath.pyRRs(!!!!			t_DSAKeycBs,eZdZdZdZdZRS(cCst|jdS(s7Return the maximum number of bits that can be encryptedi(RR(R((s>/usr/lib/python2.7/dist-packages/Crypto/PublicKey/_slowmath.pyRgscCs
t|dS(Ntx(R(R((s>/usr/lib/python2.7/dist-packages/Crypto/PublicKey/_slowmath.pyRkscCs|jstdnd|ko5|jknsItdnt||j}t|j||j|j}|||j||j}||fS(NsNo private keylsk is not between 2 and q-1(	RRRt
ValueErrorRRtgRR'(RRtktinv_kR
ts((s>/usr/lib/python2.7/dist-packages/Crypto/PublicKey/_slowmath.pyRnscCsd|ko|jkns@d|ko:|jknrDtSt||j}|||j}|||j}t|j||jt|j||j|j|j}||kS(Ni(RtFalseRRR)Rty(RRR
R,twtu1tu2tv((s>/usr/lib/python2.7/dist-packages/Crypto/PublicKey/_slowmath.pyRys@<(RRRRRR(((s>/usr/lib/python2.7/dist-packages/Crypto/PublicKey/_slowmath.pyR&fs			cCst|tstt|ts*tt|ts?tt|tsTtt|ttdfsutt}||_||_||_||_	|dk	r||_
n|S(N(R R!R"R#R$R&R.R)RRR'(R.R)RRR'R%((s>/usr/lib/python2.7/dist-packages/Crypto/PublicKey/_slowmath.pyt
dsa_constructs!					(t__doc__t__revision__t__all__tsystversion_infotCrypto.Util.py21compattCrypto.Util.numberRRt	ExceptionRtobjectRR$RR&R3(((s>/usr/lib/python2.7/dist-packages/Crypto/PublicKey/_slowmath.pyt<module>s	&
*