Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

jwe-encryptify

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jwe-encryptify

A Python package to facilitate JSON Web Encryption (JWE) with enhanced security, leveraging AWS Key Management Service (KMS) and Secrets Manager for secure input and output handling.

  • 0.0.3
  • Source
  • PyPI
  • Socket score

Maintainers
1

jwe-encryptify

jwe-encryptify is a Python package designed for secure encryption and decryption using JSON Web Encryption (JWE), enhanced by AWS Key Management Service (KMS) and AWS Secrets Manager integration. This package offers a straightforward solution for handling sensitive data, allowing encrypted data exchange while securely managing encryption keys through AWS.

Table of Contents

Features

  • Robust Data Encryption: Uses JSON Web Encryption (JWE) to ensure data security and integrity.
  • AWS KMS Integration: Leverages AWS KMS for secure key encryption and decryption.
  • AWS Secrets Manager: Efficiently manages public and private key pairs for encryption processes.
  • User-Friendly API: Simplified methods for secure JSON payload encryption and decryption.

Installation

You can install the package via pip from PyPI:

pip install jwe-encryptify

Usage

  • AWS Configuration: Ensure that your AWS credentials and region are set up. The package requires AWS permissions to access KMS and Secrets Manager.
  • Environment Variable: Set AWS_DEFAULT_REGION as an environment variable or configure it in your AWS settings.

Encrypting Data using JWE

Use the encrypt method to secure JSON data with a public key stored in AWS Secrets Manager.

from jwe_crypto import encrypt

# Data to encrypt
data_to_encrypt = {"user": "John Doe", "account_id": "123456"}

# Encrypt the data
jwe_encrypted_token = encrypt(
  kms_id="your-kms-key-id",  # AWS KMS key ID for encryption
  secret_name="your-secret-name",  # AWS Secrets Manager secret name
  secret_key="public-key",  # Key name in the secret (public key)
  api_response=data_to_encrypt  # JSON data to encrypt
)
print("Encrypted JWE Token:", jwe_encrypted_token)

Encrypting Data using KMS

Use the encrypt method to secure JSON data using an AWS KMS key.

from kms_crypto import encrypt

# Data to encrypt
data_to_encrypt = {"user": "John Doe", "account_id": "123456"}

# Encrypt the data using KMS
kms_encrypted_value = encrypt(
  kms_id="your-kms-key-id",  # AWS KMS key ID used for encryption
  plaintext=str(data_to_encrypt)  # Convert the JSON data to a string
)

print("Encrypted KMS Value:", kms_encrypted_value)

Decrypting Data using JWE

Use the decrypt method to decrypt an encrypted JWE token using a private key from AWS Secrets Manager.

from jwe_crypto import decrypt

# JWE token to decrypt
jwe_token = "your-encrypted-jwe-token"

# Decrypt the data
decrypted_data = decrypt(
  kms_id="your-kms-key-id",  # AWS KMS key ID
  secret_name="your-secret-name",  # AWS Secrets Manager secret name
  secret_key="private-key",  # Key name in the secret (private key)
  jwe_payload=jwe_token  # Encrypted JWE payload
)

print("Decrypted Data:", decrypted_data)

Decrypting Data using KMS

Use the decrypt method to decrypt an encrypted value using an AWS KMS key and encryption context.

from kms_crypto import decrypt

# Encrypted value to decrypt
encrypted_value = "your-encrypted-kms-value"

# Decrypt the data using KMS
decrypted_data = decrypt(
  kms_id="your-kms-key-id",  # AWS KMS key ID used for decryption
  lambda_function_name="your-lambda-function-name",  # Encryption context
  encrypted_value=encrypted_value  # Encrypted value to decrypt
)

print("Decrypted Data:", decrypted_data)

AWS Permissions

Ensure the following permissions are assigned to your AWS IAM role or user:

  • KMS Permissions:
    • kms:Encrypt
    • kms:Decrypt
  • Secrets Manager Permissions:
    • secretsmanager:GetSecretValue

Dependencies

The package requires the following dependencies:

  • jwcrypto: For JWE encoding and decoding.
  • boto3: AWS SDK for Python.
  • botocore: Core library used by boto3. Install all dependencies automatically via pip install jwe-encryptify.

License

This project is licensed under the MIT License.

Contributing

Contributions are welcome! Submit issues or pull requests to enhance the package. For major changes, please open a discussion first.

Authors

M Santhosh Kumar Initial work santhoshse7en@gmail.com

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc