Joomla CMS  3.10.11 (avec JPlatform 13.1 inclus)
Documentation des API du CMS Joomla en version 3.10.11 et du framework Joomla Platform intégré
Référence de la classe AKEncryptionAES

Fonctions membres publiques statiques

static AESEncryptCtr ($plaintext, $password, $nBits)
 
static AESDecryptCtr ($ciphertext, $password, $nBits)
 
static AESDecryptCBC ($ciphertext, $password)
 
static createTheWrongIV ($password)
 
static expandKey ($password)
 
static getAdapter ()
 
static getPbkdf2Algorithm ()
 
static setPbkdf2Algorithm ($pbkdf2Algorithm)
 
static getPbkdf2Iterations ()
 
static setPbkdf2Iterations ($pbkdf2Iterations)
 
static getPbkdf2UseStaticSalt ()
 
static setPbkdf2UseStaticSalt ($pbkdf2UseStaticSalt)
 
static getPbkdf2StaticSalt ()
 
static setPbkdf2StaticSalt ($pbkdf2StaticSalt)
 
static getKeyDerivationParameters ()
 
static pbkdf2 ($password, $salt, $algorithm='sha1', $count=1000, $key_length=16)
 

Fonctions membres protégées statiques

static Cipher ($input, $w)
 
static AddRoundKey ($state, $w, $rnd, $Nb)
 
static SubBytes ($s, $Nb)
 
static ShiftRows ($s, $Nb)
 
static MixColumns ($s)
 
static KeyExpansion ($key)
 
static SubWord ($w)
 
static RotWord ($w)
 
static urs ($a, $b)
 

Attributs protégés statiques

static $Sbox
 
static $Rcon
 
static $passwords = array()
 

Fonctions membres privées statiques

static getStaticSaltExpandedKey ($password)
 

Attributs privés statiques

static $pbkdf2Algorithm = 'sha1'
 
static $pbkdf2Iterations = 1000
 
static $pbkdf2UseStaticSalt = 0
 
static $pbkdf2StaticSalt = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
 

Description détaillée

AES implementation in PHP (c) Chris Veness 2005-2016. Right to use and adapt is granted for under a simple creative commons attribution licence. No warranty of any form is offered.

Heavily modified for Akeeba Backup by Nicholas K. Dionysopoulos Also added AES-128 CBC mode (with mcrypt and OpenSSL) on top of AES CTR

Documentation des fonctions membres

◆ AddRoundKey()

static AddRoundKey (   $state,
  $w,
  $rnd,
  $Nb 
)
staticprotected

Références $r, et $state.

◆ AESDecryptCBC()

static AESDecryptCBC (   $ciphertext,
  $password 
)
static

