Skip to content

Specification Corpus — Triage & Relevance Map

This document triages every Microsoft Open Specification in the ../_research/openspec_md_files/ corpus for relevance to cracking passwords out of Office documents at rest. It is the map that drives the algorithm specs in ../algorithms/, the per-product tables in ../formats/, and the hashcat design in ../../hash_analysis/new_hashcat/.

Corpus: 424 specifications across 8 categories, converted from PDF to Markdown with pymupdf4llm (chosen over markitdown/docling/pdftotext because it was the only converter that preserved the encryption data-tables as real Markdown while staying fast enough for the ~17,000-page corpus on CPU).

Category Specs Contents
OfficeFileFormatsProtocols 24 Binary + shared + crypto formats (.doc, .xls, .ppt, .pst, .one, VBA, [MS-OFFCRYPTO])
MSOFFSTAND 20 OOXML + ODF standards support (ECMA-376, ISO 29500, ODF conformance)
OfficeProto 74 Office communications protocols (Lync / Skype / Groove / SIP / RTP)
Exchange_Protocols 129 Exchange Server + ActiveSync (MAPI, EWS, transport, calendar, contacts)
Exchange_Standards 6 IMAP / POP3 / iCalendar conformance notes
SharePointProtocols 168 SharePoint admin, search, forms, workflow, content databases, SSO
Windows_Wordpad_Standards_Support 2 WordPad ODF + ECMA-376 conformance
other 1 [MS-VBAL] VBA Language specification

Headline finding: of 424 specs, exactly 15 define or carry password/encryption material relevant to document-at-rest password recovery. The remaining 409 are communications protocols, server-side admin, email transport, drawing/chart/UI formats, or conformance notes that say "not supported." The expanded corpus (Exchange, SharePoint, WordPad, Exchange Standards) added zero new DIRECT or indirect specs — every crypto-term hit in the grep sweep was authentication in transit, "not supported" disclaimers, or a cross-reference to [MS-OFFCRYPTO].

Relevance ratings:

  • DIRECT — the document itself defines a password / encryption / hash / verifier algorithm or its on-disk wire structure. These are the primary sources for building a cracker.
  • indirect — the document defines a container / binary / OOXML format that holds encrypted streams, but the encryption itself is defined elsewhere (usually [MS-OFFCRYPTO]).
  • context — referenced by DIRECT/indirect specs but defines no algorithm and carries no encrypted data. Useful for cross-referencing, not for implementation.
  • none — unrelated to document-at-rest password cracking.

Tally: 6 DIRECT · 9 indirect · ~10 context · ~399 none · 424 total.

The 15 that matter

DIRECT — defines password/encryption algorithms (6 specs)

Spec Source Crypto sections What it defines
[MS-OFFCRYPTO] OfficeFileFormatsProtocols §2.3.4–§2.3.7, §2.4, §2.5 The primary source. Every password-based encryption scheme Office uses: agile (SHA-512/AES-256), standard (SHA-1/AES), RC4 CryptoAPI (SHA-1/RC4), legacy RC4 (MD5/RC4-40), XOR obfuscation, ISO write-protection hash, IRM/RMS data spaces, digital signatures. All KDFs, verifiers, wire structures, and constants.
[MS-OVBA] OfficeFileFormatsProtocols §2.3.1.15–.17, §2.4.3–.4 VBA project password: DPB/CMG/GC obfuscation wrapper (seeded XOR, §2.4.3), SHA-1(password‖Key) verifier (§2.4.4.4), plaintext-password path, Encode/Decode Nulls.
[MS-PST] OfficeFileFormatsProtocols §2.4.3.3, §4.1–4.2, §5.1–5.3 PST password (CRC-32 in PidTagPstPassword), NDB block ciphers (permutative/cyclic, keyless), CRC algorithm. Self-contained — does not use [MS-OFFCRYPTO].
[MS-OE376] MSOFFSTAND §2.1.410, §2.1.438, §2.1.621, §2.1.681–.682 OOXML protection password hash that ECMA-376 left unspecified: H(password,salt) + cryptSpinCount iterations, the ISO/Agile verifier wire structure (algorithmName, hashValue, saltValue, spinCount) for documentProtection, writeProtection, workbookProtection, sheetProtection.
[MS-OI29500] MSOFFSTAND §2.1.402, §2.1.426, §2.1.573, §2.1.586, §2.1.643, §2.1.653–.654, §2.1.1104 ISO/IEC 29500 protection verifier: full iterated-hash algorithm H_init=H(salt,password) + spinCount cycles for documentProtection, writeProtection, fileSharing, workbookProtection, sheetProtection, protectedRange, modifyVerifier.
[MS-XLSX] MSOFFSTAND §2.4.10, §2.6.55–.56, §4.1–4.2 CT_ProtectedRange wire structure: legacy 16-bit XOR verifier + modern algorithmName/hashValue/saltValue/spinCount attributes. Delegates algorithms to [MS-OFFCRYPTO].

