AWS SDK for C++
0.12.9
AWS SDK for C++
|
Namespaces | |
OpenSSL | |
Classes | |
class | AES_CBC_Cipher_BCrypt |
class | AES_CBC_Cipher_CommonCrypto |
class | AES_CBC_Cipher_OpenSSL |
class | AES_CTR_Cipher_BCrypt |
class | AES_CTR_Cipher_CommonCrypto |
class | AES_CTR_Cipher_OpenSSL |
class | AES_GCM_Cipher_BCrypt |
class | AES_GCM_Cipher_OpenSSL |
class | BCryptHashImpl |
class | BCryptSymmetricCipher |
class | CommonCryptoCipher |
class | CryptoBuf |
class | Hash |
class | HashFactory |
class | HMAC |
class | HMACFactory |
class | MD5 |
class | MD5BcryptImpl |
class | MD5CommonCryptoImpl |
class | MD5OpenSSLImpl |
class | OpenSSLCipher |
class | SecureRandom |
class | SecureRandomBytes |
class | SecureRandomBytes_BCrypt |
class | SecureRandomBytes_CommonCrypto |
class | SecureRandomBytes_OpenSSLImpl |
class | SecureRandomFactory |
class | Sha256 |
class | Sha256BcryptImpl |
class | Sha256CommonCryptoImpl |
class | Sha256HMAC |
class | Sha256HMACBcryptImpl |
class | Sha256HMACCommonCryptoImpl |
class | Sha256HMACOpenSSLImpl |
class | Sha256OpenSSLImpl |
class | SymmetricCipher |
class | SymmetricCipherFactory |
class | SymmetricCryptoBufSink |
class | SymmetricCryptoBufSrc |
class | SymmetricCryptoStream |
Typedefs | |
typedef std::mbstate_t | FPOS_TYPE |
using | HashResult = Outcome< ByteBuffer, bool > |
Enumerations | |
enum | CipherMode { CipherMode::Encrypt, CipherMode::Decrypt } |
Variables | |
static const char * | SecureRandom_BCrypt_Tag = "SecureRandom_BCrypt" |
static const size_t | SYMMETRIC_KEY_LENGTH = 32 |
static const size_t | MIN_IV_LENGTH = 12 |
static const size_t | DEFAULT_BUF_SIZE = 1024 |
static const size_t | PUT_BACK_SIZE = 1 |
typedef std::mbstate_t Aws::Utils::Crypto::FPOS_TYPE |
Definition at line 27 of file CryptoBuf.h.
using Aws::Utils::Crypto::HashResult = typedef Outcome< ByteBuffer, bool > |
Definition at line 30 of file HashResult.h.
|
strong |
Which mode a cipher is being used for. Encryption or Decryption
Enumerator | |
---|---|
Encrypt | |
Decrypt |
Definition at line 34 of file CryptoBuf.h.
AWS_CORE_API void Aws::Utils::Crypto::CleanupCrypto | ( | ) |
You need to call this upon program shutdown.
AWS_CORE_API std::shared_ptr<SymmetricCipher> Aws::Utils::Crypto::CreateAES_CBCImplementation | ( | const CryptoBuffer & | key | ) |
Create AES in CBC mode off of a 256 bit key. Auto Generates a 16 byte secure random IV
AWS_CORE_API std::shared_ptr<SymmetricCipher> Aws::Utils::Crypto::CreateAES_CBCImplementation | ( | const CryptoBuffer & | key, |
const CryptoBuffer & | iv | ||
) |
Create AES in CBC mode off of a 256 bit key and 16 byte IV
AWS_CORE_API std::shared_ptr<SymmetricCipher> Aws::Utils::Crypto::CreateAES_CBCImplementation | ( | CryptoBuffer && | key, |
CryptoBuffer && | iv | ||
) |
Create AES in CBC mode off of a 256 bit key and 16 byte IV
AWS_CORE_API std::shared_ptr<SymmetricCipher> Aws::Utils::Crypto::CreateAES_CTRImplementation | ( | const CryptoBuffer & | key | ) |
Create AES in CTR mode off of a 256 bit key. Auto Generates a 16 byte IV in the format [nonce 4bytes ] [securely random iv 8 bytes] [ CTR init 4bytes ]
AWS_CORE_API std::shared_ptr<SymmetricCipher> Aws::Utils::Crypto::CreateAES_CTRImplementation | ( | const CryptoBuffer & | key, |
const CryptoBuffer & | iv | ||
) |
Create AES in CTR mode off of a 256 bit key and 16 byte IV
AWS_CORE_API std::shared_ptr<SymmetricCipher> Aws::Utils::Crypto::CreateAES_CTRImplementation | ( | CryptoBuffer && | key, |
CryptoBuffer && | iv | ||
) |
Create AES in CTR mode off of a 256 bit key and 16 byte IV
AWS_CORE_API std::shared_ptr<SymmetricCipher> Aws::Utils::Crypto::CreateAES_GCMImplementation | ( | const CryptoBuffer & | key | ) |
Create AES in GCM mode off of a 256 bit key. Auto Generates a 16 byte secure random IV.
AWS_CORE_API std::shared_ptr<SymmetricCipher> Aws::Utils::Crypto::CreateAES_GCMImplementation | ( | const CryptoBuffer & | key, |
const CryptoBuffer & | iv, | ||
const CryptoBuffer & | tag = CryptoBuffer(0) |
||
) |
Create AES in GCM mode off of a 256 bit key, a 16 byte secure random IV, and an optional 16 byte Tag. If you are using this cipher to decrypt an encrypted payload, you must set the tag here.
AWS_CORE_API std::shared_ptr<SymmetricCipher> Aws::Utils::Crypto::CreateAES_GCMImplementation | ( | CryptoBuffer && | key, |
CryptoBuffer && | iv, | ||
CryptoBuffer && | tag = CryptoBuffer(0) |
||
) |
Create AES in GCM mode off of a 256 bit key, a 16 byte secure random IV, and an optional 16 byte Tag. If you are using this cipher to decrypt an encrypted payload, you must set the tag here.
AWS_CORE_API std::shared_ptr<Hash> Aws::Utils::Crypto::CreateMD5Implementation | ( | ) |
AWS_CORE_API std::shared_ptr<SecureRandomBytes> Aws::Utils::Crypto::CreateSecureRandomBytesImplementation | ( | ) |
Create SecureRandomBytes instance
AWS_CORE_API std::shared_ptr<HMAC> Aws::Utils::Crypto::CreateSha256HMACImplementation | ( | ) |
Create a Sha256 HMACHash provider
AWS_CORE_API std::shared_ptr<Hash> Aws::Utils::Crypto::CreateSha256Implementation | ( | ) |
AWS_CORE_API void Aws::Utils::Crypto::InitCrypto | ( | ) |
You need to call this before using any of the cryptography libs. Should be called after setting the factories.
AWS_CORE_API void Aws::Utils::Crypto::SetAES_CBCFactory | ( | const std::shared_ptr< SymmetricCipherFactory > & | factory | ) |
Set the global factory for AES in CBC mode providers
AWS_CORE_API void Aws::Utils::Crypto::SetAES_CTRFactory | ( | const std::shared_ptr< SymmetricCipherFactory > & | factory | ) |
Set the global factory for AES in CTR mode providers
AWS_CORE_API void Aws::Utils::Crypto::SetAES_GCMFactory | ( | const std::shared_ptr< SymmetricCipherFactory > & | factory | ) |
Set the global factory for AES in GCM mode providers
AWS_CORE_API void Aws::Utils::Crypto::SetInitCleanupOpenSSLFlag | ( | bool | initCleanupFlag | ) |
OpenSSL infects everything with its global state. If it is being used then we automatically initialize and clean it up. If this is a problem for you, set this to false. Be aware that if you don't use our init and cleanup and you are using crypto functionality, you are responsible for installing thread locking, and loading strings and error messages.
AWS_CORE_API void Aws::Utils::Crypto::SetMD5Factory | ( | const std::shared_ptr< HashFactory > & | factory | ) |
AWS_CORE_API void Aws::Utils::Crypto::SetSecureRandomFactory | ( | const std::shared_ptr< SecureRandomFactory > & | factory | ) |
Set the global factory for secure random bytes
AWS_CORE_API void Aws::Utils::Crypto::SetSha256Factory | ( | const std::shared_ptr< HashFactory > & | factory | ) |
AWS_CORE_API void Aws::Utils::Crypto::SetSha256HMACFactory | ( | const std::shared_ptr< HMACFactory > & | factory | ) |
|
static |
Definition at line 28 of file CryptoBuf.h.
|
static |
Definition at line 29 of file CryptoBuf.h.
|
static |
Definition at line 42 of file CryptoImpl.h.