@gerege-systems/eid-mongolia-sdk 0.14.2 → 0.15.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 +127 -42
- package/dist/{browser-CSZjH9Xs.d.cts → browser-8k_VDSP8.d.cts} +8 -183
- package/dist/{browser-CSZjH9Xs.d.ts → browser-BZ3hvv6-.d.ts} +8 -183
- package/dist/browser.d.cts +2 -1
- package/dist/browser.d.ts +2 -1
- package/dist/browser.js +5 -3
- package/dist/chunk-REWNE7PO.js +51 -0
- package/dist/{chunk-DXVHOZO7.js → chunk-TB2KQH3W.js} +1 -46
- package/dist/errors-Z7SgLVTr.d.cts +149 -0
- package/dist/errors-Z7SgLVTr.d.ts +149 -0
- package/dist/index.cjs +222 -245
- package/dist/index.d.cts +147 -156
- package/dist/index.d.ts +147 -156
- package/dist/index.js +209 -230
- package/dist/pades.cjs +3520 -0
- package/dist/pades.d.cts +128 -0
- package/dist/pades.d.ts +128 -0
- package/dist/pades.js +3484 -0
- package/package.json +16 -6
package/dist/pades.d.cts
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { E as EidError } from './errors-Z7SgLVTr.cjs';
|
|
2
|
+
|
|
3
|
+
type FetchFn = (url: string, init: {
|
|
4
|
+
method: string;
|
|
5
|
+
headers?: Record<string, string>;
|
|
6
|
+
body?: Uint8Array;
|
|
7
|
+
redirect: "manual";
|
|
8
|
+
signal?: AbortSignal;
|
|
9
|
+
}) => Promise<{
|
|
10
|
+
status: number;
|
|
11
|
+
arrayBuffer(): Promise<ArrayBuffer>;
|
|
12
|
+
}>;
|
|
13
|
+
|
|
14
|
+
/** PDF/CMS профайлын хувилбар (Go reference `ProfileVersion`). */
|
|
15
|
+
declare const PROFILE_VERSION = "pades-client/1";
|
|
16
|
+
/** Тогтвортой алдааны кодууд (бүх платформд ижил). */
|
|
17
|
+
type PadesErrorCode = "PDF_INVALID" | "PDF_ENCRYPTED" | "PDF_LOCKED" | "PDF_TOO_LARGE" | "PDF_TOO_MANY_SIGNATURES" | "PDF_PRIOR_SIGNATURE_INVALID"
|
|
18
|
+
/** Өмнөх гарын үсэг eID-ийн (CAdES + timestamp + DSS, eID олгогч) биш. */
|
|
19
|
+
| "PDF_FOREIGN_SIGNATURE"
|
|
20
|
+
/** signerCert задрахгүй / түлхүүрийн төрөл / гинж. */
|
|
21
|
+
| "SIGNER_INVALID"
|
|
22
|
+
/** Options буруу (docId UUID биш, lang, fileName, claimedRole г.м.). */
|
|
23
|
+
| "REQUEST_INVALID" | "SIGNATURE_INVALID" | "TSA_UNAVAILABLE" | "LTV_UNAVAILABLE" | "SELF_VALIDATION_FAILED" | "PLACEHOLDER_OVERFLOW" | "STATE_INVALID" | "INTERNAL";
|
|
24
|
+
declare const PADES_ERROR_CODES: readonly PadesErrorCode[];
|
|
25
|
+
/**
|
|
26
|
+
* PAdES-ийн алдаа. `code`-оор салаална: SIGNATURE_INVALID — state хэвээр, дахин зуруулж болно; TSA_UNAVAILABLE /
|
|
27
|
+
* LTV_UNAVAILABLE — түр, ижил state + гарын үсгээр `complete`-ийг дахин дуудна ({@link PadesError.retryable}).
|
|
28
|
+
*/
|
|
29
|
+
declare class PadesError extends EidError {
|
|
30
|
+
readonly code: PadesErrorCode;
|
|
31
|
+
constructor(code: PadesErrorCode, message: string, options?: {
|
|
32
|
+
cause?: unknown;
|
|
33
|
+
});
|
|
34
|
+
get retryable(): boolean;
|
|
35
|
+
}
|
|
36
|
+
interface PadesPrepareOptions {
|
|
37
|
+
/** Иргэний SIGN гэрчилгээ (DER) — `signingCertificateV2`-д. Session-ий зурагч төхөөрөмжийнх байх ёстой. */
|
|
38
|
+
signerCert: Uint8Array;
|
|
39
|
+
/** Олгогчийн гинж (DER: 04, 03, 02). Анхдагч — шигтгэсэн eID гинжээс signerCert-ийн олгогчоор. */
|
|
40
|
+
chain?: Uint8Array[];
|
|
41
|
+
/** `/Name`. Хоосон бол гэрчилгээний GIVENNAME SURNAME (эсвэл CN). */
|
|
42
|
+
signerName?: string;
|
|
43
|
+
/** `/Reason` (≤ 127 UTF-16 нэгж, эс бөгөөс бичигдэхгүй). */
|
|
44
|
+
reason?: string;
|
|
45
|
+
/** Байгууллагын нэрийн өмнөөс: `organization.getRepresentations()`-ийн `claimedRole` ЯГ ХЭВЭЭР (signedAttrs-д орно). */
|
|
46
|
+
claimedRole?: string;
|
|
47
|
+
/** `/M` (+08:00-оор бичигдэнэ, секундээр). Анхдагч — одоо. */
|
|
48
|
+
signingTime?: Date;
|
|
49
|
+
/** Баримтын UUID (verify хуудас / QR). Хоосон бол шинээр (гарын үсэгтэй баримтад хуудаснаас уншина). */
|
|
50
|
+
docId?: string;
|
|
51
|
+
/** Баталгаажуулах (QR) хуудас нэмэх — зөвхөн гарын үсэггүй баримтын эхний гарын үсэгт. */
|
|
52
|
+
verifyPage?: boolean;
|
|
53
|
+
/** Хуудасны хэл: `mn` (анхдагч) | `en`. */
|
|
54
|
+
lang?: "mn" | "en";
|
|
55
|
+
/** Баримтын нэр — `verifyPage` үед заавал (≤ 120 тэмдэгт). */
|
|
56
|
+
fileName?: string;
|
|
57
|
+
}
|
|
58
|
+
interface PadesPrepared {
|
|
59
|
+
/** SHA-256(DER(signedAttrs)) — 32 байт; `eid.signPdfDigest({dtbs})` / токены `C_Sign`-ийн оролт. */
|
|
60
|
+
dtbs: Uint8Array;
|
|
61
|
+
/** `messageDigest` = SHA-256(ByteRange). */
|
|
62
|
+
digest: Uint8Array;
|
|
63
|
+
docId: string;
|
|
64
|
+
/** Тунгалаг, сериалчилж хадгалж болно (бэлтгэсэн PDF дотор нь — PDF-тэй ижил нууцлалтай). Go SDK-тай нийцтэй. */
|
|
65
|
+
state: Uint8Array;
|
|
66
|
+
}
|
|
67
|
+
interface PadesCompleteOptions {
|
|
68
|
+
/** RFC 3161 TSA. Анхдагч `https://tsa.timeserver.mn/`. */
|
|
69
|
+
tsaUrl?: string;
|
|
70
|
+
/** Итгэлийн тулгуур DER (TSA гинж). Анхдагч — Mongolian National Root CA. Тестэд л. */
|
|
71
|
+
roots?: Uint8Array[];
|
|
72
|
+
/** HTTP (TSA/OCSP/CRL). Анхдагч `globalThis.fetch` (timeout 10 с, redirect дагахгүй). */
|
|
73
|
+
fetch?: FetchFn;
|
|
74
|
+
/**
|
|
75
|
+
* http:// AIA/CDP-г eID allowlist (ocsp/crl.eidmongolia.mn, tsa.timeserver.mn)-д https болгох, бусдыг татахгүй.
|
|
76
|
+
* Анхдагч — хөтчид true, Node-д false.
|
|
77
|
+
*/
|
|
78
|
+
httpsUpgrade?: boolean;
|
|
79
|
+
/** Цаг (тест). */
|
|
80
|
+
now?: () => Date;
|
|
81
|
+
/** Хүлээлт (тест). */
|
|
82
|
+
sleep?: (ms: number) => Promise<void>;
|
|
83
|
+
/** TSA nonce-ийн 8 байт (тест; WIRE.md §4). Анхдагч — криптограф санамсаргүй. */
|
|
84
|
+
nonce?: () => Uint8Array | Promise<Uint8Array>;
|
|
85
|
+
}
|
|
86
|
+
interface PadesCompleted {
|
|
87
|
+
/** Гарын үсэгтэй PDF (PAdES-BASELINE-LT). */
|
|
88
|
+
pdf: Uint8Array;
|
|
89
|
+
/** CMS SignedData (DER) — `eid.registerSignature({cms})`. */
|
|
90
|
+
cms: Uint8Array;
|
|
91
|
+
docId: string;
|
|
92
|
+
/** Гаралтын SHA-256 (hex). */
|
|
93
|
+
outSha256: string;
|
|
94
|
+
/** Оролтын SHA-256 (hex). */
|
|
95
|
+
inSha256: string;
|
|
96
|
+
/** Баталгаажуулах хуудас энэ гарын үсэгт нэмэгдсэн эсэх. */
|
|
97
|
+
hasPage: boolean;
|
|
98
|
+
/** Хуудастай revision-ий SHA-256 (hex); `hasPage` false бол "". */
|
|
99
|
+
pageSha256: string;
|
|
100
|
+
/** Энэ гарын үсгийн дугаар (1 = эхний). */
|
|
101
|
+
revIndex: number;
|
|
102
|
+
/** Гарын үсгийн revision-ий (DSS-ээс өмнөх) SHA-256 (hex). */
|
|
103
|
+
sigRevSha256: string;
|
|
104
|
+
/** Өмнөх гарын үсгүүдийн CMS-ийн SHA-256 (hex), баримтын дарааллаар. */
|
|
105
|
+
priorCmsSha256: string[];
|
|
106
|
+
/** Зурагчийн гэрчилгээ (DER). */
|
|
107
|
+
signerCert: Uint8Array;
|
|
108
|
+
}
|
|
109
|
+
/** PDF/CMS профайлын хувилбар. */
|
|
110
|
+
declare function profileVersion(): string;
|
|
111
|
+
/**
|
|
112
|
+
* PDF-ийг гарын үсэгт бэлдэнэ (PRECHECKS → [verify хуудас] → гарын үсгийн revision → signedAttrs). Сүлжээгүй.
|
|
113
|
+
* `dtbs`-ийг иргэнээр зуруулна (`eid.signPdfDigest`), `state`-ийг `complete` хүртэл хадгална.
|
|
114
|
+
*
|
|
115
|
+
* @throws {PadesError} PDF_INVALID / PDF_ENCRYPTED / PDF_LOCKED / PDF_TOO_LARGE / PDF_TOO_MANY_SIGNATURES /
|
|
116
|
+
* PDF_PRIOR_SIGNATURE_INVALID / PDF_FOREIGN_SIGNATURE / SIGNER_INVALID / REQUEST_INVALID
|
|
117
|
+
*/
|
|
118
|
+
declare function prepare(pdf: Uint8Array | ArrayBuffer, opts: PadesPrepareOptions): Promise<PadesPrepared>;
|
|
119
|
+
/**
|
|
120
|
+
* Иргэний гарын үсгийг (session `signature.value` — base64 мөр эсвэл байт; RSA PKCS#1 v1.5, ECDSA r‖s эсвэл DER) DTBS-д
|
|
121
|
+
* шалгаад TSA → CMS → embed → OCSP/CRL (genTime-ийн дараа) → DSS revision. Сүлжээ: tsa.timeserver.mn, AIA/CDP.
|
|
122
|
+
*
|
|
123
|
+
* @throws {PadesError} SIGNATURE_INVALID / TSA_UNAVAILABLE / LTV_UNAVAILABLE / PLACEHOLDER_OVERFLOW / STATE_INVALID /
|
|
124
|
+
* PDF_TOO_LARGE / SELF_VALIDATION_FAILED
|
|
125
|
+
*/
|
|
126
|
+
declare function complete(state: Uint8Array | ArrayBuffer, signature: Uint8Array | string, opts?: PadesCompleteOptions): Promise<PadesCompleted>;
|
|
127
|
+
|
|
128
|
+
export { PADES_ERROR_CODES, PROFILE_VERSION, type PadesCompleteOptions, type PadesCompleted, PadesError, type PadesErrorCode, type PadesPrepareOptions, type PadesPrepared, complete, prepare, profileVersion };
|
package/dist/pades.d.ts
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { E as EidError } from './errors-Z7SgLVTr.js';
|
|
2
|
+
|
|
3
|
+
type FetchFn = (url: string, init: {
|
|
4
|
+
method: string;
|
|
5
|
+
headers?: Record<string, string>;
|
|
6
|
+
body?: Uint8Array;
|
|
7
|
+
redirect: "manual";
|
|
8
|
+
signal?: AbortSignal;
|
|
9
|
+
}) => Promise<{
|
|
10
|
+
status: number;
|
|
11
|
+
arrayBuffer(): Promise<ArrayBuffer>;
|
|
12
|
+
}>;
|
|
13
|
+
|
|
14
|
+
/** PDF/CMS профайлын хувилбар (Go reference `ProfileVersion`). */
|
|
15
|
+
declare const PROFILE_VERSION = "pades-client/1";
|
|
16
|
+
/** Тогтвортой алдааны кодууд (бүх платформд ижил). */
|
|
17
|
+
type PadesErrorCode = "PDF_INVALID" | "PDF_ENCRYPTED" | "PDF_LOCKED" | "PDF_TOO_LARGE" | "PDF_TOO_MANY_SIGNATURES" | "PDF_PRIOR_SIGNATURE_INVALID"
|
|
18
|
+
/** Өмнөх гарын үсэг eID-ийн (CAdES + timestamp + DSS, eID олгогч) биш. */
|
|
19
|
+
| "PDF_FOREIGN_SIGNATURE"
|
|
20
|
+
/** signerCert задрахгүй / түлхүүрийн төрөл / гинж. */
|
|
21
|
+
| "SIGNER_INVALID"
|
|
22
|
+
/** Options буруу (docId UUID биш, lang, fileName, claimedRole г.м.). */
|
|
23
|
+
| "REQUEST_INVALID" | "SIGNATURE_INVALID" | "TSA_UNAVAILABLE" | "LTV_UNAVAILABLE" | "SELF_VALIDATION_FAILED" | "PLACEHOLDER_OVERFLOW" | "STATE_INVALID" | "INTERNAL";
|
|
24
|
+
declare const PADES_ERROR_CODES: readonly PadesErrorCode[];
|
|
25
|
+
/**
|
|
26
|
+
* PAdES-ийн алдаа. `code`-оор салаална: SIGNATURE_INVALID — state хэвээр, дахин зуруулж болно; TSA_UNAVAILABLE /
|
|
27
|
+
* LTV_UNAVAILABLE — түр, ижил state + гарын үсгээр `complete`-ийг дахин дуудна ({@link PadesError.retryable}).
|
|
28
|
+
*/
|
|
29
|
+
declare class PadesError extends EidError {
|
|
30
|
+
readonly code: PadesErrorCode;
|
|
31
|
+
constructor(code: PadesErrorCode, message: string, options?: {
|
|
32
|
+
cause?: unknown;
|
|
33
|
+
});
|
|
34
|
+
get retryable(): boolean;
|
|
35
|
+
}
|
|
36
|
+
interface PadesPrepareOptions {
|
|
37
|
+
/** Иргэний SIGN гэрчилгээ (DER) — `signingCertificateV2`-д. Session-ий зурагч төхөөрөмжийнх байх ёстой. */
|
|
38
|
+
signerCert: Uint8Array;
|
|
39
|
+
/** Олгогчийн гинж (DER: 04, 03, 02). Анхдагч — шигтгэсэн eID гинжээс signerCert-ийн олгогчоор. */
|
|
40
|
+
chain?: Uint8Array[];
|
|
41
|
+
/** `/Name`. Хоосон бол гэрчилгээний GIVENNAME SURNAME (эсвэл CN). */
|
|
42
|
+
signerName?: string;
|
|
43
|
+
/** `/Reason` (≤ 127 UTF-16 нэгж, эс бөгөөс бичигдэхгүй). */
|
|
44
|
+
reason?: string;
|
|
45
|
+
/** Байгууллагын нэрийн өмнөөс: `organization.getRepresentations()`-ийн `claimedRole` ЯГ ХЭВЭЭР (signedAttrs-д орно). */
|
|
46
|
+
claimedRole?: string;
|
|
47
|
+
/** `/M` (+08:00-оор бичигдэнэ, секундээр). Анхдагч — одоо. */
|
|
48
|
+
signingTime?: Date;
|
|
49
|
+
/** Баримтын UUID (verify хуудас / QR). Хоосон бол шинээр (гарын үсэгтэй баримтад хуудаснаас уншина). */
|
|
50
|
+
docId?: string;
|
|
51
|
+
/** Баталгаажуулах (QR) хуудас нэмэх — зөвхөн гарын үсэггүй баримтын эхний гарын үсэгт. */
|
|
52
|
+
verifyPage?: boolean;
|
|
53
|
+
/** Хуудасны хэл: `mn` (анхдагч) | `en`. */
|
|
54
|
+
lang?: "mn" | "en";
|
|
55
|
+
/** Баримтын нэр — `verifyPage` үед заавал (≤ 120 тэмдэгт). */
|
|
56
|
+
fileName?: string;
|
|
57
|
+
}
|
|
58
|
+
interface PadesPrepared {
|
|
59
|
+
/** SHA-256(DER(signedAttrs)) — 32 байт; `eid.signPdfDigest({dtbs})` / токены `C_Sign`-ийн оролт. */
|
|
60
|
+
dtbs: Uint8Array;
|
|
61
|
+
/** `messageDigest` = SHA-256(ByteRange). */
|
|
62
|
+
digest: Uint8Array;
|
|
63
|
+
docId: string;
|
|
64
|
+
/** Тунгалаг, сериалчилж хадгалж болно (бэлтгэсэн PDF дотор нь — PDF-тэй ижил нууцлалтай). Go SDK-тай нийцтэй. */
|
|
65
|
+
state: Uint8Array;
|
|
66
|
+
}
|
|
67
|
+
interface PadesCompleteOptions {
|
|
68
|
+
/** RFC 3161 TSA. Анхдагч `https://tsa.timeserver.mn/`. */
|
|
69
|
+
tsaUrl?: string;
|
|
70
|
+
/** Итгэлийн тулгуур DER (TSA гинж). Анхдагч — Mongolian National Root CA. Тестэд л. */
|
|
71
|
+
roots?: Uint8Array[];
|
|
72
|
+
/** HTTP (TSA/OCSP/CRL). Анхдагч `globalThis.fetch` (timeout 10 с, redirect дагахгүй). */
|
|
73
|
+
fetch?: FetchFn;
|
|
74
|
+
/**
|
|
75
|
+
* http:// AIA/CDP-г eID allowlist (ocsp/crl.eidmongolia.mn, tsa.timeserver.mn)-д https болгох, бусдыг татахгүй.
|
|
76
|
+
* Анхдагч — хөтчид true, Node-д false.
|
|
77
|
+
*/
|
|
78
|
+
httpsUpgrade?: boolean;
|
|
79
|
+
/** Цаг (тест). */
|
|
80
|
+
now?: () => Date;
|
|
81
|
+
/** Хүлээлт (тест). */
|
|
82
|
+
sleep?: (ms: number) => Promise<void>;
|
|
83
|
+
/** TSA nonce-ийн 8 байт (тест; WIRE.md §4). Анхдагч — криптограф санамсаргүй. */
|
|
84
|
+
nonce?: () => Uint8Array | Promise<Uint8Array>;
|
|
85
|
+
}
|
|
86
|
+
interface PadesCompleted {
|
|
87
|
+
/** Гарын үсэгтэй PDF (PAdES-BASELINE-LT). */
|
|
88
|
+
pdf: Uint8Array;
|
|
89
|
+
/** CMS SignedData (DER) — `eid.registerSignature({cms})`. */
|
|
90
|
+
cms: Uint8Array;
|
|
91
|
+
docId: string;
|
|
92
|
+
/** Гаралтын SHA-256 (hex). */
|
|
93
|
+
outSha256: string;
|
|
94
|
+
/** Оролтын SHA-256 (hex). */
|
|
95
|
+
inSha256: string;
|
|
96
|
+
/** Баталгаажуулах хуудас энэ гарын үсэгт нэмэгдсэн эсэх. */
|
|
97
|
+
hasPage: boolean;
|
|
98
|
+
/** Хуудастай revision-ий SHA-256 (hex); `hasPage` false бол "". */
|
|
99
|
+
pageSha256: string;
|
|
100
|
+
/** Энэ гарын үсгийн дугаар (1 = эхний). */
|
|
101
|
+
revIndex: number;
|
|
102
|
+
/** Гарын үсгийн revision-ий (DSS-ээс өмнөх) SHA-256 (hex). */
|
|
103
|
+
sigRevSha256: string;
|
|
104
|
+
/** Өмнөх гарын үсгүүдийн CMS-ийн SHA-256 (hex), баримтын дарааллаар. */
|
|
105
|
+
priorCmsSha256: string[];
|
|
106
|
+
/** Зурагчийн гэрчилгээ (DER). */
|
|
107
|
+
signerCert: Uint8Array;
|
|
108
|
+
}
|
|
109
|
+
/** PDF/CMS профайлын хувилбар. */
|
|
110
|
+
declare function profileVersion(): string;
|
|
111
|
+
/**
|
|
112
|
+
* PDF-ийг гарын үсэгт бэлдэнэ (PRECHECKS → [verify хуудас] → гарын үсгийн revision → signedAttrs). Сүлжээгүй.
|
|
113
|
+
* `dtbs`-ийг иргэнээр зуруулна (`eid.signPdfDigest`), `state`-ийг `complete` хүртэл хадгална.
|
|
114
|
+
*
|
|
115
|
+
* @throws {PadesError} PDF_INVALID / PDF_ENCRYPTED / PDF_LOCKED / PDF_TOO_LARGE / PDF_TOO_MANY_SIGNATURES /
|
|
116
|
+
* PDF_PRIOR_SIGNATURE_INVALID / PDF_FOREIGN_SIGNATURE / SIGNER_INVALID / REQUEST_INVALID
|
|
117
|
+
*/
|
|
118
|
+
declare function prepare(pdf: Uint8Array | ArrayBuffer, opts: PadesPrepareOptions): Promise<PadesPrepared>;
|
|
119
|
+
/**
|
|
120
|
+
* Иргэний гарын үсгийг (session `signature.value` — base64 мөр эсвэл байт; RSA PKCS#1 v1.5, ECDSA r‖s эсвэл DER) DTBS-д
|
|
121
|
+
* шалгаад TSA → CMS → embed → OCSP/CRL (genTime-ийн дараа) → DSS revision. Сүлжээ: tsa.timeserver.mn, AIA/CDP.
|
|
122
|
+
*
|
|
123
|
+
* @throws {PadesError} SIGNATURE_INVALID / TSA_UNAVAILABLE / LTV_UNAVAILABLE / PLACEHOLDER_OVERFLOW / STATE_INVALID /
|
|
124
|
+
* PDF_TOO_LARGE / SELF_VALIDATION_FAILED
|
|
125
|
+
*/
|
|
126
|
+
declare function complete(state: Uint8Array | ArrayBuffer, signature: Uint8Array | string, opts?: PadesCompleteOptions): Promise<PadesCompleted>;
|
|
127
|
+
|
|
128
|
+
export { PADES_ERROR_CODES, PROFILE_VERSION, type PadesCompleteOptions, type PadesCompleted, PadesError, type PadesErrorCode, type PadesPrepareOptions, type PadesPrepared, complete, prepare, profileVersion };
|