Shaka Packager SDK
Public Member Functions | List of all members
shaka::media::AesCbcDecryptor Class Reference

Class which implements AES-CBC (Cipher block chaining) decryption. More...

#include <aes_decryptor.h>

Inheritance diagram for shaka::media::AesCbcDecryptor:
shaka::media::AesCryptor

Public Member Functions

 AesCbcDecryptor (CbcPaddingScheme padding_scheme)
 
 AesCbcDecryptor (CbcPaddingScheme padding_scheme, ConstantIvFlag constant_iv_flag)
 
AesCryptor implementation overrides.
bool InitializeWithIv (const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) override
 
size_t RequiredOutputSize (size_t plaintext_size) override
 
- Public Member Functions inherited from shaka::media::AesCryptor
 AesCryptor (ConstantIvFlag constant_iv_flag)
 
bool SetIv (const std::vector< uint8_t > &iv)
 
void UpdateIv ()
 
const std::vector< uint8_t > & iv () const
 
bool use_constant_iv () const
 
bool Crypt (const std::vector< uint8_t > &text, std::vector< uint8_t > *crypt_text)
 
bool Crypt (const std::string &text, std::string *crypt_text)
 
bool Crypt (const uint8_t *text, size_t text_size, uint8_t *crypt_text)
 
bool Crypt (const uint8_t *text, size_t text_size, uint8_t *crypt_text, size_t *crypt_text_size)
 

Additional Inherited Members

- Public Types inherited from shaka::media::AesCryptor
enum  ConstantIvFlag { kUseConstantIv , kDontUseConstantIv }
 
- Static Public Member Functions inherited from shaka::media::AesCryptor
static bool GenerateRandomIv (FourCC protection_scheme, std::vector< uint8_t > *iv)
 
- Protected Types inherited from shaka::media::AesCryptor
enum  CipherMode { kCtrMode , kCbcMode }
 
- Protected Member Functions inherited from shaka::media::AesCryptor
bool SetupCipher (size_t key_size, CipherMode mode)
 
- Protected Attributes inherited from shaka::media::AesCryptor
mbedtls_cipher_context_t cipher_ctx_
 

Detailed Description

Class which implements AES-CBC (Cipher block chaining) decryption.

Definition at line 25 of file aes_decryptor.h.

Constructor & Destructor Documentation

◆ AesCbcDecryptor() [1/2]

shaka::media::AesCbcDecryptor::AesCbcDecryptor ( CbcPaddingScheme  padding_scheme)
explicit

Creates a AesCbcDecryptor with continous cipher block chain across Crypt calls.

Parameters
padding_schemeindicates the padding scheme used. Currently supported schemes: kNoPadding, kPkcs5Padding, kCtsPadding.

Definition at line 19 of file aes_decryptor.cc.

◆ AesCbcDecryptor() [2/2]

shaka::media::AesCbcDecryptor::AesCbcDecryptor ( CbcPaddingScheme  padding_scheme,
ConstantIvFlag  constant_iv_flag 
)
Parameters
padding_schemeindicates the padding scheme used. Currently supported schemes: kNoPadding, kPkcs5Padding, kCtsPadding.
constant_iv_flagindicates whether a constant iv is used, kUseConstantIv means that the same iv is used for all Crypt calls until iv is changed via SetIv; otherwise, iv is updated internally and there is a continuous cipher block chain across Crypt calls util iv is changed explicitly via SetIv or UpdateIv functions.

Definition at line 22 of file aes_decryptor.cc.

Member Function Documentation

◆ InitializeWithIv()

bool shaka::media::AesCbcDecryptor::InitializeWithIv ( const std::vector< uint8_t > &  key,
const std::vector< uint8_t > &  iv 
)
overridevirtual

Initialize the cryptor with specified key and IV.

Returns
true on successful initialization, false otherwise.

Implements shaka::media::AesCryptor.

Definition at line 34 of file aes_decryptor.cc.


The documentation for this class was generated from the following files: