{"_id":"@dottedice/pades-pdf-signer","_rev":"8-a009eed579f0aeea49d34d2655c4cdf4","name":"@dottedice/pades-pdf-signer","dist-tags":{"latest":"1.0.7"},"versions":{"1.0.0":{"name":"@dottedice/pades-pdf-signer","version":"1.0.0","keywords":["pdf-signer","pades","pdf-signature","cryptography","incremental-update","client-side"],"author":{"name":"DottedIce Digital"},"license":"MIT","_id":"@dottedice/pades-pdf-signer@1.0.0","maintainers":[{"name":"dottedice","email":"info@dottedice.com"}],"dist":{"shasum":"ab3cea044402d4b2f310561e63600cb17583e318","tarball":"https://registry.npmjs.org/@dottedice/pades-pdf-signer/-/pades-pdf-signer-1.0.0.tgz","fileCount":3,"integrity":"sha512-mjLJcxJooD5ByXW9911rtMflauND/zTvNTLZ+7N/WhQewO4u4yV6Zhm5aWVb3oWflGDKpU/MjIYGiI+OhZkFyw==","signatures":[{"sig":"MEUCIE/q2Hap8AuJ77sLZa/zfe6QTtfAL1tdfsLPa+sys0+AAiEA+m8B9kEc0ZZabr8bxF0JDffI8b/zDYpw3xwxZ/NnZzg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5697},"main":"index.js","type":"module","gitHead":"f0645a24fdb073d0012f9c6f6e75f7ecc733ebc5","_npmUser":{"name":"dottedice","email":"info@dottedice.com"},"_npmVersion":"10.8.2","description":"PAdES-compliant cryptographic PDF signer using incremental updates and client-side Web Crypto API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"pdf-lib":"^1.17.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pades-pdf-signer_1.0.0_1785985847109_0.1279976221385677","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@dottedice/pades-pdf-signer","version":"1.0.1","keywords":["pdf-signer","pades","pdf-signature","cryptography","incremental-update","client-side"],"author":{"name":"DottedIce Digital"},"license":"Apache-2.0","_id":"@dottedice/pades-pdf-signer@1.0.1","maintainers":[{"name":"dottedice","email":"info@dottedice.com"}],"dist":{"shasum":"0f1f5dd8ff06c41cbbced194ee942d9f35c3b2c7","tarball":"https://registry.npmjs.org/@dottedice/pades-pdf-signer/-/pades-pdf-signer-1.0.1.tgz","fileCount":3,"integrity":"sha512-AHra3C09wcTZ5lvEyuNrpgXF2vHrYwFeFSyjNBgiHhOIl9HdDQB94DzqYNHUNGpMv1R0FZg4euQDYVxnfRgnhw==","signatures":[{"sig":"MEYCIQDINPWiHRlttdKvTmmQbcH2Dl+v3k66FCSQTsnMzoOXaQIhAMLozHXEDuwgS8+4UX9LAAa9mcCKIHP92d9pvJNxPadW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5704},"main":"index.js","type":"module","gitHead":"391ffd49f29fd6ba30308a539fa4e53b626ee59b","_npmUser":{"name":"dottedice","email":"info@dottedice.com"},"_npmVersion":"10.8.2","description":"PAdES-compliant cryptographic PDF signer using incremental updates and client-side Web Crypto API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"pdf-lib":"^1.17.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pades-pdf-signer_1.0.1_1785987200832_0.7677040136618203","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@dottedice/pades-pdf-signer","version":"1.0.2","keywords":["pdf-signer","pades","pdf-signature","cryptography","incremental-update","client-side"],"author":{"name":"DottedIce Digital"},"license":"Apache-2.0","_id":"@dottedice/pades-pdf-signer@1.0.2","maintainers":[{"name":"dottedice","email":"info@dottedice.com"}],"dist":{"shasum":"9a912e5af5602ba6cd73f8365bbde63bc3c54bf5","tarball":"https://registry.npmjs.org/@dottedice/pades-pdf-signer/-/pades-pdf-signer-1.0.2.tgz","fileCount":3,"integrity":"sha512-J39mxt8i7xmtREXzEqYengAloQS4WVGCGD1cLn7tYCjR8q4JBHPFFYwqezQbNiemV/3JQEbnZtfqHZR96NLocQ==","signatures":[{"sig":"MEUCIQDbjGSqSNkqf9Wl1mq5Trk5sMm3/p96ZUWW2vo34l8gVgIger1o8VehCnREyxWOeYPuhmcceYT1dUs+VJfm69wCXUU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6397},"main":"index.js","type":"module","gitHead":"8a31be8e8e3e6a917975899f2de34edbece7aff5","_npmUser":{"name":"dottedice","email":"info@dottedice.com"},"_npmVersion":"10.8.2","description":"PAdES-compliant cryptographic PDF signer using incremental updates and client-side Web Crypto API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"pdf-lib":"^1.17.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pades-pdf-signer_1.0.2_1785997666722_0.7740049493155456","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@dottedice/pades-pdf-signer","version":"1.0.3","keywords":["pdf-signer","pades","pdf-signature","cryptography","incremental-update","client-side"],"author":{"name":"DottedIce Digital"},"license":"Apache-2.0","_id":"@dottedice/pades-pdf-signer@1.0.3","maintainers":[{"name":"dottedice","email":"info@dottedice.com"}],"dist":{"shasum":"8b34fd8e5f79a7845c74fa24b1a61f9a44dba322","tarball":"https://registry.npmjs.org/@dottedice/pades-pdf-signer/-/pades-pdf-signer-1.0.3.tgz","fileCount":3,"integrity":"sha512-5JLxqcYiQX7THYrzdqGeJH+CjZyA69/P4f8j+JN/xm8nbHUmW+qa5jKiV01Ycx2VmgBipbPV07rvGTFH1lNC/Q==","signatures":[{"sig":"MEUCIQCrKWvHI4eqIw3MvYLFDOoklfff2bWzpnz6VdqfEaE0tAIgZ6hMKXX4tLbyRS/5XGGuhOZH+tf921xNwrl5usReEzw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16260},"main":"index.js","type":"module","gitHead":"39c658f30e9a13eaa0278eb6b3585ce701eafee6","_npmUser":{"name":"dottedice","email":"info@dottedice.com"},"_npmVersion":"10.8.2","description":"PAdES-compliant cryptographic PDF signer using incremental updates and client-side Web Crypto API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"pdf-lib":"^1.17.1","@dottedice/cms-signed-data":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pades-pdf-signer_1.0.3_1786198741450_0.2945012857301683","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@dottedice/pades-pdf-signer","version":"1.0.4","keywords":["pdf-signer","pades","pdf-signature","cryptography","incremental-update","client-side"],"author":{"name":"DottedIce Digital"},"license":"Apache-2.0","_id":"@dottedice/pades-pdf-signer@1.0.4","maintainers":[{"name":"dottedice","email":"info@dottedice.com"}],"homepage":"https://dottedice.com/open-source-terms.html","dist":{"shasum":"7d4ae389bfe133e6842e8b79f040b318ec6d2e25","tarball":"https://registry.npmjs.org/@dottedice/pades-pdf-signer/-/pades-pdf-signer-1.0.4.tgz","fileCount":3,"integrity":"sha512-GCi/bUyusve256zZE3lV7Q9YtEDK9jmHcxIbW70TBiJd2Ss1OKsffopLVZcTJ+RTZwSoLv9/D2lhQJged264zQ==","signatures":[{"sig":"MEUCIQDCI/Ra8NMAxkw6shb/F6YebwoN1OsVmewnCa0AsaN9UQIgIXIIqslmWPztoIbuc4VSOtrddbZU86sB4tOyfTQSxdk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16322},"main":"index.js","type":"module","gitHead":"46be19e7fa82587f9fc85010aa7c72e6e148a0f3","_npmUser":{"name":"dottedice","email":"info@dottedice.com"},"_npmVersion":"10.8.2","description":"PAdES-compliant cryptographic PDF signer using incremental updates and client-side Web Crypto API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"pdf-lib":"^1.17.1","@dottedice/cms-signed-data":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pades-pdf-signer_1.0.4_1786885912129_0.5475260575002137","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@dottedice/pades-pdf-signer","version":"1.0.5","keywords":["pdf-signer","pades","pdf-signature","cryptography","incremental-update","client-side"],"author":{"name":"DottedIce Digital"},"license":"Apache-2.0","_id":"@dottedice/pades-pdf-signer@1.0.5","maintainers":[{"name":"dottedice","email":"info@dottedice.com"}],"homepage":"https://dottedice.com/open-source-terms.html","dist":{"shasum":"2e9da1f9bb4ebd68225a9a0e50f330a553eb4ddd","tarball":"https://registry.npmjs.org/@dottedice/pades-pdf-signer/-/pades-pdf-signer-1.0.5.tgz","fileCount":3,"integrity":"sha512-3TrxZUnoDPHiKbF0b3vAQU3JvtH1IOE31SMcpC7O0ph4yXa7Dmfl3DGM41ogxaVljemoaHQq30amGICjXfDpSQ==","signatures":[{"sig":"MEUCIGpLtyZPvilIT2SzIIMLqjurnHvUgRSiN+1I/zEOXiPRAiEAzmuW0EUPfj3mzcstowOmyStyJrJqzZywHD6q8Tuu2To=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16322},"main":"index.js","type":"module","gitHead":"46be19e7fa82587f9fc85010aa7c72e6e148a0f3","_npmUser":{"name":"dottedice","email":"info@dottedice.com"},"_npmVersion":"11.5.1","description":"PAdES-compliant cryptographic PDF signer using incremental updates and client-side Web Crypto API","directories":{},"_nodeVersion":"24.6.0","dependencies":{"pdf-lib":"^1.17.1","@dottedice/cms-signed-data":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pades-pdf-signer_1.0.5_1786971136620_0.31918777528260867","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@dottedice/pades-pdf-signer","version":"1.0.6","keywords":["pdf-signer","pades","pdf-signature","cryptography","incremental-update","client-side"],"author":{"name":"DottedIce Digital"},"license":"Apache-2.0","_id":"@dottedice/pades-pdf-signer@1.0.6","maintainers":[{"name":"dottedice","email":"info@dottedice.com"}],"homepage":"https://dottedice.com/legal.html#tab=opensource","dist":{"shasum":"23e9959e6fa97e0e77f009a3d03f1424f98a030c","tarball":"https://registry.npmjs.org/@dottedice/pades-pdf-signer/-/pades-pdf-signer-1.0.6.tgz","fileCount":3,"integrity":"sha512-EQSSNYWtWrdw9KM3tjlW2+a9HyybcQOnZOIULFxcyZHN9GdMMW03KSanTsaXfqIPN8zdEVoDEvjHs2RbTuOBLg==","signatures":[{"sig":"MEUCIQDxvuZbZbsilf1GkdyL/haTDmMx5/pVsAGXhElIX3UC4AIgec6OYijSvYuHWDqYtV3YNXV1TTcUUKNOKhY1ovDgzqk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11719},"main":"index.js","type":"module","gitHead":"ce102bc6358dfcce38e3625b8efc56246f033747","_npmUser":{"name":"dottedice","email":"info@dottedice.com"},"_npmVersion":"11.5.1","description":"PAdES-compliant cryptographic PDF signer using incremental updates and client-side Web Crypto API","directories":{},"_nodeVersion":"24.6.0","dependencies":{"pdf-lib":"^1.17.1","@dottedice/cms-signed-data":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/pades-pdf-signer_1.0.6_1786973299792_0.428087047206513","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@dottedice/pades-pdf-signer","version":"1.0.7","description":"PAdES-compliant cryptographic PDF signer using incremental updates and client-side Web Crypto API","main":"index.js","type":"module","dependencies":{"pdf-lib":"^1.17.1","@dottedice/cms-signed-data":"^1.0.0"},"keywords":["pdf-signer","pades","pdf-signature","cryptography","incremental-update","client-side"],"author":{"name":"DottedIce Digital"},"license":"Apache-2.0","homepage":"https://dottedice.com/legal.html#tab=opensource","publishConfig":{"access":"public"},"_id":"@dottedice/pades-pdf-signer@1.0.7","gitHead":"3d162b3ab290497b392b95c2df1b86ed3f9bec84","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-f5s2nZWFRZRGoP6c1U0vMZw1b3yoJ9gY1SgqW4UIJxzOgOVbYKz7ke5ShLDtvLq0uPaqVE/eur5QkAJCR6uVLQ==","shasum":"146c848f0171fc343085c9995394fc6f5b794ac0","tarball":"https://registry.npmjs.org/@dottedice/pades-pdf-signer/-/pades-pdf-signer-1.0.7.tgz","fileCount":3,"unpackedSize":11948,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDyp3b6/1Af7WaU8qG+kVVJiNBvfnmmxTH4Q8uWTPi5uAiAre63TPE7bWL/5+vAwqmlVM8f8ZUgPfJI294VoeY14ew=="}]},"_npmUser":{"name":"dottedice","email":"info@dottedice.com"},"directories":{},"maintainers":[{"name":"dottedice","email":"info@dottedice.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pades-pdf-signer_1.0.7_1787674435968_0.870202526574017"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-06T03:10:46.922Z","modified":"2026-08-25T16:13:56.413Z","1.0.0":"2026-08-06T03:10:47.243Z","1.0.1":"2026-08-06T03:33:20.976Z","1.0.2":"2026-08-06T06:27:46.881Z","1.0.3":"2026-08-08T14:19:01.618Z","1.0.4":"2026-08-16T13:11:52.294Z","1.0.5":"2026-08-17T12:52:16.758Z","1.0.6":"2026-08-17T13:28:19.932Z","1.0.7":"2026-08-25T16:13:56.096Z"},"author":{"name":"DottedIce Digital"},"license":"Apache-2.0","homepage":"https://dottedice.com/legal.html#tab=opensource","keywords":["pdf-signer","pades","pdf-signature","cryptography","incremental-update","client-side"],"description":"PAdES-compliant cryptographic PDF signer using incremental updates and client-side Web Crypto API","maintainers":[{"name":"dottedice","email":"info@dottedice.com"}],"readme":"## Legal Terms & Disclaimer\nThis open-source package is distributed strictly for technical education and architectural research purposes. For full warranty disclaimers, export control notices (US EAR / EU Dual-Use), and limitation of liability terms, please review our [Open Source Terms & Disclaimer](https://dottedice.com/legal.html#tab=opensource).\n\n---\n\n# @dottedice/pades-pdf-signer\n\nClient-side cryptographic PDF signing utility using metadata-level updates and native Web Crypto.\n\n## Installation\n\n```bash\nnpm install @dottedice/pades-pdf-signer pdf-lib\n```\n\n## Features\n* **Metadata-Level Signing**: Stores cryptographic signatures, digests, and signer information securely in the PDF document metadata fields (Producer and Subject).\n* **Web Crypto Integration**: Performs local document pre-hashing and asymmetric signature computation fully offline inside the browser.\n* **Visual Stamp Drawer**: Supports placing styled signature stamps on coordinates with custom signatory metadata.\n\n## Usage Example\n\n```javascript\nimport { signPdf } from '@dottedice/pades-pdf-signer';\nimport { generateKeyPair } from '@dottedice/web-crypto-pki';\n\n// 1. Generate keys\nconst keyPair = await generateKeyPair('RSA');\n\n// 2. Read PDF bytes\nconst originalPdfBytes = await fetch('/contracts/doc.pdf').then(res => res.arrayBuffer());\n\n// 3. Cryptographically sign the PDF\nconst signedPdfBytes = await signPdf(new Uint8Array(originalPdfBytes), {\n  signatoryName: 'Vikramaditya Sharma',\n  location: 'Chennai Sandbox Platform',\n  privateKey: keyPair.privateKey,\n  trustAuthority: 'Local Authority CA',\n  visualStamp: { x: 50, y: 120, width: 260, height: 75 }\n});\n\n// signedPdfBytes is a signed PDF document, ready for download or verification\n```\n\n> [!NOTE]\n> This package writes signatures directly to the PDF Document metadata directory (Subject/Producer structures). Standard PDF readers (like Adobe Acrobat) will not display an AcroForm signature badge. For native PDF byte-range signatures (true ETSI PAdES compliance), use our upcoming `@dottedice/cms-signed-data` package.\n\n## Publishing to Registry\n\nTo publish this package to the npm registry, execute:\n```bash\nnpm login\n```\n","readmeFilename":"README.md"}