REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 29.36 KB
Close
/proc/thread-self/root/opt/imunify360/venv/lib/python3.11/site-packages/Crypto/Protocol/__pycache__/KDF.cpython-311.pyc
Text
Base64
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KHN0cmluZyk6CiAgICAgICAgVGhlIHNlY3JldCBwYXNzd29yZCB0byBnZW5lcmF0ZSB0aGUga2V5IGZyb20uCiAgICAgc2FsdCAoYnl0ZSBzdHJpbmcpOgogICAgICAgIEFuIDggYnl0ZSBzdHJpbmcgdG8gdXNlIGZvciBiZXR0ZXIgcHJvdGVjdGlvbiBmcm9tIGRpY3Rpb25hcnkgYXR0YWNrcy4KICAgICAgICBUaGlzIHZhbHVlIGRvZXMgbm90IG5lZWQgdG8gYmUga2VwdCBzZWNyZXQsIGJ1dCBpdCBzaG91bGQgYmUgcmFuZG9tbHkKICAgICAgICBjaG9zZW4gZm9yIGVhY2ggZGVyaXZhdGlvbi4KICAgICBka0xlbiAoaW50ZWdlcik6CiAgICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgZGVzaXJlZCBrZXkuIFRoZSBkZWZhdWx0IGlzIDE2IGJ5dGVzLCBzdWl0YWJsZSBmb3IKICAgICAgICBpbnN0YW5jZSBmb3IgOm1vZDpgQ3J5cHRvLkNpcGhlci5BRVNgLgogICAgIGNvdW50IChpbnRlZ2VyKToKICAgICAgICBUaGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgdG8gY2Fycnkgb3V0LiBUaGUgcmVjb21tZW5kYXRpb24gaXMgMTAwMCBvcgogICAgICAgIG1vcmUuCiAgICAgaGFzaEFsZ28gKG1vZHVsZSk6CiAgICAgICAgVGhlIGhhc2ggYWxnb3JpdGhtIHRvIHVzZSwgYXMgYSBtb2R1bGUgb3IgYW4gb2JqZWN0IGZyb20gdGhlIDptb2Q6YENyeXB0by5IYXNoYCBwYWNrYWdlLgogICAgICAgIFRoZSBkaWdlc3QgbGVuZ3RoIG11c3QgYmUgbm8gc2hvcnRlciB0aGFuIGBgZGtMZW5gYC4KICAgICAgICBUaGUgZGVmYXVsdCBhbGdvcml0aG0gaXMgOm1vZDpgQ3J5cHRvLkhhc2guU0hBMWAuCgogICAgUmV0dXJuOgogICAgICAgIEEgYnl0ZSBzdHJpbmcgb2YgbGVuZ3RoIGBgZGtMZW5gYCB0aGF0IGNhbiBiZSB1c2VkIGFzIGtleS4KICAgIHo6U2VsZWN0ZWQgaGFzaCBhbGdvcml0aG0gaGFzIGEgdG9v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YWN0ZXJzIHdpdGggY29kZXBvaW50cyA+IDI1NS4KICAgICBzYWx0IChzdHJpbmcgb3IgYnl0ZSBzdHJpbmcpOgogICAgICAgIEEgKGJ5dGUpIHN0cmluZyB0byB1c2UgZm9yIGJldHRlciBwcm90ZWN0aW9uIGZyb20gZGljdGlvbmFyeSBhdHRhY2tzLgogICAgICAgIFRoaXMgdmFsdWUgZG9lcyBub3QgbmVlZCB0byBiZSBrZXB0IHNlY3JldCwgYnV0IGl0IHNob3VsZCBiZSByYW5kb21seQogICAgICAgIGNob3NlbiBmb3IgZWFjaCBkZXJpdmF0aW9uLiBJdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgYXQgbGVhc3QgMTYgYnl0ZXMuCgogICAgICAgIFN0cmluZ3Mgd2lsbCBiZSBlbmNvZGVkIGFzIElTTyA4ODU5LTEgKGFsc28ga25vd24gYXMgTGF0aW4tMSksCiAgICAgICAgd2hpY2ggZG9lcyBub3QgYWxsb3cgYW55IGNoYXJhY3RlcnMgd2l0aCBjb2RlcG9pbnRzID4gMjU1LgogICAgIGRrTGVuIChpbnRlZ2VyKToKICAgICAgICBUaGUgY3VtdWxhdGl2ZSBsZW5ndGggb2YgdGhlIGtleXMgdG8gcHJvZHVjZS4KCiAgICAgICAgRHVlIHRvIGEgZmxhdyBpbiB0aGUgUEJLREYyIGRlc2lnbiwgeW91IHNob3VsZCBub3QgcmVxdWVzdCBtb3JlIGJ5dGVzCiAgICAgICAgdGhhbiB0aGUgYGBwcmZgYCBjYW4gb3V0cHV0LiBGb3IgaW5zdGFuY2UsIGBgZGtMZW5gYCBzaG91bGQgbm90IGV4Y2VlZAogICAgICAgIDIwIGJ5dGVzIGluIGNvbWJpbmF0aW9uIHdpdGggYGBITUFDLVNIQTFgYC4KICAgICBjb3VudCAoaW50ZWdlcik6CiAgICAgICAgVGhlIG51bWJlciBvZiBpdGVyYXRpb25zIHRvIGNhcnJ5IG91dC4gVGhlIGhpZ2hlciB0aGUgdmFsdWUsIHRoZSBzbG93ZXIKICAgICAgICBhbmQgdGhlIG1vcmUgc2VjdXJlIHRoZSBmdW5jdGlvbiBiZWNvbWVzLgoKICAgICAgICBZb3Ugc2hvdWxkIGZpbmQgdGhlIG1heGltdW0gbnVtYmVyIG9mIGl0ZXJhdGlvbnMgdGhhdCBrZWVwcyB0aGUKICAgICAgICBrZXkgZGVyaXZhdGlvbiBzdGlsbCBhY2NlcHRhYmxlIG9uIHRoZSBzbG93ZXN0IGhhcmR3YXJlIHlvdSBtdXN0IHN1cHBvcnQuCgogICAgICAgIEFsdGhvdWdoIHRoZSBkZWZhdWx0IHZhbHVlIGlzIDEwMDAsICoqaXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIGF0IGxlYXN0CiAgICAgICAgMTAwMDAwMCAoMSBtaWxsaW9uKSBpdGVyYXRpb25zKiouCiAgICAgcHJmIChjYWxsYWJsZSk6CiAgICAgICAgQSBwc2V1ZG9yYW5kb20gZnVuY3Rpb24uIEl0IG11c3QgYmUgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYQogICAgICAgIHBzZXVkb3JhbmRvbSBieXRlIHN0cmluZyBmcm9tIHR3byBwYXJhbWV0ZXJzOiBhIHNlY3JldCBhbmQgYSBzYWx0LgogICAgICAgIFRoZSBzbG93ZXIgdGhlIGFsZ29yaXRobSwgdGhlIG1vcmUgc2VjdXJlIHRoZSBkZXJpdmF0aW9uIGZ1bmN0aW9uLgogICAgICAgIElmIG5vdCBzcGVjaWZpZWQsICoqSE1BQy1TSEExKiogaXMgdXNlZC4KICAgICBobWFjX2hhc2hfbW9kdWxlIChtb2R1bGUpOgogICAgICAgIEEgbW9kdWxlIGZyb20gYGBDcnlwdG8uSGFzaGBgIGltcGxlbWVudGluZyBhIE1lcmtsZS1EYW1nYXJkIGNyeXB0b2dyYXBoaWMKICAgICAgICBoYXNoLCB3aGljaCBQQktERjIgbXVzdCB1c2UgaW4gY29tYmluYXRpb24gd2l0aCBITUFDLgogICAgICAgIFRoaXMgcGFyYW1ldGVyIGlzIG11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGBgcHJmYGAuCgogICAgUmV0dXJuOgogICAgICAgIEEgYnl0ZSBzdHJpbmcgb2YgbGVuZ3RoIGBgZGtMZW5gYCB0aGF0IGNhbiBiZSB1c2VkIGFzIGtleSBtYXRlcmlhbC4KICAgICAgICBJZiB5b3Ugd2FudCBtdWx0aXBsZSBr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LgogICAgIE4gKGludGVnZXIpOgogICAgICAgIENQVS9NZW1vcnkgY29zdCBwYXJhbWV0ZXIuIEl0IG11c3QgYmUgYSBwb3dlciBvZiAyIGFuZCBsZXNzCiAgICAgICAgdGhhbiA6bWF0aDpgMl57MzJ9YC4KICAgICByIChpbnRlZ2VyKToKICAgICAgICBCbG9jayBzaXplIHBhcmFtZXRlci4KICAgICBwIChpbnRlZ2VyKToKICAgICAgICBQYXJhbGxlbGl6YXRpb24gcGFyYW1ldGVyLgogICAgICAgIEl0IG11c3QgYmUgbm8gZ3JlYXRlciB0aGFuIDptYXRoOmAoMl57MzJ9LTEpLyg0cilgLgogICAgIG51bV9rZXlzIChpbnRlZ2VyKToKICAgICAgICBUaGUgbnVtYmVyIG9mIGtleXMgdG8gZGVyaXZlLiBFdmVyeSBrZXkgaXMgOmRhdGE6YGtleV9sZW5gIGJ5dGVzIGxvbmcuCiAgICAgICAgQnkgZGVmYXVsdCwgb25seSAxIGtleSBpcyBnZW5lcmF0ZWQuCiAgICAgICAgVGhlIG1heGltdW0gY3VtdWxhdGl2ZSBsZW5ndGggb2YgYWxsIGtleXMgaXMgOm1hdGg6YCgyXnszMn0tMSkqMzJgCiAgICAgICAgKHRoYXQgaXMsIDEyOFRCKS4KCiAgICBBIGdvb2QgY2hvaWNlIG9mIHBhcmFtZXRlcnMgKihOLCByICwgcCkqIHdhcyBzdWdnZXN0ZWQKICAgIGJ5IENvbGluIFBlcmNpdmFsIGluIGhpcyBgcHJlc2VudGF0aW9uIGluIDIwMDlgX186CgogICAgLSAqKCAywrnigbQsIDgsIDEgKSogZm9yIGludGVyYWN0aXZlIGxvZ2lucyAo4omkMTAwbXMpCiAgICAtICooIDLCsuKBsCwgOCwgMSApKiBmb3IgZmlsZSBlbmNyeXB0aW9uICjiiaQ1cykKCiAgICBSZXR1cm46CiAgICAgICAgQSBieXRlIHN0cmluZyBvciBhIHR1cGxlIG9mIGJ5dGUgc3RyaW5ncy4KCiAgICAuLiBfXzogaHR0cDovL3d3dy50YXJzbmFwLmNvbS9zY3J5cHQvc2NyeXB0LXNsaWRlcy5wZGYKICAgIHI6AAAAchwAAAB6Fk4gbXVz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bGljYXRpb25zL05JU1QuU1AuODAwLTEwOHIxLnBkZj5gXy4KCiAgICBBcmdzOgogICAgIG1hc3RlciAoYnl0ZSBzdHJpbmcpOgogICAgICAgIFRoZSBzZWNyZXQgdmFsdWUgdXNlZCBieSB0aGUgS0RGIHRvIGRlcml2ZSB0aGUgb3RoZXIga2V5cy4KICAgICAgICBJdCBtdXN0IG5vdCBiZSBhIHBhc3N3b3JkLgogICAgICAgIFRoZSBsZW5ndGggb24gdGhlIHNlY3JldCBtdXN0IGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgaW5wdXQgZXhwZWN0ZWQgYnkKICAgICAgICB0aGUgOmRhdGE6YHByZmAgZnVuY3Rpb24uCiAgICAga2V5X2xlbiAoaW50ZWdlcik6CiAgICAgICAgVGhlIGxlbmd0aCBpbiBieXRlcyBvZiBlYWNoIGRlcml2ZWQga2V5LgogICAgIHByZiAoZnVuY3Rpb24pOgogICAgICAgIEEgcHNldWRvcmFuZG9tIGZ1bmN0aW9uIHRoYXQgdGFrZXMgdHdvIGJ5dGUgc3RyaW5ncyBhcyBwYXJhbWV0ZXJzOgogICAgICAgIHRoZSBzZWNyZXQgYW5kIGFuIGlucHV0LiBJdCByZXR1cm5zIGFub3RoZXIgYnl0ZSBzdHJpbmcuCiAgICAgbnVtX2tleXMgKGludGVnZXIpOgogICAgICAgIFRoZSBudW1iZXIgb2Yga2V5cyB0byBkZXJpdmUuIEV2ZXJ5IGtleSBpcyA6ZGF0YTpga2V5X2xlbmAgYnl0ZXMgbG9uZy4KICAgICAgICBCeSBkZWZhdWx0LCBvbmx5IDEga2V5IGlzIGRlcml2ZWQuCiAgICAgbGFiZWwgKGJ5dGUgc3RyaW5nKToKICAgICAgICBPcHRpb25hbCBkZXNjcmlwdGlvbiBvZiB0aGUgcHVycG9zZSBvZiB0aGUgZGVyaXZlZCBrZXlzLgogICAgICAgIEl0IG11c3Qgbm90IGNvbnRhaW4gemVybyBieXRlcy4KICAgICBjb250ZXh0IChieXRlIHN0cmluZyk6CiAgICAgICAgT3B0aW9uYWwgaW5mb3JtYXRpb24gcGVydGFpbmluZyB0bwogICAgICAgIHRoZSBwcm90b2NvbCB0aGF0IHVz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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 3
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
KDF.cpython-311.pyc
29.36 KB
lrw-r--r--
2026-02-13 12:40:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
SecretSharing.cpython-311.pyc
10.04 KB
lrw-r--r--
2026-02-13 12:40:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-311.pyc
271 B
lrw-r--r--
2026-02-13 12:40:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).