|
Shaka Packager SDK
|
Implements pattern-based encryption/decryption. More...
#include <aes_pattern_cryptor.h>
Public Types | |
| enum | PatternEncryptionMode { kEncryptIfCryptByteBlockRemaining , kSkipIfCryptByteBlockRemaining } |
Public Types inherited from shaka::media::AesCryptor | |
| enum | ConstantIvFlag { kUseConstantIv , kDontUseConstantIv } |
Public Member Functions | |
| AesPatternCryptor (uint8_t crypt_byte_block, uint8_t skip_byte_block, PatternEncryptionMode encryption_mode, ConstantIvFlag constant_iv_flag, std::unique_ptr< AesCryptor > cryptor) | |
AesCryptor implementation overrides. | |
| bool | InitializeWithIv (const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) override |
Public Member Functions inherited from shaka::media::AesCryptor | |
| AesCryptor (ConstantIvFlag constant_iv_flag) | |
| virtual size_t | RequiredOutputSize (size_t plaintext_size) |
| 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 | |
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_ |
Implements pattern-based encryption/decryption.
Definition at line 16 of file aes_pattern_cryptor.h.
Enumerator for controling encrytion/decryption mode for the last encryption/decrytion block(s).
Definition at line 20 of file aes_pattern_cryptor.h.
| shaka::media::AesPatternCryptor::AesPatternCryptor | ( | uint8_t | crypt_byte_block, |
| uint8_t | skip_byte_block, | ||
| PatternEncryptionMode | encryption_mode, | ||
| ConstantIvFlag | constant_iv_flag, | ||
| std::unique_ptr< AesCryptor > | cryptor | ||
| ) |
| crypt_byte_block | indicates number of encrypted blocks (16-byte) in pattern based encryption. |
| skip_byte_block | indicates number of unencrypted blocks (16-byte) in pattern based encryption. |
| encryption_mode | is used to determine the behavior for the last block. |
| constant_iv_flag | indicates 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 can be incremented (for counter mode) or chained (for cipher block chaining mode) internally inside Crypt call, i.e. iv will be updated across Crypt calls. |
| cryptor | points to an AesCryptor instance which performs the actual encryption/decryption. Note that cryptor shall not use constant iv. |
Definition at line 19 of file aes_pattern_cryptor.cc.
|
override |
Definition at line 36 of file aes_pattern_cryptor.cc.
|
overridevirtual |
Initialize the cryptor with specified key and IV.
Implements shaka::media::AesCryptor.
Definition at line 38 of file aes_pattern_cryptor.cc.