indirect — containers holding encrypted data (9 specs)

Spec Source Why indirect
[MS-DOC] OfficeFileFormatsProtocols Binary .doc container: three password-to-open mechanisms (XOR, RC4-MD5, RC4-CryptoAPI) via FibBase.fEncrypted/fObfuscated, EncryptionHeader in Table stream, SttbfAssoc cleartext write-reservation, Dop.lKeyProtDoc protection verifier. Algorithms in [MS-OFFCRYPTO].
[MS-PPT] OfficeFileFormatsProtocols Binary .ppt container: CryptSession10Container carries RC4 CryptoAPI encryption. Cleartext modify password in ModifyPasswordAtom. Algorithms in [MS-OFFCRYPTO].
[MS-XLS] OfficeFileFormatsProtocols Binary .xls container: FilePass record selects encryption method, Password record (16-bit sheet/workbook), FileSharing (write-reservation), Prot4RevPass (revisions). VelvetSweatshop default password. Algorithms in [MS-OFFCRYPTO].
[MS-XLSB] OfficeFileFormatsProtocols Binary .xlsb container: BrtSheetProtectionIso, BrtBookProtectionIso, BrtFileSharingIso records carry the same ISO protection hash. Algorithms in [MS-OFFCRYPTO].
[MS-XLDM] OfficeFileFormatsProtocols PowerPivot data model: not itself encrypted (EncryptionFlag MUST be false), but defines CryptKey.bin whose key may come from [MS-OFFCRYPTO].
[MS-ONESTORE] OfficeFileFormatsProtocols OneNote revision store: ObjectDataEncryptionKeyV2FNDX (§2.5.19) marks encrypted object spaces. The blob interior is an [MS-OFFCRYPTO] EncryptionInfo (agile/standard/CryptoAPI).
[MS-OSHARED] OfficeFileFormatsProtocols Shared structures: DigSigBlob/WordSigBlob/DigSigInfoSerialized (§2.3.2) for digital signatures. Defines the container the signature lives in.
[MS-OFFMACRO2] MSOFFSTAND OOXML macro-enabled formats (.docm/.xlsm/.pptm): the OPC package that gets wrapped by [MS-OFFCRYPTO] when encrypted. Defines no encryption itself.
[MS-OODF14] MSOFFSTAND ODF 1.4 conformance: enumerates ODF manifest encryption elements (manifest:encrypted-key, encryption-method, keyinfo, CipherData). Records that Office does not implement ODF encryption.

Context-only specs (~10 specs)

Referenced by the DIRECT/indirect specs but define no algorithm and carry no encrypted data.

Spec Source Role
[MS-OODF] MSOFFSTAND ODF 1.1 conformance: references ODF encryption sections (17.3, 17.7.4–6) only to record that Office 2007 does not implement them.
[MS-OODF2] MSOFFSTAND ODF 1.1 v2 conformance matrix. Says "not supported" per feature.
[MS-OODF3] MSOFFSTAND ODF 1.1 v2 conformance for Office 2013+.
[MS-OODF13] MSOFFSTAND ODF 1.3 conformance: references Argon2id/AES-GCM encryption elements but confirms "not supported in Word/Excel/PowerPoint." No algorithm detail beyond [MS-OODF14].
[MS-ONE] OfficeFileFormatsProtocols OneNote content model (pages, outlines, properties). The encryption container is [MS-ONESTORE], not here.
[MS-OFFDI] OfficeFileFormatsProtocols Format roadmap: enumerates persistence formats across Office versions. No crypto.
[MS-OFFMACRO] MSOFFSTAND Original macro-enabled format delta. References VBA project storage but defines no encryption.
[MS-OFORMS] OfficeFileFormatsProtocols Office Forms (ActiveX controls). Contains VBA project references but no password/encryption.
[MS-DOCX] MSOFFSTAND Word OOXML extensions. Encryption lives in [MS-OFFCRYPTO], not here.
[MS-PPTX] MSOFFSTAND PowerPoint OOXML extensions. No encryption.

