Files
Shadowsocks-For-WHMCS/Server/shadowsocks/encrypt.pyc

48 lines
6.7 KiB
Plaintext
Raw Normal View History

2016-05-27 11:18:25 +08:00
<EFBFBD><EFBFBD>
T#zUc @s%ddkZddkZddkZddkZddkZddkZddkZddkZd<00>ZhZ hZ
d<00>Z dd<00>Z d<00>Zhdd6dd 6dd 6d d 6d!d6d"d6d#d6d$d6d%d6d&d6d'd6d(d6d)d6d*d6d+d6Zdefd<00><00>YZd<00>ZdS(,i<><69><EFBFBD><EFBFBD>NcCsDy ddk}|ii|<00>SWntj
oti|<00>SXdS(Ni<4E><69><EFBFBD><EFBFBD>(t M2Crypto.RandtRandt
rand_bytest ImportErrortosturandom(tlengthtM2Crypto((s$/home/wwwroot/shadowsocks/encrypt.pyt random_string!s
 cs<>ti<00>}|i|<00>|i<00>}tid|<00>\<00>}g}tidd<00>D] }||qT~}x0tdd<00>D]<00>|i <00><00>fd<00><00>qzW|S(Ns<QQtiics*t<00>t|<00><00><16>t|<00><00><18>S((tinttord(txty(tati(s$/home/wwwroot/shadowsocks/encrypt.pyt<lambda>5s(
thashlibtmd5tupdatetdigesttstructtunpacktstringt maketranstxrangetsort(tkeytmtstbt_[1]tcttable((RRs$/home/wwwroot/shadowsocks/encrypt.pyt get_table.s   -c Cs|dj o|djo
d}n|oFytd<00>Wqqtj
o%tid|<16>tid<00>qqXn|p]|tjo t|Sdit |<00><00>}t
i |t
i dd<00><00>}||gt|<nDyt ||<00>Wn/t j
o#}ti|<00>tid<00>nXdS(NR!RsLM2Crypto is required to use %s, please run `apt-get install python-m2crypto`iR (tNonet
__import__Rtloggingterrortsystexitt cached_tablestjoinR"RRt Encryptort Exception(Rtmethodt encrypt_tablet decrypt_tablete((s$/home/wwwroot/shadowsocks/encrypt.pyt
init_table9s*
     c Cst|<00>}ti|d<00>}|o|Sg}d}x<>tdi|<00><00>||jocti<00>}|}|djo||d|}n|i|<00>|i |i
<00><00>|d7}q9Wdi|<00>}|| } ||||!}
| |
ft|<| |
fS(NiR i( tstrt cached_keystgetR#tlenR*RRRtappendR( tpasswordtkey_lentiv_lentrRRRtdatatmsRtiv((s$/home/wwwroot/shadowsocks/encrypt.pytEVP_BytesToKeyRs(     
is aes-128-cfbis aes-192-cfbi s aes-256-cfbisbf-cfbscamellia-128-cfbscamellia-192-cfbscamellia-256-cfbs cast5-cfbsdes-cfbsidea-cfbsrc2-cfbitrc4src4-md5sseed-cfbs salsa20-ctrR+cBsDeZdd<00>Zd<00>Zd<00>Zdd<00>Zd<00>Zd<00>ZRS(cCs<>|djo
d}n||_||_d|_t|_d|_d|_|o(|i||ddt d<00><00>|_
n"t |<00>\|_ |_ d|_
dS(NR!R iR=i (R#RR-R=tFalsetiv_sentt cipher_ivtdeciphert
get_cipherRtcipherR1R.R/(tselfRR-((s$/home/wwwroot/shadowsocks/encrypt.pyt__init__~s 
      (cCs"|i<00>}ti|d<00>}|S(N(tlowertmethod_supportedR4R#(RFR-R((s$/home/wwwroot/shadowsocks/encrypt.pytget_cipher_len<65>s cCs t|i<00>S(N(R5RB(RF((s$/home/wwwroot/shadowsocks/encrypt.pyR9<00>sc CsU|id<00>}|i<00>}|i|<00>}|ot||d|d<19>\}}|djo
|}n||d }|djo||d |_n|djoti||||<00>S|djoti ||||<00>Sddk
}|i i |i dd<00>|||d dd
d d dd ddd<00>Sntid|<16>tid<00>dS(Nsutf-8iis salsa20-ctrsrc4-md5i<35><69><EFBFBD><EFBFBD>t-t_t key_as_bytestdRtsaltRtpaddingsmethod %s not supported(tencodeRHRJR>R#RBtencrypt_salsa20t Salsa20Ciphertencrypt_rc4_md5t create_ciphert M2Crypto.EVPtEVPtCiphertreplaceR%R&R'R(( RFR7R-topR=RRtiv_R((s$/home/wwwroot/shadowsocks/encrypt.pyRD<00>s(   
    cCsut|<00>djo|S|ipti||i<00>S|io|ii|<00>St|_|i |ii|<00>SdS(Ni(
R5R-Rt translateR.RARERtTrueRB(RFtbuf((s$/home/wwwroot/shadowsocks/encrypt.pytencrypt<70>s

 cCs<>t|<00>djo|S|ipti||i<00>S|idjoj|i|i<00>d}|| }|i|i |idd|<00>|_||}t|<00>djo|Sn|ii
|<00>SdS(NiiR=( R5R-RR\R/RCR#RJRDRR(RFR^tdecipher_iv_lent decipher_iv((s$/home/wwwroot/shadowsocks/encrypt.pytdecrypt<70>s

 
 N( t__name__t
__module__R#RGRJR9RDR_Rb(((s$/home/wwwroot/shadowsocks/encrypt.pyR+}s      cCs<>|dj o|i<00>djo
d}n|p>t|<00>\}}|oti||<00>Sti||<00>Sn9ddk}g}|i<00>}t|\}} t||| <00>\}
} |ot| <00>} |i | <00>n|| } || }|djot
i ||
| |<00>} no|djot i ||
| |<00>} nF|ii|idd<00>|
| |ddd d
d dd d dd <00>} |i | i|<00><00>di|<00>SdS(NR!i<><69><EFBFBD><EFBFBD>s salsa20-ctrsrc4-md5RKRLRMiRNRRORiRPR (R#RHR1RR\RVRIR>RR6RRRSRTRURWRXRYRR*(R7R-RZR;R.R/RtresultR8R9RRLR=RE((s$/home/wwwroot/shadowsocks/encrypt.pyt encrypt_all<6C>s4 
   

  (ii(ii(i i(ii(ii(ii(i i(ii(ii(ii(ii(ii(ii(ii(i i(RR'RRRR%RRRTRR)R3R"R#R1R>RItobjectR+Rf(((s$/home/wwwroot/shadowsocks/encrypt.pyt<module>s>           
N