msoffcrypto.format package¶
Submodules¶
msoffcrypto.format.base module¶
msoffcrypto.format.common module¶
msoffcrypto.format.doc97 module¶
- class msoffcrypto.format.doc97.Doc97File(file)[source]¶
Bases:
BaseOfficeFile
Return a MS-DOC file object.
Examples
>>> with open("tests/inputs/rc4cryptoapi_password.doc", "rb") as f: ... officefile = Doc97File(f) ... officefile.load_key(password="Password1234_")
>>> with open("tests/inputs/rc4cryptoapi_password.doc", "rb") as f: ... officefile = Doc97File(f) ... officefile.load_key(password="0000") Traceback (most recent call last): ... msoffcrypto.exceptions.InvalidKeyError: ...
- class msoffcrypto.format.doc97.FibBase(wIdent, nFib, unused, lid, pnNext, fDot, fGlsy, fComplex, fHasPic, cQuickSaves, fEncrypted, fWhichTblStm, fReadOnlyRecommended, fWriteReservation, fExtChar, fLoadOverride, fFarEast, nFibBack, fObfuscation, IKey, envr, fMac, fEmptySpecial, fLoadOverridePage, reserved1, reserved2, fSpare0, reserved3, reserved4, reserved5, reserved6)¶
Bases:
tuple
- IKey¶
Alias for field number 19
- cQuickSaves¶
Alias for field number 9
- envr¶
Alias for field number 20
- fComplex¶
Alias for field number 7
- fDot¶
Alias for field number 5
- fEmptySpecial¶
Alias for field number 22
- fEncrypted¶
Alias for field number 10
- fExtChar¶
Alias for field number 14
- fFarEast¶
Alias for field number 16
- fGlsy¶
Alias for field number 6
- fHasPic¶
Alias for field number 8
- fLoadOverride¶
Alias for field number 15
- fLoadOverridePage¶
Alias for field number 23
- fMac¶
Alias for field number 21
- fObfuscation¶
Alias for field number 18
- fReadOnlyRecommended¶
Alias for field number 12
- fSpare0¶
Alias for field number 26
- fWhichTblStm¶
Alias for field number 11
- fWriteReservation¶
Alias for field number 13
- lid¶
Alias for field number 3
- nFib¶
Alias for field number 1
- nFibBack¶
Alias for field number 17
- pnNext¶
Alias for field number 4
- reserved1¶
Alias for field number 24
- reserved2¶
Alias for field number 25
- reserved3¶
Alias for field number 27
- reserved4¶
Alias for field number 28
- reserved5¶
Alias for field number 29
- reserved6¶
Alias for field number 30
- unused¶
Alias for field number 2
- wIdent¶
Alias for field number 0
msoffcrypto.format.ooxml module¶
- class msoffcrypto.format.ooxml.OOXMLFile(file)[source]¶
Bases:
BaseOfficeFile
Return an OOXML file object.
Examples
>>> with open("tests/inputs/example_password.docx", "rb") as f: ... officefile = OOXMLFile(f) ... officefile.load_key(password="Password1234_", verify_password=True)
>>> with open("tests/inputs/example_password.docx", "rb") as f: ... officefile = OOXMLFile(f) ... officefile.load_key(password="0000", verify_password=True) Traceback (most recent call last): ... msoffcrypto.exceptions.InvalidKeyError: ...
- decrypt(ofile, verify_integrity=False)[source]¶
>>> from msoffcrypto import exceptions >>> from io import BytesIO; ofile = BytesIO() >>> with open("tests/outputs/ecma376standard_password_plain.docx", "rb") as f: ... officefile = OOXMLFile(f) ... officefile.load_key("1234") ... officefile.decrypt(ofile) Traceback (most recent call last): msoffcrypto.exceptions.DecryptionError: Unencrypted document
- encrypt(password, ofile)[source]¶
>>> from msoffcrypto.format.ooxml import OOXMLFile >>> from io import BytesIO; ofile = BytesIO() >>> with open("tests/outputs/example.docx", "rb") as f: ... officefile = OOXMLFile(f) ... officefile.encrypt("1234", ofile)
msoffcrypto.format.ppt97 module¶
- class msoffcrypto.format.ppt97.CurrentUser(currentuseratom)¶
Bases:
tuple
- currentuseratom¶
Alias for field number 0
- class msoffcrypto.format.ppt97.CurrentUserAtom(rh, size, headerToken, offsetToCurrentEdit, lenUserName, docFileVersion, majorVersion, minorVersion, unused, ansiUserName, relVersion, unicodeUserName)¶
Bases:
tuple
- ansiUserName¶
Alias for field number 9
- docFileVersion¶
Alias for field number 5
- headerToken¶
Alias for field number 2
- lenUserName¶
Alias for field number 4
- majorVersion¶
Alias for field number 6
- minorVersion¶
Alias for field number 7
- offsetToCurrentEdit¶
Alias for field number 3
- relVersion¶
Alias for field number 10
- rh¶
Alias for field number 0
- size¶
Alias for field number 1
- unicodeUserName¶
Alias for field number 11
- unused¶
Alias for field number 8
- class msoffcrypto.format.ppt97.PersistDirectoryAtom(rh, rgPersistDirEntry)¶
Bases:
tuple
- rgPersistDirEntry¶
Alias for field number 1
- rh¶
Alias for field number 0
- class msoffcrypto.format.ppt97.PersistDirectoryEntry(persistId, cPersist, rgPersistOffset)¶
Bases:
tuple
- cPersist¶
Alias for field number 1
- persistId¶
Alias for field number 0
- rgPersistOffset¶
Alias for field number 2
- class msoffcrypto.format.ppt97.Ppt97File(file)[source]¶
Bases:
BaseOfficeFile
Return a MS-PPT file object.
Examples
>>> with open("tests/inputs/rc4cryptoapi_password.ppt", "rb") as f: ... officefile = Ppt97File(f) ... officefile.load_key(password="Password1234_")
>>> with open("tests/inputs/rc4cryptoapi_password.ppt", "rb") as f: ... officefile = Ppt97File(f) ... officefile.load_key(password="0000") Traceback (most recent call last): ... msoffcrypto.exceptions.InvalidKeyError: ...
- class msoffcrypto.format.ppt97.RecordHeader(recVer, recInstance, recType, recLen)¶
Bases:
tuple
- recInstance¶
Alias for field number 1
- recLen¶
Alias for field number 3
- recType¶
Alias for field number 2
- recVer¶
Alias for field number 0
- class msoffcrypto.format.ppt97.UserEditAtom(rh, lastSlideIdRef, version, minorVersion, majorVersion, offsetLastEdit, offsetPersistDirectory, docPersistIdRef, persistIdSeed, lastView, unused, encryptSessionPersistIdRef)¶
Bases:
tuple
- docPersistIdRef¶
Alias for field number 7
- encryptSessionPersistIdRef¶
Alias for field number 11
- lastSlideIdRef¶
Alias for field number 1
- lastView¶
Alias for field number 9
- majorVersion¶
Alias for field number 4
- minorVersion¶
Alias for field number 3
- offsetLastEdit¶
Alias for field number 5
- offsetPersistDirectory¶
Alias for field number 6
- persistIdSeed¶
Alias for field number 8
- rh¶
Alias for field number 0
- unused¶
Alias for field number 10
- version¶
Alias for field number 2
msoffcrypto.format.xls97 module¶
- class msoffcrypto.format.xls97.Xls97File(file)[source]¶
Bases:
BaseOfficeFile
Return a MS-XLS file object.
Examples
>>> with open("tests/inputs/rc4cryptoapi_password.xls", "rb") as f: ... officefile = Xls97File(f) ... officefile.load_key(password="Password1234_")
>>> with open("tests/inputs/xor_password_123456789012345.xls", "rb") as f: ... officefile = Xls97File(f) ... officefile.load_key(password="123456789012345")
>>> with open("tests/inputs/rc4cryptoapi_password.xls", "rb") as f: ... officefile = Xls97File(f) ... officefile.load_key(password="0000") Traceback (most recent call last): ... msoffcrypto.exceptions.InvalidKeyError: ...