pdf-lite 1.0.0 → 1.0.1-alpha.2

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.
Files changed (339) hide show
  1. package/.github/workflows/docs.yaml +2 -0
  2. package/EXAMPLES.md +1 -4
  3. package/docs/README.md +127 -0
  4. package/docs/core/README.md +43 -0
  5. package/docs/core/decoder/README.md +11 -0
  6. package/docs/core/decoder/classes/PdfDecoder.md +362 -0
  7. package/docs/core/generators/README.md +14 -0
  8. package/docs/core/generators/functions/bytesToPdfObjects.md +26 -0
  9. package/docs/core/generators/functions/pdfDecoder.md +36 -0
  10. package/docs/core/generators/functions/pdfDecoderAsync.md +26 -0
  11. package/docs/core/generators/functions/stringToPdfObjects.md +25 -0
  12. package/docs/core/incremental-parser/README.md +13 -0
  13. package/docs/core/incremental-parser/classes/EofReachedError.md +55 -0
  14. package/docs/core/incremental-parser/classes/IncrementalParser.md +299 -0
  15. package/docs/core/incremental-parser/classes/NoMoreTokensError.md +55 -0
  16. package/docs/core/objects/pdf-array/README.md +11 -0
  17. package/docs/core/objects/pdf-array/classes/PdfArray.md +305 -0
  18. package/docs/core/objects/pdf-boolean/README.md +11 -0
  19. package/docs/core/objects/pdf-boolean/classes/PdfBoolean.md +265 -0
  20. package/docs/core/objects/pdf-comment/README.md +11 -0
  21. package/docs/core/objects/pdf-comment/classes/PdfComment.md +329 -0
  22. package/docs/core/objects/pdf-date/README.md +11 -0
  23. package/docs/core/objects/pdf-date/classes/PdfDate.md +317 -0
  24. package/docs/core/objects/pdf-dictionary/README.md +17 -0
  25. package/docs/core/objects/pdf-dictionary/classes/PdfDictionary.md +396 -0
  26. package/docs/core/objects/pdf-dictionary/type-aliases/PdfDictionaryEntries.md +9 -0
  27. package/docs/core/objects/pdf-dictionary/type-aliases/PdfDictionaryEntry.md +9 -0
  28. package/docs/core/objects/pdf-dictionary/type-aliases/PdfDictionaryMap.md +9 -0
  29. package/docs/core/objects/pdf-hexadecimal/README.md +11 -0
  30. package/docs/core/objects/pdf-hexadecimal/classes/PdfHexadecimal.md +320 -0
  31. package/docs/core/objects/pdf-indirect-object/README.md +11 -0
  32. package/docs/core/objects/pdf-indirect-object/classes/PdfIndirectObject.md +411 -0
  33. package/docs/core/objects/pdf-name/README.md +11 -0
  34. package/docs/core/objects/pdf-name/classes/PdfName.md +271 -0
  35. package/docs/core/objects/pdf-null/README.md +11 -0
  36. package/docs/core/objects/pdf-null/classes/PdfNull.md +259 -0
  37. package/docs/core/objects/pdf-number/README.md +12 -0
  38. package/docs/core/objects/pdf-number/classes/PdfByteOffsetNumber.md +369 -0
  39. package/docs/core/objects/pdf-number/classes/PdfNumber.md +345 -0
  40. package/docs/core/objects/pdf-object/README.md +11 -0
  41. package/docs/core/objects/pdf-object/classes/PdfObject.md +214 -0
  42. package/docs/core/objects/pdf-object-reference/README.md +11 -0
  43. package/docs/core/objects/pdf-object-reference/classes/PdfObjectReference.md +279 -0
  44. package/docs/core/objects/pdf-start-xref/README.md +11 -0
  45. package/docs/core/objects/pdf-start-xref/classes/PdfStartXRef.md +265 -0
  46. package/docs/core/objects/pdf-stream/README.md +23 -0
  47. package/docs/core/objects/pdf-stream/classes/PdfObjStream.md +699 -0
  48. package/docs/core/objects/pdf-stream/classes/PdfStream.md +570 -0
  49. package/docs/core/objects/pdf-stream/classes/PdfXRefStream.md +723 -0
  50. package/docs/core/objects/pdf-stream/classes/PdfXRefStreamCompressedEntry.md +51 -0
  51. package/docs/core/objects/pdf-stream/type-aliases/PdfXRefStreamEntry.md +9 -0
  52. package/docs/core/objects/pdf-stream/type-aliases/PdfXRefStreamStandardEntry.md +9 -0
  53. package/docs/core/objects/pdf-stream/variables/PdfXRefStreamStandardEntry.md +9 -0
  54. package/docs/core/objects/pdf-string/README.md +11 -0
  55. package/docs/core/objects/pdf-string/classes/PdfString.md +301 -0
  56. package/docs/core/objects/pdf-trailer/README.md +16 -0
  57. package/docs/core/objects/pdf-trailer/classes/PdfTrailer.md +271 -0
  58. package/docs/core/objects/pdf-trailer/type-aliases/PdfTrailerDictionary.md +9 -0
  59. package/docs/core/objects/pdf-trailer/type-aliases/PdfTrailerEntries.md +51 -0
  60. package/docs/core/objects/pdf-xref-table/README.md +13 -0
  61. package/docs/core/objects/pdf-xref-table/classes/PdfXRefTable.md +331 -0
  62. package/docs/core/objects/pdf-xref-table/classes/PdfXRefTableEntry.md +297 -0
  63. package/docs/core/objects/pdf-xref-table/classes/PdfXRefTableSectionHeader.md +277 -0
  64. package/docs/core/parser/README.md +11 -0
  65. package/docs/core/parser/classes/Parser.md +74 -0
  66. package/docs/core/ref/README.md +15 -0
  67. package/docs/core/ref/classes/Ref.md +149 -0
  68. package/docs/core/ref/type-aliases/RefUpdateCallback.md +33 -0
  69. package/docs/core/serializer/README.md +11 -0
  70. package/docs/core/serializer/classes/PdfTokenSerializer.md +106 -0
  71. package/docs/core/streams/object-stream/README.md +11 -0
  72. package/docs/core/streams/object-stream/classes/PdfObjectStream.md +69 -0
  73. package/docs/core/tokeniser/README.md +21 -0
  74. package/docs/core/tokeniser/classes/PdfByteStreamTokeniser.md +366 -0
  75. package/docs/core/tokeniser/classes/PdfObjectTokeniser.md +69 -0
  76. package/docs/core/tokeniser/functions/objectToTokens.md +25 -0
  77. package/docs/core/tokeniser/functions/pdfObjectStreamTokeniser.md +27 -0
  78. package/docs/core/tokeniser/type-aliases/PdfTokeniser.md +11 -0
  79. package/docs/core/tokens/boolean-token/README.md +11 -0
  80. package/docs/core/tokens/boolean-token/classes/PdfBooleanToken.md +139 -0
  81. package/docs/core/tokens/byte-offset-token/README.md +11 -0
  82. package/docs/core/tokens/byte-offset-token/classes/PdfByteOffsetToken.md +153 -0
  83. package/docs/core/tokens/comment-token/README.md +11 -0
  84. package/docs/core/tokens/comment-token/classes/PdfCommentToken.md +161 -0
  85. package/docs/core/tokens/end-array-token/README.md +11 -0
  86. package/docs/core/tokens/end-array-token/classes/PdfEndArrayToken.md +115 -0
  87. package/docs/core/tokens/end-dictionary-token/README.md +11 -0
  88. package/docs/core/tokens/end-dictionary-token/classes/PdfEndDictionaryToken.md +115 -0
  89. package/docs/core/tokens/end-object-token/README.md +11 -0
  90. package/docs/core/tokens/end-object-token/classes/PdfEndObjectToken.md +115 -0
  91. package/docs/core/tokens/end-stream-token/README.md +11 -0
  92. package/docs/core/tokens/end-stream-token/classes/PdfEndStreamToken.md +121 -0
  93. package/docs/core/tokens/hexadecimal-token/README.md +11 -0
  94. package/docs/core/tokens/hexadecimal-token/classes/PdfHexadecimalToken.md +127 -0
  95. package/docs/core/tokens/name-token/README.md +11 -0
  96. package/docs/core/tokens/name-token/classes/PdfNameToken.md +127 -0
  97. package/docs/core/tokens/null-token/README.md +11 -0
  98. package/docs/core/tokens/null-token/classes/PdfNullToken.md +115 -0
  99. package/docs/core/tokens/number-token/README.md +11 -0
  100. package/docs/core/tokens/number-token/classes/PdfNumberToken.md +271 -0
  101. package/docs/core/tokens/object-reference-token/README.md +11 -0
  102. package/docs/core/tokens/object-reference-token/classes/PdfObjectReferenceToken.md +137 -0
  103. package/docs/core/tokens/start-array-token/README.md +11 -0
  104. package/docs/core/tokens/start-array-token/classes/PdfStartArrayToken.md +115 -0
  105. package/docs/core/tokens/start-dictionary-token/README.md +11 -0
  106. package/docs/core/tokens/start-dictionary-token/classes/PdfStartDictionaryToken.md +115 -0
  107. package/docs/core/tokens/start-object-token/README.md +11 -0
  108. package/docs/core/tokens/start-object-token/classes/PdfStartObjectToken.md +147 -0
  109. package/docs/core/tokens/start-stream-token/README.md +11 -0
  110. package/docs/core/tokens/start-stream-token/classes/PdfStartStreamToken.md +147 -0
  111. package/docs/core/tokens/start-xref-token/README.md +11 -0
  112. package/docs/core/tokens/start-xref-token/classes/PdfStartXRefToken.md +115 -0
  113. package/docs/core/tokens/stream-chunk-token/README.md +11 -0
  114. package/docs/core/tokens/stream-chunk-token/classes/PdfStreamChunkToken.md +121 -0
  115. package/docs/core/tokens/string-token/README.md +11 -0
  116. package/docs/core/tokens/string-token/classes/PdfStringToken.md +127 -0
  117. package/docs/core/tokens/token/README.md +11 -0
  118. package/docs/core/tokens/token/classes/PdfToken.md +116 -0
  119. package/docs/core/tokens/trailer-token/README.md +11 -0
  120. package/docs/core/tokens/trailer-token/classes/PdfTrailerToken.md +127 -0
  121. package/docs/core/tokens/whitespace-token/README.md +11 -0
  122. package/docs/core/tokens/whitespace-token/classes/PdfWhitespaceToken.md +161 -0
  123. package/docs/core/tokens/xref-table-entry-token/README.md +11 -0
  124. package/docs/core/tokens/xref-table-entry-token/classes/PdfXRefTableEntryToken.md +157 -0
  125. package/docs/core/tokens/xref-table-section-start-token/README.md +11 -0
  126. package/docs/core/tokens/xref-table-section-start-token/classes/PdfXRefTableSectionStartToken.md +137 -0
  127. package/docs/core/tokens/xref-table-start-token/README.md +11 -0
  128. package/docs/core/tokens/xref-table-start-token/classes/PdfXRefTableStartToken.md +127 -0
  129. package/docs/crypto/ciphers/aes128/README.md +11 -0
  130. package/docs/crypto/ciphers/aes128/functions/aes128.md +39 -0
  131. package/docs/crypto/ciphers/aes256/README.md +11 -0
  132. package/docs/crypto/ciphers/aes256/functions/aes256.md +35 -0
  133. package/docs/crypto/ciphers/rc4/README.md +11 -0
  134. package/docs/crypto/ciphers/rc4/functions/rc4.md +35 -0
  135. package/docs/crypto/constants/README.md +11 -0
  136. package/docs/crypto/constants/variables/DEFAULT_PADDING.md +13 -0
  137. package/docs/crypto/key-derivation/key-derivation/README.md +13 -0
  138. package/docs/crypto/key-derivation/key-derivation/functions/computeMasterKey.md +57 -0
  139. package/docs/crypto/key-derivation/key-derivation/functions/deriveObjectKey.md +50 -0
  140. package/docs/crypto/key-derivation/key-derivation/functions/padPassword.md +33 -0
  141. package/docs/crypto/key-derivation/key-derivation-aes256/README.md +13 -0
  142. package/docs/crypto/key-derivation/key-derivation-aes256/functions/computeAlgorithm2bHash.md +45 -0
  143. package/docs/crypto/key-derivation/key-derivation-aes256/functions/getFileKey.md +66 -0
  144. package/docs/crypto/key-derivation/key-derivation-aes256/functions/validatePasswordHash.md +52 -0
  145. package/docs/crypto/key-gen/key-gen-aes256/README.md +12 -0
  146. package/docs/crypto/key-gen/key-gen-aes256/functions/generateOandOe.md +44 -0
  147. package/docs/crypto/key-gen/key-gen-aes256/functions/generateUandUe.md +38 -0
  148. package/docs/crypto/key-gen/key-gen-rc4-128/README.md +13 -0
  149. package/docs/crypto/key-gen/key-gen-rc4-128/functions/computeOValueRc4_128.md +38 -0
  150. package/docs/crypto/key-gen/key-gen-rc4-128/functions/computeUValueRc4_128.md +62 -0
  151. package/docs/crypto/key-gen/key-gen-rc4-128/functions/decryptUserPasswordRc4_128.md +38 -0
  152. package/docs/crypto/key-gen/key-gen-rc4-40/README.md +14 -0
  153. package/docs/crypto/key-gen/key-gen-rc4-40/functions/computeEncryptionKeyRc4_40.md +49 -0
  154. package/docs/crypto/key-gen/key-gen-rc4-40/functions/computeORc4_40.md +38 -0
  155. package/docs/crypto/key-gen/key-gen-rc4-40/functions/computeURc4_40.md +50 -0
  156. package/docs/crypto/key-gen/key-gen-rc4-40/functions/decryptUserPasswordRc4_40.md +38 -0
  157. package/docs/crypto/types/README.md +11 -0
  158. package/docs/crypto/types/interfaces/Cipher.md +39 -0
  159. package/docs/crypto/utils/README.md +13 -0
  160. package/docs/crypto/utils/functions/int32ToLittleEndianBytes.md +31 -0
  161. package/docs/crypto/utils/functions/padPassword.md +33 -0
  162. package/docs/crypto/utils/functions/removePdfPasswordPadding.md +32 -0
  163. package/docs/filters/ascii85/README.md +11 -0
  164. package/docs/filters/ascii85/functions/ascii85.md +27 -0
  165. package/docs/filters/asciihex/README.md +11 -0
  166. package/docs/filters/asciihex/functions/asciiHex.md +27 -0
  167. package/docs/filters/flate/README.md +11 -0
  168. package/docs/filters/flate/functions/flate.md +26 -0
  169. package/docs/filters/lzw/README.md +11 -0
  170. package/docs/filters/lzw/functions/lzw.md +27 -0
  171. package/docs/filters/pass-through/README.md +11 -0
  172. package/docs/filters/pass-through/functions/passthroughFilter.md +25 -0
  173. package/docs/filters/runlength/README.md +11 -0
  174. package/docs/filters/runlength/functions/runLength.md +27 -0
  175. package/docs/filters/types/README.md +19 -0
  176. package/docs/filters/types/interfaces/PdfFilter.md +39 -0
  177. package/docs/filters/types/type-aliases/PdfStreamFilterType.md +9 -0
  178. package/docs/filters/types/variables/PDF_FILTER_TYPES.md +51 -0
  179. package/docs/index/README.md +235 -0
  180. package/docs/pdf/README.md +31 -0
  181. package/docs/pdf/errors/README.md +11 -0
  182. package/docs/pdf/errors/classes/FoundCompressedObjectError.md +56 -0
  183. package/docs/pdf/pdf-document/README.md +11 -0
  184. package/docs/pdf/pdf-document/classes/PdfDocument.md +876 -0
  185. package/docs/pdf/pdf-reader/README.md +11 -0
  186. package/docs/pdf/pdf-reader/classes/PdfReader.md +82 -0
  187. package/docs/pdf/pdf-revision/README.md +11 -0
  188. package/docs/pdf/pdf-revision/classes/PdfRevision.md +508 -0
  189. package/docs/pdf/pdf-xref-lookup/README.md +11 -0
  190. package/docs/pdf/pdf-xref-lookup/classes/PdfXrefLookup.md +421 -0
  191. package/docs/security/crypt-filters/aesv2/README.md +11 -0
  192. package/docs/security/crypt-filters/aesv2/classes/AesV2CryptFilter.md +274 -0
  193. package/docs/security/crypt-filters/aesv3/README.md +11 -0
  194. package/docs/security/crypt-filters/aesv3/classes/AesV3CryptFilter.md +275 -0
  195. package/docs/security/crypt-filters/base/README.md +15 -0
  196. package/docs/security/crypt-filters/base/classes/PdfCryptFilter.md +221 -0
  197. package/docs/security/crypt-filters/base/type-aliases/CryptFilterOptions.md +43 -0
  198. package/docs/security/crypt-filters/identity/README.md +11 -0
  199. package/docs/security/crypt-filters/identity/classes/IdentityCryptFilter.md +249 -0
  200. package/docs/security/crypt-filters/v2/README.md +11 -0
  201. package/docs/security/crypt-filters/v2/classes/V2CryptFilter.md +279 -0
  202. package/docs/security/handlers/base/README.md +17 -0
  203. package/docs/security/handlers/base/classes/PdfSecurityHandler.md +384 -0
  204. package/docs/security/handlers/base/classes/PdfStandardSecurityHandler.md +694 -0
  205. package/docs/security/handlers/base/type-aliases/PdfSecurityHandlerOptions.md +27 -0
  206. package/docs/security/handlers/base/type-aliases/PdfStandardSecurityHandlerOptions.md +43 -0
  207. package/docs/security/handlers/pubSec/README.md +11 -0
  208. package/docs/security/handlers/pubSec/classes/PdfPublicKeySecurityHandler.md +503 -0
  209. package/docs/security/handlers/utils/README.md +14 -0
  210. package/docs/security/handlers/utils/functions/createFromDictionary.md +56 -0
  211. package/docs/security/handlers/utils/functions/createFromEncryptionOptions.md +40 -0
  212. package/docs/security/handlers/utils/functions/createStandardSecurityHandlerFromDictionary.md +55 -0
  213. package/docs/security/handlers/utils/functions/getCryptFilter.md +35 -0
  214. package/docs/security/handlers/v1/README.md +11 -0
  215. package/docs/security/handlers/v1/classes/PdfV1SecurityHandler.md +779 -0
  216. package/docs/security/handlers/v2/README.md +11 -0
  217. package/docs/security/handlers/v2/classes/PdfV2SecurityHandler.md +783 -0
  218. package/docs/security/handlers/v4/README.md +11 -0
  219. package/docs/security/handlers/v4/classes/PdfV4SecurityHandler.md +907 -0
  220. package/docs/security/handlers/v5/README.md +11 -0
  221. package/docs/security/handlers/v5/classes/PdfV5SecurityHandler.md +926 -0
  222. package/docs/security/types/README.md +19 -0
  223. package/docs/security/types/type-aliases/CryptFilterType.md +15 -0
  224. package/docs/security/types/type-aliases/PdfCryptFilterDictionary.md +12 -0
  225. package/docs/security/types/type-aliases/PdfEncryptionAlgorithmOptions.md +11 -0
  226. package/docs/security/types/type-aliases/PdfEncryptionAlgorithmType.md +17 -0
  227. package/docs/security/types/type-aliases/PdfEncryptionDictionary.md +13 -0
  228. package/docs/security/types/type-aliases/PdfEncryptionDictionaryObject.md +11 -0
  229. package/docs/security/types/type-aliases/PdfEncryptionOptions.md +90 -0
  230. package/docs/security/types/type-aliases/PdfEncryptionRecipient.md +24 -0
  231. package/docs/security/types/type-aliases/PdfId.md +13 -0
  232. package/docs/signing/README.md +127 -0
  233. package/docs/signing/document-security-store/README.md +19 -0
  234. package/docs/signing/document-security-store/classes/PdfCertObject.md +443 -0
  235. package/docs/signing/document-security-store/classes/PdfCrlObject.md +443 -0
  236. package/docs/signing/document-security-store/classes/PdfDocumentSecurityStoreDictionary.md +416 -0
  237. package/docs/signing/document-security-store/classes/PdfDocumentSecurityStoreObject.md +563 -0
  238. package/docs/signing/document-security-store/classes/PdfOcspObject.md +443 -0
  239. package/docs/signing/document-security-store/type-aliases/PdfVriObject.md +12 -0
  240. package/docs/signing/signatures/README.md +55 -0
  241. package/docs/signing/signatures/adbe-pkcs7-detached/README.md +11 -0
  242. package/docs/signing/signatures/adbe-pkcs7-detached/classes/PdfAdbePkcs7DetachedSignatureObject.md +669 -0
  243. package/docs/signing/signatures/adbe-pkcs7-sha1/README.md +11 -0
  244. package/docs/signing/signatures/adbe-pkcs7-sha1/classes/PdfAdbePkcs7Sha1SignatureObject.md +667 -0
  245. package/docs/signing/signatures/adbe-x509-rsa-sha1/README.md +11 -0
  246. package/docs/signing/signatures/adbe-x509-rsa-sha1/classes/PdfAdbePkcsX509RsaSha1SignatureObject.md +651 -0
  247. package/docs/signing/signatures/base/README.md +16 -0
  248. package/docs/signing/signatures/base/classes/PdfSignatureDictionary.md +420 -0
  249. package/docs/signing/signatures/base/classes/PdfSignatureObject.md +584 -0
  250. package/docs/signing/signatures/base/type-aliases/PdfSignatureSignOptions.md +51 -0
  251. package/docs/signing/signatures/etsi-cades-detached/README.md +11 -0
  252. package/docs/signing/signatures/etsi-cades-detached/classes/PdfEtsiCadesDetachedSignatureObject.md +693 -0
  253. package/docs/signing/signatures/etsi-rfc3161/README.md +11 -0
  254. package/docs/signing/signatures/etsi-rfc3161/classes/PdfEtsiRfc3161SignatureObject.md +614 -0
  255. package/docs/signing/signer/README.md +11 -0
  256. package/docs/signing/signer/classes/PdfSigner.md +58 -0
  257. package/docs/signing/types/README.md +16 -0
  258. package/docs/signing/types/type-aliases/PdfSignatureDictionaryEntries.md +95 -0
  259. package/docs/signing/types/type-aliases/PdfSignatureSubType.md +17 -0
  260. package/docs/signing/types/type-aliases/PdfSignatureType.md +14 -0
  261. package/docs/signing/types/type-aliases/RevocationInfo.md +43 -0
  262. package/docs/signing/types/type-aliases/SignaturePolicyDocument.md +35 -0
  263. package/docs/signing/types/type-aliases/TimeStampAuthority.md +35 -0
  264. package/docs/signing/utils/README.md +11 -0
  265. package/docs/signing/utils/functions/fetchRevocationInfo.md +70 -0
  266. package/docs/types/README.md +21 -0
  267. package/docs/types/type-aliases/ByteArray.md +9 -0
  268. package/docs/types/type-aliases/ChangeType.md +9 -0
  269. package/docs/types/type-aliases/DecodeParms.md +33 -0
  270. package/docs/types/type-aliases/HashAlgorithm.md +9 -0
  271. package/docs/types/type-aliases/PdfEncryptionAlgorithm.md +9 -0
  272. package/docs/types/type-aliases/PdfPermissions.md +63 -0
  273. package/docs/types/type-aliases/PdfVersion.md +9 -0
  274. package/docs/types/variables/PERMISSION_FLAGS.md +9 -0
  275. package/docs/utils/IterableReadableStream/README.md +11 -0
  276. package/docs/utils/IterableReadableStream/classes/IterableReadableStream.md +103 -0
  277. package/docs/utils/algos/README.md +28 -0
  278. package/docs/utils/algos/functions/aes128CbcNoPaddingEncrypt.md +43 -0
  279. package/docs/utils/algos/functions/aes128cbcDecrypt.md +47 -0
  280. package/docs/utils/algos/functions/aes128cbcEncrypt.md +47 -0
  281. package/docs/utils/algos/functions/aes256CbcNoPaddingDecrypt.md +43 -0
  282. package/docs/utils/algos/functions/aes256CbcNoPaddingEncrypt.md +43 -0
  283. package/docs/utils/algos/functions/aes256cbcDecrypt.md +43 -0
  284. package/docs/utils/algos/functions/aes256cbcEncrypt.md +43 -0
  285. package/docs/utils/algos/functions/aes256ecbDecrypt.md +41 -0
  286. package/docs/utils/algos/functions/aes256ecbEncrypt.md +41 -0
  287. package/docs/utils/algos/functions/deflateData.md +31 -0
  288. package/docs/utils/algos/functions/getRandomBytes.md +35 -0
  289. package/docs/utils/algos/functions/hash.md +41 -0
  290. package/docs/utils/algos/functions/inflateData.md +35 -0
  291. package/docs/utils/algos/functions/md5.md +31 -0
  292. package/docs/utils/algos/functions/sha1.md +31 -0
  293. package/docs/utils/algos/functions/sha256.md +31 -0
  294. package/docs/utils/algos/functions/sha384.md +31 -0
  295. package/docs/utils/algos/functions/sha512.md +31 -0
  296. package/docs/utils/assert/README.md +12 -0
  297. package/docs/utils/assert/functions/assert.md +39 -0
  298. package/docs/utils/assert/functions/assertIfDefined.md +46 -0
  299. package/docs/utils/bytesToHex/README.md +11 -0
  300. package/docs/utils/bytesToHex/functions/bytesToHex.md +31 -0
  301. package/docs/utils/bytesToHexBytes/README.md +11 -0
  302. package/docs/utils/bytesToHexBytes/functions/bytesToHexBytes.md +32 -0
  303. package/docs/utils/bytesToString/README.md +11 -0
  304. package/docs/utils/bytesToString/functions/bytesToString.md +31 -0
  305. package/docs/utils/concatUint8Arrays/README.md +11 -0
  306. package/docs/utils/concatUint8Arrays/functions/concatUint8Arrays.md +31 -0
  307. package/docs/utils/escapeString/README.md +11 -0
  308. package/docs/utils/escapeString/functions/escapeString.md +32 -0
  309. package/docs/utils/hexBytesToBytes/README.md +11 -0
  310. package/docs/utils/hexBytesToBytes/functions/hexBytesToBytes.md +33 -0
  311. package/docs/utils/hexBytesToString/README.md +11 -0
  312. package/docs/utils/hexBytesToString/functions/hexBytesToString.md +31 -0
  313. package/docs/utils/hexToBytes/README.md +11 -0
  314. package/docs/utils/hexToBytes/functions/hexToBytes.md +31 -0
  315. package/docs/utils/padBytes/README.md +11 -0
  316. package/docs/utils/padBytes/functions/padBytes.md +41 -0
  317. package/docs/utils/predictors/README.md +11 -0
  318. package/docs/utils/predictors/classes/Predictor.md +306 -0
  319. package/docs/utils/replaceInBuffer/README.md +11 -0
  320. package/docs/utils/replaceInBuffer/functions/replaceInBuffer.md +65 -0
  321. package/docs/utils/stringToBytes/README.md +11 -0
  322. package/docs/utils/stringToBytes/functions/stringToBytes.md +32 -0
  323. package/docs/utils/stringToHexBytes/README.md +11 -0
  324. package/docs/utils/stringToHexBytes/functions/stringToHexBytes.md +33 -0
  325. package/docs/utils/unescapeString/README.md +11 -0
  326. package/docs/utils/unescapeString/functions/unescapeString.md +34 -0
  327. package/package.json +63 -71
  328. package/packages/pdf-lite/node_modules/.bin/playwright +16 -0
  329. package/packages/pdf-lite/node_modules/.bin/tsc +16 -0
  330. package/packages/pdf-lite/node_modules/.bin/tsserver +16 -0
  331. package/packages/pdf-lite/node_modules/.bin/vitest +16 -0
  332. package/packages/pdf-lite/package.json +2 -2
  333. package/packages/pdf-lite/scripts/create-encryption-tests.sh +0 -0
  334. package/packages/pdf-lite/scripts/gen-signing-keys.sh +0 -0
  335. package/packages/pdf-lite/scripts/generate-all-signing-keys.sh +0 -0
  336. package/scripts/bump-version.sh +0 -0
  337. package/scripts/gen-html-docs.sh +0 -0
  338. package/scripts/gen-md-docs.sh +0 -0
  339. package/scripts/prepare-release.sh +0 -0
