Metadata-Version: 1.1
Name: crx-unpack
Version: 0.1
Summary: Unpack .crx files the way Chrome does
Home-page: https://bitbucket.org/mmabey/crx_unpack
Author: Mike Mabey
Author-email: mmabey@ieee.org
License: MIT
Download-URL: https://bitbucket.org/mmabey/crx_unpack/get/0.1.tar.gz
Description: ====================
        CRX Unpack in Python
        ====================
        
        .. image:: https://img.shields.io/pypi/v/crx_unpack.svg
            :target: https://pypi.python.org/pypi/crx_unpack
        
        .. image:: https://img.shields.io/pypi/pyversions/crx_unpack.svg
            :target: https://pypi.python.org/pypi/crx_unpack
        
        .. image:: https://img.shields.io/pypi/l/crx_unpack.svg
            :target: https://pypi.python.org/pypi/crx_unpack
        
        crx_unpack is a Python library for extracting the contents of a Chrome
        extension file (``.crx``).
        
        Structure of CRX Package Format
        -------------------------------
        
        *As explained at* `<https://developer.chrome.com/extensions/crx>`_
        
        Package Header
        --------------
        
        The header contains the author's public key and the extension's signature. The signature is generated from the ZIP file
        using SHA-1 with the author's private key. The header requires a little-endian byte ordering with 4-byte alignment. The
        following table describes the fields of the ``.crx`` header in order:
        
        ===================  ============  ===============  =================  ===========
        Field                Type          Length           Value              Description
        ===================  ============  ===============  =================  ===========
        *magic number*       char[]        32 bits          Cr24               Chrome requires this constant at the beginning of every ``.crx`` package.
        *version*            unsigned int  32 bits          2                  The version of the ``*.crx`` file format used (currently 2).
        *public key length*  unsigned int  32 bits          *pubkey.length*    The length of the RSA public key in *bytes*.
        *signature length*   unsigned int  32 bits          *sig.length*       The length of the signature in *bytes*.
        *public key*         byte[]        *pubkey.length*  *pubkey.contents*  The contents of the author's RSA public key formatted as an X509 SubjectPublicKeyInfo block.
        *signature*          byte[]        *sig.length*     *sig.contents*     The signature of the ZIP content using the author's private key. The signature is created using the RSA algorithm with the SHA-1 hash function.
        ===================  ============  ===============  =================  ===========
        
        Extension Contents
        ------------------
        
        The extension's ZIP file is appended to the ``*.crx`` package after the header. This should be the same ZIP file that
        the signature in the header was generated from.
        
Keywords: crx,unpack,Chrome,Chrome OS,extension,package
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Internet :: WWW/HTTP :: Browsers
Classifier: Topic :: System :: Archiving :: Compression
Classifier: Topic :: Multimedia :: Graphics :: Graphics Conversion
Classifier: Operating System :: POSIX
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
