@midnight-ntwrk/credential-compact 0.1.0-rc2 → 0.2.0-rc1

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.
Files changed (64) hide show
  1. package/CHANGELOG.md +43 -1
  2. package/README.md +47 -27
  3. package/dist/compact-build.json +6 -13
  4. package/dist/compact-value-codec.d.ts +14 -0
  5. package/dist/compact-value-codec.d.ts.map +1 -0
  6. package/dist/compact-value-codec.js +135 -0
  7. package/dist/compact-value-codec.js.map +1 -0
  8. package/dist/credentials/composable.compact +1 -3
  9. package/dist/credentials/holder-bindings.compact +11 -289
  10. package/dist/credentials/proofs.compact +85 -0
  11. package/dist/credentials/relations.compact +3 -2
  12. package/dist/credentials/signer-authorization.compact +246 -0
  13. package/dist/credentials/status-bindings.compact +0 -19
  14. package/dist/credentials/types.compact +23 -93
  15. package/dist/credentials/vc.compact +24 -3
  16. package/dist/credentials.compact +0 -1
  17. package/dist/index.d.ts +1 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/managed/credentials/contract/index.d.ts +102 -196
  22. package/dist/managed/credentials/contract/index.js +746 -1342
  23. package/dist/managed/credentials/contract/index.js.map +2 -2
  24. package/package.json +12 -53
  25. package/dist/contract.d.ts +0 -2
  26. package/dist/contract.d.ts.map +0 -1
  27. package/dist/contract.js +0 -2
  28. package/dist/contract.js.map +0 -1
  29. package/dist/credentials/bindings.compact +0 -5
  30. package/dist/credentials/issue.compact +0 -91
  31. package/dist/credentials/present.compact +0 -84
  32. package/dist/credentials/protocol-support.compact +0 -7
  33. package/dist/credentials/protocols.compact +0 -125
  34. package/dist/credentials/vc-support.compact +0 -8
  35. package/dist/holder-binding/same-holder/composable.compact +0 -179
  36. package/dist/holder-binding/same-holder.compact +0 -180
  37. package/dist/holder-binding/same-holder.d.ts +0 -2
  38. package/dist/holder-binding/same-holder.d.ts.map +0 -1
  39. package/dist/holder-binding/same-holder.js +0 -2
  40. package/dist/holder-binding/same-holder.js.map +0 -1
  41. package/dist/jubjub.d.ts +0 -3
  42. package/dist/jubjub.d.ts.map +0 -1
  43. package/dist/jubjub.js +0 -6
  44. package/dist/jubjub.js.map +0 -1
  45. package/dist/managed/same-holder/contract/index.d.ts +0 -400
  46. package/dist/managed/same-holder/contract/index.js +0 -2688
  47. package/dist/managed/same-holder/contract/index.js.map +0 -8
  48. package/src/credentials/bindings.compact +0 -5
  49. package/src/credentials/composable.compact +0 -14
  50. package/src/credentials/holder-bindings.compact +0 -320
  51. package/src/credentials/issue.compact +0 -91
  52. package/src/credentials/present.compact +0 -84
  53. package/src/credentials/proofs.compact +0 -122
  54. package/src/credentials/protocol-support.compact +0 -7
  55. package/src/credentials/protocols.compact +0 -125
  56. package/src/credentials/relations.compact +0 -36
  57. package/src/credentials/status-bindings.compact +0 -60
  58. package/src/credentials/types.compact +0 -141
  59. package/src/credentials/vc-support.compact +0 -8
  60. package/src/credentials/vc.compact +0 -59
  61. package/src/credentials/vp.compact +0 -25
  62. package/src/credentials.compact +0 -20
  63. package/src/holder-binding/same-holder/composable.compact +0 -179
  64. package/src/holder-binding/same-holder.compact +0 -180