Bulk triage — categories with zero crypto relevance

OfficeProto/ — 74 specs, all out of scope

Real-time communications, presence, conferencing, transport, NAT-traversal, and telephony protocols for Lync / Skype for Business / Groove / SharePoint Workspace. None define encryption of an Office document at rest. Several contain cryptography ([MS-SRTP], [MS-SSRTP] encrypt live RTP media; [MS-GRVSSTPS], [MS-SIPAE], [MS-OCAUTHWS] perform session/transport authentication), but all are wire/session credentials in transit — not password-derived document-file encryption at rest.

Exchange_Protocols/ — 129 specs, all out of scope

Exchange Server and ActiveSync protocols: MAPI/RPC, EWS, ActiveSync commands, address book, calendar, contacts, message objects, transport rules. Crypto-term hits are all authentication-in-transit ([MS-XLOGIN] SMTP AUTH, [MS-OXWSLVID] LiveID/OAuth tokens, [MS-ASPROV] mobile device password policies) or email-message-level encryption ([MS-OXOSMIME] S/MIME CMS, [MS-OXORMMS] Rights-Managed Email, [MS-ASRM] ActiveSync IRM policy). None define password protection of an Office document file at rest.

SharePointProtocols/ — 168 specs, all out of scope

SharePoint Server admin, site management, search, forms, workflow, content databases, file sync, user profiles, SSO, and web services. Crypto-term hits are server-side ([MS-WSSO] Single Sign-On credential storage, [MS-IPFF2] InfoPath form schema metadata, [MS-WSSFO*] content database IRM flags). None define document-at-rest password/encryption algorithms.

Exchange_Standards/ — 6 specs, all out of scope

Standards conformance notes for IMAP ([MS-STANOIMAP], [MS-STANXIMAP]), POP3 ([MS-STANOPOP3], [MS-STANXPOP3]), and iCalendar ([MS-STANOICAL], [MS-STANXICAL]). Crypto references are transport-layer (STARTTLS, SASL authentication).

Windows_Wordpad_Standards_Support/ — 2 specs, all out of scope

[MS-WPODF] (WordPad ODF) references ODF encryption manifest elements only to state "not supported" 449 times. [MS-WPE376] (WordPad ECMA-376) has zero crypto references.

other/ — 1 spec, out of scope

[MS-VBAL] (VBA Language specification) defines the VBA language syntax and runtime. No password, encryption, or hash content — the VBA project password is in [MS-OVBA], not here.

Remaining none-relevance specs in the core categories

OfficeFileFormatsProtocols (12 of 24 are none)

Spec One-line purpose
[MS-3DMDTP] 3-D Map Data Tour (Power Map).
[MS-CTDOC] Word custom toolbar data.
[MS-CTXLS] Excel custom toolbar data.
[MS-DSEXPORT] Document Set Package export from SharePoint.
[MS-ODCFF] Office Data Connection file format.
[MS-ODRAW] OfficeArt binary drawing format.
[MS-OGRAPH] Office Graph binary chart format.
[MS-OWEMXML] Office Add-ins manifest XML.
[MS-QDEFF] Excel .dqy/.iqy query definition files.
[MS-QDEIF] Power Query definition transport format.
[MS-WORDLFF] Co-authoring lock structure.

MSOFFSTAND (6 of 20 are none)

Spec One-line purpose
[MS-CUSTOMUI] Custom UI XML (Ribbon).
[MS-CUSTOMUI2] Custom UI XML Version 2.
[MS-ODRAWXML] DrawingML OOXML extensions.
[MS-OEXTXML] Extension list complex types.
[MS-OINTXML] Observation/suggestion data extensions.
[MS-OREACTXML] Comment reaction extensions.
[MS-OTASKXML] Document task extensions.
[MS-OWEXML] Office Add-in (web extension) structures.