Crypt::...FER_SK64(3)

NAME πŸŽ€

Okay bestie, this page is Crypt::...FER_SK64(3) from the User Contributed Perl Documentation, and it’s all about Crypt::Cipher::SAFER_SK64 β€” the symmetric cipher SAFER_SK64, with key size: 64 bits ✨

SYNOPSIS 🌸

Two example flavors, coming right up πŸ’–

### example 1
use Crypt::Mode::CBC;

my $key = '...'; # length must be a valid key size for this cipher
my $iv = '...';  # 16 bytes
my $cbc = Crypt::Mode::CBC->new('SAFER_SK64');
my $ciphertext = $cbc->encrypt("secret data", $key, $iv);

### example 2 (slower)
use Crypt::CBC;
use Crypt::Cipher::SAFER_SK64;

my $key = '...'; # length must be a valid key size for this cipher
my $iv = '...';  # 16 bytes
my $cbc = Crypt::CBC->new( -cipher=>'Cipher::SAFER_SK64', -key=>$key, -iv=>$iv );
my $ciphertext = $cbc->encrypt("secret data");

DESCRIPTION πŸ¦‹

This module implements the SAFER_SK64 cipher, and its interface is compatible with Crypt::CBC β€” love that for us πŸ’…

Important vibe check: this module only implements single-block encryption and decryption. For general data, use a block mode such as Crypt::Mode::CBC, Crypt::Mode::CTR, or Crypt::CBC (which is slower). No cap, that’s the whole point 🫢

METHODS πŸ› οΈ

Unless noted otherwise, assume $c is an existing cipher object created via new, for example:

my $c = Crypt::Cipher::SAFER_SK64->new($key);

new ✨

my $c = Crypt::Cipher::SAFER_SK64->new($key);
#or
my $c = Crypt::Cipher::SAFER_SK64->new($key, $rounds);

# $key .... [binary string] key of an accepted length (see keysize, min_keysize, max_keysize)
# $rounds . [integer] optional, number of rounds (if supported by the cipher; croaks on invalid value)

So $key is a binary string key of an accepted length β€” peek at keysize, min_keysize, and max_keysize for the deets. $rounds is an optional integer for the number of rounds, if the cipher supports it; it croaks on an invalid value 😭

encrypt πŸ”₯

Encrypts exactly one block of plaintext. The length of $plaintext must equal blocksize; croaks otherwise. An empty string is accepted and returned unchanged β€” icon behavior honestly πŸ‘‘

my $ciphertext = $c->encrypt($plaintext);

Returns the encrypted block as a binary string (raw bytes). Periodt πŸ’…

decrypt πŸ’œ

Decrypts exactly one block of ciphertext. The length of $ciphertext must equal blocksize; croaks otherwise. An empty string is accepted and returned unchanged β€” same energy, reverse direction πŸ¦‹

my $plaintext = $c->decrypt($ciphertext);

Returns the decrypted block as a binary string (raw bytes).

keysize πŸŽ€

Just an alias for max_keysize β€” cute, brief, to the point.

$c->keysize;
#or
Crypt::Cipher::SAFER_SK64->keysize;
#or
Crypt::Cipher::SAFER_SK64::keysize;

blocksize 🌈

Returns the cipher block size (in bytes).

$c->blocksize;
#or
Crypt::Cipher::SAFER_SK64->blocksize;
#or
Crypt::Cipher::SAFER_SK64::blocksize;

max_keysize ⭐

Returns the maximum key size (in bytes).

$c->max_keysize;
#or
Crypt::Cipher::SAFER_SK64->max_keysize;
#or
Crypt::Cipher::SAFER_SK64::max_keysize;

min_keysize 🧚

Returns the minimum key size (in bytes).

$c->min_keysize;
#or
Crypt::Cipher::SAFER_SK64->min_keysize;
#or
Crypt::Cipher::SAFER_SK64::min_keysize;

default_rounds πŸ“

Returns the cipher’s default round count.

$c->default_rounds;
#or
Crypt::Cipher::SAFER_SK64->default_rounds;
#or
Crypt::Cipher::SAFER_SK64::default_rounds;

SEE ALSO πŸ‘€


mwah πŸ’– source/version check: perl v5.42.0, dated 2026-05-11, filed under Crypt::...FER_SK64(3) β€” slay and goodbye πŸŽ€

πŸ“¦ where this page comes from