@@ -8,19 +8,11 @@ export struct StatusRegistryRef {
8
8
 
9
9
  export struct NoStatusBinding {}
10
10
 
11
- export enum StatusType {
12
- revocationRegistry
13
- }
14
-
15
11
  export struct RegistryBoundStatusBinding {
16
- statusType: StatusType,
17
12
  registryRef: StatusRegistryRef,
18
13
  statusHandleCommitment: Bytes<32>,
19
14
  }
20
15
 
21
- // NOTE: `StatusType` is explicit even though the current repo only supports the
22
- // revocation-registry binding mode. Keeping it in the binding preserves an
23
- // extension seam without overloading registry ids or handle commitment shapes.
24
16
  export pure circuit assertValidStatusRegistryRef(
25
17
  registryRef: StatusRegistryRef
26
18
  ): [] {
@@ -31,20 +23,9 @@ export pure circuit assertValidStatusRegistryRef(
31
23
  assertValidVerificationMethodRef(registryRef.authorityVerificationMethodRef);
32
24
  }
33
25
 
34
- export pure circuit assertValidNoStatusBinding(
35
- binding: NoStatusBinding
36
- ): [] {
37
- // NOTE: NoStatusBinding is intentionally empty; this validator stays as a
38
- // symmetry point with the real binding variants.
39
- }
40
-
41
26
  export pure circuit assertValidRegistryBoundStatusBinding(
42
27
  binding: RegistryBoundStatusBinding
43
28
  ): [] {
44
- assert(
45
- binding.statusType == StatusType.revocationRegistry,
46
- "Registry-bound status type must be revocationRegistry"
47
- );
48
29
  assertValidStatusRegistryRef(binding.registryRef);
49
30
  assert(
50
31
  binding.statusHandleCommitment != pad(32, ""),
@@ -5,83 +5,43 @@ export struct SchemaRef {
5
5
  minorVersion: Uint<16>,
6
6
  }
7
7
 
8
- export struct SchemaCapabilities {
9
- supportsSelectiveDisclosure: Boolean,
10
- supportsPredicateProofs: Boolean,
11
- supportsVerifierScopedPseudonym: Boolean,
12
- supportsSameHolderProof: Boolean,
13
- }
14
-
15
- export struct SchemaFamilyResolutionHint {
16
- hasResolverHint: Boolean,
17
- resolverHint: Bytes<32>,
18
- }
19
-
20
- export struct SchemaDescriptor {
21
- schema: SchemaRef,
22
- capabilities: SchemaCapabilities,
23
- familyResolutionHint: SchemaFamilyResolutionHint,
24
- }
25
-
26
- export pure circuit noSchemaFamilyResolverHint(): Bytes<32> {
27
- return pad(32, "midnight:vc:schema:no-hint");
28
- }
29
-
30
8
  export pure circuit assertValidSchemaRef(schema: SchemaRef): [] {
31
9
  assert(schema.packageId != pad(32, ""), "Schema package id must be set");
32
10
  assert(schema.schemaId != pad(32, ""), "Schema id must be set");
33
11
  assert(schema.majorVersion > 0, "Schema major version must be positive");
34
12
  }
35
13
 
36
- export pure circuit assertValidSchemaCapabilities(
37
- capabilities: SchemaCapabilities
14
+ export pure circuit assertMatchingSchemaRefs(
15
+ expected: SchemaRef,
16
+ actual: SchemaRef
38
17
  ): [] {
39
- // Boolean-only capabilities have no invalid values today. Keep this helper so
40
- // future non-boolean capability fields get one validation entry point.
41
- }
42
-
43
- export pure circuit assertValidSchemaFamilyResolutionHint(
44
- hint: SchemaFamilyResolutionHint
45
- ): [] {
46
- const noHint = noSchemaFamilyResolverHint();
47
- if (hint.hasResolverHint) {
48
- assert(hint.resolverHint != noHint, "Schema resolver hint must be set");
49
- assert(
50
- hint.resolverHint != pad(32, ""),
51
- "Schema resolver hint must not be empty"
52
- );
53
- } else {
54
- assert(
55
- hint.resolverHint == noHint,
56
- "Absent schema resolver hint must use the no-hint sentinel"
57
- );
58
- }
18
+ assertValidSchemaRef(expected);
19
+ assertValidSchemaRef(actual);
20
+ assert(
21
+ expected.packageId == actual.packageId
22
+ && expected.schemaId == actual.schemaId
23
+ && expected.majorVersion == actual.majorVersion
24
+ && expected.minorVersion == actual.minorVersion,
25
+ "Schema reference mismatch"
26
+ );
59
27
  }
60
28
 
61
- export pure circuit assertValidSchemaDescriptor(
62
- descriptor: SchemaDescriptor
63
- ): [] {
64
- assertValidSchemaRef(descriptor.schema);
65
- assertValidSchemaCapabilities(descriptor.capabilities);
66
- assertValidSchemaFamilyResolutionHint(descriptor.familyResolutionHint);
29
+ export struct VerificationMethodRef {
30
+ controllerAddress: ContractAddress,
31
+ methodId: Bytes<32>,
67
32
  }
68
33
 
69
- export pure circuit assertMatchingSchemaCapabilities(
70
- expected: SchemaCapabilities,
71
- actual: SchemaCapabilities
34
+ export pure circuit assertValidVerificationMethodRef(
35
+ verificationMethodRef: VerificationMethodRef
72
36
  ): [] {
73
37
  assert(
74
- expected.supportsSelectiveDisclosure == actual.supportsSelectiveDisclosure
75
- && expected.supportsPredicateProofs == actual.supportsPredicateProofs
76
- && expected.supportsVerifierScopedPseudonym == actual.supportsVerifierScopedPseudonym
77
- && expected.supportsSameHolderProof == actual.supportsSameHolderProof,
78
- "Schema capabilities mismatch"
38
+ verificationMethodRef.controllerAddress.bytes != pad(32, ""),
39
+ "Verification method controller address must be set"
40
+ );
41
+ assert(
42
+ verificationMethodRef.methodId != pad(32, ""),
43
+ "Verification method reference must be set"
79
44
  );
80
- }
81
-
82
- export struct VerificationMethodRef {
83
- didContractAddress: ContractAddress,
84
- methodId: Bytes<32>,
85
45
  }
86
46
 
87
47
  export struct NoPublicClaims {
@@ -99,36 +59,6 @@ export struct ExplicitHolderBinding {
99
59
  holderVerificationMethodRef: VerificationMethodRef,
100
60
  }
101
61
 
102
- export struct JubjubHolderBinding {
103
- // Legacy compatibility/minimal holder binding.
104
- // This binds the VC/VP to a specific Jubjub public key, but it is not the
105
- // recommended public profile for new DID-shaped flows.
106
- // Proof-of-possession still depends on validating the presentation Proof
107
- // alongside this binding.
108
- holderPublicKey: JubjubPoint,
109
- }
110
-
111
- export struct OffchainMidnightHolderBinding {
112
- // Preferred lightweight DID-shaped binding for offchain/prototype flows.
113
- // This adds DID-shaped metadata for prototype offchain Midnight DID flows.
114
- // It does not by itself prove that holderPublicKey is the key published in
115
- // the offchain DID state; callers still need the surrounding DID semantics.
116
- holderDidStateHash: Bytes<32>,
117
- holderMethodId: Bytes<32>,
118
- holderPublicKey: JubjubPoint,
119
- }
120
-
121
- export struct SecretHolderBinding {
122
- holderSecretCommitment: Bytes<32>,
123
- requestChallengeResponse: Bytes<32>,
124
- }
125
-
126
- export struct BlindedSecretHolderBinding {
127
- blindedHolderSecretCommitment: Bytes<32>,
128
- issuerNonce: Bytes<32>,
129
- requestChallengeResponse: Bytes<32>,
130
- }
131
-
132
62
  // Proof is kept separate from the VC/VP body on purpose.
133
63
  // The body is the semantic payload; the proof is the cryptographic artifact
134
64
  // over that payload plus interaction context.
@@ -38,7 +38,7 @@ module VC<TPublicClaims, TClaimCommitments, THolderBinding, TStatusBinding> {
38
38
  proof: Proof
39
39
  ): [] {
40
40
  const bodyRoot: Bytes<32> = credentialBodyRoot(credential);
41
- assertValidCredentialProofForBodyRoot(credential, proof, bodyRoot);
41
+ assertValidCredentialProofForCanonicalBodyRoot(credential, proof, bodyRoot);
42
42
  }
43
43
 
44
44
  export pure circuit assertValidCredentialProofForBodyRoot(
@@ -47,8 +47,20 @@ module VC<TPublicClaims, TClaimCommitments, THolderBinding, TStatusBinding> {
47
47
  bodyRoot: Bytes<32>
48
48
  ): [] {
49
49
  assert(
50
- credential.issuerVerificationMethodRef.didContractAddress == proof.signerVerificationMethodRef.didContractAddress,
51
- "Issuer proof contract address does not match issuer verification method"
50
+ bodyRoot == credentialBodyRoot(credential),
51
+ "Credential body root does not match credential"
52
+ );
53
+ assertValidCredentialProofForCanonicalBodyRoot(credential, proof, bodyRoot);
54
+ }
55
+
56
+ pure circuit assertValidCredentialProofForCanonicalBodyRoot(
57
+ credential: Credential,
58
+ proof: Proof,
59
+ bodyRoot: Bytes<32>
60
+ ): [] {
61
+ assert(
62
+ credential.issuerVerificationMethodRef.controllerAddress == proof.signerVerificationMethodRef.controllerAddress,
63
+ "Issuer proof controller address does not match issuer verification method"
52
64
  );
53
65
  assert(
54
66
  credential.issuerVerificationMethodRef.methodId == proof.signerVerificationMethodRef.methodId,
@@ -56,4 +68,13 @@ module VC<TPublicClaims, TClaimCommitments, THolderBinding, TStatusBinding> {
56
68
  );
57
69
  assertValidIssuanceContextProof(bodyRoot, proof);
58
70
  }
71
+
72
+ export pure circuit assertAuthorizedIssuerProof(
73
+ credential: Credential,
74
+ proof: Proof,
75
+ descriptor: AuthorizedSignerDescriptor
76
+ ): [] {
77
+ assertAuthorizedIssuerDescriptor(credential.schema, proof, descriptor);
78
+ assertValidCredentialProof(credential, proof);
79
+ }
59
80
  }
@@ -1,4 +1,3 @@
1
- // This file is part of midnightntwrk/midnight-did.
2
1
  // Copyright (C) 2026 Midnight Foundation
3
2
  // SPDX-License-Identifier: Apache-2.0
4
3
  // Licensed under the Apache License, Version 2.0 (the "License");
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export * from "./jubjub.js";
1
+ export * from "./compact-value-codec.js";
2
2
  export * from "./managed/credentials/contract/index.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,yCAAyC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,yCAAyC,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export * from "./jubjub.js";
1
+ export * from "./compact-value-codec.js";
2
2
  export * from "./managed/credentials/contract/index.js";
3
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,yCAAyC,CAAC","sourcesContent":["export * from \"./jubjub.js\";\nexport * from \"./managed/credentials/contract/index.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,yCAAyC,CAAC","sourcesContent":["export * from \"./compact-value-codec.js\";\nexport * from \"./managed/credentials/contract/index.js\";\n"]}
@@ -6,22 +6,7 @@ export type SchemaRef = { packageId: Uint8Array;
6
6
  minorVersion: bigint
7
7
  };
8
8
 
9
- export type SchemaCapabilities = { supportsSelectiveDisclosure: boolean;
10
- supportsPredicateProofs: boolean;
11
- supportsVerifierScopedPseudonym: boolean;
12
- supportsSameHolderProof: boolean
13
- };
14
-
15
- export type SchemaFamilyResolutionHint = { hasResolverHint: boolean;
16
- resolverHint: Uint8Array
17
- };
18
-
19
- export type SchemaDescriptor = { schema: SchemaRef;
20
- capabilities: SchemaCapabilities;
21
- familyResolutionHint: SchemaFamilyResolutionHint
22
- };
23
-
24
- export type VerificationMethodRef = { didContractAddress: { bytes: Uint8Array };
9
+ export type VerificationMethodRef = { controllerAddress: { bytes: Uint8Array };
25
10
  methodId: Uint8Array
26
11
  };
27
12
 
@@ -34,23 +19,6 @@ export type Signature = { r: __compactRuntime.JubjubPoint; s: bigint };
34
19
  export type ExplicitHolderBinding = { holderVerificationMethodRef: VerificationMethodRef
35
20
  };
36
21
 
37
- export type JubjubHolderBinding = { holderPublicKey: __compactRuntime.JubjubPoint
38
- };
39
-
40
- export type OffchainMidnightHolderBinding = { holderDidStateHash: Uint8Array;
41
- holderMethodId: Uint8Array;
42
- holderPublicKey: __compactRuntime.JubjubPoint
43
- };
44
-
45
- export type SecretHolderBinding = { holderSecretCommitment: Uint8Array;
46
- requestChallengeResponse: Uint8Array
47
- };
48
-
49
- export type BlindedSecretHolderBinding = { blindedHolderSecretCommitment: Uint8Array;
50
- issuerNonce: Uint8Array;
51
- requestChallengeResponse: Uint8Array
52
- };
53
-
54
22
  export type Proof = { signerVerificationMethodRef: VerificationMethodRef;
55
23
  createdAt: bigint;
56
24
  challengeHash: Uint8Array;
@@ -58,26 +26,32 @@ export type Proof = { signerVerificationMethodRef: VerificationMethodRef;
58
26
  signature: Signature
59
27
  };
60
28
 
61
- export enum HolderBindingProfile { explicitDid = 0,
62
- secretHolder = 1,
63
- blindedSecretHolder = 2
29
+ export enum SignerRole { issuer = 0, verifier = 1 }
30
+
31
+ export enum AuthorizationState { active = 0, suspended = 1, revoked = 2 }
32
+
33
+ export enum VerificationRelationship { assertionMethod = 0,
34
+ authentication = 1,
35
+ capabilityInvocation = 2
64
36
  }
65
37
 
66
- export type CredentialProtocolFeatures = { supportsSelectiveDisclosure: boolean;
67
- supportsPredicateProofs: boolean;
68
- supportsVerifierScopedPseudonym: boolean;
69
- supportsSameHolderProof: boolean
38
+ export type AuthorizedSignerDescriptor = { version: bigint;
39
+ authorizationId: Uint8Array;
40
+ decisionSequence: bigint;
41
+ state: AuthorizationState;
42
+ role: SignerRole;
43
+ signerVerificationMethodRef: VerificationMethodRef;
44
+ signerPublicKey: __compactRuntime.JubjubPoint;
45
+ didStateVersion: bigint;
46
+ verificationRelationship: VerificationRelationship;
47
+ scopeCommitment: Uint8Array;
48
+ policyCommitment: Uint8Array
70
49
  };
71
50
 
72
- export type ProtocolMessageEnvelope = { version: bigint;
73
- messageId: Uint8Array;
74
- threadId: Uint8Array;
75
- initialMessage: boolean;
76
- respondsToMessageId: Uint8Array;
77
- createdAt: bigint;
78
- hasExpiresAt: boolean;
79
- expiresAt: bigint
80
- };
51
+ export type SignerAuthorizationAuthority = { domainCommitment: Uint8Array;
52
+ verificationMethodRef: VerificationMethodRef;
53
+ publicKey: __compactRuntime.JubjubPoint
54
+ };
81
55
 
82
56
  export type StatusRegistryRef = { registryId: Uint8Array;
83
57
  authorityVerificationMethodRef: VerificationMethodRef
@@ -85,10 +59,7 @@ export type StatusRegistryRef = { registryId: Uint8Array;
85
59
 
86
60
  export type NoStatusBinding = { };
87
61
 
88
- export enum StatusType { revocationRegistry = 0 }
89
-
90
- export type RegistryBoundStatusBinding = { statusType: StatusType;
91
- registryRef: StatusRegistryRef;
62
+ export type RegistryBoundStatusBinding = { registryRef: StatusRegistryRef;
92
63
  statusHandleCommitment: Uint8Array
93
64
  };
94
65
 
@@ -102,103 +73,74 @@ export type ProvableCircuits<PS> = {
102
73
  }
103
74
 
104
75
  export type PureCircuits = {
105
- noSchemaFamilyResolverHint(): Uint8Array;
106
76
  assertValidSchemaRef(schema_0: SchemaRef): [];
107
- assertValidSchemaCapabilities(capabilities_0: SchemaCapabilities): [];
108
- assertValidSchemaFamilyResolutionHint(hint_0: SchemaFamilyResolutionHint): [];
109
- assertValidSchemaDescriptor(descriptor_0: SchemaDescriptor): [];
110
- assertMatchingSchemaCapabilities(expected_0: SchemaCapabilities,
111
- actual_0: SchemaCapabilities): [];
77
+ assertMatchingSchemaRefs(expected_0: SchemaRef, actual_0: SchemaRef): [];
78
+ assertValidVerificationMethodRef(verificationMethodRef_0: VerificationMethodRef): [];
112
79
  verifySignature(pk_0: __compactRuntime.JubjubPoint,
113
80
  signature_0: Signature,
114
81
  challenge_0: bigint): boolean;
115
82
  issuanceContextTag(): Uint8Array;
116
83
  presentationContextTag(): Uint8Array;
84
+ signerAuthorizationContextTag(): Uint8Array;
85
+ verifierRequestContextTag(): Uint8Array;
117
86
  issuanceProofPayloadRoot(bodyRoot_0: Uint8Array, proof_0: Proof): Uint8Array;
118
87
  presentationProofPayloadRoot(bodyRoot_0: Uint8Array, proof_0: Proof): Uint8Array;
119
88
  issuanceProofChallenge(bodyRoot_0: Uint8Array, proof_0: Proof): bigint;
120
89
  presentationProofChallenge(bodyRoot_0: Uint8Array, proof_0: Proof): bigint;
90
+ signerAuthorizationProofChallenge(bodyRoot_0: Uint8Array, proof_0: Proof): bigint;
91
+ verifierRequestProofChallenge(requestScopeCommitment_0: Uint8Array,
92
+ proof_0: Proof): bigint;
121
93
  assertValidIssuanceContextProof(bodyRoot_0: Uint8Array, proof_0: Proof): [];
122
94
  assertValidPresentationContextProof(bodyRoot_0: Uint8Array, proof_0: Proof): [];
95
+ assertValidSignerAuthorizationContextProof(bodyRoot_0: Uint8Array,
96
+ proof_0: Proof): [];
97
+ assertValidVerifierRequestContextProof(requestScopeCommitment_0: Uint8Array,
98
+ proof_0: Proof): [];
99
+ assertValidAuthorizedSignerDescriptor(descriptor_0: AuthorizedSignerDescriptor): [];
100
+ authorizedSignerDescriptorRoot(descriptor_0: AuthorizedSignerDescriptor): Uint8Array;
101
+ issuerScopeCommitment(schema_0: SchemaRef): Uint8Array;
102
+ assertProofSignerMatchesAuthorization(proof_0: Proof,
103
+ descriptor_0: AuthorizedSignerDescriptor): [];
104
+ assertAuthorizedIssuerDescriptor(schema_0: SchemaRef,
105
+ proof_0: Proof,
106
+ descriptor_0: AuthorizedSignerDescriptor): [];
107
+ assertAuthorizedVerifierProof(requestScopeCommitment_0: Uint8Array,
108
+ proof_0: Proof,
109
+ descriptor_0: AuthorizedSignerDescriptor): [];
110
+ assertValidSignerAuthorizationAuthority(authority_0: SignerAuthorizationAuthority): [];
111
+ signerAuthorizationDecisionRoot(descriptor_0: AuthorizedSignerDescriptor,
112
+ domainCommitment_0: Uint8Array): Uint8Array;
113
+ assertValidSignerAuthorizationProof(descriptor_0: AuthorizedSignerDescriptor,
114
+ authorizationProof_0: Proof,
115
+ authority_0: SignerAuthorizationAuthority): [];
116
+ assertValidSignerAuthorizationUpdate(previous_0: AuthorizedSignerDescriptor,
117
+ next_0: AuthorizedSignerDescriptor): [];
123
118
  assertValidExplicitHolderBinding(binding_0: ExplicitHolderBinding): [];
124
119
  assertMatchingExplicitHolderBindings(credentialBinding_0: ExplicitHolderBinding,
125
120
  presentationBinding_0: ExplicitHolderBinding): [];
126
121
  assertProofMatchesExplicitHolderBinding(binding_0: ExplicitHolderBinding,
127
122
  presentationProof_0: Proof): [];
128
- assertValidJubjubHolderBinding(binding_0: JubjubHolderBinding): [];
129
- assertMatchingJubjubHolderBindings(credentialBinding_0: JubjubHolderBinding,
130
- presentationBinding_0: JubjubHolderBinding): [];
131
- assertProofMatchesJubjubHolderBinding(binding_0: JubjubHolderBinding,
132
- presentationProof_0: Proof): [];
133
- assertValidOffchainMidnightHolderBinding(binding_0: OffchainMidnightHolderBinding): [];
134
- assertMatchingOffchainMidnightHolderBindings(credentialBinding_0: OffchainMidnightHolderBinding,
135
- presentationBinding_0: OffchainMidnightHolderBinding): [];
136
- assertProofMatchesOffchainMidnightHolderBinding(binding_0: OffchainMidnightHolderBinding,
137
- presentationProof_0: Proof): [];
138
- noSecretHolderChallengeResponse(): Uint8Array;
139
- secretHolderBindingCommitment(holderSecret_0: Uint8Array,
140
- opening_0: Uint8Array): Uint8Array;
141
- secretHolderBindingChallengeResponse(holderSecret_0: Uint8Array,
142
- verifierChallengeHash_0: Uint8Array): Uint8Array;
143
- verifierScopedPseudonym(holderSecret_0: Uint8Array,
144
- verifierDomainHash_0: Uint8Array): Uint8Array;
145
- assertVerifierScopedPseudonym(pseudonym_0: Uint8Array,
146
- holderSecret_0: Uint8Array,
147
- verifierDomainHash_0: Uint8Array): [];
148
- blindedSecretHolderCommitment(holderSecretCommitment_0: Uint8Array,
149
- issuerNonce_0: Uint8Array,
150
- blindingFactor_0: Uint8Array): Uint8Array;
151
- assertValidSecretHolderCredentialBinding(binding_0: SecretHolderBinding): [];
152
- assertValidSecretHolderPresentationBinding(binding_0: SecretHolderBinding): [];
153
- assertMatchingSecretHolderBindings(credentialBinding_0: SecretHolderBinding,
154
- presentationBinding_0: SecretHolderBinding): [];
155
- assertValidBlindedSecretHolderCredentialBinding(binding_0: BlindedSecretHolderBinding): [];
156
- assertValidBlindedSecretHolderPresentationBinding(binding_0: BlindedSecretHolderBinding): [];
157
- assertMatchingBlindedSecretHolderBindings(credentialBinding_0: BlindedSecretHolderBinding,
158
- presentationBinding_0: BlindedSecretHolderBinding): [];
159
- assertSecretHolderBindingWitness(binding_0: SecretHolderBinding,
160
- verifierChallengeHash_0: Uint8Array,
161
- holderSecret_0: Uint8Array,
162
- opening_0: Uint8Array): [];
163
- assertBlindedSecretHolderBindingWitness(binding_0: BlindedSecretHolderBinding,
164
- verifierChallengeHash_0: Uint8Array,
165
- holderSecret_0: Uint8Array,
166
- opening_0: Uint8Array,
167
- blindingFactor_0: Uint8Array): [];
168
- protocolFeaturesAsSchemaCapabilities(features_0: CredentialProtocolFeatures): SchemaCapabilities;
169
- assertProtocolFeaturesMatchSchemaCapabilities(features_0: CredentialProtocolFeatures,
170
- capabilities_0: SchemaCapabilities): [];
171
- noProtocolResponseReference(): Uint8Array;
172
- assertValidVerificationMethodRef(verificationMethodRef_0: VerificationMethodRef): [];
173
- assertMatchingSchemaRefs(expected_0: SchemaRef, actual_0: SchemaRef): [];
174
- assertValidProtocolMessageEnvelope(envelope_0: ProtocolMessageEnvelope): [];
175
- assertProtocolResponseEnvelope(requestEnvelope_0: ProtocolMessageEnvelope,
176
- responseEnvelope_0: ProtocolMessageEnvelope): [];
177
123
  assertValidStatusRegistryRef(registryRef_0: StatusRegistryRef): [];
178
- assertValidNoStatusBinding(binding_0: NoStatusBinding): [];
179
124
  assertValidRegistryBoundStatusBinding(binding_0: RegistryBoundStatusBinding): [];
180
125
  registryBoundStatusBindingRoot(binding_0: RegistryBoundStatusBinding): Uint8Array;
181
126
  }
182
127
 
183
128
  export type Circuits<PS> = {
184
- noSchemaFamilyResolverHint(context: __compactRuntime.CircuitContext<PS>): __compactRuntime.CircuitResults<PS, Uint8Array>;
185
129
  assertValidSchemaRef(context: __compactRuntime.CircuitContext<PS>,
186
130
  schema_0: SchemaRef): __compactRuntime.CircuitResults<PS, []>;
187
- assertValidSchemaCapabilities(context: __compactRuntime.CircuitContext<PS>,
188
- capabilities_0: SchemaCapabilities): __compactRuntime.CircuitResults<PS, []>;
189
- assertValidSchemaFamilyResolutionHint(context: __compactRuntime.CircuitContext<PS>,
190
- hint_0: SchemaFamilyResolutionHint): __compactRuntime.CircuitResults<PS, []>;
191
- assertValidSchemaDescriptor(context: __compactRuntime.CircuitContext<PS>,
192
- descriptor_0: SchemaDescriptor): __compactRuntime.CircuitResults<PS, []>;
193
- assertMatchingSchemaCapabilities(context: __compactRuntime.CircuitContext<PS>,
194
- expected_0: SchemaCapabilities,
195
- actual_0: SchemaCapabilities): __compactRuntime.CircuitResults<PS, []>;
131
+ assertMatchingSchemaRefs(context: __compactRuntime.CircuitContext<PS>,
132
+ expected_0: SchemaRef,
133
+ actual_0: SchemaRef): __compactRuntime.CircuitResults<PS, []>;
134
+ assertValidVerificationMethodRef(context: __compactRuntime.CircuitContext<PS>,
135
+ verificationMethodRef_0: VerificationMethodRef): __compactRuntime.CircuitResults<PS, []>;
196
136
  verifySignature(context: __compactRuntime.CircuitContext<PS>,
197
137
  pk_0: __compactRuntime.JubjubPoint,
198
138
  signature_0: Signature,
199
139
  challenge_0: bigint): __compactRuntime.CircuitResults<PS, boolean>;
200
140
  issuanceContextTag(context: __compactRuntime.CircuitContext<PS>): __compactRuntime.CircuitResults<PS, Uint8Array>;
201
141
  presentationContextTag(context: __compactRuntime.CircuitContext<PS>): __compactRuntime.CircuitResults<PS, Uint8Array>;
142
+ signerAuthorizationContextTag(context: __compactRuntime.CircuitContext<PS>): __compactRuntime.CircuitResults<PS, Uint8Array>;
143
+ verifierRequestContextTag(context: __compactRuntime.CircuitContext<PS>): __compactRuntime.CircuitResults<PS, Uint8Array>;
202
144
  issuanceProofPayloadRoot(context: __compactRuntime.CircuitContext<PS>,
203
145
  bodyRoot_0: Uint8Array,
204
146
  proof_0: Proof): __compactRuntime.CircuitResults<PS, Uint8Array>;
@@ -211,12 +153,53 @@ export type Circuits<PS> = {
211
153
  presentationProofChallenge(context: __compactRuntime.CircuitContext<PS>,
212
154
  bodyRoot_0: Uint8Array,
213
155
  proof_0: Proof): __compactRuntime.CircuitResults<PS, bigint>;
156
+ signerAuthorizationProofChallenge(context: __compactRuntime.CircuitContext<PS>,
157
+ bodyRoot_0: Uint8Array,
158
+ proof_0: Proof): __compactRuntime.CircuitResults<PS, bigint>;
159
+ verifierRequestProofChallenge(context: __compactRuntime.CircuitContext<PS>,
160
+ requestScopeCommitment_0: Uint8Array,
161
+ proof_0: Proof): __compactRuntime.CircuitResults<PS, bigint>;
214
162
  assertValidIssuanceContextProof(context: __compactRuntime.CircuitContext<PS>,
215
163
  bodyRoot_0: Uint8Array,
216
164
  proof_0: Proof): __compactRuntime.CircuitResults<PS, []>;
217
165
  assertValidPresentationContextProof(context: __compactRuntime.CircuitContext<PS>,
218
166
  bodyRoot_0: Uint8Array,
219
167
  proof_0: Proof): __compactRuntime.CircuitResults<PS, []>;
168
+ assertValidSignerAuthorizationContextProof(context: __compactRuntime.CircuitContext<PS>,
169
+ bodyRoot_0: Uint8Array,
170
+ proof_0: Proof): __compactRuntime.CircuitResults<PS, []>;
171
+ assertValidVerifierRequestContextProof(context: __compactRuntime.CircuitContext<PS>,
172
+ requestScopeCommitment_0: Uint8Array,
173
+ proof_0: Proof): __compactRuntime.CircuitResults<PS, []>;
174
+ assertValidAuthorizedSignerDescriptor(context: __compactRuntime.CircuitContext<PS>,
175
+ descriptor_0: AuthorizedSignerDescriptor): __compactRuntime.CircuitResults<PS, []>;
176
+ authorizedSignerDescriptorRoot(context: __compactRuntime.CircuitContext<PS>,
177
+ descriptor_0: AuthorizedSignerDescriptor): __compactRuntime.CircuitResults<PS, Uint8Array>;
178
+ issuerScopeCommitment(context: __compactRuntime.CircuitContext<PS>,
179
+ schema_0: SchemaRef): __compactRuntime.CircuitResults<PS, Uint8Array>;
180
+ assertProofSignerMatchesAuthorization(context: __compactRuntime.CircuitContext<PS>,
181
+ proof_0: Proof,
182
+ descriptor_0: AuthorizedSignerDescriptor): __compactRuntime.CircuitResults<PS, []>;
183
+ assertAuthorizedIssuerDescriptor(context: __compactRuntime.CircuitContext<PS>,
184
+ schema_0: SchemaRef,
185
+ proof_0: Proof,
186
+ descriptor_0: AuthorizedSignerDescriptor): __compactRuntime.CircuitResults<PS, []>;
187
+ assertAuthorizedVerifierProof(context: __compactRuntime.CircuitContext<PS>,
188
+ requestScopeCommitment_0: Uint8Array,
189
+ proof_0: Proof,
190
+ descriptor_0: AuthorizedSignerDescriptor): __compactRuntime.CircuitResults<PS, []>;
191
+ assertValidSignerAuthorizationAuthority(context: __compactRuntime.CircuitContext<PS>,
192
+ authority_0: SignerAuthorizationAuthority): __compactRuntime.CircuitResults<PS, []>;
193
+ signerAuthorizationDecisionRoot(context: __compactRuntime.CircuitContext<PS>,
194
+ descriptor_0: AuthorizedSignerDescriptor,
195
+ domainCommitment_0: Uint8Array): __compactRuntime.CircuitResults<PS, Uint8Array>;
196
+ assertValidSignerAuthorizationProof(context: __compactRuntime.CircuitContext<PS>,
197
+ descriptor_0: AuthorizedSignerDescriptor,
198
+ authorizationProof_0: Proof,
199
+ authority_0: SignerAuthorizationAuthority): __compactRuntime.CircuitResults<PS, []>;
200
+ assertValidSignerAuthorizationUpdate(context: __compactRuntime.CircuitContext<PS>,
201
+ previous_0: AuthorizedSignerDescriptor,
202
+ next_0: AuthorizedSignerDescriptor): __compactRuntime.CircuitResults<PS, []>;
220
203
  assertValidExplicitHolderBinding(context: __compactRuntime.CircuitContext<PS>,
221
204
  binding_0: ExplicitHolderBinding): __compactRuntime.CircuitResults<PS, []>;
222
205
  assertMatchingExplicitHolderBindings(context: __compactRuntime.CircuitContext<PS>,
@@ -225,85 +208,8 @@ export type Circuits<PS> = {
225
208
  assertProofMatchesExplicitHolderBinding(context: __compactRuntime.CircuitContext<PS>,
226
209
  binding_0: ExplicitHolderBinding,
227
210
  presentationProof_0: Proof): __compactRuntime.CircuitResults<PS, []>;
228
- assertValidJubjubHolderBinding(context: __compactRuntime.CircuitContext<PS>,
229
- binding_0: JubjubHolderBinding): __compactRuntime.CircuitResults<PS, []>;
230
- assertMatchingJubjubHolderBindings(context: __compactRuntime.CircuitContext<PS>,
231
- credentialBinding_0: JubjubHolderBinding,
232
- presentationBinding_0: JubjubHolderBinding): __compactRuntime.CircuitResults<PS, []>;
233
- assertProofMatchesJubjubHolderBinding(context: __compactRuntime.CircuitContext<PS>,
234
- binding_0: JubjubHolderBinding,
235
- presentationProof_0: Proof): __compactRuntime.CircuitResults<PS, []>;
236
- assertValidOffchainMidnightHolderBinding(context: __compactRuntime.CircuitContext<PS>,
237
- binding_0: OffchainMidnightHolderBinding): __compactRuntime.CircuitResults<PS, []>;
238
- assertMatchingOffchainMidnightHolderBindings(context: __compactRuntime.CircuitContext<PS>,
239
- credentialBinding_0: OffchainMidnightHolderBinding,
240
- presentationBinding_0: OffchainMidnightHolderBinding): __compactRuntime.CircuitResults<PS, []>;
241
- assertProofMatchesOffchainMidnightHolderBinding(context: __compactRuntime.CircuitContext<PS>,
242
- binding_0: OffchainMidnightHolderBinding,
243
- presentationProof_0: Proof): __compactRuntime.CircuitResults<PS, []>;
244
- noSecretHolderChallengeResponse(context: __compactRuntime.CircuitContext<PS>): __compactRuntime.CircuitResults<PS, Uint8Array>;
245
- secretHolderBindingCommitment(context: __compactRuntime.CircuitContext<PS>,
246
- holderSecret_0: Uint8Array,
247
- opening_0: Uint8Array): __compactRuntime.CircuitResults<PS, Uint8Array>;
248
- secretHolderBindingChallengeResponse(context: __compactRuntime.CircuitContext<PS>,
249
- holderSecret_0: Uint8Array,
250
- verifierChallengeHash_0: Uint8Array): __compactRuntime.CircuitResults<PS, Uint8Array>;
251
- verifierScopedPseudonym(context: __compactRuntime.CircuitContext<PS>,
252
- holderSecret_0: Uint8Array,
253
- verifierDomainHash_0: Uint8Array): __compactRuntime.CircuitResults<PS, Uint8Array>;
254
- assertVerifierScopedPseudonym(context: __compactRuntime.CircuitContext<PS>,
255
- pseudonym_0: Uint8Array,
256
- holderSecret_0: Uint8Array,
257
- verifierDomainHash_0: Uint8Array): __compactRuntime.CircuitResults<PS, []>;
258
- blindedSecretHolderCommitment(context: __compactRuntime.CircuitContext<PS>,
259
- holderSecretCommitment_0: Uint8Array,
260
- issuerNonce_0: Uint8Array,
261
- blindingFactor_0: Uint8Array): __compactRuntime.CircuitResults<PS, Uint8Array>;
262
- assertValidSecretHolderCredentialBinding(context: __compactRuntime.CircuitContext<PS>,
263
- binding_0: SecretHolderBinding): __compactRuntime.CircuitResults<PS, []>;
264
- assertValidSecretHolderPresentationBinding(context: __compactRuntime.CircuitContext<PS>,
265
- binding_0: SecretHolderBinding): __compactRuntime.CircuitResults<PS, []>;
266
- assertMatchingSecretHolderBindings(context: __compactRuntime.CircuitContext<PS>,
267
- credentialBinding_0: SecretHolderBinding,
268
- presentationBinding_0: SecretHolderBinding): __compactRuntime.CircuitResults<PS, []>;
269
- assertValidBlindedSecretHolderCredentialBinding(context: __compactRuntime.CircuitContext<PS>,
270
- binding_0: BlindedSecretHolderBinding): __compactRuntime.CircuitResults<PS, []>;
271
- assertValidBlindedSecretHolderPresentationBinding(context: __compactRuntime.CircuitContext<PS>,
272
- binding_0: BlindedSecretHolderBinding): __compactRuntime.CircuitResults<PS, []>;
273
- assertMatchingBlindedSecretHolderBindings(context: __compactRuntime.CircuitContext<PS>,
274
- credentialBinding_0: BlindedSecretHolderBinding,
275
- presentationBinding_0: BlindedSecretHolderBinding): __compactRuntime.CircuitResults<PS, []>;
276
- assertSecretHolderBindingWitness(context: __compactRuntime.CircuitContext<PS>,
277
- binding_0: SecretHolderBinding,
278
- verifierChallengeHash_0: Uint8Array,
279
- holderSecret_0: Uint8Array,
280
- opening_0: Uint8Array): __compactRuntime.CircuitResults<PS, []>;
281
- assertBlindedSecretHolderBindingWitness(context: __compactRuntime.CircuitContext<PS>,
282
- binding_0: BlindedSecretHolderBinding,
283
- verifierChallengeHash_0: Uint8Array,
284
- holderSecret_0: Uint8Array,
285
- opening_0: Uint8Array,
286
- blindingFactor_0: Uint8Array): __compactRuntime.CircuitResults<PS, []>;
287
- protocolFeaturesAsSchemaCapabilities(context: __compactRuntime.CircuitContext<PS>,
288
- features_0: CredentialProtocolFeatures): __compactRuntime.CircuitResults<PS, SchemaCapabilities>;
289
- assertProtocolFeaturesMatchSchemaCapabilities(context: __compactRuntime.CircuitContext<PS>,
290
- features_0: CredentialProtocolFeatures,
291
- capabilities_0: SchemaCapabilities): __compactRuntime.CircuitResults<PS, []>;
292
- noProtocolResponseReference(context: __compactRuntime.CircuitContext<PS>): __compactRuntime.CircuitResults<PS, Uint8Array>;
293
- assertValidVerificationMethodRef(context: __compactRuntime.CircuitContext<PS>,
294
- verificationMethodRef_0: VerificationMethodRef): __compactRuntime.CircuitResults<PS, []>;
295
- assertMatchingSchemaRefs(context: __compactRuntime.CircuitContext<PS>,
296
- expected_0: SchemaRef,
297
- actual_0: SchemaRef): __compactRuntime.CircuitResults<PS, []>;
298
- assertValidProtocolMessageEnvelope(context: __compactRuntime.CircuitContext<PS>,
299
- envelope_0: ProtocolMessageEnvelope): __compactRuntime.CircuitResults<PS, []>;
300
- assertProtocolResponseEnvelope(context: __compactRuntime.CircuitContext<PS>,
301
- requestEnvelope_0: ProtocolMessageEnvelope,
302
- responseEnvelope_0: ProtocolMessageEnvelope): __compactRuntime.CircuitResults<PS, []>;
303
211
  assertValidStatusRegistryRef(context: __compactRuntime.CircuitContext<PS>,
304
212
  registryRef_0: StatusRegistryRef): __compactRuntime.CircuitResults<PS, []>;
305
- assertValidNoStatusBinding(context: __compactRuntime.CircuitContext<PS>,
306
- binding_0: NoStatusBinding): __compactRuntime.CircuitResults<PS, []>;
307
213
  assertValidRegistryBoundStatusBinding(context: __compactRuntime.CircuitContext<PS>,
308
214
  binding_0: RegistryBoundStatusBinding): __compactRuntime.CircuitResults<PS, []>;
309
215
  registryBoundStatusBindingRoot(context: __compactRuntime.CircuitContext<PS>,