ooxml-core 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -13
- package/dist/crypto/aes-ecb.d.ts +13 -0
- package/dist/crypto/aes-ecb.d.ts.map +1 -0
- package/dist/crypto/decrypt.d.ts +63 -0
- package/dist/crypto/decrypt.d.ts.map +1 -0
- package/dist/crypto/detect.d.ts +56 -0
- package/dist/crypto/detect.d.ts.map +1 -0
- package/dist/crypto/encrypt.d.ts +27 -0
- package/dist/crypto/encrypt.d.ts.map +1 -0
- package/dist/crypto/encryption-info-write.d.ts +46 -0
- package/dist/crypto/encryption-info-write.d.ts.map +1 -0
- package/dist/crypto/encryption-info.d.ts +22 -0
- package/dist/crypto/encryption-info.d.ts.map +1 -0
- package/dist/crypto/errors.d.ts +39 -0
- package/dist/crypto/errors.d.ts.map +1 -0
- package/dist/crypto/index.cjs +1805 -0
- package/dist/crypto/index.d.ts +26 -0
- package/dist/crypto/index.d.ts.map +1 -0
- package/dist/crypto/index.mjs +1774 -0
- package/dist/crypto/key-derivation.d.ts +73 -0
- package/dist/crypto/key-derivation.d.ts.map +1 -0
- package/dist/crypto/types.d.ts +104 -0
- package/dist/crypto/types.d.ts.map +1 -0
- package/dist/docx/embedded.cjs +2 -0
- package/dist/docx/embedded.mjs +2 -0
- package/dist/docx/index.cjs +2 -0
- package/dist/docx/index.mjs +2 -0
- package/dist/docx/load/detect.d.ts +14 -2
- package/dist/docx/load/detect.d.ts.map +1 -1
- package/dist/docx/load/index.cjs +8995 -7728
- package/dist/docx/load/index.d.ts +3 -1
- package/dist/docx/load/index.d.ts.map +1 -1
- package/dist/docx/load/index.mjs +8990 -7729
- package/dist/docx/load/legacy-doc.d.ts.map +1 -1
- package/dist/index.cjs +749 -19
- package/dist/index.mjs +749 -19
- package/dist/opc/index.cjs +797 -1
- package/dist/opc/index.d.ts +2 -0
- package/dist/opc/index.d.ts.map +1 -1
- package/dist/opc/index.mjs +784 -3
- package/dist/opc/properties/app.d.ts +10 -0
- package/dist/opc/properties/app.d.ts.map +1 -0
- package/dist/opc/properties/core.d.ts +13 -0
- package/dist/opc/properties/core.d.ts.map +1 -0
- package/dist/opc/properties/custom.d.ts +15 -0
- package/dist/opc/properties/custom.d.ts.map +1 -0
- package/dist/opc/properties/index.d.ts +5 -0
- package/dist/opc/properties/index.d.ts.map +1 -0
- package/dist/opc/properties/types.d.ts +114 -0
- package/dist/opc/properties/types.d.ts.map +1 -0
- package/dist/opc/relationship-types.d.ts +1 -0
- package/dist/opc/relationship-types.d.ts.map +1 -1
- package/dist/opc/safe-href.d.ts +34 -0
- package/dist/opc/safe-href.d.ts.map +1 -1
- package/dist/opc/signature/constants.d.ts +42 -0
- package/dist/opc/signature/constants.d.ts.map +1 -0
- package/dist/opc/signature/detection.d.ts +97 -0
- package/dist/opc/signature/detection.d.ts.map +1 -0
- package/dist/opc/signature/digest.d.ts +16 -0
- package/dist/opc/signature/digest.d.ts.map +1 -0
- package/dist/opc/signature/index.d.ts +8 -0
- package/dist/opc/signature/index.d.ts.map +1 -0
- package/dist/opc/signature/inspection-status.d.ts +24 -0
- package/dist/opc/signature/inspection-status.d.ts.map +1 -0
- package/dist/opc/signature/reference-utils.d.ts +12 -0
- package/dist/opc/signature/reference-utils.d.ts.map +1 -0
- package/dist/opc/signature/types.d.ts +90 -0
- package/dist/opc/signature/types.d.ts.map +1 -0
- package/dist/opc/signature/xml-utils.d.ts +35 -0
- package/dist/opc/signature/xml-utils.d.ts.map +1 -0
- package/dist/pptx/chunks/{index-CojJtI77.d.ts → index-BWUBPGgv.d.ts} +9 -11
- package/dist/pptx/chunks/index-BWUBPGgv.d.ts.map +1 -0
- package/dist/pptx/chunks/{signature-inspection-status-Bh2oap7B.d.ts → inspection-status-B2E-jSpG.d.ts} +8 -8
- package/dist/pptx/chunks/inspection-status-B2E-jSpG.d.ts.map +1 -0
- package/dist/pptx/cli/index.cjs +1409 -895
- package/dist/pptx/cli/index.mjs +1409 -895
- package/dist/pptx/converter/index.d.ts +1 -1
- package/dist/pptx/index.cjs +1933 -1391
- package/dist/pptx/index.d.ts +20 -67
- package/dist/pptx/index.d.ts.map +1 -1
- package/dist/pptx/index.mjs +1933 -1391
- package/dist/pptx/signature-node/index.cjs +5 -5
- package/dist/pptx/signature-node/index.d.ts +1 -1
- package/dist/pptx/signature-node/index.mjs +5 -5
- package/dist/visio/edit-master-index.d.ts +10 -0
- package/dist/visio/edit-master-index.d.ts.map +1 -0
- package/dist/visio/edit-master-scope.d.ts +7 -0
- package/dist/visio/edit-master-scope.d.ts.map +1 -0
- package/dist/visio/edit-scope.d.ts.map +1 -1
- package/dist/visio/formula-arithmetic.d.ts +8 -0
- package/dist/visio/formula-arithmetic.d.ts.map +1 -0
- package/dist/visio/formula-evaluate.d.ts.map +1 -1
- package/dist/visio/formula-master.d.ts +13 -0
- package/dist/visio/formula-master.d.ts.map +1 -0
- package/dist/visio/formula-numeric-functions.d.ts +8 -0
- package/dist/visio/formula-numeric-functions.d.ts.map +1 -0
- package/dist/visio/formula.d.ts +1 -1
- package/dist/visio/formula.d.ts.map +1 -1
- package/dist/visio/index.cjs +540 -61
- package/dist/visio/index.mjs +540 -61
- package/dist/xlsx/edit/annotations.d.ts +5 -1
- package/dist/xlsx/edit/annotations.d.ts.map +1 -1
- package/dist/xlsx/edit/cell-values.d.ts +7 -2
- package/dist/xlsx/edit/cell-values.d.ts.map +1 -1
- package/dist/xlsx/edit/clipboard.d.ts.map +1 -1
- package/dist/xlsx/edit/doc-properties.d.ts +14 -0
- package/dist/xlsx/edit/doc-properties.d.ts.map +1 -0
- package/dist/xlsx/edit/fill-series.d.ts.map +1 -1
- package/dist/xlsx/edit/find.d.ts +2 -1
- package/dist/xlsx/edit/find.d.ts.map +1 -1
- package/dist/xlsx/edit/format-lines.d.ts +22 -0
- package/dist/xlsx/edit/format-lines.d.ts.map +1 -0
- package/dist/xlsx/edit/format.d.ts +2 -1
- package/dist/xlsx/edit/format.d.ts.map +1 -1
- package/dist/xlsx/edit/history-refs.d.ts +51 -0
- package/dist/xlsx/edit/history-refs.d.ts.map +1 -0
- package/dist/xlsx/edit/history.d.ts +40 -5
- package/dist/xlsx/edit/history.d.ts.map +1 -1
- package/dist/xlsx/edit/index.d.ts +3 -0
- package/dist/xlsx/edit/index.d.ts.map +1 -1
- package/dist/xlsx/edit/input-text.d.ts +13 -0
- package/dist/xlsx/edit/input-text.d.ts.map +1 -0
- package/dist/xlsx/edit/merge.d.ts +10 -2
- package/dist/xlsx/edit/merge.d.ts.map +1 -1
- package/dist/xlsx/edit/session.d.ts.map +1 -1
- package/dist/xlsx/edit/sheets.d.ts.map +1 -1
- package/dist/xlsx/edit/shift-formulas.d.ts +2 -1
- package/dist/xlsx/edit/shift-formulas.d.ts.map +1 -1
- package/dist/xlsx/edit/shift-preserved.d.ts +17 -0
- package/dist/xlsx/edit/shift-preserved.d.ts.map +1 -0
- package/dist/xlsx/edit/shift-sheet.d.ts +2 -2
- package/dist/xlsx/edit/shift-sheet.d.ts.map +1 -1
- package/dist/xlsx/edit/structure.d.ts.map +1 -1
- package/dist/xlsx/edit/types.d.ts +7 -0
- package/dist/xlsx/edit/types.d.ts.map +1 -1
- package/dist/xlsx/edit/validation-list.d.ts +24 -0
- package/dist/xlsx/edit/validation-list.d.ts.map +1 -0
- package/dist/xlsx/edit/validation.d.ts +2 -1
- package/dist/xlsx/edit/validation.d.ts.map +1 -1
- package/dist/xlsx/formula/area-index.d.ts +18 -0
- package/dist/xlsx/formula/area-index.d.ts.map +1 -0
- package/dist/xlsx/formula/array-context.d.ts.map +1 -1
- package/dist/xlsx/formula/ast.d.ts +5 -1
- package/dist/xlsx/formula/ast.d.ts.map +1 -1
- package/dist/xlsx/formula/call.d.ts.map +1 -1
- package/dist/xlsx/formula/coerce.d.ts.map +1 -1
- package/dist/xlsx/formula/context.d.ts +5 -0
- package/dist/xlsx/formula/context.d.ts.map +1 -1
- package/dist/xlsx/formula/date-serial.d.ts +11 -4
- package/dist/xlsx/formula/date-serial.d.ts.map +1 -1
- package/dist/xlsx/formula/engine-core.d.ts +6 -0
- package/dist/xlsx/formula/engine-core.d.ts.map +1 -1
- package/dist/xlsx/formula/engine-host.d.ts +35 -3
- package/dist/xlsx/formula/engine-host.d.ts.map +1 -1
- package/dist/xlsx/formula/engine-util.d.ts.map +1 -1
- package/dist/xlsx/formula/engine.d.ts.map +1 -1
- package/dist/xlsx/formula/evaluator.d.ts.map +1 -1
- package/dist/xlsx/formula/functions/array-shape.d.ts.map +1 -1
- package/dist/xlsx/formula/functions/array.d.ts.map +1 -1
- package/dist/xlsx/formula/functions/criteria-index.d.ts +12 -0
- package/dist/xlsx/formula/functions/criteria-index.d.ts.map +1 -0
- package/dist/xlsx/formula/functions/criteria.d.ts +24 -16
- package/dist/xlsx/formula/functions/criteria.d.ts.map +1 -1
- package/dist/xlsx/formula/functions/date-calc.d.ts +4 -0
- package/dist/xlsx/formula/functions/date-calc.d.ts.map +1 -1
- package/dist/xlsx/formula/functions/depreciation.d.ts.map +1 -1
- package/dist/xlsx/formula/functions/financial.d.ts.map +1 -1
- package/dist/xlsx/formula/functions/helpers.d.ts.map +1 -1
- package/dist/xlsx/formula/functions/logical.d.ts.map +1 -1
- package/dist/xlsx/formula/functions/lookup-core.d.ts +14 -2
- package/dist/xlsx/formula/functions/lookup-core.d.ts.map +1 -1
- package/dist/xlsx/formula/functions/lookup.d.ts.map +1 -1
- package/dist/xlsx/formula/functions/math-mod.d.ts +8 -0
- package/dist/xlsx/formula/functions/math-mod.d.ts.map +1 -0
- package/dist/xlsx/formula/functions/math-sum.d.ts.map +1 -1
- package/dist/xlsx/formula/functions/math.d.ts.map +1 -1
- package/dist/xlsx/formula/functions/statistical-count.d.ts.map +1 -1
- package/dist/xlsx/formula/functions/statistical.d.ts.map +1 -1
- package/dist/xlsx/formula/functions/stats-core.d.ts +6 -0
- package/dist/xlsx/formula/functions/stats-core.d.ts.map +1 -1
- package/dist/xlsx/formula/functions/text-case.d.ts +14 -0
- package/dist/xlsx/formula/functions/text-case.d.ts.map +1 -0
- package/dist/xlsx/formula/functions/text.d.ts.map +1 -1
- package/dist/xlsx/formula/functions/workdays.d.ts.map +1 -1
- package/dist/xlsx/formula/graph-index.d.ts +15 -0
- package/dist/xlsx/formula/graph-index.d.ts.map +1 -0
- package/dist/xlsx/formula/graph.d.ts +13 -18
- package/dist/xlsx/formula/graph.d.ts.map +1 -1
- package/dist/xlsx/formula/operators.d.ts +9 -0
- package/dist/xlsx/formula/operators.d.ts.map +1 -1
- package/dist/xlsx/formula/parser.d.ts +2 -0
- package/dist/xlsx/formula/parser.d.ts.map +1 -1
- package/dist/xlsx/formula/references.d.ts +4 -1
- package/dist/xlsx/formula/references.d.ts.map +1 -1
- package/dist/xlsx/formula/text-number.d.ts.map +1 -1
- package/dist/xlsx/formula/transform.d.ts.map +1 -1
- package/dist/xlsx/formula/values.d.ts +44 -3
- package/dist/xlsx/formula/values.d.ts.map +1 -1
- package/dist/xlsx/index.cjs +4698 -1322
- package/dist/xlsx/index.mjs +4688 -1323
- package/dist/xlsx/layout/anchors.d.ts +47 -0
- package/dist/xlsx/layout/anchors.d.ts.map +1 -0
- package/dist/xlsx/layout/cf-evaluator.d.ts +1 -2
- package/dist/xlsx/layout/cf-evaluator.d.ts.map +1 -1
- package/dist/xlsx/layout/cf-helpers.d.ts +8 -1
- package/dist/xlsx/layout/cf-helpers.d.ts.map +1 -1
- package/dist/xlsx/layout/index.d.ts +1 -0
- package/dist/xlsx/layout/index.d.ts.map +1 -1
- package/dist/xlsx/load/csv.d.ts +24 -3
- package/dist/xlsx/load/csv.d.ts.map +1 -1
- package/dist/xlsx/load/detect.d.ts +39 -7
- package/dist/xlsx/load/detect.d.ts.map +1 -1
- package/dist/xlsx/load/errors.d.ts +10 -0
- package/dist/xlsx/load/errors.d.ts.map +1 -0
- package/dist/xlsx/load/index.cjs +16220 -12163
- package/dist/xlsx/load/index.d.ts +5 -2
- package/dist/xlsx/load/index.d.ts.map +1 -1
- package/dist/xlsx/load/index.mjs +16213 -12164
- package/dist/xlsx/load/text-decode.d.ts +7 -0
- package/dist/xlsx/load/text-decode.d.ts.map +1 -0
- package/dist/xlsx/model.d.ts +121 -17
- package/dist/xlsx/model.d.ts.map +1 -1
- package/dist/xlsx/numfmt/date.d.ts +7 -0
- package/dist/xlsx/numfmt/date.d.ts.map +1 -1
- package/dist/xlsx/numfmt/format.d.ts.map +1 -1
- package/dist/xlsx/numfmt/fraction.d.ts +5 -1
- package/dist/xlsx/numfmt/fraction.d.ts.map +1 -1
- package/dist/xlsx/numfmt/input-date.d.ts.map +1 -1
- package/dist/xlsx/numfmt/input.d.ts.map +1 -1
- package/dist/xlsx/numfmt/number.d.ts.map +1 -1
- package/dist/xlsx/read/conditional.d.ts.map +1 -1
- package/dist/xlsx/read/drawing.d.ts +2 -2
- package/dist/xlsx/read/drawing.d.ts.map +1 -1
- package/dist/xlsx/read/load.d.ts.map +1 -1
- package/dist/xlsx/read/package.d.ts +18 -2
- package/dist/xlsx/read/package.d.ts.map +1 -1
- package/dist/xlsx/read/sheet-data.d.ts.map +1 -1
- package/dist/xlsx/read/sheet-props.d.ts +15 -1
- package/dist/xlsx/read/sheet-props.d.ts.map +1 -1
- package/dist/xlsx/read/smart-art.d.ts +12 -0
- package/dist/xlsx/read/smart-art.d.ts.map +1 -0
- package/dist/xlsx/read/styles.d.ts.map +1 -1
- package/dist/xlsx/read/workbook-part.d.ts +5 -2
- package/dist/xlsx/read/workbook-part.d.ts.map +1 -1
- package/dist/xlsx/read/worksheet.d.ts.map +1 -1
- package/dist/xlsx/write/attr-merge.d.ts +10 -0
- package/dist/xlsx/write/attr-merge.d.ts.map +1 -0
- package/dist/xlsx/write/carried-refs.d.ts +61 -0
- package/dist/xlsx/write/carried-refs.d.ts.map +1 -0
- package/dist/xlsx/write/comments.d.ts +12 -2
- package/dist/xlsx/write/comments.d.ts.map +1 -1
- package/dist/xlsx/write/conditional.d.ts.map +1 -1
- package/dist/xlsx/write/doc-props.d.ts +30 -0
- package/dist/xlsx/write/doc-props.d.ts.map +1 -0
- package/dist/xlsx/write/drawing.d.ts +5 -0
- package/dist/xlsx/write/drawing.d.ts.map +1 -1
- package/dist/xlsx/write/metadata.d.ts +23 -0
- package/dist/xlsx/write/metadata.d.ts.map +1 -0
- package/dist/xlsx/write/package-writer.d.ts +6 -0
- package/dist/xlsx/write/package-writer.d.ts.map +1 -1
- package/dist/xlsx/write/page-setup.d.ts +8 -0
- package/dist/xlsx/write/page-setup.d.ts.map +1 -0
- package/dist/xlsx/write/save.d.ts.map +1 -1
- package/dist/xlsx/write/sheet-data.d.ts +8 -0
- package/dist/xlsx/write/sheet-data.d.ts.map +1 -1
- package/dist/xlsx/write/sheet-parts.d.ts +6 -0
- package/dist/xlsx/write/sheet-parts.d.ts.map +1 -1
- package/dist/xlsx/write/sheet-props.d.ts +0 -6
- package/dist/xlsx/write/sheet-props.d.ts.map +1 -1
- package/dist/xlsx/write/styles.d.ts.map +1 -1
- package/dist/xlsx/write/table-patch.d.ts +12 -0
- package/dist/xlsx/write/table-patch.d.ts.map +1 -0
- package/dist/xlsx/write/tables.d.ts +9 -0
- package/dist/xlsx/write/tables.d.ts.map +1 -1
- package/dist/xlsx/write/vml-ids.d.ts +29 -0
- package/dist/xlsx/write/vml-ids.d.ts.map +1 -0
- package/dist/xlsx/write/workbook-part.d.ts +1 -4
- package/dist/xlsx/write/workbook-part.d.ts.map +1 -1
- package/dist/xlsx/write/worksheet.d.ts.map +1 -1
- package/dist/xml/index.cjs +4 -0
- package/dist/xml/index.mjs +4 -0
- package/dist/xml/namespaces.d.ts +4 -0
- package/dist/xml/namespaces.d.ts.map +1 -1
- package/package.json +6 -1
- package/dist/pptx/chunks/index-CojJtI77.d.ts.map +0 -1
- package/dist/pptx/chunks/signature-inspection-status-Bh2oap7B.d.ts.map +0 -1
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OOXML encryption key derivation ([MS-OFFCRYPTO] 2.3.4.7 and 2.3.4.11).
|
|
3
|
+
*
|
|
4
|
+
* The password spin (100,000 rounds for agile, 50,000 for Standard) runs on the synchronous
|
|
5
|
+
* digests of the shared `digest` area when the hash is one it computes, so a key is derived
|
|
6
|
+
* without awaiting Web Crypto once per round; other hashes fall back to Web Crypto.
|
|
7
|
+
*
|
|
8
|
+
* Moved from `src/pptx/core/utils/ooxml-crypto-key-derivation.ts` (see PROVENANCE.md).
|
|
9
|
+
*/
|
|
10
|
+
/** Well-known block keys for agile encryption as defined in [MS-OFFCRYPTO]. */
|
|
11
|
+
export declare const BLOCK_KEYS: {
|
|
12
|
+
readonly verifierHashInput: Uint8Array<ArrayBuffer>;
|
|
13
|
+
readonly verifierHashValue: Uint8Array<ArrayBuffer>;
|
|
14
|
+
readonly encryptedKeyValue: Uint8Array<ArrayBuffer>;
|
|
15
|
+
readonly dataIntegrityHmacKey: Uint8Array<ArrayBuffer>;
|
|
16
|
+
readonly dataIntegrityHmacValue: Uint8Array<ArrayBuffer>;
|
|
17
|
+
};
|
|
18
|
+
/** The largest spin count honoured; Office writes 100,000, far more is a hostile file. */
|
|
19
|
+
export declare const MAX_SPIN_COUNT = 10000000;
|
|
20
|
+
/**
|
|
21
|
+
* The spun password hash for agile key derivation (the expensive part). Derive several block
|
|
22
|
+
* keys from one base with {@link deriveAgileKeyFromBase} instead of spinning again for each.
|
|
23
|
+
*/
|
|
24
|
+
export declare function computeAgileKeyBase(password: string, salt: Uint8Array, spinCount: number, hashAlgorithm: string): Promise<Uint8Array>;
|
|
25
|
+
/** Finishes agile key derivation for one block key: Hfinal = H(base + blockKey), sized. */
|
|
26
|
+
export declare function deriveAgileKeyFromBase(base: Uint8Array, hashAlgorithm: string, blockKey: Uint8Array, keyBits: number, hashSize: number): Promise<Uint8Array>;
|
|
27
|
+
/**
|
|
28
|
+
* Derive an encryption key from a password using the OOXML agile encryption key derivation
|
|
29
|
+
* algorithm.
|
|
30
|
+
*
|
|
31
|
+
* @param password - User's password.
|
|
32
|
+
* @param salt - Salt from EncryptionInfo.
|
|
33
|
+
* @param spinCount - Number of hash iterations.
|
|
34
|
+
* @param hashAlgorithm - Hash algorithm name (e.g. "SHA-512").
|
|
35
|
+
* @param blockKey - Block key for deriving specific sub-keys.
|
|
36
|
+
* @param keyBits - Desired key length in bits.
|
|
37
|
+
* @param hashSize - Hash output size in bytes.
|
|
38
|
+
* @returns Derived key of keyBits/8 bytes.
|
|
39
|
+
*/
|
|
40
|
+
export declare function deriveAgileKey(password: string, salt: Uint8Array, spinCount: number, hashAlgorithm: string, blockKey: Uint8Array, keyBits: number, hashSize: number): Promise<Uint8Array>;
|
|
41
|
+
/**
|
|
42
|
+
* Compute the expensive, password/salt-dependent part of Standard Encryption key derivation:
|
|
43
|
+
* `H50000`, the result of hashing salt+password and then iterating 50,000 times.
|
|
44
|
+
*
|
|
45
|
+
* Only OOXML Standard Encryption spins. The legacy `.ppt` "RC4 CryptoAPI" scheme has no spin
|
|
46
|
+
* rounds and lives in the pptx area (`ppt/rc4-cryptoapi-key.ts`).
|
|
47
|
+
*/
|
|
48
|
+
export declare function computeStandardKeyBase(password: string, salt: Uint8Array): Promise<Uint8Array>;
|
|
49
|
+
/**
|
|
50
|
+
* Finish Standard Encryption key derivation for one block, given the expensive base from
|
|
51
|
+
* {@link computeStandardKeyBase}: `Hfinal = H(H50000 + blockKey)`, then always the X1/X2/X3
|
|
52
|
+
* extension, of which the key is the first `keySize` bits ([MS-OFFCRYPTO] 2.3.4.7). Unlike the
|
|
53
|
+
* binary-document RC4 CryptoAPI derivation (2.3.5.2), a 128-bit key is not a plain truncation of
|
|
54
|
+
* Hfinal.
|
|
55
|
+
*/
|
|
56
|
+
export declare function deriveStandardKeyFromBase(base: Uint8Array, keySize: number, blockNumber?: number): Promise<Uint8Array>;
|
|
57
|
+
/**
|
|
58
|
+
* Derive the encryption key for OOXML Standard Encryption (Office 2007), [MS-OFFCRYPTO]
|
|
59
|
+
* 2.3.4.7 (50,000 spin rounds).
|
|
60
|
+
*
|
|
61
|
+
* @param password - User's password.
|
|
62
|
+
* @param salt - Salt from the verifier.
|
|
63
|
+
* @param keySize - Key size in bits (e.g. 128).
|
|
64
|
+
* @param _algIdHash - Algorithm ID for hashing (always SHA-1 in practice).
|
|
65
|
+
* @param blockNumber - Block number (0 for Standard Encryption).
|
|
66
|
+
*/
|
|
67
|
+
export declare function deriveStandardKey(password: string, salt: Uint8Array, keySize: number, _algIdHash: number, blockNumber?: number): Promise<Uint8Array>;
|
|
68
|
+
/**
|
|
69
|
+
* Generate an IV for agile encryption: H(salt + blockKey), truncated to `blockSize` or padded
|
|
70
|
+
* with 0x36.
|
|
71
|
+
*/
|
|
72
|
+
export declare function generateIV(hashAlgorithm: string, salt: Uint8Array, blockKey: Uint8Array, blockSize: number): Promise<Uint8Array>;
|
|
73
|
+
//# sourceMappingURL=key-derivation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-derivation.d.ts","sourceRoot":"","sources":["../../src/crypto/key-derivation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,+EAA+E;AAC/E,eAAO,MAAM,UAAU;;;;;;CAMb,CAAC;AAEX,0FAA0F;AAC1F,eAAO,MAAM,cAAc,WAAa,CAAC;AA+CzC;;;GAGG;AACH,wBAAgB,mBAAmB,CAClC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACnB,OAAO,CAAC,UAAU,CAAC,CAErB;AAED,2FAA2F;AAC3F,wBAAsB,sBAAsB,CAC3C,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC,CAKrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAE9F;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,WAAW,SAAI,GACb,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACtC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,WAAW,SAAI,GACb,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC/B,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC,CAMrB"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for OOXML package encryption and decryption.
|
|
3
|
+
*
|
|
4
|
+
* Moved from `src/pptx/core/utils/ooxml-crypto-types.ts` (see PROVENANCE.md).
|
|
5
|
+
*/
|
|
6
|
+
/** Supported encryption algorithms. */
|
|
7
|
+
export type EncryptionAlgorithm = 'AES128' | 'AES256';
|
|
8
|
+
/**
|
|
9
|
+
* Which OOXML encryption scheme to write when creating a password-protected
|
|
10
|
+
* file. Office can write and open either scheme; this library defaults to
|
|
11
|
+
* 'agile' (Office 2010+), matching Office's own default.
|
|
12
|
+
*/
|
|
13
|
+
export type EncryptionScheme = 'agile' | 'standard';
|
|
14
|
+
/** Parsed encryption info from the EncryptionInfo stream (agile format). */
|
|
15
|
+
export interface EncryptionInfo {
|
|
16
|
+
/** Encryption version (major.minor). */
|
|
17
|
+
version: {
|
|
18
|
+
major: number;
|
|
19
|
+
minor: number;
|
|
20
|
+
};
|
|
21
|
+
/** Whether this is agile encryption. */
|
|
22
|
+
isAgile: boolean;
|
|
23
|
+
/** Key encryption data. */
|
|
24
|
+
keyData: {
|
|
25
|
+
saltSize: number;
|
|
26
|
+
blockSize: number;
|
|
27
|
+
keyBits: number;
|
|
28
|
+
hashSize: number;
|
|
29
|
+
cipherAlgorithm: string;
|
|
30
|
+
cipherChaining: string;
|
|
31
|
+
hashAlgorithm: string;
|
|
32
|
+
saltValue: Uint8Array;
|
|
33
|
+
};
|
|
34
|
+
/** Data integrity verification. */
|
|
35
|
+
dataIntegrity?: {
|
|
36
|
+
encryptedHmacKey: Uint8Array;
|
|
37
|
+
encryptedHmacValue: Uint8Array;
|
|
38
|
+
};
|
|
39
|
+
/** Password verifier encryption data. */
|
|
40
|
+
passwordKeyEncryptor: {
|
|
41
|
+
saltSize: number;
|
|
42
|
+
blockSize: number;
|
|
43
|
+
keyBits: number;
|
|
44
|
+
hashSize: number;
|
|
45
|
+
cipherAlgorithm: string;
|
|
46
|
+
cipherChaining: string;
|
|
47
|
+
hashAlgorithm: string;
|
|
48
|
+
saltValue: Uint8Array;
|
|
49
|
+
spinCount: number;
|
|
50
|
+
encryptedVerifierHashInput: Uint8Array;
|
|
51
|
+
encryptedVerifierHashValue: Uint8Array;
|
|
52
|
+
encryptedKeyValue: Uint8Array;
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Standard encryption info (Office 2007 format, versions 2.x/3.x/4.x).
|
|
57
|
+
*/
|
|
58
|
+
export interface StandardEncryptionInfo {
|
|
59
|
+
/** Encryption version (major.minor). */
|
|
60
|
+
version: {
|
|
61
|
+
major: number;
|
|
62
|
+
minor: number;
|
|
63
|
+
};
|
|
64
|
+
/** Always false for standard encryption. */
|
|
65
|
+
isAgile: false;
|
|
66
|
+
/** Always true for standard encryption. */
|
|
67
|
+
isStandard: true;
|
|
68
|
+
/** Encryption flags. */
|
|
69
|
+
flags: number;
|
|
70
|
+
/** Size of the encryption header in bytes. */
|
|
71
|
+
headerSize: number;
|
|
72
|
+
/** Encryption header describing algorithm and provider. */
|
|
73
|
+
header: {
|
|
74
|
+
flags: number;
|
|
75
|
+
algId: number;
|
|
76
|
+
algIdHash: number;
|
|
77
|
+
keySize: number;
|
|
78
|
+
providerType: number;
|
|
79
|
+
cspName: string;
|
|
80
|
+
};
|
|
81
|
+
/** Password verifier data. */
|
|
82
|
+
verifier: {
|
|
83
|
+
saltSize: number;
|
|
84
|
+
salt: Uint8Array;
|
|
85
|
+
encryptedVerifier: Uint8Array;
|
|
86
|
+
verifierHashSize: number;
|
|
87
|
+
encryptedVerifierHash: Uint8Array;
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/** Encryption options for creating encrypted files. */
|
|
91
|
+
export interface EncryptionOptions {
|
|
92
|
+
/** The encryption algorithm to use (defaults to AES256). */
|
|
93
|
+
algorithm?: EncryptionAlgorithm;
|
|
94
|
+
/** Number of hash iterations for key derivation (defaults to 100000). Lower values speed up tests. */
|
|
95
|
+
spinCount?: number;
|
|
96
|
+
/**
|
|
97
|
+
* Which encryption scheme to write (defaults to 'agile'). 'standard'
|
|
98
|
+
* writes the ECMA-376 Standard scheme (Office 2007-compatible: a single
|
|
99
|
+
* password-derived AES-CBC key with a zero IV over the whole package),
|
|
100
|
+
* mirroring the scheme this library already knows how to decrypt.
|
|
101
|
+
*/
|
|
102
|
+
encryptionScheme?: EncryptionScheme;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/crypto/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,uCAAuC;AACvC,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEtD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,UAAU,CAAC;AAEpD,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC9B,wCAAwC;IACxC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,2BAA2B;IAC3B,OAAO,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,UAAU,CAAC;KACtB,CAAC;IACF,mCAAmC;IACnC,aAAa,CAAC,EAAE;QACf,gBAAgB,EAAE,UAAU,CAAC;QAC7B,kBAAkB,EAAE,UAAU,CAAC;KAC/B,CAAC;IACF,yCAAyC;IACzC,oBAAoB,EAAE;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,UAAU,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,0BAA0B,EAAE,UAAU,CAAC;QACvC,0BAA0B,EAAE,UAAU,CAAC;QACvC,iBAAiB,EAAE,UAAU,CAAC;KAC9B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,wCAAwC;IACxC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,4CAA4C;IAC5C,OAAO,EAAE,KAAK,CAAC;IACf,2CAA2C;IAC3C,UAAU,EAAE,IAAI,CAAC;IACjB,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,MAAM,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,8BAA8B;IAC9B,QAAQ,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,UAAU,CAAC;QACjB,iBAAiB,EAAE,UAAU,CAAC;QAC9B,gBAAgB,EAAE,MAAM,CAAC;QACzB,qBAAqB,EAAE,UAAU,CAAC;KAClC,CAAC;CACF;AAED,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IACjC,4DAA4D;IAC5D,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,sGAAsG;IACtG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACpC"}
|
package/dist/docx/embedded.cjs
CHANGED
|
@@ -1071,6 +1071,8 @@ function isSafeHyperlinkHref(href) {
|
|
|
1071
1071
|
const scheme = /^([a-z][a-z0-9+.-]*:)/i.exec(href.trim())?.[1];
|
|
1072
1072
|
return scheme !== void 0 && SAFE_SCHEMES.has(scheme.toLowerCase());
|
|
1073
1073
|
}
|
|
1074
|
+
var OPEN_SCHEMES = /* @__PURE__ */ new Set(["http", "https", "mailto"]);
|
|
1075
|
+
/* @__PURE__ */ new Set([...OPEN_SCHEMES, "ftp", "file"]);
|
|
1074
1076
|
|
|
1075
1077
|
// src/docx/zip-parts.ts
|
|
1076
1078
|
var DOCUMENT_RELS_PATH = "word/_rels/document.xml.rels";
|
package/dist/docx/embedded.mjs
CHANGED
|
@@ -1065,6 +1065,8 @@ function isSafeHyperlinkHref(href) {
|
|
|
1065
1065
|
const scheme = /^([a-z][a-z0-9+.-]*:)/i.exec(href.trim())?.[1];
|
|
1066
1066
|
return scheme !== void 0 && SAFE_SCHEMES.has(scheme.toLowerCase());
|
|
1067
1067
|
}
|
|
1068
|
+
var OPEN_SCHEMES = /* @__PURE__ */ new Set(["http", "https", "mailto"]);
|
|
1069
|
+
/* @__PURE__ */ new Set([...OPEN_SCHEMES, "ftp", "file"]);
|
|
1068
1070
|
|
|
1069
1071
|
// src/docx/zip-parts.ts
|
|
1070
1072
|
var DOCUMENT_RELS_PATH = "word/_rels/document.xml.rels";
|
package/dist/docx/index.cjs
CHANGED
|
@@ -1708,6 +1708,8 @@ function isSafeHyperlinkHref(href) {
|
|
|
1708
1708
|
const scheme = /^([a-z][a-z0-9+.-]*:)/i.exec(href.trim())?.[1];
|
|
1709
1709
|
return scheme !== void 0 && SAFE_SCHEMES.has(scheme.toLowerCase());
|
|
1710
1710
|
}
|
|
1711
|
+
var OPEN_SCHEMES = /* @__PURE__ */ new Set(["http", "https", "mailto"]);
|
|
1712
|
+
/* @__PURE__ */ new Set([...OPEN_SCHEMES, "ftp", "file"]);
|
|
1711
1713
|
|
|
1712
1714
|
// src/docx/zip-parts.ts
|
|
1713
1715
|
var DOCUMENT_RELS_PATH = "word/_rels/document.xml.rels";
|
package/dist/docx/index.mjs
CHANGED
|
@@ -1702,6 +1702,8 @@ function isSafeHyperlinkHref(href) {
|
|
|
1702
1702
|
const scheme = /^([a-z][a-z0-9+.-]*:)/i.exec(href.trim())?.[1];
|
|
1703
1703
|
return scheme !== void 0 && SAFE_SCHEMES.has(scheme.toLowerCase());
|
|
1704
1704
|
}
|
|
1705
|
+
var OPEN_SCHEMES = /* @__PURE__ */ new Set(["http", "https", "mailto"]);
|
|
1706
|
+
/* @__PURE__ */ new Set([...OPEN_SCHEMES, "ftp", "file"]);
|
|
1705
1707
|
|
|
1706
1708
|
// src/docx/zip-parts.ts
|
|
1707
1709
|
var DOCUMENT_RELS_PATH = "word/_rels/document.xml.rels";
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import type { LoadedDocument } from '../model.js';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* A detected document format. `'encrypted'` is a .docx saved with a password to open (a compound
|
|
4
|
+
* file holding EncryptionInfo and EncryptedPackage), not a Word 97-2003 .doc.
|
|
5
|
+
*/
|
|
6
|
+
export type DocumentFormat = 'docx' | 'doc' | 'encrypted';
|
|
3
7
|
export declare function detectDocumentFormat(input: Uint8Array | ArrayBuffer): DocumentFormat;
|
|
8
|
+
export interface LoadDocumentOptions {
|
|
9
|
+
/**
|
|
10
|
+
* The password to open an encrypted (password-protected) .docx. Without it such a file throws
|
|
11
|
+
* `PasswordRequiredError` (`code: 'password-required'`); a wrong one throws
|
|
12
|
+
* `IncorrectPasswordError` (`code: 'incorrect-password'`).
|
|
13
|
+
*/
|
|
14
|
+
password?: string;
|
|
15
|
+
}
|
|
4
16
|
/** Sniff content, never trust a user-supplied filename extension. */
|
|
5
|
-
export declare function loadDocument(input: Uint8Array | ArrayBuffer): Promise<LoadedDocument>;
|
|
17
|
+
export declare function loadDocument(input: Uint8Array | ArrayBuffer, options?: LoadDocumentOptions): Promise<LoadedDocument>;
|
|
6
18
|
//# sourceMappingURL=detect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../src/docx/load/detect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../src/docx/load/detect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,WAAW,CAAC;AAK1D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,cAAc,CAQpF;AAED,MAAM,WAAW,mBAAmB;IACnC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,qEAAqE;AACrE,wBAAsB,YAAY,CACjC,KAAK,EAAE,UAAU,GAAG,WAAW,EAC/B,OAAO,GAAE,mBAAwB,GAC/B,OAAO,CAAC,cAAc,CAAC,CAczB"}
|