Metadata-Version: 2.1
Name: cryptfile
Version: 1.0.3
Summary: General purpose Python encrypted file-like object with random IO.
Home-page: https://github.com/alemigo/cryptfile
Author: github.com/alemigo
License: UNKNOWN
Description: General purpose Python encrypted file-like object that facilitates random access IO.  Uses AES encryption in CTR mode.  Can be used with modules such as tarfile, zipfile, lzma, and others that accept a file-like object as an alternative to a path.  Supports binary IO modes only.
        
        ### Examples
        ```
        import cryptfile
        
        with cryptfile.open('data.bin', 'wb+', aes_key=b'256 bit key', block_num=5000) as f:
            f.write(b'Hello, World!')
            f.seek(0)
            print(f.read())
             
        Result:
        b'Hello, World!'
        ```
        ### Documentation
        
        cryptfile.**open**(*file, mode, aes_key=None, block_num=10000*)
        
        Returns a CryptFile object for a specified file.  
         - *file* can either be a string containing a valid path, or a file-like object.
         - Supported *mode* values are: `wb, wb+, rb, rb+, ab, ab+`. 
         - 256 bit binary *aes_key* is used for en/decryption, or if none is provided for a new file, a random key is generated and is retrievable with the `.aeskey` property.
         - *block_num* sets the number of 16 byte AES blocks per cryptfile block for new files.  Each cryptfile block stores its own 8 byte nonce value, and is re-written in whole if any part of the block is altered.  Larger *block_num* values optimize for more sequential IO, whereas smaller values optimize for smaller random IO that jumps around the file.  This argument is not needed for opening existing files.  
        
        ### Dependencies
        
        PyCryptodome for AES encryption
        
        ### Installation
        
        pip install cryptfile
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
