Code Duplication    Length = 30-30 lines in 2 locations

src/Encryption/AbstractEncryption.php 1 location

@@ 228-257 (lines=30) @@
225
     * @param  bool   $encryptMetadata
226
     * @return string
227
     */
228
    private function computeEncryptionKey(
229
        $password,
230
        $revision,
231
        $keyLength,
232
        $ownerEntry,
233
        $permissions,
234
        $idEntry,
235
        $encryptMetadata = true
236
    ) {
237
        $string = substr($password . self::ENCRYPTION_PADDING, 0, 32)
238
                . $ownerEntry
239
                . pack('V', $permissions)
240
                . $idEntry;
241
242
        if ($revision >= 4 && $encryptMetadata) {
243
            $string .= "\0xff\0xff\0xff\0xff";
244
        }
245
246
        $hash = hex2bin(md5($string));
247
248
        if ($revision >= 3) {
249
            for ($i = 0; $i < 50; ++$i) {
250
                $hash = hex2bin(md5(substr($hash, 0, $keyLength)));
251
            }
252
253
            return substr($hash, 0, $keyLength);
254
        }
255
256
        return substr($hash, 0, 5);
257
    }
258
259
    /**
260
     * Computes the owner entry as defined by algorithm 3.3 in 3.5.2.

src/Utils/EncryptionUtils.php 1 location

@@ 37-66 (lines=30) @@
34
     * @param  bool   $encryptMetadata
35
     * @return string
36
     */
37
    public static function computeEncryptionKey(
38
        $password,
39
        $revision,
40
        $keyLength,
41
        $ownerEntry,
42
        $permissions,
43
        $idEntry,
44
        $encryptMetadata = true
45
    ) {
46
        $string = substr($password . self::ENCRYPTION_PADDING, 0, 32)
47
                . $ownerEntry
48
                . pack('V', $permissions)
49
                . $idEntry;
50
51
        if ($revision >= 4 && $encryptMetadata) {
52
            $string .= "\0xff\0xff\0xff\0xff";
53
        }
54
55
        $hash = hex2bin(md5($string));
56
57
        if ($revision >= 3) {
58
            for ($i = 0; $i < 50; ++$i) {
59
                $hash = hex2bin(md5(substr($hash, 0, $keyLength)));
60
            }
61
62
            return substr($hash, 0, $keyLength);
63
        }
64
65
        return substr($hash, 0, 5);
66
    }
67
68
    /**
69
     * Computes the owner entry as defined by algorithm 3.3 in 3.5.2.