Home | History | Annotate | Download | only in doc
      1 Reference
      2 =========
      3 
      4 This is the class and function reference. For more usage information
      5 see the :ref:`usage` page.
      6 
      7 Functions
      8 ---------
      9 
     10 .. autofunction:: rsa.encrypt
     11 
     12 .. autofunction:: rsa.decrypt
     13 
     14 .. autofunction:: rsa.sign
     15 
     16 .. autofunction:: rsa.verify
     17 
     18 .. autofunction:: rsa.find_signature_hash
     19 
     20 .. autofunction:: rsa.newkeys(keysize)
     21 
     22 
     23 Classes
     24 -------
     25 
     26 .. note::
     27 
     28     Storing public and private keys via the `pickle` module is possible.
     29     However, it is insecure to load a key from an untrusted source.
     30     The pickle module is not secure against erroneous or maliciously
     31     constructed data. Never unpickle data received from an untrusted
     32     or unauthenticated source.
     33 
     34 .. autoclass:: rsa.PublicKey
     35     :members:
     36     :inherited-members:
     37 
     38 .. autoclass:: rsa.PrivateKey
     39     :members:
     40     :inherited-members:
     41 
     42 Exceptions
     43 ----------
     44 
     45 .. autoclass:: rsa.pkcs1.CryptoError(Exception)
     46 
     47 .. autoclass:: rsa.pkcs1.DecryptionError(CryptoError)
     48 
     49 .. autoclass:: rsa.pkcs1.VerificationError(CryptoError)
     50 
     51 
     52 .. index:: VARBLOCK (file format)
     53 
     54 The VARBLOCK file format
     55 ++++++++++++++++++++++++
     56 
     57 .. warning::
     58 
     59     The VARBLOCK format is NOT recommended for general use, has been deprecated since
     60     Python-RSA 3.4, and was removed in version 4.0. It's vulnerable to a
     61     number of attacks. See :ref:`bigfiles` for more information.
     62 
     63 The VARBLOCK file format allows us to encrypt files that are larger
     64 than the RSA key. The format is as follows; || denotes byte string
     65 concatenation::
     66 
     67  VARBLOCK := VERSION || BLOCK || BLOCK || ...
     68 
     69  VERSION := 1
     70 
     71  BLOCK := LENGTH || DATA
     72 
     73  LENGTH := varint-encoded length of the following data, in bytes
     74 
     75  DATA := the data to store in the block
     76 
     77 The varint-format was taken from Google's Protobuf_, and allows us to
     78 efficiently encode an arbitrarily long integer.
     79 
     80 .. _Protobuf:
     81     https://code.google.com/apis/protocolbuffers/docs/encoding.html#varints
     82 
     83 
     84 Module: rsa.core
     85 ----------------
     86 
     87 At the core of the RSA encryption method lie these functions. They
     88 both operate on (arbitrarily long) integers only. They probably aren't
     89 of much use to you, but I wanted to document them anyway as they are
     90 the core of the entire library.
     91 
     92 .. autofunction:: rsa.core.encrypt_int
     93 
     94 .. autofunction:: rsa.core.decrypt_int
     95