CryptX
view release on metacpan or search on metacpan
lib/Crypt/Mode/XTS.pm view on Meta::CPAN
This module implements the XTS cipher mode as specified by IEEE 1619-2007 and
NIST SP 800-38E, including ciphertext stealing for data units that are not a
multiple of the block size. B<Note:> It works only with 128-bit block ciphers
from L<CryptX> ('AES', 'Twofish', 'Serpent', 'Camellia', 'ARIA', 'SM4', ...).
B<BEWARE: XTS provides confidentiality only - no integrity, no authentication.>
A bit-flip in the ciphertext garbles exactly the corresponding 16-byte
plaintext block, predictably positioned - that's malleability by design. XTS
is for encrypting storage in place, where the tweak is implicit in the
location and there is no room for a MAC. For anything that travels - files,
messages, backups - use an AEAD mode (C<Crypt::AuthEnc::*>) instead. Also be
aware that an attacker with two snapshots of the same device sees which
blocks changed.
Unlike the other C<Crypt::Mode::*> modules, XTS is not an online mode
(ciphertext stealing needs the complete data unit), so there is no
C<start_encrypt>/C<add>/C<finish> API and this module does not subclass
L<Crypt::Mode>. One C<encrypt>/C<decrypt> call processes exactly one complete
data unit. Ciphertext length always equals plaintext length.
=head1 METHODS
av_shift|5.003007|5.003007|
av_store|5.003007|5.003007|
av_store_simple|5.035002||cV
av_tindex|5.017009|5.003007|p
av_tindex_skip_len_mg|5.025010||Viu
av_top_index|5.017009|5.003007|p
av_top_index_skip_len_mg|5.025010||Viu
av_undef|5.003007|5.003007|
av_unshift|5.003007|5.003007|
ax|5.003007|5.003007|
backup_one_GCB|5.025003||Viu
backup_one_LB|5.023007||Viu
backup_one_SB|5.021009||Viu
backup_one_WB|5.021009||Viu
bad_type_gv|5.019002||Viu
bad_type_pv|5.016000||Viu
BADVERSION|5.011004||Viu
BASEOP|5.003007||Viu
BhkDISABLE|5.013003||xV
BhkENABLE|5.013003||xV
BhkENTRY|5.013003||xVi
BhkENTRY_set|5.013003||xV
BHKf_bhk_eval|5.013006||Viu
BHKf_bhk_post_end|5.013006||Viu
( run in 0.659 second using v1.01-cache-2.11-cpan-a49fcb8fa48 )