Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
Encryption
n/a
0 / 0
n/a
0 / 0
0
n/a
0 / 0
1<?php
2
3namespace Config;
4
5use CodeIgniter\Config\BaseConfig;
6
7/**
8 * Encryption configuration.
9 *
10 * These are the settings used for encryption, if you don't pass a parameter
11 * array to the encrypter for creation/initialization.
12 */
13class Encryption extends BaseConfig
14{
15    /**
16     * --------------------------------------------------------------------------
17     * Encryption Key Starter
18     * --------------------------------------------------------------------------
19     *
20     * If you use the Encryption class you must set an encryption key (seed).
21     * You need to ensure it is long enough for the cipher and mode you plan to use.
22     * See the user guide for more info.
23     */
24    public string $key = '';
25
26    /**
27     * --------------------------------------------------------------------------
28     * Previous Encryption Keys
29     * --------------------------------------------------------------------------
30     *
31     * When rotating encryption keys, add old keys here to maintain ability
32     * to decrypt data encrypted with previous keys. Encryption always uses
33     * the current $key. Decryption tries current key first, then falls back
34     * to previous keys if decryption fails.
35     *
36     * In .env file, use comma-separated string:
37     *   encryption.previousKeys = hex2bin:9be8c64fcea509867...,hex2bin:3f5a1d8e9c2b7a4f6...
38     *
39     * @var list<string>|string
40     */
41    public array|string $previousKeys = '';
42
43    /**
44     * --------------------------------------------------------------------------
45     * Encryption Driver to Use
46     * --------------------------------------------------------------------------
47     *
48     * One of the supported encryption drivers.
49     *
50     * Available drivers:
51     * - OpenSSL
52     * - Sodium
53     */
54    public string $driver = 'OpenSSL';
55
56    /**
57     * --------------------------------------------------------------------------
58     * SodiumHandler's Padding Length in Bytes
59     * --------------------------------------------------------------------------
60     *
61     * This is the number of bytes that will be padded to the plaintext message
62     * before it is encrypted. This value should be greater than zero.
63     *
64     * See the user guide for more information on padding.
65     */
66    public int $blockSize = 16;
67
68    /**
69     * --------------------------------------------------------------------------
70     * Encryption digest
71     * --------------------------------------------------------------------------
72     *
73     * HMAC digest to use, e.g. 'SHA512' or 'SHA256'. Default value is 'SHA512'.
74     */
75    public string $digest = 'SHA512';
76
77    /**
78     * Whether the cipher-text should be raw. If set to false, then it will be base64 encoded.
79     * This setting is only used by OpenSSLHandler.
80     *
81     * Set to false for CI3 Encryption compatibility.
82     */
83    public bool $rawData = true;
84
85    /**
86     * Encryption key info.
87     * This setting is only used by OpenSSLHandler.
88     *
89     * Set to 'encryption' for CI3 Encryption compatibility.
90     */
91    public string $encryptKeyInfo = '';
92
93    /**
94     * Authentication key info.
95     * This setting is only used by OpenSSLHandler.
96     *
97     * Set to 'authentication' for CI3 Encryption compatibility.
98     */
99    public string $authKeyInfo = '';
100
101    /**
102     * Cipher to use.
103     * This setting is only used by OpenSSLHandler.
104     *
105     * Set to 'AES-128-CBC' to decrypt encrypted data that encrypted
106     * by CI3 Encryption default configuration.
107     */
108    public string $cipher = 'AES-256-CTR';
109}