burnledger 0.8.0 → 0.9.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 +139 -2
- package/dist/cjs/anchor.d.ts +5 -3
- package/dist/cjs/anchor.d.ts.map +1 -1
- package/dist/cjs/anchor.js +10 -4
- package/dist/cjs/anchor.js.map +1 -1
- package/dist/cjs/client.d.ts +95 -0
- package/dist/cjs/client.d.ts.map +1 -1
- package/dist/cjs/client.js +133 -2
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/customer-keys.d.ts +146 -0
- package/dist/cjs/customer-keys.d.ts.map +1 -0
- package/dist/cjs/customer-keys.js +465 -0
- package/dist/cjs/customer-keys.js.map +1 -0
- package/dist/cjs/enclave-registration.d.ts +153 -0
- package/dist/cjs/enclave-registration.d.ts.map +1 -0
- package/dist/cjs/enclave-registration.js +275 -0
- package/dist/cjs/enclave-registration.js.map +1 -0
- package/dist/cjs/enclave-seal.d.ts +43 -0
- package/dist/cjs/enclave-seal.d.ts.map +1 -1
- package/dist/cjs/enclave-seal.js +62 -1
- package/dist/cjs/enclave-seal.js.map +1 -1
- package/dist/cjs/errors.d.ts +10 -0
- package/dist/cjs/errors.d.ts.map +1 -1
- package/dist/cjs/errors.js +11 -1
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/index.browser.d.ts +7 -3
- package/dist/cjs/index.browser.d.ts.map +1 -1
- package/dist/cjs/index.browser.js +6 -3
- package/dist/cjs/index.browser.js.map +1 -1
- package/dist/cjs/index.d.ts +23 -9
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +40 -6
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/key-group.d.ts +80 -0
- package/dist/cjs/key-group.d.ts.map +1 -0
- package/dist/cjs/key-group.js +136 -0
- package/dist/cjs/key-group.js.map +1 -0
- package/dist/cjs/models.d.ts +60 -0
- package/dist/cjs/models.d.ts.map +1 -1
- package/dist/cjs/models.js +63 -0
- package/dist/cjs/models.js.map +1 -1
- package/dist/cjs/status-document.d.ts +25 -0
- package/dist/cjs/status-document.d.ts.map +1 -0
- package/dist/cjs/status-document.js +62 -0
- package/dist/cjs/status-document.js.map +1 -0
- package/dist/cjs/verify.d.ts +112 -3
- package/dist/cjs/verify.d.ts.map +1 -1
- package/dist/cjs/verify.js +393 -146
- package/dist/cjs/verify.js.map +1 -1
- package/dist/cjs/web-verifier.d.ts +23 -3
- package/dist/cjs/web-verifier.d.ts.map +1 -1
- package/dist/cjs/web-verifier.js +31 -5
- package/dist/cjs/web-verifier.js.map +1 -1
- package/dist/esm/anchor.d.ts +5 -3
- package/dist/esm/anchor.d.ts.map +1 -1
- package/dist/esm/anchor.js +10 -4
- package/dist/esm/anchor.js.map +1 -1
- package/dist/esm/cli.d.ts +13 -19
- package/dist/esm/cli.d.ts.map +1 -1
- package/dist/esm/cli.js +109 -81
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/client.d.ts +95 -0
- package/dist/esm/client.d.ts.map +1 -1
- package/dist/esm/client.js +133 -2
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/customer-keys.d.ts +146 -0
- package/dist/esm/customer-keys.d.ts.map +1 -0
- package/dist/esm/customer-keys.js +450 -0
- package/dist/esm/customer-keys.js.map +1 -0
- package/dist/esm/enclave-registration.d.ts +153 -0
- package/dist/esm/enclave-registration.d.ts.map +1 -0
- package/dist/esm/enclave-registration.js +265 -0
- package/dist/esm/enclave-registration.js.map +1 -0
- package/dist/esm/enclave-seal.d.ts +43 -0
- package/dist/esm/enclave-seal.d.ts.map +1 -1
- package/dist/esm/enclave-seal.js +61 -1
- package/dist/esm/enclave-seal.js.map +1 -1
- package/dist/esm/errors.d.ts +10 -0
- package/dist/esm/errors.d.ts.map +1 -1
- package/dist/esm/errors.js +10 -0
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/index.browser.d.ts +7 -3
- package/dist/esm/index.browser.d.ts.map +1 -1
- package/dist/esm/index.browser.js +6 -3
- package/dist/esm/index.browser.js.map +1 -1
- package/dist/esm/index.d.ts +23 -9
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +18 -7
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/key-group.d.ts +80 -0
- package/dist/esm/key-group.d.ts.map +1 -0
- package/dist/esm/key-group.js +130 -0
- package/dist/esm/key-group.js.map +1 -0
- package/dist/esm/models.d.ts +60 -0
- package/dist/esm/models.d.ts.map +1 -1
- package/dist/esm/models.js +59 -0
- package/dist/esm/models.js.map +1 -1
- package/dist/esm/status-document.d.ts +25 -0
- package/dist/esm/status-document.d.ts.map +1 -0
- package/dist/esm/status-document.js +59 -0
- package/dist/esm/status-document.js.map +1 -0
- package/dist/esm/verify.d.ts +112 -3
- package/dist/esm/verify.d.ts.map +1 -1
- package/dist/esm/verify.js +390 -147
- package/dist/esm/verify.js.map +1 -1
- package/dist/esm/web-verifier.d.ts +23 -3
- package/dist/esm/web-verifier.d.ts.map +1 -1
- package/dist/esm/web-verifier.js +27 -5
- package/dist/esm/web-verifier.js.map +1 -1
- package/package.json +1 -1
- package/src/anchor.ts +10 -4
- package/src/cli.ts +122 -79
- package/src/client.ts +198 -6
- package/src/customer-keys.ts +550 -0
- package/src/enclave-registration.ts +390 -0
- package/src/enclave-seal.ts +108 -1
- package/src/errors.ts +11 -0
- package/src/index.browser.ts +9 -3
- package/src/index.ts +48 -6
- package/src/key-group.ts +181 -0
- package/src/models.ts +131 -0
- package/src/status-document.ts +59 -0
- package/src/verify.ts +503 -152
- package/src/web-verifier.ts +36 -3
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,28 +1,31 @@
|
|
|
1
1
|
/** BurnLedger TypeScript SDK — public API (Node.js entry point). */
|
|
2
2
|
export { BurnLedger, MAX_BATCH_REVOKE } from "./client.js";
|
|
3
3
|
export type { BurnLedgerOptions } from "./client.js";
|
|
4
|
-
export { BurnLedgerError, ApiError, AuthenticationError, NotFoundError, ConflictError, ValidationError, RateLimitError, ServerError, TimeoutError, VerificationError, CERTIFICATE_REVOKED, UNSUPPORTED_FORMAT_VERSION, } from "./errors.js";
|
|
4
|
+
export { BurnLedgerError, ApiError, AuthenticationError, NotFoundError, ConflictError, ValidationError, RateLimitError, ServerError, TimeoutError, VerificationError, AUTHORIZATION_POLICY_FAILED, CERTIFICATE_REVOKED, UNSUPPORTED_FORMAT_VERSION, } from "./errors.js";
|
|
5
5
|
export { Transport } from "./http.js";
|
|
6
6
|
export type { TransportOptions } from "./http.js";
|
|
7
|
-
export type { PublicKeyOptions } from "./verify.js";
|
|
8
|
-
export type { ProofMode, AttestationStatus, CertificateStatus, TransparencyStatus, HealthStatus, TransportSecurity, ReadOnlyEnforcement, ConnectorType, HashScope, LogEntryType, VerificationResult, TransparencyResult, ApiKeyRole, System, SystemAttestation, Attestation, VerificationSystem, VerifyResult, CertificateResponse, RevocationStatus, Webhook, SignedTreeHead, LogEntry, InclusionProof, ConsistencyProof, BatchAttestationResponse, BatchAttestationError, BatchRevokeResponse, BatchRevokeError, MonthlyCount, CertificateStats, WebhookRotateResponse, WebhookDelivery, ApiKeyListItem, ApiKeyResponse, PlanUsage, Profile, SystemHealth, } from "./models.js";
|
|
7
|
+
export type { AuthorizationPolicy, PublicKeyOptions, VerifyOptions } from "./verify.js";
|
|
8
|
+
export type { ProofMode, AttestationStatus, CertificateStatus, TransparencyStatus, HealthStatus, TransportSecurity, ReadOnlyEnforcement, ConnectorType, HashScope, LogEntryType, VerificationResult, TransparencyResult, ApiKeyRole, System, SystemAttestation, Attestation, VerificationSystem, VerifyResult, CertificateResponse, RevocationStatus, Webhook, SignedTreeHead, LogEntry, InclusionProof, ConsistencyProof, BatchAttestationResponse, BatchAttestationError, BatchRevokeResponse, BatchRevokeError, MonthlyCount, CertificateStats, WebhookRotateResponse, WebhookDelivery, ApiKeyListItem, ApiKeyResponse, PlanUsage, Profile, SystemHealth, KeyEnrollmentStatement, TeamAuthorizationCertificate, SystemRegistrationCertificate, KeyEnrollmentResult, } from "./models.js";
|
|
9
9
|
export { parseSystem, parseCertificateResponse, parseWebhook } from "./models.js";
|
|
10
10
|
export { Paginator } from "./pagination.js";
|
|
11
11
|
export type { CryptoOps } from "./crypto.js";
|
|
12
12
|
export type { PublicKeyInfo } from "./verify.js";
|
|
13
13
|
export { issuanceBytes, hexToBytes, bytesToHex } from "./verify.js";
|
|
14
|
-
import type { PublicKeyInfo, PublicKeyOptions } from "./verify.js";
|
|
14
|
+
import type { PublicKeyInfo, PublicKeyOptions, VerifyOptions } from "./verify.js";
|
|
15
15
|
import type { VerificationResult, TransparencyResult } from "./models.js";
|
|
16
16
|
type Cert = Record<string, unknown>;
|
|
17
|
-
/** Verify all signatures on a deletion certificate offline.
|
|
18
|
-
|
|
17
|
+
/** Verify all signatures on a deletion certificate offline. Pass
|
|
18
|
+
* `{ requireAuthorization }` to refuse a record unless its systems are certified
|
|
19
|
+
* under a key id you name, by an enclave image that requires that key group's
|
|
20
|
+
* signature to register a system (ADR-025). */
|
|
21
|
+
export declare function verifyCertificate(certificate: Cert, publicKeys: Map<string, PublicKeyInfo>, options?: VerifyOptions): Promise<VerificationResult>;
|
|
19
22
|
/**
|
|
20
23
|
* Verify a certificate and, separately, what a signed statement says about its
|
|
21
24
|
* revocation. Returns "VALID_REVOCATION_UNKNOWN" when no fresh statement is
|
|
22
25
|
* supplied — never "VALID", because "not revoked" is not something an offline
|
|
23
26
|
* check can establish on its own.
|
|
24
27
|
*/
|
|
25
|
-
export declare function verifyCertificateWithStatus(certificate: Cert, publicKeys: Map<string, PublicKeyInfo>, status?: Record<string, unknown> | null, now?: Date): Promise<string>;
|
|
28
|
+
export declare function verifyCertificateWithStatus(certificate: Cert, publicKeys: Map<string, PublicKeyInfo>, status?: Record<string, unknown> | null, now?: Date, options?: VerifyOptions): Promise<string>;
|
|
26
29
|
/** Verify the transparency proof embedded in a certificate. */
|
|
27
30
|
export declare function verifyTransparency(certificate: Cert, publicKeys: Map<string, PublicKeyInfo>): Promise<TransparencyResult>;
|
|
28
31
|
/** Construct a PublicKeyInfo from a hex-encoded Ed25519 public key.
|
|
@@ -46,6 +49,17 @@ export { verifyWebhookSignature, isTimestampFresh } from "./webhooks.js";
|
|
|
46
49
|
* expose, and sealing a datastore credential is not something a browser should
|
|
47
50
|
* be doing.
|
|
48
51
|
*/
|
|
49
|
-
export { EnclaveAttestationError, ENVELOPE_MAGIC, HEADER_SIZE, NITRO_ROOT_G1_PEM, sealConnectionConfig, sealToKey, verifyEnclaveConfigSealKey, } from "./enclave-seal.js";
|
|
50
|
-
export type { SealOptions } from "./enclave-seal.js";
|
|
52
|
+
export { EnclaveAttestationError, ENVELOPE_MAGIC, HEADER_SIZE, IDENTITY_NONCE_SIZE, NITRO_ROOT_G1_PEM, sealConnectionConfig, sealToKey, verifyEnclaveConfigSealKey, verifyEnclaveIdentity, } from "./enclave-seal.js";
|
|
53
|
+
export type { EnclaveIdentity, IdentityOptions, SealOptions } from "./enclave-seal.js";
|
|
54
|
+
export { CUSTOMER_KEY_ID_PREFIX, InvalidKeyGroupError, MAX_CUSTOMER_KEY_GROUP_MEMBERS, PAYLOAD_TYPE_KEY_ENROLLMENT_REQUEST, PAYLOAD_TYPE_KEY_ROTATION_REQUEST, PAYLOAD_TYPE_SYSTEM_REGISTRATION_REQUEST, buildKeyEnrollmentRequestPayload, buildKeyRotationRequestPayload, buildSystemRegistrationRequestPayload, customerKeyId, memberFingerprint, memberFingerprints, validateKeyGroup, verifyKeyEnrollmentStatement, verifySystemRegistration, verifyTeamAuthorization, } from "./customer-keys.js";
|
|
55
|
+
export type { CustomerKeyGroup } from "./customer-keys.js";
|
|
56
|
+
/**
|
|
57
|
+
* Customer key group members as signers (ADR-025). Node only. The SDK never
|
|
58
|
+
* holds a private key: every signature comes from a KeyGroupSigner, and
|
|
59
|
+
* InMemorySigner is the convenience for keys kept on this machine. Read the
|
|
60
|
+
* custody note in key-group.ts before generating a group.
|
|
61
|
+
*/
|
|
62
|
+
export { InMemorySigner, generateKeyGroup, signWithGroup } from "./key-group.js";
|
|
63
|
+
export type { GeneratedKeyGroup, KeyGroupSigner } from "./key-group.js";
|
|
64
|
+
export type { EnclavePinOptions, RegisteredSystem } from "./enclave-registration.js";
|
|
51
65
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EACL,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** BurnLedger TypeScript SDK — public API (Node.js entry point). */
|
|
2
2
|
export { BurnLedger, MAX_BATCH_REVOKE } from "./client.js";
|
|
3
|
-
export { BurnLedgerError, ApiError, AuthenticationError, NotFoundError, ConflictError, ValidationError, RateLimitError, ServerError, TimeoutError, VerificationError, CERTIFICATE_REVOKED, UNSUPPORTED_FORMAT_VERSION, } from "./errors.js";
|
|
3
|
+
export { BurnLedgerError, ApiError, AuthenticationError, NotFoundError, ConflictError, ValidationError, RateLimitError, ServerError, TimeoutError, VerificationError, AUTHORIZATION_POLICY_FAILED, CERTIFICATE_REVOKED, UNSUPPORTED_FORMAT_VERSION, } from "./errors.js";
|
|
4
4
|
export { Transport } from "./http.js";
|
|
5
5
|
// Raw-JSON → model parsers, for consumers that fetch API responses outside
|
|
6
6
|
// the client (the dashboard's paginated list hooks) but render SDK types.
|
|
@@ -9,9 +9,12 @@ export { Paginator } from "./pagination.js";
|
|
|
9
9
|
export { issuanceBytes, hexToBytes, bytesToHex } from "./verify.js";
|
|
10
10
|
import { nodeCrypto } from "./crypto-node.js";
|
|
11
11
|
import { verifyCertificate as _verifyCertificate, verifyCertificateWithStatus as _verifyCertificateWithStatus, verifyTransparency as _verifyTransparency, verifyConsistency as _verifyConsistency, publicKeyFromHex as _publicKeyFromHex, } from "./verify.js";
|
|
12
|
-
/** Verify all signatures on a deletion certificate offline.
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
/** Verify all signatures on a deletion certificate offline. Pass
|
|
13
|
+
* `{ requireAuthorization }` to refuse a record unless its systems are certified
|
|
14
|
+
* under a key id you name, by an enclave image that requires that key group's
|
|
15
|
+
* signature to register a system (ADR-025). */
|
|
16
|
+
export function verifyCertificate(certificate, publicKeys, options) {
|
|
17
|
+
return _verifyCertificate(nodeCrypto, certificate, publicKeys, options);
|
|
15
18
|
}
|
|
16
19
|
/**
|
|
17
20
|
* Verify a certificate and, separately, what a signed statement says about its
|
|
@@ -19,8 +22,8 @@ export function verifyCertificate(certificate, publicKeys) {
|
|
|
19
22
|
* supplied — never "VALID", because "not revoked" is not something an offline
|
|
20
23
|
* check can establish on its own.
|
|
21
24
|
*/
|
|
22
|
-
export function verifyCertificateWithStatus(certificate, publicKeys, status, now) {
|
|
23
|
-
return _verifyCertificateWithStatus(nodeCrypto, certificate, publicKeys, status, now);
|
|
25
|
+
export function verifyCertificateWithStatus(certificate, publicKeys, status, now, options) {
|
|
26
|
+
return _verifyCertificateWithStatus(nodeCrypto, certificate, publicKeys, status, now, options);
|
|
24
27
|
}
|
|
25
28
|
/** Verify the transparency proof embedded in a certificate. */
|
|
26
29
|
export function verifyTransparency(certificate, publicKeys) {
|
|
@@ -51,5 +54,13 @@ export { verifyWebhookSignature, isTimestampFresh } from "./webhooks.js";
|
|
|
51
54
|
* expose, and sealing a datastore credential is not something a browser should
|
|
52
55
|
* be doing.
|
|
53
56
|
*/
|
|
54
|
-
export { EnclaveAttestationError, ENVELOPE_MAGIC, HEADER_SIZE, NITRO_ROOT_G1_PEM, sealConnectionConfig, sealToKey, verifyEnclaveConfigSealKey, } from "./enclave-seal.js";
|
|
57
|
+
export { EnclaveAttestationError, ENVELOPE_MAGIC, HEADER_SIZE, IDENTITY_NONCE_SIZE, NITRO_ROOT_G1_PEM, sealConnectionConfig, sealToKey, verifyEnclaveConfigSealKey, verifyEnclaveIdentity, } from "./enclave-seal.js";
|
|
58
|
+
export { CUSTOMER_KEY_ID_PREFIX, InvalidKeyGroupError, MAX_CUSTOMER_KEY_GROUP_MEMBERS, PAYLOAD_TYPE_KEY_ENROLLMENT_REQUEST, PAYLOAD_TYPE_KEY_ROTATION_REQUEST, PAYLOAD_TYPE_SYSTEM_REGISTRATION_REQUEST, buildKeyEnrollmentRequestPayload, buildKeyRotationRequestPayload, buildSystemRegistrationRequestPayload, customerKeyId, memberFingerprint, memberFingerprints, validateKeyGroup, verifyKeyEnrollmentStatement, verifySystemRegistration, verifyTeamAuthorization, } from "./customer-keys.js";
|
|
59
|
+
/**
|
|
60
|
+
* Customer key group members as signers (ADR-025). Node only. The SDK never
|
|
61
|
+
* holds a private key: every signature comes from a KeyGroupSigner, and
|
|
62
|
+
* InMemorySigner is the convenience for keys kept on this machine. Read the
|
|
63
|
+
* custody note in key-group.ts before generating a group.
|
|
64
|
+
*/
|
|
65
|
+
export { InMemorySigner, generateKeyGroup, signWithGroup } from "./key-group.js";
|
|
55
66
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG3D,OAAO,EACL,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG3D,OAAO,EACL,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,2BAA2B,EAC3B,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAkDtC,2EAA2E;AAC3E,0EAA0E;AAC1E,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAElF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,iBAAiB,IAAI,kBAAkB,EACvC,2BAA2B,IAAI,4BAA4B,EAC3D,kBAAkB,IAAI,mBAAmB,EACzC,iBAAiB,IAAI,kBAAkB,EACvC,gBAAgB,IAAI,iBAAiB,GACtC,MAAM,aAAa,CAAC;AAMrB;;;+CAG+C;AAC/C,MAAM,UAAU,iBAAiB,CAC/B,WAAiB,EACjB,UAAsC,EACtC,OAAuB;IAEvB,OAAO,kBAAkB,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,WAAiB,EACjB,UAAsC,EACtC,MAAuC,EACvC,GAAU,EACV,OAAuB;IAEvB,OAAO,4BAA4B,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACjG,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,kBAAkB,CAChC,WAAiB,EACjB,UAAsC;IAEtC,OAAO,mBAAmB,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,IAAuB;IAEvB,OAAO,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,OAAe,EACf,OAAmB,EACnB,OAAmB,EACnB,KAAmB;IAEnB,OAAO,kBAAkB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACnF,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEzE;;;;;;;GAOG;AACH,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,SAAS,EACT,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,8BAA8B,EAC9B,mCAAmC,EACnC,iCAAiC,EACjC,wCAAwC,EACxC,gCAAgC,EAChC,8BAA8B,EAC9B,qCAAqC,EACrC,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAG5B;;;;;GAKG;AACH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The members of a customer key group as signers (ADR-025 §2–3).
|
|
3
|
+
*
|
|
4
|
+
* Node only, like enclave-seal.ts: ADR-025 §2 makes a client the customer runs
|
|
5
|
+
* locally the only place enrolment can happen, because whoever serves a page
|
|
6
|
+
* controls the check the page would make.
|
|
7
|
+
*
|
|
8
|
+
* WHY A SIGNER AND NOT A PRIVATE KEY. Everything in this SDK that needs a
|
|
9
|
+
* member's signature takes a {@link KeyGroupSigner} — a public key and a
|
|
10
|
+
* function that signs bytes. The SDK never needs, holds or transmits a private
|
|
11
|
+
* key, so a member can live in an HSM, a cloud KMS, a hardware token or another
|
|
12
|
+
* process, and the SDK's only job is to hand it the exact canonical bytes and
|
|
13
|
+
* check what comes back. {@link InMemorySigner} is the convenience for tests and
|
|
14
|
+
* for customers who keep keys on the machine running the SDK.
|
|
15
|
+
*
|
|
16
|
+
* CUSTODY, stated plainly because nothing recovers from getting it wrong. The
|
|
17
|
+
* private halves are the customer's alone; BurnLedger never sees them and cannot
|
|
18
|
+
* reissue them. Lose enough members that the group can no longer meet its
|
|
19
|
+
* threshold and it can neither sign a registration nor authorise its own
|
|
20
|
+
* rotation — and an operator who could re-enrol on the customer's behalf is an
|
|
21
|
+
* operator who could mint, so there is no recovery path (ADR-025 §3 "Key loss").
|
|
22
|
+
* The only way back is to enrol a NEW group and re-register every system, and
|
|
23
|
+
* records issued before and after will name different `customer_key_id`s,
|
|
24
|
+
* visibly. Hedge before it happens: enrol more members than the threshold and
|
|
25
|
+
* keep at least one offline (the simplest is two members, threshold one).
|
|
26
|
+
*/
|
|
27
|
+
import { type CustomerKeyGroup } from "./customer-keys.js";
|
|
28
|
+
/** One member of a key group, able to sign. */
|
|
29
|
+
export interface KeyGroupSigner {
|
|
30
|
+
/** The member's raw 32-byte Ed25519 public key. */
|
|
31
|
+
readonly publicKey: Uint8Array;
|
|
32
|
+
/** Sign exactly `payload` with the member's Ed25519 key; return the 64-byte signature. */
|
|
33
|
+
sign(payload: Uint8Array): Promise<Uint8Array>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* A member whose private key is held in this process.
|
|
37
|
+
*
|
|
38
|
+
* Convenient, and exactly as safe as the memory and disk of the machine running
|
|
39
|
+
* it. `exportSeed()` is the one way the key leaves: store the seed as you would
|
|
40
|
+
* any credential that cannot be reissued.
|
|
41
|
+
*/
|
|
42
|
+
export declare class InMemorySigner implements KeyGroupSigner {
|
|
43
|
+
#private;
|
|
44
|
+
readonly publicKey: Uint8Array;
|
|
45
|
+
private constructor();
|
|
46
|
+
/** A fresh member, from the operating system's CSPRNG. */
|
|
47
|
+
static generate(): InMemorySigner;
|
|
48
|
+
/** The member a 32-byte seed (as returned by `exportSeed`) describes. */
|
|
49
|
+
static fromSeed(seed: Uint8Array): InMemorySigner;
|
|
50
|
+
/** The 32-byte seed. Whoever holds it IS this member. */
|
|
51
|
+
exportSeed(): Uint8Array;
|
|
52
|
+
sign(payload: Uint8Array): Promise<Uint8Array>;
|
|
53
|
+
}
|
|
54
|
+
/** A freshly generated group and the signers that hold its members. */
|
|
55
|
+
export interface GeneratedKeyGroup {
|
|
56
|
+
readonly group: CustomerKeyGroup;
|
|
57
|
+
readonly signers: readonly InMemorySigner[];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Generate `members` Ed25519 keys and the group requiring `threshold` of them.
|
|
61
|
+
*
|
|
62
|
+
* The private halves are returned to the caller and go nowhere else. Read the
|
|
63
|
+
* custody note at the top of this module before choosing `members` and
|
|
64
|
+
* `threshold`: a group whose members fall below its threshold is unrecoverable.
|
|
65
|
+
*/
|
|
66
|
+
export declare function generateKeyGroup(opts: {
|
|
67
|
+
members: number;
|
|
68
|
+
threshold: number;
|
|
69
|
+
}): Promise<GeneratedKeyGroup>;
|
|
70
|
+
/**
|
|
71
|
+
* Collect member signatures over `payload`, keyed by member fingerprint — the
|
|
72
|
+
* wire form every ADR-025 request carries.
|
|
73
|
+
*
|
|
74
|
+
* Refuses before anything is sent, with a reason, where the enclave would refuse
|
|
75
|
+
* after with a bare 401: a signer that is not a member of `group`, the same
|
|
76
|
+
* member twice, a signature that does not verify under the signer's own public
|
|
77
|
+
* key, or fewer distinct members than `required`.
|
|
78
|
+
*/
|
|
79
|
+
export declare function signWithGroup(payload: Uint8Array, group: CustomerKeyGroup, signers: readonly KeyGroupSigner[], required: number): Promise<Record<string, string>>;
|
|
80
|
+
//# sourceMappingURL=key-group.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-group.d.ts","sourceRoot":"","sources":["../../src/key-group.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAUH,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,oBAAoB,CAAC;AAE5B,+CAA+C;AAC/C,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,0FAA0F;IAC1F,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAChD;AAMD;;;;;;GAMG;AACH,qBAAa,cAAe,YAAW,cAAc;;IACnD,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAG/B,OAAO,eAIN;IAED,0DAA0D;IAC1D,MAAM,CAAC,QAAQ,IAAI,cAAc,CAEhC;IAED,yEAAyE;IACzE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,CAWhD;IAED,yDAAyD;IACzD,UAAU,IAAI,UAAU,CAGvB;IAEK,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAEnD;CACF;AAED,uEAAuE;AACvE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;CAC7C;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAW7B;AAMD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgCjC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The members of a customer key group as signers (ADR-025 §2–3).
|
|
3
|
+
*
|
|
4
|
+
* Node only, like enclave-seal.ts: ADR-025 §2 makes a client the customer runs
|
|
5
|
+
* locally the only place enrolment can happen, because whoever serves a page
|
|
6
|
+
* controls the check the page would make.
|
|
7
|
+
*
|
|
8
|
+
* WHY A SIGNER AND NOT A PRIVATE KEY. Everything in this SDK that needs a
|
|
9
|
+
* member's signature takes a {@link KeyGroupSigner} — a public key and a
|
|
10
|
+
* function that signs bytes. The SDK never needs, holds or transmits a private
|
|
11
|
+
* key, so a member can live in an HSM, a cloud KMS, a hardware token or another
|
|
12
|
+
* process, and the SDK's only job is to hand it the exact canonical bytes and
|
|
13
|
+
* check what comes back. {@link InMemorySigner} is the convenience for tests and
|
|
14
|
+
* for customers who keep keys on the machine running the SDK.
|
|
15
|
+
*
|
|
16
|
+
* CUSTODY, stated plainly because nothing recovers from getting it wrong. The
|
|
17
|
+
* private halves are the customer's alone; BurnLedger never sees them and cannot
|
|
18
|
+
* reissue them. Lose enough members that the group can no longer meet its
|
|
19
|
+
* threshold and it can neither sign a registration nor authorise its own
|
|
20
|
+
* rotation — and an operator who could re-enrol on the customer's behalf is an
|
|
21
|
+
* operator who could mint, so there is no recovery path (ADR-025 §3 "Key loss").
|
|
22
|
+
* The only way back is to enrol a NEW group and re-register every system, and
|
|
23
|
+
* records issued before and after will name different `customer_key_id`s,
|
|
24
|
+
* visibly. Hedge before it happens: enrol more members than the threshold and
|
|
25
|
+
* keep at least one offline (the simplest is two members, threshold one).
|
|
26
|
+
*/
|
|
27
|
+
import { createPrivateKey, createPublicKey, generateKeyPairSync, sign as nodeSign, } from "node:crypto";
|
|
28
|
+
import { nodeCrypto } from "./crypto-node.js";
|
|
29
|
+
import { InvalidKeyGroupError, memberFingerprint, validateKeyGroup, } from "./customer-keys.js";
|
|
30
|
+
// RFC 8410: an Ed25519 private key as PKCS#8 is this fixed prefix and the seed.
|
|
31
|
+
const PKCS8_ED25519_PREFIX = Buffer.from("302e020100300506032b657004220420", "hex");
|
|
32
|
+
const SEED_SIZE = 32;
|
|
33
|
+
/**
|
|
34
|
+
* A member whose private key is held in this process.
|
|
35
|
+
*
|
|
36
|
+
* Convenient, and exactly as safe as the memory and disk of the machine running
|
|
37
|
+
* it. `exportSeed()` is the one way the key leaves: store the seed as you would
|
|
38
|
+
* any credential that cannot be reissued.
|
|
39
|
+
*/
|
|
40
|
+
export class InMemorySigner {
|
|
41
|
+
publicKey;
|
|
42
|
+
#privateKey;
|
|
43
|
+
constructor(privateKey) {
|
|
44
|
+
this.#privateKey = privateKey;
|
|
45
|
+
const spki = createPublicKey(privateKey).export({ format: "der", type: "spki" });
|
|
46
|
+
this.publicKey = new Uint8Array(spki.subarray(spki.length - 32));
|
|
47
|
+
}
|
|
48
|
+
/** A fresh member, from the operating system's CSPRNG. */
|
|
49
|
+
static generate() {
|
|
50
|
+
return new InMemorySigner(generateKeyPairSync("ed25519").privateKey);
|
|
51
|
+
}
|
|
52
|
+
/** The member a 32-byte seed (as returned by `exportSeed`) describes. */
|
|
53
|
+
static fromSeed(seed) {
|
|
54
|
+
if (!(seed instanceof Uint8Array) || seed.length !== SEED_SIZE) {
|
|
55
|
+
throw new Error(`an Ed25519 seed is ${SEED_SIZE} bytes`);
|
|
56
|
+
}
|
|
57
|
+
return new InMemorySigner(createPrivateKey({
|
|
58
|
+
key: Buffer.concat([PKCS8_ED25519_PREFIX, Buffer.from(seed)]),
|
|
59
|
+
format: "der",
|
|
60
|
+
type: "pkcs8",
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
/** The 32-byte seed. Whoever holds it IS this member. */
|
|
64
|
+
exportSeed() {
|
|
65
|
+
const der = this.#privateKey.export({ format: "der", type: "pkcs8" });
|
|
66
|
+
return new Uint8Array(der.subarray(der.length - SEED_SIZE));
|
|
67
|
+
}
|
|
68
|
+
async sign(payload) {
|
|
69
|
+
return new Uint8Array(nodeSign(null, payload, this.#privateKey));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Generate `members` Ed25519 keys and the group requiring `threshold` of them.
|
|
74
|
+
*
|
|
75
|
+
* The private halves are returned to the caller and go nowhere else. Read the
|
|
76
|
+
* custody note at the top of this module before choosing `members` and
|
|
77
|
+
* `threshold`: a group whose members fall below its threshold is unrecoverable.
|
|
78
|
+
*/
|
|
79
|
+
export async function generateKeyGroup(opts) {
|
|
80
|
+
if (!Number.isInteger(opts.members) || opts.members < 1) {
|
|
81
|
+
throw new InvalidKeyGroupError(`a key group needs at least one member, got ${opts.members}`);
|
|
82
|
+
}
|
|
83
|
+
const signers = Array.from({ length: opts.members }, () => InMemorySigner.generate());
|
|
84
|
+
const group = {
|
|
85
|
+
threshold: opts.threshold,
|
|
86
|
+
members: signers.map((s) => s.publicKey),
|
|
87
|
+
};
|
|
88
|
+
await validateKeyGroup(nodeCrypto, group);
|
|
89
|
+
return { group, signers };
|
|
90
|
+
}
|
|
91
|
+
function toHex(bytes) {
|
|
92
|
+
return Buffer.from(bytes).toString("hex");
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Collect member signatures over `payload`, keyed by member fingerprint — the
|
|
96
|
+
* wire form every ADR-025 request carries.
|
|
97
|
+
*
|
|
98
|
+
* Refuses before anything is sent, with a reason, where the enclave would refuse
|
|
99
|
+
* after with a bare 401: a signer that is not a member of `group`, the same
|
|
100
|
+
* member twice, a signature that does not verify under the signer's own public
|
|
101
|
+
* key, or fewer distinct members than `required`.
|
|
102
|
+
*/
|
|
103
|
+
export async function signWithGroup(payload, group, signers, required) {
|
|
104
|
+
const members = new Set();
|
|
105
|
+
for (const member of group.members)
|
|
106
|
+
members.add(await memberFingerprint(nodeCrypto, member));
|
|
107
|
+
const signatures = {};
|
|
108
|
+
for (const signer of signers) {
|
|
109
|
+
const fingerprint = await memberFingerprint(nodeCrypto, signer.publicKey);
|
|
110
|
+
if (!members.has(fingerprint)) {
|
|
111
|
+
throw new InvalidKeyGroupError(`signer ${fingerprint} is not a member of this key group`);
|
|
112
|
+
}
|
|
113
|
+
if (fingerprint in signatures) {
|
|
114
|
+
throw new InvalidKeyGroupError(`member ${fingerprint} is listed twice among the signers`);
|
|
115
|
+
}
|
|
116
|
+
const signature = await signer.sign(payload);
|
|
117
|
+
if (!(signature instanceof Uint8Array) ||
|
|
118
|
+
signature.length !== 64 ||
|
|
119
|
+
!(await nodeCrypto.ed25519Verify(signer.publicKey, payload, signature))) {
|
|
120
|
+
throw new Error(`the signer for member ${fingerprint} returned a signature that does not verify over the request`);
|
|
121
|
+
}
|
|
122
|
+
signatures[fingerprint] = toHex(signature);
|
|
123
|
+
}
|
|
124
|
+
const count = Object.keys(signatures).length;
|
|
125
|
+
if (count < required) {
|
|
126
|
+
throw new InvalidKeyGroupError(`this request needs signatures from ${required} distinct members, got ${count}`);
|
|
127
|
+
}
|
|
128
|
+
return signatures;
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=key-group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-group.js","sourceRoot":"","sources":["../../src/key-group.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/models.d.ts
CHANGED
|
@@ -101,6 +101,17 @@ export interface CertificateResponse {
|
|
|
101
101
|
* it can be handed straight to verifyCertificateWithStatus().
|
|
102
102
|
*/
|
|
103
103
|
readonly statusStatement: Record<string, unknown> | undefined;
|
|
104
|
+
/**
|
|
105
|
+
* Base64 AWS Nitro NSM attestation document produced while this record was
|
|
106
|
+
* signed, exactly as the server sent it. Its PCRs identify the enclave image
|
|
107
|
+
* that held the signing key and its user_data binds this record's canonical
|
|
108
|
+
* payload. Carried so it can be archived beside the record; this SDK does NOT
|
|
109
|
+
* verify it (that needs COSE ES384 and an x509 chain to the Nitro root, which
|
|
110
|
+
* only the Go verifier implements). undefined for records issued before it
|
|
111
|
+
* was recorded and for dev-mode issuance; absence is not a verification
|
|
112
|
+
* result.
|
|
113
|
+
*/
|
|
114
|
+
readonly nsmAttestation: string | undefined;
|
|
104
115
|
}
|
|
105
116
|
export interface RevocationStatus {
|
|
106
117
|
readonly certificateId: string;
|
|
@@ -260,5 +271,54 @@ export declare function parseApiKeyListItem(d: Raw): ApiKeyListItem;
|
|
|
260
271
|
export declare function parseApiKeyResponse(d: Raw): ApiKeyResponse;
|
|
261
272
|
export declare function parseProfile(d: Raw): Profile;
|
|
262
273
|
export declare function parseSystemHealth(d: Raw): SystemHealth;
|
|
274
|
+
/** The enclave's statement of which key group it was told to trust for a team
|
|
275
|
+
* (core.KeyEnrollmentStatement). Trust on first use: compare `customerKeyId` —
|
|
276
|
+
* a hash over the members and threshold — against the group you hold. The SDK's
|
|
277
|
+
* enrol and rotate calls do, after verifying the enclave's signature. */
|
|
278
|
+
export interface KeyEnrollmentStatement {
|
|
279
|
+
readonly assertedTeamId: string;
|
|
280
|
+
readonly customerKeyId: string;
|
|
281
|
+
readonly threshold: number;
|
|
282
|
+
readonly members: readonly Uint8Array[];
|
|
283
|
+
readonly enrolledAt: Date;
|
|
284
|
+
readonly enclavePcr0: string;
|
|
285
|
+
readonly signature: Uint8Array;
|
|
286
|
+
}
|
|
287
|
+
/** The bounded authority that makes an enrolled group usable
|
|
288
|
+
* (core.TeamAuthorizationCertificate). It expires rather than being revoked;
|
|
289
|
+
* renew it by enrolling the same group again before `notAfter`. */
|
|
290
|
+
export interface TeamAuthorizationCertificate {
|
|
291
|
+
readonly assertedTeamId: string;
|
|
292
|
+
readonly customerKeyId: string;
|
|
293
|
+
readonly notBefore: Date;
|
|
294
|
+
readonly notAfter: Date;
|
|
295
|
+
/** The key this one replaced; undefined on a first enrolment. */
|
|
296
|
+
readonly prevKeyId: string | undefined;
|
|
297
|
+
readonly signature: Uint8Array;
|
|
298
|
+
}
|
|
299
|
+
/** Binds one system to the config and query it may be measured with, under a
|
|
300
|
+
* customer key (core.SystemRegistrationCertificate). No expiry: it states a
|
|
301
|
+
* fact about bytes. */
|
|
302
|
+
export interface SystemRegistrationCertificate {
|
|
303
|
+
readonly systemId: string;
|
|
304
|
+
/** SHA-256 of the exact config plaintext submitted for the system. */
|
|
305
|
+
readonly configDigest: Uint8Array;
|
|
306
|
+
/** HashQuery over the NORMALIZED subject query — not the raw-template hash
|
|
307
|
+
* the registration request signs. */
|
|
308
|
+
readonly queryTemplateHash: Uint8Array;
|
|
309
|
+
readonly connectorType: string;
|
|
310
|
+
readonly customerKeyId: string;
|
|
311
|
+
readonly registeredAt: Date;
|
|
312
|
+
readonly signature: Uint8Array;
|
|
313
|
+
}
|
|
314
|
+
/** What enrolling or rotating a key group returns. */
|
|
315
|
+
export interface KeyEnrollmentResult {
|
|
316
|
+
readonly enrollment: KeyEnrollmentStatement;
|
|
317
|
+
readonly authorization: TeamAuthorizationCertificate;
|
|
318
|
+
}
|
|
319
|
+
export declare function parseKeyEnrollmentStatement(d: Raw): KeyEnrollmentStatement;
|
|
320
|
+
export declare function parseTeamAuthorizationCertificate(d: Raw): TeamAuthorizationCertificate;
|
|
321
|
+
export declare function parseSystemRegistrationCertificate(d: Raw): SystemRegistrationCertificate;
|
|
322
|
+
export declare function parseKeyEnrollmentResult(d: Raw): KeyEnrollmentResult;
|
|
263
323
|
export {};
|
|
264
324
|
//# sourceMappingURL=models.d.ts.map
|
package/dist/esm/models.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/models.js
CHANGED
|
@@ -88,6 +88,7 @@ export function parseCertificateResponse(d) {
|
|
|
88
88
|
revocationReason: d.revocation_reason ?? undefined,
|
|
89
89
|
certificate: d.certificate,
|
|
90
90
|
statusStatement: d.status_statement ?? undefined,
|
|
91
|
+
nsmAttestation: d.nsm_attestation ?? undefined,
|
|
91
92
|
};
|
|
92
93
|
}
|
|
93
94
|
export function parseRevocationStatus(d) {
|
|
@@ -252,4 +253,62 @@ export function parseSystemHealth(d) {
|
|
|
252
253
|
healthError: d.health_error ?? undefined,
|
|
253
254
|
};
|
|
254
255
|
}
|
|
256
|
+
/** Go encodes [N]byte as an array of numbers; anything else here is a response
|
|
257
|
+
* this SDK cannot read, and is refused rather than coerced. */
|
|
258
|
+
function bytesFromInts(v, field, length) {
|
|
259
|
+
if (!Array.isArray(v) ||
|
|
260
|
+
v.length !== length ||
|
|
261
|
+
!v.every((b) => Number.isInteger(b) && b >= 0 && b <= 255)) {
|
|
262
|
+
throw new Error(`${field} is not ${length} bytes`);
|
|
263
|
+
}
|
|
264
|
+
return new Uint8Array(v);
|
|
265
|
+
}
|
|
266
|
+
function bytesFromBase64(v, field) {
|
|
267
|
+
if (typeof v !== "string")
|
|
268
|
+
throw new Error(`${field} is not base64`);
|
|
269
|
+
const bin = atob(v);
|
|
270
|
+
const out = new Uint8Array(bin.length);
|
|
271
|
+
for (let i = 0; i < bin.length; i++)
|
|
272
|
+
out[i] = bin.charCodeAt(i);
|
|
273
|
+
return out;
|
|
274
|
+
}
|
|
275
|
+
export function parseKeyEnrollmentStatement(d) {
|
|
276
|
+
const group = (d.group ?? {});
|
|
277
|
+
return {
|
|
278
|
+
assertedTeamId: d.asserted_team_id,
|
|
279
|
+
customerKeyId: d.customer_key_id,
|
|
280
|
+
threshold: group.threshold,
|
|
281
|
+
members: (group.members ?? []).map((m, i) => bytesFromBase64(m, `enrollment.group.members[${i}]`)),
|
|
282
|
+
enrolledAt: parseDt(d.enrolled_at),
|
|
283
|
+
enclavePcr0: d.enclave_pcr0,
|
|
284
|
+
signature: bytesFromInts(d.signature, "enrollment.signature", 64),
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
export function parseTeamAuthorizationCertificate(d) {
|
|
288
|
+
return {
|
|
289
|
+
assertedTeamId: d.asserted_team_id,
|
|
290
|
+
customerKeyId: d.customer_key_id,
|
|
291
|
+
notBefore: parseDt(d.not_before),
|
|
292
|
+
notAfter: parseDt(d.not_after),
|
|
293
|
+
prevKeyId: d.prev_key_id || undefined,
|
|
294
|
+
signature: bytesFromInts(d.signature, "authorization.signature", 64),
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
export function parseSystemRegistrationCertificate(d) {
|
|
298
|
+
return {
|
|
299
|
+
systemId: d.system_id,
|
|
300
|
+
configDigest: bytesFromInts(d.config_digest, "registration.config_digest", 32),
|
|
301
|
+
queryTemplateHash: bytesFromInts(d.query_template_hash, "registration.query_template_hash", 32),
|
|
302
|
+
connectorType: d.connector_type,
|
|
303
|
+
customerKeyId: d.customer_key_id,
|
|
304
|
+
registeredAt: parseDt(d.registered_at),
|
|
305
|
+
signature: bytesFromInts(d.signature, "registration.signature", 64),
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
export function parseKeyEnrollmentResult(d) {
|
|
309
|
+
return {
|
|
310
|
+
enrollment: parseKeyEnrollmentStatement(d.enrollment ?? {}),
|
|
311
|
+
authorization: parseTeamAuthorizationCertificate(d.authorization ?? {}),
|
|
312
|
+
};
|
|
313
|
+
}
|
|
255
314
|
//# sourceMappingURL=models.js.map
|
package/dist/esm/models.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA8VH,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,UAAU,CAAC,GAA8B;IAChD,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IAClC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AASD,MAAM,UAAU,WAAW,CAAC,CAAM;IAChC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,aAAa,EAAE,CAAC,CAAC,cAA+B;QAChD,YAAY,EAAE,CAAC,CAAC,aAAa;QAC7B,SAAS,EAAE,CAAC,CAAC,UAAuB;QACpC,UAAU,EAAE,CAAC,CAAC,WAAW;QACzB,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,YAAY,EAAE,CAAC,CAAC,aAAa;QAC7B,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;QAChC,YAAY,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,SAAS,CAAiB;QAC5D,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAChD,WAAW,EAAE,CAAC,CAAC,YAAY,IAAI,SAAS;QACxC,yEAAyE;QACzE,kDAAkD;QAClD,iBAAiB,EAAE,CAAC,CAAC,CAAC,kBAAkB,IAAI,SAAS,CAAsB;QAC3E,yEAAyE;QACzE,sEAAsE;QACtE,+BAA+B;QAC/B,UAAU,EAAE,CAAC,CAAC,YAAY,KAAK,IAAI;QACnC,mBAAmB,EAAE,CAAC,CAAC,CAAC,qBAAqB,IAAI,SAAS,CAAwB;KACnF,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,CAAM;IACpC,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,UAAU,EAAE,CAAC,CAAC,WAAW;QACzB,WAAW,EAAE,CAAC,CAAC,YAAY;QAC3B,SAAS,EAAE,CAAC,CAAC,UAAuB;QACpC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAM;IACrC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,WAAW,EAAE,CAAC,CAAC,YAAY;QAC3B,SAAS,EAAE,CAAC,CAAC,UAAuB;QACpC,MAAM,EAAE,CAAC,CAAC,MAA2B;QACrC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC;QACtD,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;QAClC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;QAChC,aAAa,EAAE,CAAC,CAAC,cAAc,IAAI,SAAS;KAC7C,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,CAAM;IACrC,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,UAAU,EAAE,CAAC,CAAC,WAAW;QACzB,WAAW,EAAE,CAAC,CAAC,YAAY;KAC5B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,CAAM;IACtC,OAAO;QACL,aAAa,EAAE,CAAC,CAAC,cAAc;QAC/B,MAAM,EAAE,CAAC,CAAC,MAA2B;QACrC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC;QACvD,WAAW,EAAE,CAAC,CAAC,WAAW;YACxB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,WAAW,CAAC;YACzC,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,CAAM;IAC7C,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,aAAa,EAAE,CAAC,CAAC,cAAc;QAC/B,aAAa,EAAE,CAAC,CAAC,cAAc;QAC/B,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9B,MAAM,EAAE,CAAC,CAAC,MAA2B;QACrC,kBAAkB,EAAE,CAAC,CAAC,mBAAyC;QAC/D,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;QACnC,gBAAgB,EAAE,CAAC,CAAC,iBAAiB,IAAI,SAAS;QAClD,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,eAAe,EAAE,CAAC,CAAC,gBAAgB,IAAI,SAAS;QAChD,cAAc,EAAE,CAAC,CAAC,eAAe,IAAI,SAAS;KAC/C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,CAAM;IAC1C,OAAO;QACL,aAAa,EAAE,CAAC,CAAC,cAAc;QAC/B,MAAM,EAAE,CAAC,CAAC,MAA2B;QACrC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;QACnC,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAM;IACjC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS;QAC7B,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,CAAM;IACxC,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/B,SAAS,EAAE,CAAC,CAAC,SAAS;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAM;IAClC,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,SAAS,EAAE,CAAC,CAAC,UAA0B;QACvC,aAAa,EAAE,CAAC,CAAC,cAAc;QAC/B,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,CAAM;IACxC,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,cAAc,EAAE,CAAC,CAAC,eAAe,IAAI,EAAE;QACvC,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAAC,gBAAgB,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,CAAM;IAC1C,OAAO;QACL,OAAO,EAAE,CAAC,CAAC,QAAQ;QACnB,OAAO,EAAE,CAAC,CAAC,QAAQ;QACnB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;KACrB,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,CAAM;IACxC,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,iBAAiB,EAAE,CAAC,CAAC,kBAAkB,IAAI,EAAE;KAC9C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,CAAM;IAClD,OAAO;QACL,YAAY,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAC1D,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,CAAM;IACnC,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,aAAa,EAAE,CAAC,CAAC,cAAc;QAC/B,KAAK,EAAE,CAAC,CAAC,KAAK;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,CAAM;IAC7C,OAAO;QACL,YAAY,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC;QAClE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAM;IAC/B,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,KAAK,EAAE,CAAC,CAAC,KAAK;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,CAAM;IAC1C,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,oBAAoB,EAAE,CAAC,CAAC,qBAAqB;QAC7C,mBAAmB,EAAE,CAAC,CAAC,oBAAoB;QAC3C,kBAAkB,EAAG,CAAC,CAAC,mBAA0C,IAAI,CAAC;QACtE,gBAAgB,EAAE,CAAC,CAAC,mBAAmB;QACvC,eAAe,EAAE,CAAC,CAAC,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC;KACnE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,CAAM;IAC/C,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC;KACrD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,CAAM;IACzC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,YAAY,EAAE,CAAC,CAAC,aAAa;QAC7B,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC;QAC5C,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,CAAM;IACxC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,IAAI,EAAE,CAAC,CAAC,IAAkB;QAC1B,MAAM,EAAE,CAAC,CAAC,OAAO,IAAI,SAAS;QAC9B,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;QAChC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,CAAM;IACxC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,MAAM,EAAE,CAAC,CAAC,OAAO,IAAI,SAAS;QAC9B,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,iCAAiC;AACjC,8EAA8E;AAE9E,SAAS,cAAc,CAAC,CAAM;IAC5B,OAAO;QACL,gBAAgB,EAAE,CAAC,CAAC,iBAAiB;QACrC,iBAAiB,EAAE,CAAC,CAAC,kBAAkB;QACvC,WAAW,EAAE,CAAC,CAAC,YAAY;QAC3B,YAAY,EAAE,CAAC,CAAC,aAAa;QAC7B,cAAc,EAAE,CAAC,CAAC,gBAAgB,IAAI,SAAS;KAChD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAM;IACjC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,YAAY,EAAE,CAAC,CAAC,aAAa,IAAI,SAAS;QAC1C,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,aAAa,EAAE,CAAC,CAAC,eAAe,IAAI,SAAS;QAC7C,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;KACnE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,CAAM;IACtC,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,YAAY,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,SAAS,CAAiB;QAC5D,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAChD,WAAW,EAAE,CAAC,CAAC,YAAY,IAAI,SAAS;KACzC,CAAC;AACJ,CAAC;AAuDD;+DAC+D;AAC/D,SAAS,aAAa,CAAC,CAAU,EAAE,KAAa,EAAE,MAAc;IAC9D,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC,MAAM,KAAK,MAAM;QACnB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAC1D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,MAAM,QAAQ,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,CAAa,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,eAAe,CAAC,CAAU,EAAE,KAAa;IAChD,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,gBAAgB,CAAC,CAAC;IACrE,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,CAAM;IAChD,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAQ,CAAC;IACrC,OAAO;QACL,cAAc,EAAE,CAAC,CAAC,gBAAgB;QAClC,aAAa,EAAE,CAAC,CAAC,eAAe;QAChC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACzD,eAAe,CAAC,CAAC,EAAE,4BAA4B,CAAC,GAAG,CAAC,CACrD;QACD,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;QAClC,WAAW,EAAE,CAAC,CAAC,YAAY;QAC3B,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,EAAE,sBAAsB,EAAE,EAAE,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,CAAM;IACtD,OAAO;QACL,cAAc,EAAE,CAAC,CAAC,gBAAgB;QAClC,aAAa,EAAE,CAAC,CAAC,eAAe;QAChC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;QAChC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9B,SAAS,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS;QACrC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,EAAE,yBAAyB,EAAE,EAAE,CAAC;KACrE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,CAAM;IACvD,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,EAAE,4BAA4B,EAAE,EAAE,CAAC;QAC9E,iBAAiB,EAAE,aAAa,CAAC,CAAC,CAAC,mBAAmB,EAAE,kCAAkC,EAAE,EAAE,CAAC;QAC/F,aAAa,EAAE,CAAC,CAAC,cAAc;QAC/B,aAAa,EAAE,CAAC,CAAC,eAAe;QAChC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;QACtC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,EAAE,wBAAwB,EAAE,EAAE,CAAC;KACpE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,CAAM;IAC7C,OAAO;QACL,UAAU,EAAE,2BAA2B,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC;QAC3D,aAAa,EAAE,iCAAiC,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC;KACxE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** Reading a status statement as the status endpoint serves it, before anything
|
|
2
|
+
* verifies it. Shared by the CLI and the /verify page's status button, so the two
|
|
3
|
+
* agree on what counts as a statement: an answer that is not one is silence
|
|
4
|
+
* about revocation, while a statement that is one and fails is a refusal. */
|
|
5
|
+
type StatusStatement = Record<string, unknown>;
|
|
6
|
+
/** The API wraps every response in {"data": ...}; a caller may hand over either
|
|
7
|
+
* the envelope or the document inside it. Mirrors
|
|
8
|
+
* core.ParseCertificateStatusDocument, so this CLI and the Go one cannot
|
|
9
|
+
* disagree about which shape the endpoint returns. Exported for testing.
|
|
10
|
+
*
|
|
11
|
+
* A document that does not parse THROWS, and the caller turns that into a
|
|
12
|
+
* warning and a VALID_REVOCATION_UNKNOWN verdict. That is deliberate: an answer
|
|
13
|
+
* this build cannot read is silence about revocation, not a finding about the
|
|
14
|
+
* certificate. Handing a half-read document to the verifier instead would
|
|
15
|
+
* report "status statement signature is invalid" — a claim about the issuer —
|
|
16
|
+
* when what actually happened is that something returned nonsense.
|
|
17
|
+
*
|
|
18
|
+
* `status` itself is NOT validated against a known set. A statement saying
|
|
19
|
+
* SUSPENDED is a statement this build cannot read, and the verifier already has
|
|
20
|
+
* the right answer for that: it authenticates the signature first, then reports
|
|
21
|
+
* VALID_REVOCATION_UNKNOWN. Refusing it here would discard the statement before
|
|
22
|
+
* anyone authenticated it. */
|
|
23
|
+
export declare function unwrapStatusStatement(parsed: unknown): StatusStatement;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=status-document.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-document.d.ts","sourceRoot":"","sources":["../../src/status-document.ts"],"names":[],"mappings":"AAAA;;;6EAG6E;AAE7E,KAAK,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE/C;;;;;;;;;;;;;;;;8BAgB8B;AAC9B,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,eAAe,CAoBtE"}
|