Metadata-Version: 2.1
Name: gcp-jwt
Version: 0.1.9
Summary: Generate, Sign and verify JWTs using GCP KMS.
Home-page: https://github.com/BinarSkugga/gcp-jwt
Author: Charles Smith
License: GNU GPLv3
Description: ## GCP-JWT
        GCP-JWT is a library to create and sign tokens using the Google Cloud 
        Platform's Key Management Service. It handles the signing and verification
        of the token.
        
        ### Key Features
        * [x] Token Signage
        * [x] Signature Verification
        * [x] Expiry Verification
        ---
        * [ ] Auto Rotating Asymmetric Key
        * [ ] Batch Token Generation
        * [ ] Compression Option
        * [ ] Symmetrically Encrypted Layer
        * [ ] Pretty API
        
        ### GCP Roles Needed
        To be able to use this library you'll need a GCP service account with at
        least the following roles:
        * cloudkms.cryptoKeyVersions.list
        * cloudkms.cryptoKeyVersions.useToSign
        * cloudkms.cryptoKeyVersions.viewPublicKey
        
        ### Why not using GCP integrated auth ?
        Some projects require more flexibility, I've also personally came
        across a case where a company didn't want Google to manage the
        authentication process. Whether or not this should be used in production
        is outside the scope of this project.
        
        ### Simple Usage
        ```python
        from google.cloud import kms
        
        from gcpjwt.jwt import JWT
        from gcpjwt.jwt_signer import JWTSigner
        
        # Create a client using a json file and initialise an asymmetric signer.
        client = kms.KeyManagementServiceClient.from_service_account_file('../resources/google.json')
        signer = JWTSigner(client, 'your-project', 'your-ring-location')
        
        # Create a simple JWT without changing any claims.
        jwt = JWT(signer, 'your-ring', 'your-key')
        text_token = jwt.token()
        ```
        
        ### Install
        ``pip install gcp-jwt``
        
        **Note:** This project uses the cryptography package which needs to install natives. It
        might not be compatible with App Engine Standard because of the limited libraries allowed.
Platform: UNKNOWN
Requires-Python: >=3.6
Description-Content-Type: text/markdown
