Code Duplication    Length = 16-18 lines in 2 locations

src/SecureString.php 2 locations

@@ 211-226 (lines=16) @@
208
     * @param bool $throw Whether or not to throw an exception on error.
209
     * @return string Returns the encrypted string.
210
     */
211
    protected function encrypt($str, $method, $password, $iv = '', $throw = false) {
212
        if ($iv === '') {
213
            $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($method));
214
        }
215
        // Encrypt the string.
216
        $encrypted = openssl_encrypt($str, $method, $password, OPENSSL_RAW_DATA, $iv);
217
218
        if ($encrypted === false) {
219
            return $this->exception($throw, "Error encrypting the string.", 400);
220
        }
221
222
        $str = static::base64urlEncode($encrypted);
223
        $this->pushString($str, static::base64urlEncode($iv));
224
225
        return $str;
226
    }
227
228
    /**
229
     * Decrypt a string with {@link openssl_decrypt()}.
@@ 286-303 (lines=18) @@
283
     * @param bool $throw Whether or not the throw an exception on error.
284
     * @return string Returns the string with signing information or null on error.
285
     */
286
    protected function hmac($str, $method, $password, $timestamp = 0, $throw = false) {
287
        if ($timestamp === 0) {
288
            $timestamp = time();
289
        }
290
        // Add the timestamp to the string.
291
        static::pushString($str, $timestamp);
292
293
        // Sign the string.
294
        $signature = hash_hmac($method, $str, $password, true);
295
        if ($signature === false) {
296
            return $this->exception($throw, "Invalid hash method $method.", 400);
297
        }
298
299
        // Add the signature to the string.
300
        static::pushString($str, static::base64urlEncode($signature));
301
302
        return $str;
303
    }
304
305
    /**
306
     * Verify the signature on a secure string.