Skip to content

Commit

Permalink
libreoffice2john.py: error in encrypted 24.2+ files
Browse files Browse the repository at this point in the history
Warn that LibreOffice 24.2+ encrypted documents are not supported.

See: #5652.

Signed-off-by: Claudio André <dev@claudioandre.slmail.me>
  • Loading branch information
claudioandre-br authored and solardiz committed Feb 1, 2025
1 parent 126b2a4 commit 3022b1f
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions run/libreoffice2john.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,26 @@ def process_file(filename):
elements = list(r.getiterator())

is_encrypted = False
is_supported = True
key_size = 16
start_key_generation_name = "SHA1"

for element in elements:
if element.get("{urn:oasis:names:tc:opendocument:xmlns:manifest:1.0}full-path") == "encrypted-package":
is_supported = False

if element.get("{urn:oasis:names:tc:opendocument:xmlns:manifest:1.0}key-derivation-name") is not None:
key_derivation_name = element.get("{urn:oasis:names:tc:opendocument:xmlns:manifest:1.0}key-derivation-name")

if element.get("{urn:oasis:names:tc:opendocument:xmlns:manifest:1.0}algorithm-name") is not None:
algorithm_name = element.get("{urn:oasis:names:tc:opendocument:xmlns:manifest:1.0}algorithm-name")

if not is_supported:
sys.stderr.write("%s is an unsupported encrypted OpenOffice file!\n" % filename)
sys.stderr.write("- Algorithm name: '%s';\n" % algorithm_name)
sys.stderr.write("- Key derivation name: '%s'.\n" % key_derivation_name)
return 14

for i in range(0, len(elements) - 4):
element = elements[i]
if element.get("{urn:oasis:names:tc:opendocument:xmlns:manifest:1.0}full-path") == "content.xml":
Expand Down

0 comments on commit 3022b1f

Please sign in to comment.