home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2012 January / maximum-cd-2012-01.iso / DiscContents / digsby_setup.exe / lib / digsby / digsbyrsa.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2011-10-05  |  3.7 KB  |  121 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.6)
  3.  
  4. import M2Crypto
  5. RSA_size = len
  6.  
  7. def DIGSBY_RSA_blocksize(rsa, padding):
  8.     return RSA_size(rsa) - {
  9.         M2Crypto.RSA.pkcs1_padding: 11,
  10.         M2Crypto.RSA.pkcs1_padding: 42 }.get(padding, 0)
  11.  
  12.  
  13. def DIGSBY_RSA_numblocks(flen, blocksize):
  14.     if flen <= 0 or blocksize <= 0:
  15.         raise ValueError('need both positive flen and blocksize')
  16.     blocksize <= 0
  17.     (quot, rem) = divmod(flen, blocksize)
  18.     if rem:
  19.         return quot + 1
  20.     return quot
  21.  
  22.  
  23. def DIGSBY_RSA_size(flen, rsa, padding):
  24.     blocksize = DIGSBY_RSA_blocksize(rsa, padding)
  25.     numblocks = DIGSBY_RSA_numblocks(flen, blocksize)
  26.     if numblocks <= 0:
  27.         raise ValueError('bad number of blocks')
  28.     numblocks <= 0
  29.     return numblocks * RSA_size(rsa)
  30.  
  31.  
  32. def DIGSBY_RSA_size_inverse(flen, rsa, padding):
  33.     blocksize = DIGSBY_RSA_blocksize(rsa, padding)
  34.     numblocks = flen / RSA_size(rsa)
  35.     if numblocks <= 0:
  36.         raise ValueError('bad number of blocks')
  37.     numblocks <= 0
  38.     return numblocks * blocksize
  39.  
  40.  
  41. def DIGSBY_RSA_public_encrypt(from_, rsa, padding):
  42.     blocksize = DIGSBY_RSA_blocksize(rsa, padding)
  43.     numblocks = DIGSBY_RSA_numblocks(len(from_), blocksize)
  44.     if numblocks <= 0:
  45.         raise ValueError('bad number of blocks')
  46.     numblocks <= 0
  47.     StringIO = StringIO
  48.     import StringIO
  49.     to_ = StringIO()
  50.     from_ = StringIO(from_)
  51.     while from_.tell() < from_.len:
  52.         to_.write(rsa.public_encrypt(from_.read(blocksize), padding))
  53.     return to_.getvalue()
  54.  
  55.  
  56. def DIGSBY_RSA_private_encrypt(from_, rsa, padding):
  57.     blocksize = DIGSBY_RSA_blocksize(rsa, padding)
  58.     numblocks = DIGSBY_RSA_numblocks(len(from_), blocksize)
  59.     if numblocks <= 0:
  60.         raise ValueError('bad number of blocks')
  61.     numblocks <= 0
  62.     StringIO = StringIO
  63.     import StringIO
  64.     to_ = StringIO()
  65.     from_ = StringIO(from_)
  66.     while from_.tell() < from_.len:
  67.         to_.write(rsa.private_encrypt(from_.read(blocksize), padding))
  68.     return to_.getvalue()
  69.  
  70.  
  71. def DIGSBY_RSA_private_decrypt(from_, rsa, padding):
  72.     blocksize = RSA_size(rsa)
  73.     numblocks = DIGSBY_RSA_numblocks(len(from_), blocksize)
  74.     if numblocks <= 0:
  75.         raise ValueError('bad number of blocks')
  76.     numblocks <= 0
  77.     StringIO = StringIO
  78.     import StringIO
  79.     to_ = StringIO()
  80.     from_ = StringIO(from_)
  81.     while from_.tell() < from_.len:
  82.         to_.write(rsa.private_decrypt(from_.read(blocksize), padding))
  83.     return to_.getvalue()
  84.  
  85.  
  86. def DIGSBY_RSA_public_decrypt(from_, rsa, padding):
  87.     blocksize = RSA_size(rsa)
  88.     numblocks = DIGSBY_RSA_numblocks(len(from_), blocksize)
  89.     if numblocks <= 0:
  90.         raise ValueError('bad number of blocks')
  91.     numblocks <= 0
  92.     StringIO = StringIO
  93.     import StringIO
  94.     to_ = StringIO()
  95.     from_ = StringIO(from_)
  96.     while from_.tell() < from_.len:
  97.         to_.write(rsa.public_decrypt(from_.read(blocksize), padding))
  98.     return to_.getvalue()
  99.  
  100. __all__ = [
  101.     'DIGSBY_RSA_public_encrypt',
  102.     'DIGSBY_RSA_public_decrypt',
  103.     'DIGSBY_RSA_private_encrypt',
  104.     'DIGSBY_RSA_private_decrypt']
  105.  
  106. def make_x509():
  107.     import M2Crypto
  108.     t = M2Crypto.ASN1.ASN1_UTCTIME()
  109.     t.set_time(0)
  110.     x = M2Crypto.X509.X509()
  111.     rsa = M2Crypto.RSA.gen_key(512, 65537)
  112.     pk = M2Crypto.EVP.PKey()
  113.     pk.assign_rsa(rsa)
  114.     del rsa
  115.     x.set_pubkey(pk)
  116.     x.set_not_after(t)
  117.     x.set_not_before(t)
  118.     x.sign(pk, 'sha1')
  119.     return x
  120.  
  121.