Skip to content

ltmert/aws-encryption-sdk-python

 
 

Repository files navigation

aws-encryption-sdk

Latest Version Supported Python Versions Code style: black Documentation Status https://travis-ci.org/aws/aws-encryption-sdk-python.svg?branch=master https://ci.appveyor.com/api/projects/status/p3e2e63gsnp3cwd8/branch/master?svg=true

The AWS Encryption SDK for Python provides a fully compliant, native Python implementation of the AWS Encryption SDK.

The latest full documentation can be found at Read the Docs.

Find us on GitHub.

Security issue notifications

Getting Started

Required Prerequisites

  • Python 2.7 or 3.5+
  • cryptography >= 1.8.1
  • boto3
  • attrs

Installation

Note

If you have not already installed cryptography, you might need to install additional prerequisites as detailed in the cryptography installation guide for your operating system.

$ pip install aws-encryption-sdk

Concepts

There are three main concepts that are helpful to understand when using the AWS Encryption SDK.

For further information, see the AWS Encryption SDK developer guide concepts.

Cryptographic Materials Managers

The cryptographic materials manager (CMM) assembles the cryptographic materials that are used to encrypt and decrypt data.

For more details, see the AWS Encryption SDK developer guide cryptographic materials manager concept.

Keyrings

A keyring generates, encrypts, and decrypts data keys.

For more details, see the AWS Encryption SDK developer guide keyring concept.

Data Keys

A data key is an encryption key that the AWS Encryption SDK uses to encrypt your data.

For more details, see the AWS Encryption SDK developer guide data key concept.

Usage

For examples of how to use these concepts to accomplish different tasks, see our examples.

Performance Considerations

Adjusting the frame size can significantly improve the performance of encrypt/decrypt operations with this library.

Processing each frame in a framed message involves a certain amount of overhead. If you are encrypting a large file, increasing the frame size can offer potentially significant performance gains. We recommend that you tune these values to your use-case in order to obtain peak performance.