@openvtc/trust-tasks 0.24.1 → 0.24.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.
- package/CHANGELOG.md +77 -0
- package/dist/_shared/components.d.ts +55 -2
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/device/list/0.1/payload.d.ts +4 -4
- package/dist/device/list/0.1/payload.d.ts.map +1 -1
- package/dist/device/list/0.1/payload.js +4 -0
- package/dist/device/list/0.1/payload.js.map +1 -1
- package/dist/device/list/0.2/payload.d.ts +4 -4
- package/dist/device/list/0.2/payload.d.ts.map +1 -1
- package/dist/device/list/0.2/payload.js +4 -0
- package/dist/device/list/0.2/payload.js.map +1 -1
- package/dist/device/register/0.1/payload.d.ts +4 -4
- package/dist/device/register/0.1/payload.d.ts.map +1 -1
- package/dist/device/register/0.1/payload.js +4 -0
- package/dist/device/register/0.1/payload.js.map +1 -1
- package/dist/device/register/0.2/payload.d.ts +4 -4
- package/dist/device/register/0.2/payload.d.ts.map +1 -1
- package/dist/device/register/0.2/payload.js +4 -0
- package/dist/device/register/0.2/payload.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/keys/sign-csr/0.1/payload.d.ts +729 -0
- package/dist/keys/sign-csr/0.1/payload.d.ts.map +1 -0
- package/dist/keys/sign-csr/0.1/payload.js +280 -0
- package/dist/keys/sign-csr/0.1/payload.js.map +1 -0
- package/dist/keys/sign-jws/0.1/payload.d.ts +352 -0
- package/dist/keys/sign-jws/0.1/payload.d.ts.map +1 -0
- package/dist/keys/sign-jws/0.1/payload.js +207 -0
- package/dist/keys/sign-jws/0.1/payload.js.map +1 -0
- package/dist/rooms/_shared/0.1/blobs.d.ts +1 -1
- package/dist/rooms/_shared/0.1/blobs.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/_shared/components.ts +57 -0
- package/src/device/list/0.1/payload.ts +4 -0
- package/src/device/list/0.2/payload.ts +4 -0
- package/src/device/register/0.1/payload.ts +4 -0
- package/src/device/register/0.2/payload.ts +4 -0
- package/src/index.ts +2 -0
- package/src/keys/sign-csr/0.1/payload.ts +646 -0
- package/src/keys/sign-jws/0.1/payload.ts +271 -0
- package/src/rooms/_shared/0.1/blobs.ts +1 -1
|
@@ -0,0 +1,729 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
|
|
3
|
+
* Source: specs/keys/sign-csr/0.1/payload.schema.json
|
|
4
|
+
*/
|
|
5
|
+
import type { Ext } from "../../../_shared/components.js";
|
|
6
|
+
/**
|
|
7
|
+
* A request for a PKCS#10 certificate signing request (RFC 2986) for a key the custodian holds. The producer names the subject as structured attributes and optionally the subject alternative names; the custodian builds the CertificationRequestInfo itself from those and the key's own public key, and signs it. The outer document members (id, type, issuer, recipient, issuedAt, expiresAt, proof) are owned by the framework — SPEC §6.3.
|
|
8
|
+
*/
|
|
9
|
+
export interface KeysSignCSRPayload {
|
|
10
|
+
/**
|
|
11
|
+
* Identifier of the key the request is for, as `keys/show` describes it. Its public half becomes the request's subjectPublicKeyInfo and its private half signs the request. The key MUST be `active`, and `p256` or `ed25519`.
|
|
12
|
+
*/
|
|
13
|
+
keyId: string;
|
|
14
|
+
/**
|
|
15
|
+
* The subject distinguished name, one attribute per relative distinguished name, in the order of the encoded RDNSequence: element 0 is the first RDN in the DER, conventionally the country. That is the reverse of the RFC 4514 string form (`CN=…,O=…,C=…`). Never a raw DER or DN string.
|
|
16
|
+
*
|
|
17
|
+
* @minItems 1
|
|
18
|
+
* @maxItems 16
|
|
19
|
+
*/
|
|
20
|
+
subject: [RdnAttribute] | [RdnAttribute, RdnAttribute] | [RdnAttribute, RdnAttribute, RdnAttribute] | [RdnAttribute, RdnAttribute, RdnAttribute, RdnAttribute] | [RdnAttribute, RdnAttribute, RdnAttribute, RdnAttribute, RdnAttribute] | [RdnAttribute, RdnAttribute, RdnAttribute, RdnAttribute, RdnAttribute, RdnAttribute] | [RdnAttribute, RdnAttribute, RdnAttribute, RdnAttribute, RdnAttribute, RdnAttribute, RdnAttribute] | [RdnAttribute, RdnAttribute, RdnAttribute, RdnAttribute, RdnAttribute, RdnAttribute, RdnAttribute, RdnAttribute] | [
|
|
21
|
+
RdnAttribute,
|
|
22
|
+
RdnAttribute,
|
|
23
|
+
RdnAttribute,
|
|
24
|
+
RdnAttribute,
|
|
25
|
+
RdnAttribute,
|
|
26
|
+
RdnAttribute,
|
|
27
|
+
RdnAttribute,
|
|
28
|
+
RdnAttribute,
|
|
29
|
+
RdnAttribute
|
|
30
|
+
] | [
|
|
31
|
+
RdnAttribute,
|
|
32
|
+
RdnAttribute,
|
|
33
|
+
RdnAttribute,
|
|
34
|
+
RdnAttribute,
|
|
35
|
+
RdnAttribute,
|
|
36
|
+
RdnAttribute,
|
|
37
|
+
RdnAttribute,
|
|
38
|
+
RdnAttribute,
|
|
39
|
+
RdnAttribute,
|
|
40
|
+
RdnAttribute
|
|
41
|
+
] | [
|
|
42
|
+
RdnAttribute,
|
|
43
|
+
RdnAttribute,
|
|
44
|
+
RdnAttribute,
|
|
45
|
+
RdnAttribute,
|
|
46
|
+
RdnAttribute,
|
|
47
|
+
RdnAttribute,
|
|
48
|
+
RdnAttribute,
|
|
49
|
+
RdnAttribute,
|
|
50
|
+
RdnAttribute,
|
|
51
|
+
RdnAttribute,
|
|
52
|
+
RdnAttribute
|
|
53
|
+
] | [
|
|
54
|
+
RdnAttribute,
|
|
55
|
+
RdnAttribute,
|
|
56
|
+
RdnAttribute,
|
|
57
|
+
RdnAttribute,
|
|
58
|
+
RdnAttribute,
|
|
59
|
+
RdnAttribute,
|
|
60
|
+
RdnAttribute,
|
|
61
|
+
RdnAttribute,
|
|
62
|
+
RdnAttribute,
|
|
63
|
+
RdnAttribute,
|
|
64
|
+
RdnAttribute,
|
|
65
|
+
RdnAttribute
|
|
66
|
+
] | [
|
|
67
|
+
RdnAttribute,
|
|
68
|
+
RdnAttribute,
|
|
69
|
+
RdnAttribute,
|
|
70
|
+
RdnAttribute,
|
|
71
|
+
RdnAttribute,
|
|
72
|
+
RdnAttribute,
|
|
73
|
+
RdnAttribute,
|
|
74
|
+
RdnAttribute,
|
|
75
|
+
RdnAttribute,
|
|
76
|
+
RdnAttribute,
|
|
77
|
+
RdnAttribute,
|
|
78
|
+
RdnAttribute,
|
|
79
|
+
RdnAttribute
|
|
80
|
+
] | [
|
|
81
|
+
RdnAttribute,
|
|
82
|
+
RdnAttribute,
|
|
83
|
+
RdnAttribute,
|
|
84
|
+
RdnAttribute,
|
|
85
|
+
RdnAttribute,
|
|
86
|
+
RdnAttribute,
|
|
87
|
+
RdnAttribute,
|
|
88
|
+
RdnAttribute,
|
|
89
|
+
RdnAttribute,
|
|
90
|
+
RdnAttribute,
|
|
91
|
+
RdnAttribute,
|
|
92
|
+
RdnAttribute,
|
|
93
|
+
RdnAttribute,
|
|
94
|
+
RdnAttribute
|
|
95
|
+
] | [
|
|
96
|
+
RdnAttribute,
|
|
97
|
+
RdnAttribute,
|
|
98
|
+
RdnAttribute,
|
|
99
|
+
RdnAttribute,
|
|
100
|
+
RdnAttribute,
|
|
101
|
+
RdnAttribute,
|
|
102
|
+
RdnAttribute,
|
|
103
|
+
RdnAttribute,
|
|
104
|
+
RdnAttribute,
|
|
105
|
+
RdnAttribute,
|
|
106
|
+
RdnAttribute,
|
|
107
|
+
RdnAttribute,
|
|
108
|
+
RdnAttribute,
|
|
109
|
+
RdnAttribute,
|
|
110
|
+
RdnAttribute
|
|
111
|
+
] | [
|
|
112
|
+
RdnAttribute,
|
|
113
|
+
RdnAttribute,
|
|
114
|
+
RdnAttribute,
|
|
115
|
+
RdnAttribute,
|
|
116
|
+
RdnAttribute,
|
|
117
|
+
RdnAttribute,
|
|
118
|
+
RdnAttribute,
|
|
119
|
+
RdnAttribute,
|
|
120
|
+
RdnAttribute,
|
|
121
|
+
RdnAttribute,
|
|
122
|
+
RdnAttribute,
|
|
123
|
+
RdnAttribute,
|
|
124
|
+
RdnAttribute,
|
|
125
|
+
RdnAttribute,
|
|
126
|
+
RdnAttribute,
|
|
127
|
+
RdnAttribute
|
|
128
|
+
];
|
|
129
|
+
/**
|
|
130
|
+
* Subject alternative names to request. When present, the custodian adds a non-critical subjectAltName extension to the request's extensionRequest attribute — the only extension this task ever requests.
|
|
131
|
+
*/
|
|
132
|
+
subjectAltNames?: {
|
|
133
|
+
/**
|
|
134
|
+
* dNSName entries: host names in LDH form (an internationalised name as its A-label). No wildcards.
|
|
135
|
+
*
|
|
136
|
+
* @minItems 1
|
|
137
|
+
* @maxItems 16
|
|
138
|
+
*/
|
|
139
|
+
dns?: [string] | [string, string] | [string, string, string] | [string, string, string, string] | [string, string, string, string, string] | [string, string, string, string, string, string] | [string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string, string] | [
|
|
140
|
+
string,
|
|
141
|
+
string,
|
|
142
|
+
string,
|
|
143
|
+
string,
|
|
144
|
+
string,
|
|
145
|
+
string,
|
|
146
|
+
string,
|
|
147
|
+
string,
|
|
148
|
+
string,
|
|
149
|
+
string,
|
|
150
|
+
string,
|
|
151
|
+
string,
|
|
152
|
+
string,
|
|
153
|
+
string,
|
|
154
|
+
string
|
|
155
|
+
] | [
|
|
156
|
+
string,
|
|
157
|
+
string,
|
|
158
|
+
string,
|
|
159
|
+
string,
|
|
160
|
+
string,
|
|
161
|
+
string,
|
|
162
|
+
string,
|
|
163
|
+
string,
|
|
164
|
+
string,
|
|
165
|
+
string,
|
|
166
|
+
string,
|
|
167
|
+
string,
|
|
168
|
+
string,
|
|
169
|
+
string,
|
|
170
|
+
string,
|
|
171
|
+
string
|
|
172
|
+
];
|
|
173
|
+
/**
|
|
174
|
+
* uniformResourceIdentifier entries: absolute URIs, printable ASCII without spaces.
|
|
175
|
+
*
|
|
176
|
+
* @minItems 1
|
|
177
|
+
* @maxItems 16
|
|
178
|
+
*/
|
|
179
|
+
uri?: [string] | [string, string] | [string, string, string] | [string, string, string, string] | [string, string, string, string, string] | [string, string, string, string, string, string] | [string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string, string] | [
|
|
180
|
+
string,
|
|
181
|
+
string,
|
|
182
|
+
string,
|
|
183
|
+
string,
|
|
184
|
+
string,
|
|
185
|
+
string,
|
|
186
|
+
string,
|
|
187
|
+
string,
|
|
188
|
+
string,
|
|
189
|
+
string,
|
|
190
|
+
string,
|
|
191
|
+
string,
|
|
192
|
+
string,
|
|
193
|
+
string,
|
|
194
|
+
string
|
|
195
|
+
] | [
|
|
196
|
+
string,
|
|
197
|
+
string,
|
|
198
|
+
string,
|
|
199
|
+
string,
|
|
200
|
+
string,
|
|
201
|
+
string,
|
|
202
|
+
string,
|
|
203
|
+
string,
|
|
204
|
+
string,
|
|
205
|
+
string,
|
|
206
|
+
string,
|
|
207
|
+
string,
|
|
208
|
+
string,
|
|
209
|
+
string,
|
|
210
|
+
string,
|
|
211
|
+
string
|
|
212
|
+
];
|
|
213
|
+
/**
|
|
214
|
+
* rfc822Name entries: ASCII mailbox addresses.
|
|
215
|
+
*
|
|
216
|
+
* @minItems 1
|
|
217
|
+
* @maxItems 16
|
|
218
|
+
*/
|
|
219
|
+
email?: [string] | [string, string] | [string, string, string] | [string, string, string, string] | [string, string, string, string, string] | [string, string, string, string, string, string] | [string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string, string] | [
|
|
220
|
+
string,
|
|
221
|
+
string,
|
|
222
|
+
string,
|
|
223
|
+
string,
|
|
224
|
+
string,
|
|
225
|
+
string,
|
|
226
|
+
string,
|
|
227
|
+
string,
|
|
228
|
+
string,
|
|
229
|
+
string,
|
|
230
|
+
string,
|
|
231
|
+
string,
|
|
232
|
+
string,
|
|
233
|
+
string,
|
|
234
|
+
string
|
|
235
|
+
] | [
|
|
236
|
+
string,
|
|
237
|
+
string,
|
|
238
|
+
string,
|
|
239
|
+
string,
|
|
240
|
+
string,
|
|
241
|
+
string,
|
|
242
|
+
string,
|
|
243
|
+
string,
|
|
244
|
+
string,
|
|
245
|
+
string,
|
|
246
|
+
string,
|
|
247
|
+
string,
|
|
248
|
+
string,
|
|
249
|
+
string,
|
|
250
|
+
string,
|
|
251
|
+
string
|
|
252
|
+
];
|
|
253
|
+
};
|
|
254
|
+
/**
|
|
255
|
+
* Ecosystem-defined extension members per SPEC.md §4.5.1.
|
|
256
|
+
*/
|
|
257
|
+
ext?: Ext;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* One attribute of the subject distinguished name, encoded as a single-valued RDN.
|
|
261
|
+
*/
|
|
262
|
+
export interface RdnAttribute {
|
|
263
|
+
/**
|
|
264
|
+
* The attribute type, by its X.520 / PKCS #9 short name (externally owned, carried verbatim): `CN` commonName (2.5.4.3), `O` organizationName (2.5.4.10), `OU` organizationalUnitName (2.5.4.11), `C` countryName (2.5.4.6), `L` localityName (2.5.4.7), `ST` stateOrProvinceName (2.5.4.8), `organizationIdentifier` (2.5.4.97), `serialNumber` (2.5.4.5), `emailAddress` (1.2.840.113549.1.9.1). Closed: an attribute outside the set is refused, never passed through by OID.
|
|
265
|
+
*/
|
|
266
|
+
type: "CN" | "O" | "OU" | "C" | "L" | "ST" | "organizationIdentifier" | "serialNumber" | "emailAddress";
|
|
267
|
+
/**
|
|
268
|
+
* The attribute value as text. The custodian encodes it without normalising, trimming or re-casing it, and checks the per-type rules of the specification (character set and length), refusing a value that breaks them with `keys/sign-csr:subjectInvalid`.
|
|
269
|
+
*/
|
|
270
|
+
value: string;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* The success response to a keys/sign-csr request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/keys/sign-csr/0.1#response. Failures use trust-task-error, not this shape.
|
|
274
|
+
*/
|
|
275
|
+
export interface KeysSignCSRResponsePayload {
|
|
276
|
+
/**
|
|
277
|
+
* The key the request is for. Echoed so a response separated from its request is still attributable.
|
|
278
|
+
*/
|
|
279
|
+
keyId: string;
|
|
280
|
+
/**
|
|
281
|
+
* The PKCS#10 CertificationRequest, DER-encoded and armoured as RFC 7468 `CERTIFICATE REQUEST` text: base64 in lines of 64 characters, LF line endings.
|
|
282
|
+
*/
|
|
283
|
+
csr: string;
|
|
284
|
+
/**
|
|
285
|
+
* The key's public half, multibase-encoded exactly as `KeyRecord.publicKey` carries it, so the producer can confirm the request is for the key it meant without parsing the DER.
|
|
286
|
+
*/
|
|
287
|
+
publicKey: string;
|
|
288
|
+
ext?: Ext;
|
|
289
|
+
}
|
|
290
|
+
/** Shared definitions this specification references, re-exported under the names it used to declare them with. */
|
|
291
|
+
export type { Ext };
|
|
292
|
+
/** Trust Task type URI. */
|
|
293
|
+
export declare const TYPE_URI: "https://trusttasks.org/spec/keys/sign-csr/0.1";
|
|
294
|
+
/** Stable alias for this specification's request payload shape. */
|
|
295
|
+
export type Payload = KeysSignCSRPayload;
|
|
296
|
+
/** Trust Task response type URI (request type URI + "#response"). */
|
|
297
|
+
export declare const RESPONSE_TYPE_URI: "https://trusttasks.org/spec/keys/sign-csr/0.1#response";
|
|
298
|
+
/** Stable alias for this specification's success-response payload shape. */
|
|
299
|
+
export type Response = KeysSignCSRResponsePayload;
|
|
300
|
+
/**
|
|
301
|
+
* This specification's payload schema, as a value.
|
|
302
|
+
*
|
|
303
|
+
* SPEC.md §7.2 item 2 is performed against this. It is shipped as data
|
|
304
|
+
* rather than only as a `.json` file because TypeScript types are erased
|
|
305
|
+
* at runtime: without a schema a consumer has nothing to validate, and
|
|
306
|
+
* every REQUIRED payload member is optional in practice. Cross-file
|
|
307
|
+
* `$ref`s are already inlined, so it needs no resolver.
|
|
308
|
+
*/
|
|
309
|
+
export declare const PAYLOAD_SCHEMA: {
|
|
310
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
311
|
+
readonly $id: "https://trusttasks.org/spec/keys/sign-csr/0.1";
|
|
312
|
+
readonly title: "Keys — Sign CSR — payload";
|
|
313
|
+
readonly description: "A request for a PKCS#10 certificate signing request (RFC 2986) for a key the custodian holds. The producer names the subject as structured attributes and optionally the subject alternative names; the custodian builds the CertificationRequestInfo itself from those and the key's own public key, and signs it. The outer document members (id, type, issuer, recipient, issuedAt, expiresAt, proof) are owned by the framework — SPEC §6.3.";
|
|
314
|
+
readonly type: "object";
|
|
315
|
+
readonly additionalProperties: false;
|
|
316
|
+
readonly required: readonly ["keyId", "subject"];
|
|
317
|
+
readonly properties: {
|
|
318
|
+
readonly keyId: {
|
|
319
|
+
readonly type: "string";
|
|
320
|
+
readonly minLength: 1;
|
|
321
|
+
readonly description: "Identifier of the key the request is for, as `keys/show` describes it. Its public half becomes the request's subjectPublicKeyInfo and its private half signs the request. The key MUST be `active`, and `p256` or `ed25519`.";
|
|
322
|
+
};
|
|
323
|
+
readonly subject: {
|
|
324
|
+
readonly type: "array";
|
|
325
|
+
readonly minItems: 1;
|
|
326
|
+
readonly maxItems: 16;
|
|
327
|
+
readonly items: {
|
|
328
|
+
readonly $ref: "#/$defs/RdnAttribute";
|
|
329
|
+
};
|
|
330
|
+
readonly description: "The subject distinguished name, one attribute per relative distinguished name, in the order of the encoded RDNSequence: element 0 is the first RDN in the DER, conventionally the country. That is the reverse of the RFC 4514 string form (`CN=…,O=…,C=…`). Never a raw DER or DN string.";
|
|
331
|
+
};
|
|
332
|
+
readonly subjectAltNames: {
|
|
333
|
+
readonly type: "object";
|
|
334
|
+
readonly additionalProperties: false;
|
|
335
|
+
readonly minProperties: 1;
|
|
336
|
+
readonly description: "Subject alternative names to request. When present, the custodian adds a non-critical subjectAltName extension to the request's extensionRequest attribute — the only extension this task ever requests.";
|
|
337
|
+
readonly properties: {
|
|
338
|
+
readonly dns: {
|
|
339
|
+
readonly type: "array";
|
|
340
|
+
readonly minItems: 1;
|
|
341
|
+
readonly maxItems: 16;
|
|
342
|
+
readonly items: {
|
|
343
|
+
readonly type: "string";
|
|
344
|
+
readonly minLength: 1;
|
|
345
|
+
readonly maxLength: 253;
|
|
346
|
+
readonly pattern: "^([A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?\\.)*[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?$";
|
|
347
|
+
};
|
|
348
|
+
readonly description: "dNSName entries: host names in LDH form (an internationalised name as its A-label). No wildcards.";
|
|
349
|
+
};
|
|
350
|
+
readonly uri: {
|
|
351
|
+
readonly type: "array";
|
|
352
|
+
readonly minItems: 1;
|
|
353
|
+
readonly maxItems: 16;
|
|
354
|
+
readonly items: {
|
|
355
|
+
readonly type: "string";
|
|
356
|
+
readonly minLength: 3;
|
|
357
|
+
readonly maxLength: 2048;
|
|
358
|
+
readonly pattern: "^[A-Za-z][A-Za-z0-9+.-]*:[!-~]+$";
|
|
359
|
+
};
|
|
360
|
+
readonly description: "uniformResourceIdentifier entries: absolute URIs, printable ASCII without spaces.";
|
|
361
|
+
};
|
|
362
|
+
readonly email: {
|
|
363
|
+
readonly type: "array";
|
|
364
|
+
readonly minItems: 1;
|
|
365
|
+
readonly maxItems: 16;
|
|
366
|
+
readonly items: {
|
|
367
|
+
readonly type: "string";
|
|
368
|
+
readonly minLength: 3;
|
|
369
|
+
readonly maxLength: 255;
|
|
370
|
+
readonly pattern: "^[!-?A-~]+@[A-Za-z0-9.-]+$";
|
|
371
|
+
};
|
|
372
|
+
readonly description: "rfc822Name entries: ASCII mailbox addresses.";
|
|
373
|
+
};
|
|
374
|
+
};
|
|
375
|
+
};
|
|
376
|
+
readonly ext: {
|
|
377
|
+
readonly $ref: "#/$defs/Ext";
|
|
378
|
+
readonly description: "Ecosystem-defined extension members per SPEC.md §4.5.1.";
|
|
379
|
+
};
|
|
380
|
+
};
|
|
381
|
+
readonly $defs: {
|
|
382
|
+
readonly RdnAttribute: {
|
|
383
|
+
readonly title: "RdnAttribute";
|
|
384
|
+
readonly type: "object";
|
|
385
|
+
readonly additionalProperties: false;
|
|
386
|
+
readonly required: readonly ["type", "value"];
|
|
387
|
+
readonly description: "One attribute of the subject distinguished name, encoded as a single-valued RDN.";
|
|
388
|
+
readonly properties: {
|
|
389
|
+
readonly type: {
|
|
390
|
+
readonly type: "string";
|
|
391
|
+
readonly enum: readonly ["CN", "O", "OU", "C", "L", "ST", "organizationIdentifier", "serialNumber", "emailAddress"];
|
|
392
|
+
readonly description: "The attribute type, by its X.520 / PKCS #9 short name (externally owned, carried verbatim): `CN` commonName (2.5.4.3), `O` organizationName (2.5.4.10), `OU` organizationalUnitName (2.5.4.11), `C` countryName (2.5.4.6), `L` localityName (2.5.4.7), `ST` stateOrProvinceName (2.5.4.8), `organizationIdentifier` (2.5.4.97), `serialNumber` (2.5.4.5), `emailAddress` (1.2.840.113549.1.9.1). Closed: an attribute outside the set is refused, never passed through by OID.";
|
|
393
|
+
};
|
|
394
|
+
readonly value: {
|
|
395
|
+
readonly type: "string";
|
|
396
|
+
readonly minLength: 1;
|
|
397
|
+
readonly maxLength: 255;
|
|
398
|
+
readonly description: "The attribute value as text. The custodian encodes it without normalising, trimming or re-casing it, and checks the per-type rules of the specification (character set and length), refusing a value that breaks them with `keys/sign-csr:subjectInvalid`.";
|
|
399
|
+
};
|
|
400
|
+
};
|
|
401
|
+
};
|
|
402
|
+
readonly Response: {
|
|
403
|
+
readonly $anchor: "response";
|
|
404
|
+
readonly title: "Keys — Sign CSR — response payload";
|
|
405
|
+
readonly description: "The success response to a keys/sign-csr request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/keys/sign-csr/0.1#response. Failures use trust-task-error, not this shape.";
|
|
406
|
+
readonly type: "object";
|
|
407
|
+
readonly additionalProperties: false;
|
|
408
|
+
readonly required: readonly ["keyId", "csr", "publicKey"];
|
|
409
|
+
readonly properties: {
|
|
410
|
+
readonly keyId: {
|
|
411
|
+
readonly type: "string";
|
|
412
|
+
readonly description: "The key the request is for. Echoed so a response separated from its request is still attributable.";
|
|
413
|
+
};
|
|
414
|
+
readonly csr: {
|
|
415
|
+
readonly type: "string";
|
|
416
|
+
readonly maxLength: 16384;
|
|
417
|
+
readonly pattern: "^-----BEGIN CERTIFICATE REQUEST-----\\n[A-Za-z0-9+/=\\n]+-----END CERTIFICATE REQUEST-----\\n?$";
|
|
418
|
+
readonly description: "The PKCS#10 CertificationRequest, DER-encoded and armoured as RFC 7468 `CERTIFICATE REQUEST` text: base64 in lines of 64 characters, LF line endings.";
|
|
419
|
+
};
|
|
420
|
+
readonly publicKey: {
|
|
421
|
+
readonly type: "string";
|
|
422
|
+
readonly minLength: 1;
|
|
423
|
+
readonly description: "The key's public half, multibase-encoded exactly as `KeyRecord.publicKey` carries it, so the producer can confirm the request is for the key it meant without parsing the DER.";
|
|
424
|
+
};
|
|
425
|
+
readonly ext: {
|
|
426
|
+
readonly $ref: "#/$defs/Ext";
|
|
427
|
+
};
|
|
428
|
+
};
|
|
429
|
+
};
|
|
430
|
+
readonly Ext: {
|
|
431
|
+
readonly title: "Ext";
|
|
432
|
+
readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
|
|
433
|
+
readonly type: "object";
|
|
434
|
+
readonly minProperties: 1;
|
|
435
|
+
readonly additionalProperties: true;
|
|
436
|
+
readonly propertyNames: {
|
|
437
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
438
|
+
};
|
|
439
|
+
};
|
|
440
|
+
};
|
|
441
|
+
};
|
|
442
|
+
/** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
|
|
443
|
+
export declare const RESPONSE_PAYLOAD_SCHEMA: {
|
|
444
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
445
|
+
readonly $ref: "#/$defs/Response";
|
|
446
|
+
readonly $defs: {
|
|
447
|
+
readonly RdnAttribute: {
|
|
448
|
+
readonly title: "RdnAttribute";
|
|
449
|
+
readonly type: "object";
|
|
450
|
+
readonly additionalProperties: false;
|
|
451
|
+
readonly required: readonly ["type", "value"];
|
|
452
|
+
readonly description: "One attribute of the subject distinguished name, encoded as a single-valued RDN.";
|
|
453
|
+
readonly properties: {
|
|
454
|
+
readonly type: {
|
|
455
|
+
readonly type: "string";
|
|
456
|
+
readonly enum: readonly ["CN", "O", "OU", "C", "L", "ST", "organizationIdentifier", "serialNumber", "emailAddress"];
|
|
457
|
+
readonly description: "The attribute type, by its X.520 / PKCS #9 short name (externally owned, carried verbatim): `CN` commonName (2.5.4.3), `O` organizationName (2.5.4.10), `OU` organizationalUnitName (2.5.4.11), `C` countryName (2.5.4.6), `L` localityName (2.5.4.7), `ST` stateOrProvinceName (2.5.4.8), `organizationIdentifier` (2.5.4.97), `serialNumber` (2.5.4.5), `emailAddress` (1.2.840.113549.1.9.1). Closed: an attribute outside the set is refused, never passed through by OID.";
|
|
458
|
+
};
|
|
459
|
+
readonly value: {
|
|
460
|
+
readonly type: "string";
|
|
461
|
+
readonly minLength: 1;
|
|
462
|
+
readonly maxLength: 255;
|
|
463
|
+
readonly description: "The attribute value as text. The custodian encodes it without normalising, trimming or re-casing it, and checks the per-type rules of the specification (character set and length), refusing a value that breaks them with `keys/sign-csr:subjectInvalid`.";
|
|
464
|
+
};
|
|
465
|
+
};
|
|
466
|
+
};
|
|
467
|
+
readonly Response: {
|
|
468
|
+
readonly $anchor: "response";
|
|
469
|
+
readonly title: "Keys — Sign CSR — response payload";
|
|
470
|
+
readonly description: "The success response to a keys/sign-csr request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/keys/sign-csr/0.1#response. Failures use trust-task-error, not this shape.";
|
|
471
|
+
readonly type: "object";
|
|
472
|
+
readonly additionalProperties: false;
|
|
473
|
+
readonly required: readonly ["keyId", "csr", "publicKey"];
|
|
474
|
+
readonly properties: {
|
|
475
|
+
readonly keyId: {
|
|
476
|
+
readonly type: "string";
|
|
477
|
+
readonly description: "The key the request is for. Echoed so a response separated from its request is still attributable.";
|
|
478
|
+
};
|
|
479
|
+
readonly csr: {
|
|
480
|
+
readonly type: "string";
|
|
481
|
+
readonly maxLength: 16384;
|
|
482
|
+
readonly pattern: "^-----BEGIN CERTIFICATE REQUEST-----\\n[A-Za-z0-9+/=\\n]+-----END CERTIFICATE REQUEST-----\\n?$";
|
|
483
|
+
readonly description: "The PKCS#10 CertificationRequest, DER-encoded and armoured as RFC 7468 `CERTIFICATE REQUEST` text: base64 in lines of 64 characters, LF line endings.";
|
|
484
|
+
};
|
|
485
|
+
readonly publicKey: {
|
|
486
|
+
readonly type: "string";
|
|
487
|
+
readonly minLength: 1;
|
|
488
|
+
readonly description: "The key's public half, multibase-encoded exactly as `KeyRecord.publicKey` carries it, so the producer can confirm the request is for the key it meant without parsing the DER.";
|
|
489
|
+
};
|
|
490
|
+
readonly ext: {
|
|
491
|
+
readonly $ref: "#/$defs/Ext";
|
|
492
|
+
};
|
|
493
|
+
};
|
|
494
|
+
};
|
|
495
|
+
readonly Ext: {
|
|
496
|
+
readonly title: "Ext";
|
|
497
|
+
readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
|
|
498
|
+
readonly type: "object";
|
|
499
|
+
readonly minProperties: 1;
|
|
500
|
+
readonly additionalProperties: true;
|
|
501
|
+
readonly propertyNames: {
|
|
502
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
503
|
+
};
|
|
504
|
+
};
|
|
505
|
+
};
|
|
506
|
+
};
|
|
507
|
+
/**
|
|
508
|
+
* SPEC.md §7.2 policy for the request variant, from this specification's
|
|
509
|
+
* front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
|
|
510
|
+
* per-specification and cannot be derived from the document alone, and
|
|
511
|
+
* item 2 needs the schema this carries.
|
|
512
|
+
*/
|
|
513
|
+
export declare const SPEC: {
|
|
514
|
+
readonly typeUri: "https://trusttasks.org/spec/keys/sign-csr/0.1";
|
|
515
|
+
readonly isBearer: false;
|
|
516
|
+
readonly isProofRequired: true;
|
|
517
|
+
readonly isRecipientRequired: true;
|
|
518
|
+
readonly isIssuedAtRequired: true;
|
|
519
|
+
readonly payloadSchema: {
|
|
520
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
521
|
+
readonly $id: "https://trusttasks.org/spec/keys/sign-csr/0.1";
|
|
522
|
+
readonly title: "Keys — Sign CSR — payload";
|
|
523
|
+
readonly description: "A request for a PKCS#10 certificate signing request (RFC 2986) for a key the custodian holds. The producer names the subject as structured attributes and optionally the subject alternative names; the custodian builds the CertificationRequestInfo itself from those and the key's own public key, and signs it. The outer document members (id, type, issuer, recipient, issuedAt, expiresAt, proof) are owned by the framework — SPEC §6.3.";
|
|
524
|
+
readonly type: "object";
|
|
525
|
+
readonly additionalProperties: false;
|
|
526
|
+
readonly required: readonly ["keyId", "subject"];
|
|
527
|
+
readonly properties: {
|
|
528
|
+
readonly keyId: {
|
|
529
|
+
readonly type: "string";
|
|
530
|
+
readonly minLength: 1;
|
|
531
|
+
readonly description: "Identifier of the key the request is for, as `keys/show` describes it. Its public half becomes the request's subjectPublicKeyInfo and its private half signs the request. The key MUST be `active`, and `p256` or `ed25519`.";
|
|
532
|
+
};
|
|
533
|
+
readonly subject: {
|
|
534
|
+
readonly type: "array";
|
|
535
|
+
readonly minItems: 1;
|
|
536
|
+
readonly maxItems: 16;
|
|
537
|
+
readonly items: {
|
|
538
|
+
readonly $ref: "#/$defs/RdnAttribute";
|
|
539
|
+
};
|
|
540
|
+
readonly description: "The subject distinguished name, one attribute per relative distinguished name, in the order of the encoded RDNSequence: element 0 is the first RDN in the DER, conventionally the country. That is the reverse of the RFC 4514 string form (`CN=…,O=…,C=…`). Never a raw DER or DN string.";
|
|
541
|
+
};
|
|
542
|
+
readonly subjectAltNames: {
|
|
543
|
+
readonly type: "object";
|
|
544
|
+
readonly additionalProperties: false;
|
|
545
|
+
readonly minProperties: 1;
|
|
546
|
+
readonly description: "Subject alternative names to request. When present, the custodian adds a non-critical subjectAltName extension to the request's extensionRequest attribute — the only extension this task ever requests.";
|
|
547
|
+
readonly properties: {
|
|
548
|
+
readonly dns: {
|
|
549
|
+
readonly type: "array";
|
|
550
|
+
readonly minItems: 1;
|
|
551
|
+
readonly maxItems: 16;
|
|
552
|
+
readonly items: {
|
|
553
|
+
readonly type: "string";
|
|
554
|
+
readonly minLength: 1;
|
|
555
|
+
readonly maxLength: 253;
|
|
556
|
+
readonly pattern: "^([A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?\\.)*[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?$";
|
|
557
|
+
};
|
|
558
|
+
readonly description: "dNSName entries: host names in LDH form (an internationalised name as its A-label). No wildcards.";
|
|
559
|
+
};
|
|
560
|
+
readonly uri: {
|
|
561
|
+
readonly type: "array";
|
|
562
|
+
readonly minItems: 1;
|
|
563
|
+
readonly maxItems: 16;
|
|
564
|
+
readonly items: {
|
|
565
|
+
readonly type: "string";
|
|
566
|
+
readonly minLength: 3;
|
|
567
|
+
readonly maxLength: 2048;
|
|
568
|
+
readonly pattern: "^[A-Za-z][A-Za-z0-9+.-]*:[!-~]+$";
|
|
569
|
+
};
|
|
570
|
+
readonly description: "uniformResourceIdentifier entries: absolute URIs, printable ASCII without spaces.";
|
|
571
|
+
};
|
|
572
|
+
readonly email: {
|
|
573
|
+
readonly type: "array";
|
|
574
|
+
readonly minItems: 1;
|
|
575
|
+
readonly maxItems: 16;
|
|
576
|
+
readonly items: {
|
|
577
|
+
readonly type: "string";
|
|
578
|
+
readonly minLength: 3;
|
|
579
|
+
readonly maxLength: 255;
|
|
580
|
+
readonly pattern: "^[!-?A-~]+@[A-Za-z0-9.-]+$";
|
|
581
|
+
};
|
|
582
|
+
readonly description: "rfc822Name entries: ASCII mailbox addresses.";
|
|
583
|
+
};
|
|
584
|
+
};
|
|
585
|
+
};
|
|
586
|
+
readonly ext: {
|
|
587
|
+
readonly $ref: "#/$defs/Ext";
|
|
588
|
+
readonly description: "Ecosystem-defined extension members per SPEC.md §4.5.1.";
|
|
589
|
+
};
|
|
590
|
+
};
|
|
591
|
+
readonly $defs: {
|
|
592
|
+
readonly RdnAttribute: {
|
|
593
|
+
readonly title: "RdnAttribute";
|
|
594
|
+
readonly type: "object";
|
|
595
|
+
readonly additionalProperties: false;
|
|
596
|
+
readonly required: readonly ["type", "value"];
|
|
597
|
+
readonly description: "One attribute of the subject distinguished name, encoded as a single-valued RDN.";
|
|
598
|
+
readonly properties: {
|
|
599
|
+
readonly type: {
|
|
600
|
+
readonly type: "string";
|
|
601
|
+
readonly enum: readonly ["CN", "O", "OU", "C", "L", "ST", "organizationIdentifier", "serialNumber", "emailAddress"];
|
|
602
|
+
readonly description: "The attribute type, by its X.520 / PKCS #9 short name (externally owned, carried verbatim): `CN` commonName (2.5.4.3), `O` organizationName (2.5.4.10), `OU` organizationalUnitName (2.5.4.11), `C` countryName (2.5.4.6), `L` localityName (2.5.4.7), `ST` stateOrProvinceName (2.5.4.8), `organizationIdentifier` (2.5.4.97), `serialNumber` (2.5.4.5), `emailAddress` (1.2.840.113549.1.9.1). Closed: an attribute outside the set is refused, never passed through by OID.";
|
|
603
|
+
};
|
|
604
|
+
readonly value: {
|
|
605
|
+
readonly type: "string";
|
|
606
|
+
readonly minLength: 1;
|
|
607
|
+
readonly maxLength: 255;
|
|
608
|
+
readonly description: "The attribute value as text. The custodian encodes it without normalising, trimming or re-casing it, and checks the per-type rules of the specification (character set and length), refusing a value that breaks them with `keys/sign-csr:subjectInvalid`.";
|
|
609
|
+
};
|
|
610
|
+
};
|
|
611
|
+
};
|
|
612
|
+
readonly Response: {
|
|
613
|
+
readonly $anchor: "response";
|
|
614
|
+
readonly title: "Keys — Sign CSR — response payload";
|
|
615
|
+
readonly description: "The success response to a keys/sign-csr request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/keys/sign-csr/0.1#response. Failures use trust-task-error, not this shape.";
|
|
616
|
+
readonly type: "object";
|
|
617
|
+
readonly additionalProperties: false;
|
|
618
|
+
readonly required: readonly ["keyId", "csr", "publicKey"];
|
|
619
|
+
readonly properties: {
|
|
620
|
+
readonly keyId: {
|
|
621
|
+
readonly type: "string";
|
|
622
|
+
readonly description: "The key the request is for. Echoed so a response separated from its request is still attributable.";
|
|
623
|
+
};
|
|
624
|
+
readonly csr: {
|
|
625
|
+
readonly type: "string";
|
|
626
|
+
readonly maxLength: 16384;
|
|
627
|
+
readonly pattern: "^-----BEGIN CERTIFICATE REQUEST-----\\n[A-Za-z0-9+/=\\n]+-----END CERTIFICATE REQUEST-----\\n?$";
|
|
628
|
+
readonly description: "The PKCS#10 CertificationRequest, DER-encoded and armoured as RFC 7468 `CERTIFICATE REQUEST` text: base64 in lines of 64 characters, LF line endings.";
|
|
629
|
+
};
|
|
630
|
+
readonly publicKey: {
|
|
631
|
+
readonly type: "string";
|
|
632
|
+
readonly minLength: 1;
|
|
633
|
+
readonly description: "The key's public half, multibase-encoded exactly as `KeyRecord.publicKey` carries it, so the producer can confirm the request is for the key it meant without parsing the DER.";
|
|
634
|
+
};
|
|
635
|
+
readonly ext: {
|
|
636
|
+
readonly $ref: "#/$defs/Ext";
|
|
637
|
+
};
|
|
638
|
+
};
|
|
639
|
+
};
|
|
640
|
+
readonly Ext: {
|
|
641
|
+
readonly title: "Ext";
|
|
642
|
+
readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
|
|
643
|
+
readonly type: "object";
|
|
644
|
+
readonly minProperties: 1;
|
|
645
|
+
readonly additionalProperties: true;
|
|
646
|
+
readonly propertyNames: {
|
|
647
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
648
|
+
};
|
|
649
|
+
};
|
|
650
|
+
};
|
|
651
|
+
};
|
|
652
|
+
};
|
|
653
|
+
/**
|
|
654
|
+
* SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
|
|
655
|
+
* tracks the *issuer* party's requirement because a response swaps the
|
|
656
|
+
* parties (§7.3 item 5).
|
|
657
|
+
*/
|
|
658
|
+
export declare const RESPONSE_SPEC: {
|
|
659
|
+
readonly typeUri: "https://trusttasks.org/spec/keys/sign-csr/0.1#response";
|
|
660
|
+
readonly isBearer: false;
|
|
661
|
+
readonly isProofRequired: false;
|
|
662
|
+
readonly isRecipientRequired: true;
|
|
663
|
+
readonly isIssuedAtRequired: true;
|
|
664
|
+
readonly payloadSchema: {
|
|
665
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
666
|
+
readonly $ref: "#/$defs/Response";
|
|
667
|
+
readonly $defs: {
|
|
668
|
+
readonly RdnAttribute: {
|
|
669
|
+
readonly title: "RdnAttribute";
|
|
670
|
+
readonly type: "object";
|
|
671
|
+
readonly additionalProperties: false;
|
|
672
|
+
readonly required: readonly ["type", "value"];
|
|
673
|
+
readonly description: "One attribute of the subject distinguished name, encoded as a single-valued RDN.";
|
|
674
|
+
readonly properties: {
|
|
675
|
+
readonly type: {
|
|
676
|
+
readonly type: "string";
|
|
677
|
+
readonly enum: readonly ["CN", "O", "OU", "C", "L", "ST", "organizationIdentifier", "serialNumber", "emailAddress"];
|
|
678
|
+
readonly description: "The attribute type, by its X.520 / PKCS #9 short name (externally owned, carried verbatim): `CN` commonName (2.5.4.3), `O` organizationName (2.5.4.10), `OU` organizationalUnitName (2.5.4.11), `C` countryName (2.5.4.6), `L` localityName (2.5.4.7), `ST` stateOrProvinceName (2.5.4.8), `organizationIdentifier` (2.5.4.97), `serialNumber` (2.5.4.5), `emailAddress` (1.2.840.113549.1.9.1). Closed: an attribute outside the set is refused, never passed through by OID.";
|
|
679
|
+
};
|
|
680
|
+
readonly value: {
|
|
681
|
+
readonly type: "string";
|
|
682
|
+
readonly minLength: 1;
|
|
683
|
+
readonly maxLength: 255;
|
|
684
|
+
readonly description: "The attribute value as text. The custodian encodes it without normalising, trimming or re-casing it, and checks the per-type rules of the specification (character set and length), refusing a value that breaks them with `keys/sign-csr:subjectInvalid`.";
|
|
685
|
+
};
|
|
686
|
+
};
|
|
687
|
+
};
|
|
688
|
+
readonly Response: {
|
|
689
|
+
readonly $anchor: "response";
|
|
690
|
+
readonly title: "Keys — Sign CSR — response payload";
|
|
691
|
+
readonly description: "The success response to a keys/sign-csr request. Carried in a Trust Task document whose type is https://trusttasks.org/spec/keys/sign-csr/0.1#response. Failures use trust-task-error, not this shape.";
|
|
692
|
+
readonly type: "object";
|
|
693
|
+
readonly additionalProperties: false;
|
|
694
|
+
readonly required: readonly ["keyId", "csr", "publicKey"];
|
|
695
|
+
readonly properties: {
|
|
696
|
+
readonly keyId: {
|
|
697
|
+
readonly type: "string";
|
|
698
|
+
readonly description: "The key the request is for. Echoed so a response separated from its request is still attributable.";
|
|
699
|
+
};
|
|
700
|
+
readonly csr: {
|
|
701
|
+
readonly type: "string";
|
|
702
|
+
readonly maxLength: 16384;
|
|
703
|
+
readonly pattern: "^-----BEGIN CERTIFICATE REQUEST-----\\n[A-Za-z0-9+/=\\n]+-----END CERTIFICATE REQUEST-----\\n?$";
|
|
704
|
+
readonly description: "The PKCS#10 CertificationRequest, DER-encoded and armoured as RFC 7468 `CERTIFICATE REQUEST` text: base64 in lines of 64 characters, LF line endings.";
|
|
705
|
+
};
|
|
706
|
+
readonly publicKey: {
|
|
707
|
+
readonly type: "string";
|
|
708
|
+
readonly minLength: 1;
|
|
709
|
+
readonly description: "The key's public half, multibase-encoded exactly as `KeyRecord.publicKey` carries it, so the producer can confirm the request is for the key it meant without parsing the DER.";
|
|
710
|
+
};
|
|
711
|
+
readonly ext: {
|
|
712
|
+
readonly $ref: "#/$defs/Ext";
|
|
713
|
+
};
|
|
714
|
+
};
|
|
715
|
+
};
|
|
716
|
+
readonly Ext: {
|
|
717
|
+
readonly title: "Ext";
|
|
718
|
+
readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
|
|
719
|
+
readonly type: "object";
|
|
720
|
+
readonly minProperties: 1;
|
|
721
|
+
readonly additionalProperties: true;
|
|
722
|
+
readonly propertyNames: {
|
|
723
|
+
readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
|
|
724
|
+
};
|
|
725
|
+
};
|
|
726
|
+
};
|
|
727
|
+
};
|
|
728
|
+
};
|
|
729
|
+
//# sourceMappingURL=payload.d.ts.map
|