TSDuck v3.40-3963
MPEG Transport Stream Toolkit
|
DVS 042 cipher block chaining mode. More...
#include <tsDVS042.h>
Public Member Functions | |
DVS042 () | |
Constructor. | |
bool | setShortIV (const ByteBlock &iv) |
Set a new initialization vector for short blocks. | |
bool | setShortIV (const void *iv_data, size_t iv_length) |
Set a new initialization vector for short blocks. | |
Protected Member Functions | |
DVS042 (const BlockCipherProperties &props, bool ignore_short_iv=false) | |
Constructor for subclasses which add some properties, such as fixed IV. | |
Static Protected Member Functions | |
static const BlockCipherProperties & | PROPERTIES () |
Properties of this algorithm. | |
DVS 042 cipher block chaining mode.
DVS 042 has been renamed as "ANSI/SCTE 52 2003". It used to be available at http://www.scte.org/documents/pdf/ANSISCTE522003DVS042.pdf This file is no longer online. The next iteration of this standard is now "ANSI/SCTE 52 2008", available at http://www.scte.org/documents/pdf/Standards/ANSI_SCTE%2052%202008.pdf
The only noticeable difference between the two versions is the handling of messages shorter than the block size. In the 2003 (DVS 042) version, the same IV (called "whitener" in the standard) is used for long and short messages. In the 2008 version, a different "whitener2" must be used for messages shorter than the block size.
The ATIS-0800006 standard (IDSA) uses the same chaining mode and residue processing as DVS-042 but is based on AES instead of DES.
CIPHER | A subclass of ts::BlockCipher, the underlying block cipher. |
|
protected |
Constructor for subclasses which add some properties, such as fixed IV.
[in] | props | Constant reference to a block of properties of this block cipher. |
[in] | ignore_short_iv | Ingnore short IV, use the standard IV for short blocks. |
bool ts::DVS042< CIPHER, >::setShortIV | ( | const void * | iv_data, |
size_t | iv_length | ||
) |
Set a new initialization vector for short blocks.
The method setIV() sets the IV for long blocks (longer than the block size) and short blocks (shorter than the block size). The latter can then be overwritten using setShortIV().
[in] | iv_data | Address of initialization vector for short blocks. |
[in] | iv_length | IV length in bytes. |
|
inline |
Set a new initialization vector for short blocks.
The method setIV() sets the IV for long blocks (longer than the block size) and short blocks (shorter than the block size). The latter can then be overwritten using setShortIV().
[in] | iv | Initialization vector for short blocks. |
|
inlinestaticprotected |
Properties of this algorithm.