AES decryption in CBC mode. This is the standard mode (the CTR methods actually use Rijndael-128 in CTR mode, which - technically - isn't AES).

It supports AES-128 only. It assumes that the last 4 bytes contain a little-endian unsigned long integer representing the unpadded data length.

Depuis
3.0.1
Auteur
Nicholas K. Dionysopoulos
Paramètres
string$ciphertextThe data to encrypt
string$passwordEncryption password
Renvoie
string The plaintext

Références $key, $params, $password, et elseif.

◆ AESDecryptCtr()

static AESDecryptCtr (   $ciphertext,
  $password,
  $nBits 
)
static

Decrypt a text encrypted by AES in counter mode of operation

Paramètres
string$ciphertextSource text to be decrypted
string$passwordThe password to use to generate a key
int$nBitsNumber of bits to be used in the key (128, 192, or 256)
Renvoie
string Decrypted text

Références $b, $i, $key, et $password.

◆ AESEncryptCtr()

static AESEncryptCtr (   $plaintext,
  $password,
  $nBits 
)
static

Encrypt a text using AES encryption in Counter mode of operation

Unicode multi-byte character safe

Paramètres
string$plaintextSource text to be encrypted
string$passwordThe password to use to generate a key
int$nBitsNumber of bits to be used in the key (128, 192, or 256)
Renvoie
string Encrypted text

Références $b, $i, $key, et $password.

◆ Cipher()

static Cipher (   $input,
  $w 
)
staticprotected

AES Cipher function: encrypt 'input' with Rijndael algorithm

Paramètres
array$inputMessage as byte-array (16 bytes)
array$wkey schedule as 2D byte-array (Nr+1 x Nb bytes) - generated from the cipher key by KeyExpansion()
Renvoie
string Ciphertext as byte-array (16 bytes)

Références $i, $input, $output, et $state.

◆ createTheWrongIV()

static createTheWrongIV (   $password)
static

That's the old way of creating an IV that's definitely not cryptographically sound.

DO NOT USE, EVER, UNLESS YOU WANT TO DECRYPT LEGACY DATA

Paramètres
string$passwordThe raw password from which we create an IV in a super bozo way
Renvoie
string A 16-byte IV string

Références $i, $key, et $password.

◆ expandKey()

static expandKey (   $password)
static

Expand the password to an appropriate 128-bit encryption key

Paramètres
string$password
Renvoie
string
Depuis
5.2.0
Auteur
Nicholas K. Dionysopoulos

Références $i, $key, et $password.

◆ getAdapter()

static getAdapter ( )
static

Returns the correct AES-128 CBC encryption adapter

Renvoie
AKEncryptionAESAdapterInterface
Depuis
5.2.0
Auteur
Nicholas K. Dionysopoulos

Références null.

◆ getKeyDerivationParameters()

static getKeyDerivationParameters ( )
static

Get the parameters fed into PBKDF2 to expand the user password into an encryption key. These are the static parameters (key size, hashing algorithm and number of iterations). A new salt is used for each encryption block to minimize the risk of attacks against the password.

Renvoie
array

◆ getPbkdf2Algorithm()

static getPbkdf2Algorithm ( )
static
Renvoie
string

◆ getPbkdf2Iterations()

static getPbkdf2Iterations ( )
static
Renvoie
int

◆ getPbkdf2StaticSalt()

static getPbkdf2StaticSalt ( )
static
Renvoie
string

◆ getPbkdf2UseStaticSalt()

static getPbkdf2UseStaticSalt ( )
static
Renvoie
int

◆ getStaticSaltExpandedKey()

static getStaticSaltExpandedKey (   $password)
staticprivate

Get the expanded key from the user supplied password using a static salt. The results are cached for performance reasons.

Paramètres
string$passwordThe user-supplied password, UTF-8 encoded.
Renvoie
string The expanded key

Références $params, et $password.

◆ KeyExpansion()

static KeyExpansion (   $key)
staticprotected

Key expansion for Rijndael Cipher(): performs key expansion on cipher key to generate a key schedule

Paramètres
array$keyCipher key byte-array (16 bytes)
Renvoie
array Key schedule as 2D byte-array (Nr+1 x Nb bytes)

Références $i, $key, et $r.

◆ MixColumns()

static MixColumns (   $s)
staticprotected

Références $b, et $i.

◆ pbkdf2()

static pbkdf2 (   $password,
  $salt,
  $algorithm = 'sha1',
  $count = 1000,
  $key_length = 16 
)
static

PBKDF2 key derivation function as defined by RSA's PKCS #5: https://www.ietf.org/rfc/rfc2898.txt

Test vectors can be found here: https://www.ietf.org/rfc/rfc6070.txt

This implementation of PBKDF2 was originally created by https://defuse.ca With improvements by http://www.variations-of-shadow.com Modified for Akeeba Engine by Akeeba Ltd (removed unnecessary checks to make it faster)

Paramètres
string$passwordThe password.
string$saltA salt that is unique to the password.
string$algorithmThe hash algorithm to use. Default is sha1.
int$countIteration count. Higher is better, but slower. Default: 1000.
int$key_lengthThe length of the derived key in bytes.
Renvoie
string A string of $key_length bytes

Références $count, $i, $output, et $password.

◆ RotWord()

static RotWord (   $w)
staticprotected

Références $i, et $tmp.

◆ setPbkdf2Algorithm()

static setPbkdf2Algorithm (   $pbkdf2Algorithm)
static
Paramètres
string$pbkdf2Algorithm
Renvoie
void

Références $pbkdf2Algorithm.

◆ setPbkdf2Iterations()

static setPbkdf2Iterations (   $pbkdf2Iterations)
static
Paramètres
int$pbkdf2Iterations
Renvoie
void

Références $pbkdf2Iterations.

◆ setPbkdf2StaticSalt()

static setPbkdf2StaticSalt (   $pbkdf2StaticSalt)
static
Paramètres
string$pbkdf2StaticSalt
Renvoie
void

Références $pbkdf2StaticSalt.

◆ setPbkdf2UseStaticSalt()

static setPbkdf2UseStaticSalt (   $pbkdf2UseStaticSalt)
static
Paramètres
int$pbkdf2UseStaticSalt
Renvoie
void

Références $pbkdf2UseStaticSalt.

◆ ShiftRows()

static ShiftRows (   $s,
  $Nb 
)
staticprotected

Références $r.

◆ SubBytes()

static SubBytes (   $s,
  $Nb 
)
staticprotected

Références $r.

◆ SubWord()

static SubWord (   $w)
staticprotected

Références $i.

◆ urs()

static urs (   $a,
  $b 
)
staticprotected

Références $b.

Documentation des champs

◆ $passwords

$passwords = array()
staticprotected

◆ $pbkdf2Algorithm

$pbkdf2Algorithm = 'sha1'
staticprivate

Référencé par setPbkdf2Algorithm().

◆ $pbkdf2Iterations

$pbkdf2Iterations = 1000
staticprivate

Référencé par setPbkdf2Iterations().

◆ $pbkdf2StaticSalt

$pbkdf2StaticSalt = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
staticprivate

Référencé par setPbkdf2StaticSalt().

◆ $pbkdf2UseStaticSalt

$pbkdf2UseStaticSalt = 0
staticprivate

Référencé par setPbkdf2UseStaticSalt().

◆ $Rcon

$Rcon
staticprotected
Valeur initiale :
= array(
array(0x00, 0x00, 0x00, 0x00),
array(0x01, 0x00, 0x00, 0x00),
array(0x02, 0x00, 0x00, 0x00),
array(0x04, 0x00, 0x00, 0x00),
array(0x08, 0x00, 0x00, 0x00),
array(0x10, 0x00, 0x00, 0x00),
array(0x20, 0x00, 0x00, 0x00),
array(0x40, 0x00, 0x00, 0x00),
array(0x80, 0x00, 0x00, 0x00),
array(0x1b, 0x00, 0x00, 0x00),
array(0x36, 0x00, 0x00, 0x00))

◆ $Sbox

$Sbox
staticprotected
Valeur initiale :
=
array(0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76,
0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0,
0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,
0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75,
0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84,
0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,
0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8,
0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2,
0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,
0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb,
0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79,
0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,
0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a,
0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e,
0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,
0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16)

La documentation de cette classe a été générée à partir du fichier suivant :