@mostajs/pdf-sign 0.2.0 → 0.2.1
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/CHANGELOG.md +13 -0
- package/dist/sign.d.ts.map +1 -1
- package/dist/sign.js +12 -2
- package/dist/sign.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,19 @@
|
|
|
4
4
|
|
|
5
5
|
Le format suit [Keep a Changelog](https://keepachangelog.com/fr/) ; versionnage [SemVer](https://semver.org/lang/fr/).
|
|
6
6
|
|
|
7
|
+
## 0.2.1 — 2026-09-21
|
|
8
|
+
|
|
9
|
+
### Corrigé — un certificat et sa phrase voyagent ensemble
|
|
10
|
+
- `signPdf` accolait la phrase secrète du `.env` (`PDF_SIGN_PASSPHRASE[_FILE]`) au certificat
|
|
11
|
+
**fourni par l'appelant** : `opts.passphraseFile ?? cfg.passphraseFile` faisait retomber
|
|
12
|
+
`undefined` sur la configuration. Le moteur refusait alors d'ouvrir la clé — `Invalid password
|
|
13
|
+
or PKCS12 data` — et **accusait le certificat, qui était pourtant bon**.
|
|
14
|
+
- Se déclenchait dès qu'un serveur configurait un certificat : tout `p12` passé par option devenait
|
|
15
|
+
insignable. Observé en production (docme), où l'on téléverse son propre certificat pendant que le
|
|
16
|
+
serveur en possède un autre.
|
|
17
|
+
- Désormais, le repli sur la configuration ne vaut que pour **le certificat de la configuration** :
|
|
18
|
+
un `p12` différent apporte ses propres identifiants, ou n'en a pas.
|
|
19
|
+
|
|
7
20
|
## 0.2.0 — 2026-09-21
|
|
8
21
|
|
|
9
22
|
### Ajouté
|
package/dist/sign.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sign.d.ts","sourceRoot":"","sources":["../src/sign.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM1D,wBAAsB,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"sign.d.ts","sourceRoot":"","sources":["../src/sign.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM1D,wBAAsB,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA0CpE"}
|
package/dist/sign.js
CHANGED
|
@@ -4,11 +4,21 @@ import { signPyhanko } from "./pyhanko-signer.js";
|
|
|
4
4
|
import { loadPdfSignConfig } from "./config.js";
|
|
5
5
|
export async function signPdf(opts) {
|
|
6
6
|
const cfg = loadPdfSignConfig();
|
|
7
|
+
// ⚠️ UN CERTIFICAT ET SA PHRASE VOYAGENT ENSEMBLE.
|
|
8
|
+
//
|
|
9
|
+
// Quand l'appelant fournit SON p12 — d'autres octets, un autre chemin — ses identifiants sont
|
|
10
|
+
// les siens. Retomber sur ceux du `.env` accole la phrase du serveur à un certificat qui n'est
|
|
11
|
+
// pas le sien : le moteur refuse alors d'ouvrir la clé et accuse le certificat, qui est pourtant
|
|
12
|
+
// bon. Observé en production (docme) dès qu'un PDF_SIGN_PASSPHRASE_FILE a été configuré :
|
|
13
|
+
// sign /tmp/…/cert.p12 /home/…/secrets/docme.pass → Invalid password or PKCS12 data
|
|
14
|
+
// `undefined` ne savait pas dire « aucune phrase » face à `??`. On ne le lui demande plus : le
|
|
15
|
+
// repli sur la configuration ne vaut que pour LE certificat de la configuration.
|
|
16
|
+
const p12Propre = opts.p12 != null && opts.p12 !== cfg.p12;
|
|
7
17
|
const merged = {
|
|
8
18
|
...opts,
|
|
9
19
|
p12: opts.p12 ?? cfg.p12,
|
|
10
|
-
passphrase: opts.passphrase ?? cfg.passphrase,
|
|
11
|
-
passphraseFile: opts.passphraseFile ?? cfg.passphraseFile,
|
|
20
|
+
passphrase: p12Propre ? opts.passphrase : (opts.passphrase ?? cfg.passphrase),
|
|
21
|
+
passphraseFile: p12Propre ? opts.passphraseFile : (opts.passphraseFile ?? cfg.passphraseFile),
|
|
12
22
|
meta: { ...cfg.meta, ...opts.meta },
|
|
13
23
|
field: { ...cfg.field, ...opts.field },
|
|
14
24
|
permissions: opts.permissions ?? (cfg.restrict ? {} : undefined),
|
package/dist/sign.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sign.js","sourceRoot":"","sources":["../src/sign.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAiB;IAC7C,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;IAEhC,MAAM,MAAM,GAAgB;QAC1B,GAAG,IAAI;QACP,GAAG,EAAE,IAAI,CAAC,GAAG,IAAK,GAAG,CAAC,GAAc;QACpC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU;
|
|
1
|
+
{"version":3,"file":"sign.js","sourceRoot":"","sources":["../src/sign.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAiB;IAC7C,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;IAEhC,mDAAmD;IACnD,EAAE;IACF,8FAA8F;IAC9F,+FAA+F;IAC/F,iGAAiG;IACjG,0FAA0F;IAC1F,2FAA2F;IAC3F,+FAA+F;IAC/F,iFAAiF;IACjF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC;IAE3D,MAAM,MAAM,GAAgB;QAC1B,GAAG,IAAI;QACP,GAAG,EAAE,IAAI,CAAC,GAAG,IAAK,GAAG,CAAC,GAAc;QACpC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC;QAC7E,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,GAAG,CAAC,cAAc,CAAC;QAC7F,IAAI,EAAE,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;QACnC,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;QACtC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM;KAClC,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAE5F,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;IAErC,IAAI,MAA0B,CAAC;IAC/B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;QACvH,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC;SAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,MAAM,GAAG,MAAM,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,yBAAyB;IACxE,CAAC;IAED,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,MAAgB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC/F,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mostajs/pdf-sign",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Signature numérique de PDF pour @mostajs — moteur HYBRIDE : cœur Node (PKCS#7 via @signpdf) + bascule pyhanko (PAdES + permissions AES-256) si disponible. Config .env, CLI, API. Réutilise le pipeline éprouvé pyhanko+pikepdf.",
|
|
5
5
|
"author": "Dr Hamid MADANI <drmdh@msn.com>",
|
|
6
6
|
"license": "AGPL-3.0-or-later",
|