@@ -0,0 +1,907 @@
1
+ [**pdf-lite**](../../../../README.md)
2
+
3
+ ---
4
+
5
+ [pdf-lite](../../../../README.md) / [security/handlers/v4](../README.md) / PdfV4SecurityHandler
6
+
7
+ # Class: PdfV4SecurityHandler
8
+
9
+ V4 security handler implementing AES-128-CBC encryption with crypt filters.
10
+ Supports different encryption methods for strings, streams, and embedded files (PDF 1.5).
11
+
12
+ ## Example
13
+
14
+ ```typescript
15
+ const handler = new PdfV4SecurityHandler({
16
+ password: 'user123',
17
+ ownerPassword: 'admin456',
18
+ })
19
+ handler.setCryptFilter(
20
+ 'StmFilter',
21
+ new AesV2CryptFilter({ authEvent: 'DocOpen' }),
22
+ )
23
+ ```
24
+
25
+ ## Extends
26
+
27
+ - [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md)
28
+
29
+ ## Extended by
30
+
31
+ - [`PdfV5SecurityHandler`](../../v5/classes/PdfV5SecurityHandler.md)
32
+
33
+ ## Constructors
34
+
35
+ ### Constructor
36
+
37
+ > **new PdfV4SecurityHandler**(`options`): `PdfV4SecurityHandler`
38
+
39
+ Creates a new V4 security handler with AES-128 encryption.
40
+
41
+ #### Parameters
42
+
43
+ ##### options
44
+
45
+ [`PdfStandardSecurityHandlerOptions`](../../base/type-aliases/PdfStandardSecurityHandlerOptions.md)
46
+
47
+ Configuration options for the handler.
48
+
49
+ #### Returns
50
+
51
+ `PdfV4SecurityHandler`
52
+
53
+ #### Overrides
54
+
55
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`constructor`](../../v2/classes/PdfV2SecurityHandler.md#constructor)
56
+
57
+ ## Properties
58
+
59
+ ### cryptFilters
60
+
61
+ > `protected` **cryptFilters**: `Map`\<`string`, [`PdfCryptFilter`](../../../crypt-filters/base/classes/PdfCryptFilter.md)\>
62
+
63
+ Map of named crypt filters.
64
+
65
+ ---
66
+
67
+ ### cryptFiltersByType
68
+
69
+ > `protected` **cryptFiltersByType**: `object` = `{}`
70
+
71
+ Mapping of content types to crypt filter names.
72
+
73
+ #### file?
74
+
75
+ > `optional` **file**: `string`
76
+
77
+ #### stream?
78
+
79
+ > `optional` **stream**: `string`
80
+
81
+ #### string?
82
+
83
+ > `optional` **string**: `string`
84
+
85
+ ---
86
+
87
+ ### dict
88
+
89
+ > **dict**: [`PdfEncryptionDictionary`](../../../types/type-aliases/PdfEncryptionDictionary.md)
90
+
91
+ The encryption dictionary containing all encryption parameters.
92
+
93
+ #### Inherited from
94
+
95
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`dict`](../../v2/classes/PdfV2SecurityHandler.md#dict)
96
+
97
+ ---
98
+
99
+ ### documentId?
100
+
101
+ > `protected` `optional` **documentId**: [`PdfId`](../../../types/type-aliases/PdfId.md)
102
+
103
+ Document identifier for key derivation.
104
+
105
+ #### Inherited from
106
+
107
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`documentId`](../../v2/classes/PdfV2SecurityHandler.md#documentid)
108
+
109
+ ---
110
+
111
+ ### encryptMetadata
112
+
113
+ > **encryptMetadata**: `boolean`
114
+
115
+ Whether to encrypt document metadata.
116
+
117
+ #### Inherited from
118
+
119
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`encryptMetadata`](../../v2/classes/PdfV2SecurityHandler.md#encryptmetadata)
120
+
121
+ ---
122
+
123
+ ### masterKey?
124
+
125
+ > `protected` `optional` **masterKey**: [`ByteArray`](../../../../types/type-aliases/ByteArray.md)
126
+
127
+ Derived master encryption key.
128
+
129
+ #### Inherited from
130
+
131
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`masterKey`](../../v2/classes/PdfV2SecurityHandler.md#masterkey)
132
+
133
+ ---
134
+
135
+ ### ownerKey?
136
+
137
+ > `protected` `optional` **ownerKey**: [`ByteArray`](../../../../types/type-aliases/ByteArray.md)
138
+
139
+ Computed owner key (O value).
140
+
141
+ #### Inherited from
142
+
143
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`ownerKey`](../../v2/classes/PdfV2SecurityHandler.md#ownerkey)
144
+
145
+ ---
146
+
147
+ ### ownerPassword?
148
+
149
+ > `protected` `optional` **ownerPassword**: [`ByteArray`](../../../../types/type-aliases/ByteArray.md)
150
+
151
+ Owner password for full access.
152
+
153
+ #### Inherited from
154
+
155
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`ownerPassword`](../../v2/classes/PdfV2SecurityHandler.md#ownerpassword)
156
+
157
+ ---
158
+
159
+ ### password
160
+
161
+ > `protected` **password**: [`ByteArray`](../../../../types/type-aliases/ByteArray.md)
162
+
163
+ User password for authentication.
164
+
165
+ #### Inherited from
166
+
167
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`password`](../../v2/classes/PdfV2SecurityHandler.md#password)
168
+
169
+ ---
170
+
171
+ ### permissions
172
+
173
+ > **permissions**: `number`
174
+
175
+ Numeric permission flags.
176
+
177
+ #### Inherited from
178
+
179
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`permissions`](../../v2/classes/PdfV2SecurityHandler.md#permissions)
180
+
181
+ ---
182
+
183
+ ### userKey?
184
+
185
+ > `protected` `optional` **userKey**: [`ByteArray`](../../../../types/type-aliases/ByteArray.md)
186
+
187
+ Computed user key (U value).
188
+
189
+ #### Inherited from
190
+
191
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`userKey`](../../v2/classes/PdfV2SecurityHandler.md#userkey)
192
+
193
+ ## Methods
194
+
195
+ ### buildPermissions()
196
+
197
+ > `protected` **buildPermissions**(`perm`): `number`
198
+
199
+ Builds the numeric permission flags from a PdfPermissions object.
200
+
201
+ #### Parameters
202
+
203
+ ##### perm
204
+
205
+ [`PdfPermissions`](../../../../types/type-aliases/PdfPermissions.md)
206
+
207
+ The permissions to encode.
208
+
209
+ #### Returns
210
+
211
+ `number`
212
+
213
+ The numeric permission flags.
214
+
215
+ #### Inherited from
216
+
217
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`buildPermissions`](../../v2/classes/PdfV2SecurityHandler.md#buildpermissions)
218
+
219
+ ---
220
+
221
+ ### canEncryptMetadata()
222
+
223
+ > **canEncryptMetadata**(): `boolean`
224
+
225
+ Checks if metadata encryption is enabled.
226
+
227
+ #### Returns
228
+
229
+ `boolean`
230
+
231
+ True if metadata should be encrypted.
232
+
233
+ #### Inherited from
234
+
235
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`canEncryptMetadata`](../../v2/classes/PdfV2SecurityHandler.md#canencryptmetadata)
236
+
237
+ ---
238
+
239
+ ### computeMasterKey()
240
+
241
+ > `protected` **computeMasterKey**(): `Promise`\<[`ByteArray`](../../../../types/type-aliases/ByteArray.md)\>
242
+
243
+ Computes the master encryption key from the password.
244
+
245
+ #### Returns
246
+
247
+ `Promise`\<[`ByteArray`](../../../../types/type-aliases/ByteArray.md)\>
248
+
249
+ The computed master key.
250
+
251
+ #### Throws
252
+
253
+ Error if required parameters are missing or password is incorrect.
254
+
255
+ #### Inherited from
256
+
257
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`computeMasterKey`](../../v2/classes/PdfV2SecurityHandler.md#computemasterkey)
258
+
259
+ ---
260
+
261
+ ### computeObjectKey()
262
+
263
+ > **computeObjectKey**(`objectNumber?`, `generationNumber?`, `algorithm?`): `Promise`\<[`ByteArray`](../../../../types/type-aliases/ByteArray.md)\>
264
+
265
+ Computes the object-specific encryption key.
266
+
267
+ #### Parameters
268
+
269
+ ##### objectNumber?
270
+
271
+ `number`
272
+
273
+ The PDF object number.
274
+
275
+ ##### generationNumber?
276
+
277
+ `number`
278
+
279
+ The PDF generation number.
280
+
281
+ ##### algorithm?
282
+
283
+ [`PdfEncryptionAlgorithmType`](../../../types/type-aliases/PdfEncryptionAlgorithmType.md)
284
+
285
+ Optional algorithm type for key derivation.
286
+
287
+ #### Returns
288
+
289
+ `Promise`\<[`ByteArray`](../../../../types/type-aliases/ByteArray.md)\>
290
+
291
+ The computed object key.
292
+
293
+ #### Throws
294
+
295
+ Error if object or generation number is invalid.
296
+
297
+ #### Overrides
298
+
299
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`computeObjectKey`](../../v2/classes/PdfV2SecurityHandler.md#computeobjectkey)
300
+
301
+ ---
302
+
303
+ ### computeOwnerKey()
304
+
305
+ > `protected` **computeOwnerKey**(): `Promise`\<[`ByteArray`](../../../../types/type-aliases/ByteArray.md)\>
306
+
307
+ Computes the owner key (O value) using RC4-128 algorithm.
308
+
309
+ #### Returns
310
+
311
+ `Promise`\<[`ByteArray`](../../../../types/type-aliases/ByteArray.md)\>
312
+
313
+ The computed owner key.
314
+
315
+ #### Inherited from
316
+
317
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`computeOwnerKey`](../../v2/classes/PdfV2SecurityHandler.md#computeownerkey)
318
+
319
+ ---
320
+
321
+ ### computeUserKey()
322
+
323
+ > `protected` **computeUserKey**(): `Promise`\<[`ByteArray`](../../../../types/type-aliases/ByteArray.md)\>
324
+
325
+ Computes the user key (U value) using RC4-128 algorithm.
326
+
327
+ #### Returns
328
+
329
+ `Promise`\<[`ByteArray`](../../../../types/type-aliases/ByteArray.md)\>
330
+
331
+ The computed user key.
332
+
333
+ #### Throws
334
+
335
+ Error if document ID, owner key, or permissions are not set.
336
+
337
+ #### Inherited from
338
+
339
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`computeUserKey`](../../v2/classes/PdfV2SecurityHandler.md#computeuserkey)
340
+
341
+ ---
342
+
343
+ ### decodePermissions()
344
+
345
+ > **decodePermissions**(): [`PdfPermissions`](../../../../types/type-aliases/PdfPermissions.md)
346
+
347
+ Decodes the numeric permission flags into a PdfPermissions object.
348
+
349
+ #### Returns
350
+
351
+ [`PdfPermissions`](../../../../types/type-aliases/PdfPermissions.md)
352
+
353
+ An object with boolean flags for each permission.
354
+
355
+ #### Inherited from
356
+
357
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`decodePermissions`](../../v2/classes/PdfV2SecurityHandler.md#decodepermissions)
358
+
359
+ ---
360
+
361
+ ### decrypt()
362
+
363
+ > **decrypt**(`type`, `data`, `objectNumber?`, `generationNumber?`): `Promise`\<[`ByteArray`](../../../../types/type-aliases/ByteArray.md)\>
364
+
365
+ Decrypts data using the appropriate crypt filter for the content type.
366
+
367
+ #### Parameters
368
+
369
+ ##### type
370
+
371
+ The type of content being decrypted.
372
+
373
+ `"string"` | `"stream"` | `"file"`
374
+
375
+ ##### data
376
+
377
+ [`ByteArray`](../../../../types/type-aliases/ByteArray.md)
378
+
379
+ The encrypted data.
380
+
381
+ ##### objectNumber?
382
+
383
+ `number`
384
+
385
+ The PDF object number.
386
+
387
+ ##### generationNumber?
388
+
389
+ `number`
390
+
391
+ The PDF generation number.
392
+
393
+ #### Returns
394
+
395
+ `Promise`\<[`ByteArray`](../../../../types/type-aliases/ByteArray.md)\>
396
+
397
+ The decrypted data.
398
+
399
+ #### Overrides
400
+
401
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`decrypt`](../../v2/classes/PdfV2SecurityHandler.md#decrypt)
402
+
403
+ ---
404
+
405
+ ### decryptObject()
406
+
407
+ > **decryptObject**(`object`): `Promise`\<`void`\>
408
+
409
+ Recursively decrypts all strings and streams within an indirect object.
410
+
411
+ #### Parameters
412
+
413
+ ##### object
414
+
415
+ [`PdfIndirectObject`](../../../../core/objects/pdf-indirect-object/classes/PdfIndirectObject.md)
416
+
417
+ The indirect object to decrypt.
418
+
419
+ #### Returns
420
+
421
+ `Promise`\<`void`\>
422
+
423
+ #### Inherited from
424
+
425
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`decryptObject`](../../v2/classes/PdfV2SecurityHandler.md#decryptobject)
426
+
427
+ ---
428
+
429
+ ### encrypt()
430
+
431
+ > **encrypt**(`type`, `data`, `objectNumber?`, `generationNumber?`): `Promise`\<[`ByteArray`](../../../../types/type-aliases/ByteArray.md)\>
432
+
433
+ Encrypts data using the appropriate crypt filter for the content type.
434
+
435
+ #### Parameters
436
+
437
+ ##### type
438
+
439
+ The type of content being encrypted.
440
+
441
+ `"string"` | `"stream"` | `"file"`
442
+
443
+ ##### data
444
+
445
+ [`ByteArray`](../../../../types/type-aliases/ByteArray.md)
446
+
447
+ The data to encrypt.
448
+
449
+ ##### objectNumber?
450
+
451
+ `number`
452
+
453
+ The PDF object number.
454
+
455
+ ##### generationNumber?
456
+
457
+ `number`
458
+
459
+ The PDF generation number.
460
+
461
+ #### Returns
462
+
463
+ `Promise`\<[`ByteArray`](../../../../types/type-aliases/ByteArray.md)\>
464
+
465
+ The encrypted data.
466
+
467
+ #### Overrides
468
+
469
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`encrypt`](../../v2/classes/PdfV2SecurityHandler.md#encrypt)
470
+
471
+ ---
472
+
473
+ ### encryptObject()
474
+
475
+ > **encryptObject**(`object`): `Promise`\<`void`\>
476
+
477
+ Recursively encrypts all strings and streams within an indirect object.
478
+
479
+ #### Parameters
480
+
481
+ ##### object
482
+
483
+ [`PdfIndirectObject`](../../../../core/objects/pdf-indirect-object/classes/PdfIndirectObject.md)
484
+
485
+ The indirect object to encrypt.
486
+
487
+ #### Returns
488
+
489
+ `Promise`\<`void`\>
490
+
491
+ #### Inherited from
492
+
493
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`encryptObject`](../../v2/classes/PdfV2SecurityHandler.md#encryptobject)
494
+
495
+ ---
496
+
497
+ ### getCipher()
498
+
499
+ > `protected` **getCipher**(`objectNumber?`, `generationNumber?`): `Promise`\<[`Cipher`](../../../../crypto/types/interfaces/Cipher.md)\>
500
+
501
+ Gets an AES-128 cipher for the specified object.
502
+
503
+ #### Parameters
504
+
505
+ ##### objectNumber?
506
+
507
+ `number`
508
+
509
+ The PDF object number.
510
+
511
+ ##### generationNumber?
512
+
513
+ `number`
514
+
515
+ The PDF generation number.
516
+
517
+ #### Returns
518
+
519
+ `Promise`\<[`Cipher`](../../../../crypto/types/interfaces/Cipher.md)\>
520
+
521
+ An AES-128 cipher instance.
522
+
523
+ #### Overrides
524
+
525
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`getCipher`](../../v2/classes/PdfV2SecurityHandler.md#getcipher)
526
+
527
+ ---
528
+
529
+ ### getCryptFilter()
530
+
531
+ > **getCryptFilter**(`name`): [`PdfCryptFilter`](../../../crypt-filters/base/classes/PdfCryptFilter.md) \| `undefined`
532
+
533
+ Gets a crypt filter by name.
534
+
535
+ #### Parameters
536
+
537
+ ##### name
538
+
539
+ `string`
540
+
541
+ The crypt filter name.
542
+
543
+ #### Returns
544
+
545
+ [`PdfCryptFilter`](../../../crypt-filters/base/classes/PdfCryptFilter.md) \| `undefined`
546
+
547
+ The crypt filter, or undefined if not found.
548
+
549
+ ---
550
+
551
+ ### getCryptFilterByType()
552
+
553
+ > **getCryptFilterByType**(`type`): [`PdfCryptFilter`](../../../crypt-filters/base/classes/PdfCryptFilter.md) \| `null`
554
+
555
+ Gets the crypt filter assigned to a content type.
556
+
557
+ #### Parameters
558
+
559
+ ##### type
560
+
561
+ [`CryptFilterType`](../../../types/type-aliases/CryptFilterType.md)
562
+
563
+ The content type ('string', 'stream', or 'file').
564
+
565
+ #### Returns
566
+
567
+ [`PdfCryptFilter`](../../../crypt-filters/base/classes/PdfCryptFilter.md) \| `null`
568
+
569
+ The assigned crypt filter, or null if none.
570
+
571
+ ---
572
+
573
+ ### getDocumentId()
574
+
575
+ > **getDocumentId**(): [`PdfId`](../../../types/type-aliases/PdfId.md) \| `undefined`
576
+
577
+ Gets the document ID.
578
+
579
+ #### Returns
580
+
581
+ [`PdfId`](../../../types/type-aliases/PdfId.md) \| `undefined`
582
+
583
+ The document ID, or undefined if not set.
584
+
585
+ #### Inherited from
586
+
587
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`getDocumentId`](../../v2/classes/PdfV2SecurityHandler.md#getdocumentid)
588
+
589
+ ---
590
+
591
+ ### getKeyBits()
592
+
593
+ > **getKeyBits**(): `number`
594
+
595
+ Gets the encryption key length in bits.
596
+
597
+ #### Returns
598
+
599
+ `number`
600
+
601
+ 128 for V2 encryption.
602
+
603
+ #### Inherited from
604
+
605
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`getKeyBits`](../../v2/classes/PdfV2SecurityHandler.md#getkeybits)
606
+
607
+ ---
608
+
609
+ ### getName()
610
+
611
+ > **getName**(): `string`
612
+
613
+ Gets the security handler filter name.
614
+
615
+ #### Returns
616
+
617
+ `string`
618
+
619
+ 'Standard' for password-based encryption.
620
+
621
+ #### Inherited from
622
+
623
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`getName`](../../v2/classes/PdfV2SecurityHandler.md#getname)
624
+
625
+ ---
626
+
627
+ ### getRevision()
628
+
629
+ > **getRevision**(): `number`
630
+
631
+ Gets the encryption revision number.
632
+
633
+ #### Returns
634
+
635
+ `number`
636
+
637
+ 4 for V4 encryption.
638
+
639
+ #### Overrides
640
+
641
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`getRevision`](../../v2/classes/PdfV2SecurityHandler.md#getrevision)
642
+
643
+ ---
644
+
645
+ ### getVersion()
646
+
647
+ > **getVersion**(): `number`
648
+
649
+ Gets the encryption version number.
650
+
651
+ #### Returns
652
+
653
+ `number`
654
+
655
+ 4 for crypt filter-based encryption.
656
+
657
+ #### Overrides
658
+
659
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`getVersion`](../../v2/classes/PdfV2SecurityHandler.md#getversion)
660
+
661
+ ---
662
+
663
+ ### initKeys()
664
+
665
+ > `protected` **initKeys**(): `Promise`\<`void`\>
666
+
667
+ Initializes the user and owner keys if not already set.
668
+
669
+ #### Returns
670
+
671
+ `Promise`\<`void`\>
672
+
673
+ #### Inherited from
674
+
675
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`initKeys`](../../v2/classes/PdfV2SecurityHandler.md#initkeys)
676
+
677
+ ---
678
+
679
+ ### isReady()
680
+
681
+ > **isReady**(): `boolean`
682
+
683
+ Checks if the handler is ready (has document ID).
684
+
685
+ #### Returns
686
+
687
+ `boolean`
688
+
689
+ True if document ID is set.
690
+
691
+ #### Inherited from
692
+
693
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`isReady`](../../v2/classes/PdfV2SecurityHandler.md#isready)
694
+
695
+ ---
696
+
697
+ ### readEncryptionDictionary()
698
+
699
+ > **readEncryptionDictionary**(`encryptionDictionary`): `void`
700
+
701
+ Reads encryption parameters and crypt filter definitions from the dictionary.
702
+
703
+ #### Parameters
704
+
705
+ ##### encryptionDictionary
706
+
707
+ [`PdfEncryptionDictionary`](../../../types/type-aliases/PdfEncryptionDictionary.md)
708
+
709
+ The encryption dictionary from the PDF.
710
+
711
+ #### Returns
712
+
713
+ `void`
714
+
715
+ #### Overrides
716
+
717
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`readEncryptionDictionary`](../../v2/classes/PdfV2SecurityHandler.md#readencryptiondictionary)
718
+
719
+ ---
720
+
721
+ ### recoverUserPassword()
722
+
723
+ > **recoverUserPassword**(`ownerPassword?`): `Promise`\<`string`\>
724
+
725
+ Recovers the user password from the owner password.
726
+
727
+ #### Parameters
728
+
729
+ ##### ownerPassword?
730
+
731
+ The owner password.
732
+
733
+ `string` | [`ByteArray`](../../../../types/type-aliases/ByteArray.md)
734
+
735
+ #### Returns
736
+
737
+ `Promise`\<`string`\>
738
+
739
+ The recovered user password as a string.
740
+
741
+ #### Inherited from
742
+
743
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`recoverUserPassword`](../../v2/classes/PdfV2SecurityHandler.md#recoveruserpassword)
744
+
745
+ ---
746
+
747
+ ### setCryptFilter()
748
+
749
+ > **setCryptFilter**(`name`, `filter`): `void`
750
+
751
+ Registers a named crypt filter.
752
+
753
+ #### Parameters
754
+
755
+ ##### name
756
+
757
+ `string`
758
+
759
+ The filter name.
760
+
761
+ ##### filter
762
+
763
+ [`PdfCryptFilter`](../../../crypt-filters/base/classes/PdfCryptFilter.md)
764
+
765
+ The crypt filter instance.
766
+
767
+ #### Returns
768
+
769
+ `void`
770
+
771
+ ---
772
+
773
+ ### setCryptFilterForType()
774
+
775
+ > **setCryptFilterForType**(`type`, `name`): `void`
776
+
777
+ Assigns a crypt filter to a content type.
778
+
779
+ #### Parameters
780
+
781
+ ##### type
782
+
783
+ [`CryptFilterType`](../../../types/type-aliases/CryptFilterType.md)
784
+
785
+ The content type.
786
+
787
+ ##### name
788
+
789
+ `string`
790
+
791
+ The crypt filter name.
792
+
793
+ #### Returns
794
+
795
+ `void`
796
+
797
+ ---
798
+
799
+ ### setDocumentId()
800
+
801
+ > **setDocumentId**(`id`): `void`
802
+
803
+ Sets the document ID for key derivation.
804
+
805
+ #### Parameters
806
+
807
+ ##### id
808
+
809
+ [`PdfId`](../../../types/type-aliases/PdfId.md)
810
+
811
+ The document ID array.
812
+
813
+ #### Returns
814
+
815
+ `void`
816
+
817
+ #### Inherited from
818
+
819
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`setDocumentId`](../../v2/classes/PdfV2SecurityHandler.md#setdocumentid)
820
+
821
+ ---
822
+
823
+ ### setMasterKey()
824
+
825
+ > **setMasterKey**(`masterKey`): `void`
826
+
827
+ Sets the master encryption key directly.
828
+
829
+ #### Parameters
830
+
831
+ ##### masterKey
832
+
833
+ [`ByteArray`](../../../../types/type-aliases/ByteArray.md)
834
+
835
+ The master key to use.
836
+
837
+ #### Returns
838
+
839
+ `void`
840
+
841
+ #### Inherited from
842
+
843
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`setMasterKey`](../../v2/classes/PdfV2SecurityHandler.md#setmasterkey)
844
+
845
+ ---
846
+
847
+ ### setOwnerPassword()
848
+
849
+ > **setOwnerPassword**(`ownerPassword`): `void`
850
+
851
+ Sets the owner password.
852
+
853
+ #### Parameters
854
+
855
+ ##### ownerPassword
856
+
857
+ The owner password string or bytes.
858
+
859
+ `string` | [`ByteArray`](../../../../types/type-aliases/ByteArray.md)
860
+
861
+ #### Returns
862
+
863
+ `void`
864
+
865
+ #### Inherited from
866
+
867
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`setOwnerPassword`](../../v2/classes/PdfV2SecurityHandler.md#setownerpassword)
868
+
869
+ ---
870
+
871
+ ### setPassword()
872
+
873
+ > **setPassword**(`password`): `void`
874
+
875
+ Sets the user password.
876
+
877
+ #### Parameters
878
+
879
+ ##### password
880
+
881
+ The user password string or bytes.
882
+
883
+ `string` | [`ByteArray`](../../../../types/type-aliases/ByteArray.md)
884
+
885
+ #### Returns
886
+
887
+ `void`
888
+
889
+ #### Inherited from
890
+
891
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`setPassword`](../../v2/classes/PdfV2SecurityHandler.md#setpassword)
892
+
893
+ ---
894
+
895
+ ### write()
896
+
897
+ > **write**(): `Promise`\<`void`\>
898
+
899
+ Writes the encryption dictionary including crypt filter definitions.
900
+
901
+ #### Returns
902
+
903
+ `Promise`\<`void`\>
904
+
905
+ #### Overrides
906
+
907
+ [`PdfV2SecurityHandler`](../../v2/classes/PdfV2SecurityHandler.md).[`write`](../../v2/classes/PdfV2SecurityHandler.md#write)