home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2009 June / maximum-cd-2009-06.iso / DiscContents / digsby_setup.exe / lib / digsby / digsbyrsa.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-02-26  |  3.7 KB  |  119 lines

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