@hyperledger/anoncreds-nodejs 0.1.0-dev.9 → 0.2.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,8 +4,7 @@ Wrapper for Nodejs around anoncreds-rs
4
4
 
5
5
  ## Requirements
6
6
 
7
- This has been tested extensively with Nodejs version `16.11.0` and `16.15.0`.
8
- Older and newer versions might also work, but they have not been tested.
7
+ This library requires (and has been tested extensively with) Node.js version 18.x. Newer versions might also work, but they have not been tested.
9
8
 
10
9
  ## Installation
11
10
 
@@ -1,6 +1,50 @@
1
1
  import type { NativeCredentialEntry, NativeCredentialProve, Anoncreds, NativeCredentialRevocationConfig, NativeNonRevokedIntervalOverride } from '@hyperledger/anoncreds-shared';
2
2
  import { ObjectHandle } from '@hyperledger/anoncreds-shared';
3
3
  export declare class NodeJSAnoncreds implements Anoncreds {
4
+ private handleError;
5
+ get nativeAnoncreds(): {
6
+ anoncreds_buffer_free: (args_0: Buffer) => unknown;
7
+ anoncreds_create_credential: (args_0: number, args_1: number, args_2: number, args_3: number, args_4: Buffer, args_5: Buffer, args_6: Buffer, args_7: number, args_8: Buffer) => unknown;
8
+ anoncreds_create_credential_definition: (args_0: string, args_1: number, args_2: string, args_3: string, args_4: string, args_5: number, args_6: Buffer, args_7: Buffer, args_8: Buffer) => unknown;
9
+ anoncreds_create_credential_offer: (args_0: string, args_1: string, args_2: number, args_3: Buffer) => unknown;
10
+ anoncreds_create_credential_request: (args_0: string, args_1: string, args_2: number, args_3: string, args_4: string, args_5: number, args_6: Buffer, args_7: Buffer) => unknown;
11
+ anoncreds_create_link_secret: (args_0: Buffer) => unknown;
12
+ anoncreds_create_or_update_revocation_state: (args_0: number, args_1: number, args_2: number, args_3: string, args_4: number, args_5: number, args_6: Buffer) => unknown;
13
+ anoncreds_create_presentation: (args_0: number, args_1: Buffer, args_2: Buffer, args_3: Buffer, args_4: Buffer, args_5: string, args_6: Buffer, args_7: Buffer, args_8: Buffer, args_9: Buffer, args_10: Buffer) => unknown;
14
+ anoncreds_create_revocation_registry_def: (args_0: number, args_1: string, args_2: string, args_3: string, args_4: string, args_5: number, args_6: string, args_7: Buffer, args_8: Buffer) => unknown;
15
+ anoncreds_create_schema: (args_0: string, args_1: string, args_2: string, args_3: Buffer, args_4: Buffer) => unknown;
16
+ anoncreds_credential_get_attribute: (args_0: number, args_1: string, args_2: Buffer) => unknown;
17
+ anoncreds_encode_credential_attributes: (args_0: Buffer, args_1: Buffer) => unknown;
18
+ anoncreds_generate_nonce: (args_0: Buffer) => unknown;
19
+ anoncreds_get_current_error: (args_0: Buffer) => unknown;
20
+ anoncreds_object_free: (args_0: number) => unknown;
21
+ anoncreds_string_free: (args_0: Buffer) => unknown;
22
+ anoncreds_object_get_json: (args_0: number, args_1: Buffer) => unknown;
23
+ anoncreds_object_get_type_name: (args_0: number, args_1: Buffer) => unknown;
24
+ anoncreds_presentation_request_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
25
+ anoncreds_process_credential: (args_0: number, args_1: number, args_2: string, args_3: number, args_4: number, args_5: Buffer) => unknown;
26
+ anoncreds_revocation_registry_definition_get_attribute: (args_0: number, args_1: string, args_2: Buffer) => unknown;
27
+ anoncreds_set_default_logger: () => unknown;
28
+ anoncreds_verify_presentation: (args_0: number, args_1: number, args_2: Buffer, args_3: Buffer, args_4: Buffer, args_5: Buffer, args_6: Buffer, args_7: Buffer, args_8: Buffer, args_9: Buffer, args_10: Buffer) => unknown;
29
+ anoncreds_create_revocation_status_list: (args_0: number, args_1: string, args_2: number, args_3: number, args_4: string, args_5: number, args_6: number, args_7: Buffer) => unknown;
30
+ anoncreds_update_revocation_status_list_timestamp_only: (args_0: number, args_1: number, args_2: Buffer) => unknown;
31
+ anoncreds_update_revocation_status_list: (args_0: number, args_1: number, args_2: number, args_3: number, args_4: Buffer, args_5: Buffer, args_6: number, args_7: Buffer) => unknown;
32
+ anoncreds_version: () => string;
33
+ anoncreds_credential_request_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
34
+ anoncreds_credential_request_metadata_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
35
+ anoncreds_presentation_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
36
+ anoncreds_credential_offer_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
37
+ anoncreds_revocation_registry_definition_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
38
+ anoncreds_revocation_registry_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
39
+ anoncreds_revocation_status_list_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
40
+ anoncreds_revocation_state_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
41
+ anoncreds_credential_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
42
+ anoncreds_credential_definition_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
43
+ anoncreds_credential_definition_private_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
44
+ anoncreds_revocation_registry_definition_private_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
45
+ anoncreds_key_correctness_proof_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
46
+ anoncreds_schema_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
47
+ };
4
48
  generateNonce(): string;
5
49
  createSchema(options: {
6
50
  name: string;
@@ -35,8 +79,6 @@ export declare class NodeJSAnoncreds implements Anoncreds {
35
79
  credentialRequest: ObjectHandle;
36
80
  attributeRawValues: Record<string, string>;
37
81
  attributeEncodedValues?: Record<string, string>;
38
- revocationRegistryId?: string;
39
- revocationStatusList?: ObjectHandle;
40
82
  revocationConfiguration?: NativeCredentialRevocationConfig;
41
83
  }): ObjectHandle;
42
84
  encodeCredentialAttributes(options: {
@@ -45,7 +87,7 @@ export declare class NodeJSAnoncreds implements Anoncreds {
45
87
  processCredential(options: {
46
88
  credential: ObjectHandle;
47
89
  credentialRequestMetadata: ObjectHandle;
48
- masterSecret: ObjectHandle;
90
+ linkSecret: string;
49
91
  credentialDefinition: ObjectHandle;
50
92
  revocationRegistryDefinition?: ObjectHandle | undefined;
51
93
  }): ObjectHandle;
@@ -58,20 +100,20 @@ export declare class NodeJSAnoncreds implements Anoncreds {
58
100
  entropy?: string;
59
101
  proverDid?: string;
60
102
  credentialDefinition: ObjectHandle;
61
- masterSecret: ObjectHandle;
62
- masterSecretId: string;
103
+ linkSecret: string;
104
+ linkSecretId: string;
63
105
  credentialOffer: ObjectHandle;
64
106
  }): {
65
107
  credentialRequest: ObjectHandle;
66
108
  credentialRequestMetadata: ObjectHandle;
67
109
  };
68
- createMasterSecret(): ObjectHandle;
110
+ createLinkSecret(): string;
69
111
  createPresentation(options: {
70
112
  presentationRequest: ObjectHandle;
71
113
  credentials: NativeCredentialEntry[];
72
114
  credentialsProve: NativeCredentialProve[];
73
115
  selfAttest: Record<string, string>;
74
- masterSecret: ObjectHandle;
116
+ linkSecret: string;
75
117
  schemas: Record<string, ObjectHandle>;
76
118
  credentialDefinitions: Record<string, ObjectHandle>;
77
119
  }): ObjectHandle;
@@ -88,22 +130,26 @@ export declare class NodeJSAnoncreds implements Anoncreds {
88
130
  nonRevokedIntervalOverrides?: NativeNonRevokedIntervalOverride[];
89
131
  }): boolean;
90
132
  createRevocationStatusList(options: {
133
+ credentialDefinition: ObjectHandle;
91
134
  revocationRegistryDefinitionId: string;
92
135
  revocationRegistryDefinition: ObjectHandle;
136
+ revocationRegistryDefinitionPrivate: ObjectHandle;
93
137
  issuerId: string;
94
- timestamp?: number;
95
138
  issuanceByDefault: boolean;
139
+ timestamp?: number;
96
140
  }): ObjectHandle;
97
141
  updateRevocationStatusListTimestampOnly(options: {
98
142
  timestamp: number;
99
143
  currentRevocationStatusList: ObjectHandle;
100
144
  }): ObjectHandle;
101
145
  updateRevocationStatusList(options: {
102
- timestamp?: number;
103
- issued?: number[];
104
- revoked?: number[];
146
+ credentialDefinition: ObjectHandle;
105
147
  revocationRegistryDefinition: ObjectHandle;
148
+ revocationRegistryDefinitionPrivate: ObjectHandle;
106
149
  currentRevocationStatusList: ObjectHandle;
150
+ issued?: number[];
151
+ revoked?: number[];
152
+ timestamp?: number;
107
153
  }): ObjectHandle;
108
154
  createRevocationRegistryDefinition(options: {
109
155
  credentialDefinition: ObjectHandle;
@@ -122,18 +168,16 @@ export declare class NodeJSAnoncreds implements Anoncreds {
122
168
  revocationStatusList: ObjectHandle;
123
169
  revocationRegistryIndex: number;
124
170
  tailsPath: string;
125
- previousRevocationStatusList?: ObjectHandle;
126
- previousRevocationState?: ObjectHandle;
171
+ oldRevocationState?: ObjectHandle;
172
+ oldRevocationStatusList?: ObjectHandle;
127
173
  }): ObjectHandle;
128
174
  version(): string;
175
+ setDefaultLogger(): void;
129
176
  getCurrentError(): string;
130
177
  private objectFromJson;
131
178
  presentationRequestFromJson(options: {
132
179
  json: string;
133
180
  }): ObjectHandle;
134
- masterSecretFromJson(options: {
135
- json: string;
136
- }): ObjectHandle;
137
181
  credentialRequestFromJson(options: {
138
182
  json: string;
139
183
  }): ObjectHandle;
@@ -146,6 +190,9 @@ export declare class NodeJSAnoncreds implements Anoncreds {
146
190
  revocationRegistryFromJson(options: {
147
191
  json: string;
148
192
  }): ObjectHandle;
193
+ revocationStatusListFromJson(options: {
194
+ json: string;
195
+ }): ObjectHandle;
149
196
  revocationStateFromJson(options: {
150
197
  json: string;
151
198
  }): ObjectHandle;
@@ -164,9 +211,6 @@ export declare class NodeJSAnoncreds implements Anoncreds {
164
211
  revocationRegistryDefinitionPrivateFromJson(options: {
165
212
  json: string;
166
213
  }): ObjectHandle;
167
- revocationRegistryDeltaFromJson(options: {
168
- json: string;
169
- }): ObjectHandle;
170
214
  credentialDefinitionFromJson(options: {
171
215
  json: string;
172
216
  }): ObjectHandle;
@@ -3,53 +3,72 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NodeJSAnoncreds = void 0;
4
4
  const anoncreds_shared_1 = require("@hyperledger/anoncreds-shared");
5
5
  const util_1 = require("util");
6
- const error_1 = require("./error");
7
6
  const ffi_1 = require("./ffi");
8
7
  const library_1 = require("./library");
8
+ function handleReturnPointer(returnValue, cleanupCallback) {
9
+ if (returnValue.address() === 0) {
10
+ throw anoncreds_shared_1.AnoncredsError.customError({ message: 'Unexpected null pointer' });
11
+ }
12
+ const ret = returnValue.deref();
13
+ if (cleanupCallback)
14
+ cleanupCallback(returnValue);
15
+ return ret;
16
+ }
9
17
  class NodeJSAnoncreds {
18
+ handleError() {
19
+ const nativeError = (0, ffi_1.allocateStringBuffer)();
20
+ (0, library_1.getNativeAnoncreds)().anoncreds_get_current_error(nativeError);
21
+ const anoncredsErrorObject = JSON.parse(nativeError.deref());
22
+ if (anoncredsErrorObject.code === 0)
23
+ return;
24
+ throw new anoncreds_shared_1.AnoncredsError(anoncredsErrorObject);
25
+ }
26
+ get nativeAnoncreds() {
27
+ return (0, library_1.getNativeAnoncreds)();
28
+ }
10
29
  generateNonce() {
11
30
  const ret = (0, ffi_1.allocateStringBuffer)();
12
- library_1.nativeAnoncreds.anoncreds_generate_nonce(ret);
13
- (0, error_1.handleError)();
14
- return ret.deref();
31
+ this.nativeAnoncreds.anoncreds_generate_nonce(ret);
32
+ this.handleError();
33
+ return handleReturnPointer(ret, this.nativeAnoncreds.anoncreds_string_free);
15
34
  }
16
35
  createSchema(options) {
17
36
  const { name, version, issuerId, attributeNames } = (0, ffi_1.serializeArguments)(options);
18
37
  const ret = (0, ffi_1.allocatePointer)();
19
- library_1.nativeAnoncreds.anoncreds_create_schema(name, version, issuerId, attributeNames, ret);
20
- (0, error_1.handleError)();
21
- return new anoncreds_shared_1.ObjectHandle(ret.deref());
38
+ this.nativeAnoncreds.anoncreds_create_schema(name, version, issuerId, attributeNames, ret);
39
+ this.handleError();
40
+ return new anoncreds_shared_1.ObjectHandle(handleReturnPointer(ret));
22
41
  }
23
42
  revocationRegistryDefinitionGetAttribute(options) {
24
43
  const { objectHandle, name } = (0, ffi_1.serializeArguments)(options);
25
44
  const ret = (0, ffi_1.allocateStringBuffer)();
26
- library_1.nativeAnoncreds.anoncreds_revocation_registry_definition_get_attribute(objectHandle, name, ret);
27
- (0, error_1.handleError)();
28
- return ret.deref();
45
+ this.nativeAnoncreds.anoncreds_revocation_registry_definition_get_attribute(objectHandle, name, ret);
46
+ this.handleError();
47
+ return handleReturnPointer(ret, this.nativeAnoncreds.anoncreds_string_free);
29
48
  }
30
49
  credentialGetAttribute(options) {
31
50
  const { objectHandle, name } = (0, ffi_1.serializeArguments)(options);
32
51
  const ret = (0, ffi_1.allocateStringBuffer)();
33
- library_1.nativeAnoncreds.anoncreds_credential_get_attribute(objectHandle, name, ret);
34
- (0, error_1.handleError)();
35
- return ret.deref();
52
+ this.nativeAnoncreds.anoncreds_credential_get_attribute(objectHandle, name, ret);
53
+ this.handleError();
54
+ return handleReturnPointer(ret, this.nativeAnoncreds.anoncreds_string_free);
36
55
  }
37
56
  createCredentialDefinition(options) {
38
57
  const { schemaId, issuerId, schema, tag, signatureType, supportRevocation } = (0, ffi_1.serializeArguments)(options);
39
58
  const credentialDefinitionPtr = (0, ffi_1.allocatePointer)();
40
59
  const credentialDefinitionPrivatePtr = (0, ffi_1.allocatePointer)();
41
60
  const keyCorrectnessProofPtr = (0, ffi_1.allocatePointer)();
42
- library_1.nativeAnoncreds.anoncreds_create_credential_definition(schemaId, schema, tag, issuerId, signatureType, supportRevocation, credentialDefinitionPtr, credentialDefinitionPrivatePtr, keyCorrectnessProofPtr);
43
- (0, error_1.handleError)();
61
+ this.nativeAnoncreds.anoncreds_create_credential_definition(schemaId, schema, tag, issuerId, signatureType, supportRevocation, credentialDefinitionPtr, credentialDefinitionPrivatePtr, keyCorrectnessProofPtr);
62
+ this.handleError();
44
63
  return {
45
- credentialDefinition: new anoncreds_shared_1.ObjectHandle(credentialDefinitionPtr.deref()),
46
- credentialDefinitionPrivate: new anoncreds_shared_1.ObjectHandle(credentialDefinitionPrivatePtr.deref()),
47
- keyCorrectnessProof: new anoncreds_shared_1.ObjectHandle(keyCorrectnessProofPtr.deref()),
64
+ credentialDefinition: new anoncreds_shared_1.ObjectHandle(handleReturnPointer(credentialDefinitionPtr)),
65
+ credentialDefinitionPrivate: new anoncreds_shared_1.ObjectHandle(handleReturnPointer(credentialDefinitionPrivatePtr)),
66
+ keyCorrectnessProof: new anoncreds_shared_1.ObjectHandle(handleReturnPointer(keyCorrectnessProofPtr)),
48
67
  };
49
68
  }
50
69
  createCredential(options) {
51
- var _a, _b, _c;
52
- const { credentialDefinition, credentialDefinitionPrivate, credentialOffer, credentialRequest, revocationRegistryId, } = (0, ffi_1.serializeArguments)(options);
70
+ var _a;
71
+ const { credentialDefinition, credentialDefinitionPrivate, credentialOffer, credentialRequest } = (0, ffi_1.serializeArguments)(options);
53
72
  const attributeNames = (0, ffi_1.StringListStruct)({
54
73
  count: Object.keys(options.attributeRawValues).length,
55
74
  data: Object.keys(options.attributeRawValues),
@@ -66,61 +85,61 @@ class NodeJSAnoncreds {
66
85
  : undefined;
67
86
  let revocationConfiguration;
68
87
  if (options.revocationConfiguration) {
69
- const { revocationRegistryDefinition: registryDefinition, revocationRegistryDefinitionPrivate: registryDefinitionPrivate, registryIndex, tailsPath, } = (0, ffi_1.serializeArguments)(options.revocationConfiguration);
88
+ const { revocationRegistryDefinition, revocationRegistryDefinitionPrivate, revocationStatusList, registryIndex } = (0, ffi_1.serializeArguments)(options.revocationConfiguration);
70
89
  revocationConfiguration = (0, ffi_1.CredRevInfoStruct)({
71
- reg_def: registryDefinition,
72
- reg_def_private: registryDefinitionPrivate,
90
+ reg_def: revocationRegistryDefinition,
91
+ reg_def_private: revocationRegistryDefinitionPrivate,
92
+ status_list: revocationStatusList,
73
93
  reg_idx: registryIndex,
74
- tails_path: tailsPath,
75
94
  });
76
95
  }
77
96
  const credentialPtr = (0, ffi_1.allocatePointer)();
78
- library_1.nativeAnoncreds.anoncreds_create_credential(credentialDefinition, credentialDefinitionPrivate, credentialOffer, credentialRequest, attributeNames, attributeRawValues, attributeEncodedValues, revocationRegistryId, (_b = (_a = options.revocationStatusList) === null || _a === void 0 ? void 0 : _a.handle) !== null && _b !== void 0 ? _b : 0, (_c = revocationConfiguration === null || revocationConfiguration === void 0 ? void 0 : revocationConfiguration.ref().address()) !== null && _c !== void 0 ? _c : 0, credentialPtr);
79
- (0, error_1.handleError)();
80
- return new anoncreds_shared_1.ObjectHandle(credentialPtr.deref());
97
+ this.nativeAnoncreds.anoncreds_create_credential(credentialDefinition, credentialDefinitionPrivate, credentialOffer, credentialRequest, attributeNames, attributeRawValues, attributeEncodedValues, (_a = revocationConfiguration === null || revocationConfiguration === void 0 ? void 0 : revocationConfiguration.ref().address()) !== null && _a !== void 0 ? _a : 0, credentialPtr);
98
+ this.handleError();
99
+ return new anoncreds_shared_1.ObjectHandle(handleReturnPointer(credentialPtr));
81
100
  }
82
101
  encodeCredentialAttributes(options) {
83
102
  const { attributeRawValues } = (0, ffi_1.serializeArguments)(options);
84
103
  const ret = (0, ffi_1.allocateStringBuffer)();
85
- library_1.nativeAnoncreds.anoncreds_encode_credential_attributes(attributeRawValues, ret);
86
- (0, error_1.handleError)();
87
- const result = ret.deref();
104
+ this.nativeAnoncreds.anoncreds_encode_credential_attributes(attributeRawValues, ret);
105
+ this.handleError();
106
+ const result = handleReturnPointer(ret, this.nativeAnoncreds.anoncreds_string_free);
88
107
  return result.split(',');
89
108
  }
90
109
  processCredential(options) {
91
110
  var _a, _b;
92
- const { credential, credentialRequestMetadata, masterSecret, credentialDefinition } = (0, ffi_1.serializeArguments)(options);
111
+ const { credential, credentialRequestMetadata, linkSecret, credentialDefinition } = (0, ffi_1.serializeArguments)(options);
93
112
  const ret = (0, ffi_1.allocatePointer)();
94
- library_1.nativeAnoncreds.anoncreds_process_credential(credential, credentialRequestMetadata, masterSecret, credentialDefinition, (_b = (_a = options.revocationRegistryDefinition) === null || _a === void 0 ? void 0 : _a.handle) !== null && _b !== void 0 ? _b : 0, ret);
95
- (0, error_1.handleError)();
96
- return new anoncreds_shared_1.ObjectHandle(ret.deref());
113
+ this.nativeAnoncreds.anoncreds_process_credential(credential, credentialRequestMetadata, linkSecret, credentialDefinition, (_b = (_a = options.revocationRegistryDefinition) === null || _a === void 0 ? void 0 : _a.handle) !== null && _b !== void 0 ? _b : 0, ret);
114
+ this.handleError();
115
+ return new anoncreds_shared_1.ObjectHandle(handleReturnPointer(ret));
97
116
  }
98
117
  createCredentialOffer(options) {
99
118
  const { schemaId, credentialDefinitionId, keyCorrectnessProof } = (0, ffi_1.serializeArguments)(options);
100
119
  const ret = (0, ffi_1.allocatePointer)();
101
- library_1.nativeAnoncreds.anoncreds_create_credential_offer(schemaId, credentialDefinitionId, keyCorrectnessProof, ret);
102
- (0, error_1.handleError)();
103
- return new anoncreds_shared_1.ObjectHandle(ret.deref());
120
+ this.nativeAnoncreds.anoncreds_create_credential_offer(schemaId, credentialDefinitionId, keyCorrectnessProof, ret);
121
+ this.handleError();
122
+ return new anoncreds_shared_1.ObjectHandle(handleReturnPointer(ret));
104
123
  }
105
124
  createCredentialRequest(options) {
106
- const { entropy, proverDid, credentialDefinition, masterSecret, masterSecretId, credentialOffer } = (0, ffi_1.serializeArguments)(options);
125
+ const { entropy, proverDid, credentialDefinition, linkSecret, linkSecretId, credentialOffer } = (0, ffi_1.serializeArguments)(options);
107
126
  const credentialRequestPtr = (0, ffi_1.allocatePointer)();
108
127
  const credentialRequestMetadataPtr = (0, ffi_1.allocatePointer)();
109
- library_1.nativeAnoncreds.anoncreds_create_credential_request(entropy, proverDid, credentialDefinition, masterSecret, masterSecretId, credentialOffer, credentialRequestPtr, credentialRequestMetadataPtr);
110
- (0, error_1.handleError)();
128
+ this.nativeAnoncreds.anoncreds_create_credential_request(entropy, proverDid, credentialDefinition, linkSecret, linkSecretId, credentialOffer, credentialRequestPtr, credentialRequestMetadataPtr);
129
+ this.handleError();
111
130
  return {
112
- credentialRequest: new anoncreds_shared_1.ObjectHandle(credentialRequestPtr.deref()),
113
- credentialRequestMetadata: new anoncreds_shared_1.ObjectHandle(credentialRequestMetadataPtr.deref()),
131
+ credentialRequest: new anoncreds_shared_1.ObjectHandle(handleReturnPointer(credentialRequestPtr)),
132
+ credentialRequestMetadata: new anoncreds_shared_1.ObjectHandle(handleReturnPointer(credentialRequestMetadataPtr)),
114
133
  };
115
134
  }
116
- createMasterSecret() {
117
- const ret = (0, ffi_1.allocatePointer)();
118
- library_1.nativeAnoncreds.anoncreds_create_master_secret(ret);
119
- (0, error_1.handleError)();
120
- return new anoncreds_shared_1.ObjectHandle(ret.deref());
135
+ createLinkSecret() {
136
+ const ret = (0, ffi_1.allocateStringBuffer)();
137
+ this.nativeAnoncreds.anoncreds_create_link_secret(ret);
138
+ this.handleError();
139
+ return handleReturnPointer(ret, this.nativeAnoncreds.anoncreds_string_free);
121
140
  }
122
141
  createPresentation(options) {
123
- const { presentationRequest, masterSecret } = (0, ffi_1.serializeArguments)(options);
142
+ const { presentationRequest, linkSecret } = (0, ffi_1.serializeArguments)(options);
124
143
  const credentialEntries = options.credentials.map((value) => {
125
144
  var _a, _b, _c;
126
145
  return (0, ffi_1.CredentialEntryStruct)({
@@ -170,14 +189,14 @@ class NodeJSAnoncreds {
170
189
  data: (0, ffi_1.ObjectHandleArray)(credentialDefinitionValues.map((o) => o.handle)),
171
190
  });
172
191
  const ret = (0, ffi_1.allocatePointer)();
173
- library_1.nativeAnoncreds.anoncreds_create_presentation(presentationRequest, credentialEntryList, credentialProveList, selfAttestNames, selfAttestValues, masterSecret, schemas, schemaIds, credentialDefinitions, credentialDefinitionIds, ret);
174
- (0, error_1.handleError)();
175
- return new anoncreds_shared_1.ObjectHandle(ret.deref());
192
+ this.nativeAnoncreds.anoncreds_create_presentation(presentationRequest, credentialEntryList, credentialProveList, selfAttestNames, selfAttestValues, linkSecret, schemas, schemaIds, credentialDefinitions, credentialDefinitionIds, ret);
193
+ this.handleError();
194
+ return new anoncreds_shared_1.ObjectHandle(handleReturnPointer(ret));
176
195
  }
177
196
  verifyPresentation(options) {
178
197
  var _a, _b, _c;
179
198
  const { presentation, presentationRequest, schemas, credentialDefinitions, revocationRegistryDefinitions, revocationStatusLists, revocationRegistryDefinitionIds, schemaIds, credentialDefinitionIds, } = (0, ffi_1.serializeArguments)(options);
180
- const nativeNonRevokedIntervalOverride = (_a = options.nonRevokedIntervalOverrides) === null || _a === void 0 ? void 0 : _a.map((value) => {
199
+ const nativeNonRevokedIntervalOverrides = (_a = options.nonRevokedIntervalOverrides) === null || _a === void 0 ? void 0 : _a.map((value) => {
181
200
  const { requestedFromTimestamp, revocationRegistryDefinitionId, overrideRevocationStatusListTimestamp } = (0, ffi_1.serializeArguments)(value);
182
201
  return (0, ffi_1.NonRevokedIntervalOverrideStruct)({
183
202
  rev_reg_def_id: revocationRegistryDefinitionId,
@@ -187,138 +206,142 @@ class NodeJSAnoncreds {
187
206
  });
188
207
  const nonRevokedIntervalOverrideList = (0, ffi_1.NonRevokedIntervalOverrideListStruct)({
189
208
  count: (_c = (_b = options.nonRevokedIntervalOverrides) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0,
190
- data: nativeNonRevokedIntervalOverride,
209
+ data: nativeNonRevokedIntervalOverrides,
191
210
  });
192
211
  const ret = (0, ffi_1.allocateInt8Buffer)();
193
- library_1.nativeAnoncreds.anoncreds_verify_presentation(presentation, presentationRequest, schemas, schemaIds, credentialDefinitions, credentialDefinitionIds, revocationRegistryDefinitions, revocationRegistryDefinitionIds, revocationStatusLists, nonRevokedIntervalOverrideList, ret);
194
- (0, error_1.handleError)();
195
- return Boolean(ret.deref());
212
+ this.nativeAnoncreds.anoncreds_verify_presentation(presentation, presentationRequest, schemas, schemaIds, credentialDefinitions, credentialDefinitionIds, revocationRegistryDefinitions, revocationRegistryDefinitionIds, revocationStatusLists, nonRevokedIntervalOverrideList, ret);
213
+ this.handleError();
214
+ return Boolean(handleReturnPointer(ret));
196
215
  }
197
216
  createRevocationStatusList(options) {
198
- const { timestamp, issuanceByDefault, revocationRegistryDefinition, revocationRegistryDefinitionId, issuerId } = (0, ffi_1.serializeArguments)(options);
217
+ const { credentialDefinition, revocationRegistryDefinitionId, revocationRegistryDefinition, revocationRegistryDefinitionPrivate, issuerId, issuanceByDefault, timestamp, } = (0, ffi_1.serializeArguments)(options);
199
218
  const ret = (0, ffi_1.allocatePointer)();
200
- library_1.nativeAnoncreds.anoncreds_create_revocation_status_list(revocationRegistryDefinitionId, revocationRegistryDefinition, issuerId, timestamp, issuanceByDefault, ret);
201
- (0, error_1.handleError)();
202
- return new anoncreds_shared_1.ObjectHandle(ret.deref());
219
+ this.nativeAnoncreds.anoncreds_create_revocation_status_list(credentialDefinition, revocationRegistryDefinitionId, revocationRegistryDefinition, revocationRegistryDefinitionPrivate, issuerId, issuanceByDefault, timestamp !== null && timestamp !== void 0 ? timestamp : -1, ret);
220
+ this.handleError();
221
+ return new anoncreds_shared_1.ObjectHandle(handleReturnPointer(ret));
203
222
  }
204
223
  updateRevocationStatusListTimestampOnly(options) {
205
224
  const { currentRevocationStatusList, timestamp } = (0, ffi_1.serializeArguments)(options);
206
225
  const ret = (0, ffi_1.allocatePointer)();
207
- library_1.nativeAnoncreds.anoncreds_update_revocation_status_list_timestamp_only(timestamp, currentRevocationStatusList, ret);
208
- (0, error_1.handleError)();
209
- return new anoncreds_shared_1.ObjectHandle(ret.deref());
226
+ this.nativeAnoncreds.anoncreds_update_revocation_status_list_timestamp_only(timestamp, currentRevocationStatusList, ret);
227
+ this.handleError();
228
+ return new anoncreds_shared_1.ObjectHandle(handleReturnPointer(ret));
210
229
  }
211
230
  updateRevocationStatusList(options) {
212
- const { currentRevocationStatusList, timestamp, revocationRegistryDefinition, revoked, issued } = (0, ffi_1.serializeArguments)(options);
231
+ const { credentialDefinition, revocationRegistryDefinition, revocationRegistryDefinitionPrivate, currentRevocationStatusList, issued, revoked, timestamp, } = (0, ffi_1.serializeArguments)(options);
213
232
  const ret = (0, ffi_1.allocatePointer)();
214
- library_1.nativeAnoncreds.anoncreds_update_revocation_status_list(timestamp, issued, revoked, revocationRegistryDefinition, currentRevocationStatusList, ret);
215
- (0, error_1.handleError)();
216
- return new anoncreds_shared_1.ObjectHandle(ret.deref());
233
+ this.nativeAnoncreds.anoncreds_update_revocation_status_list(credentialDefinition, revocationRegistryDefinition, revocationRegistryDefinitionPrivate, currentRevocationStatusList, issued, revoked, timestamp !== null && timestamp !== void 0 ? timestamp : -1, ret);
234
+ this.handleError();
235
+ return new anoncreds_shared_1.ObjectHandle(handleReturnPointer(ret));
217
236
  }
218
237
  createRevocationRegistryDefinition(options) {
219
238
  const { credentialDefinition, credentialDefinitionId, tag, revocationRegistryType, issuerId, maximumCredentialNumber, tailsDirectoryPath, } = (0, ffi_1.serializeArguments)(options);
220
239
  const revocationRegistryDefinitionPtr = (0, ffi_1.allocatePointer)();
221
240
  const revocationRegistryDefinitionPrivate = (0, ffi_1.allocatePointer)();
222
- library_1.nativeAnoncreds.anoncreds_create_revocation_registry_def(credentialDefinition, credentialDefinitionId, issuerId, tag, revocationRegistryType, maximumCredentialNumber, tailsDirectoryPath, revocationRegistryDefinitionPtr, revocationRegistryDefinitionPrivate);
223
- (0, error_1.handleError)();
241
+ this.nativeAnoncreds.anoncreds_create_revocation_registry_def(credentialDefinition, credentialDefinitionId, issuerId, tag, revocationRegistryType, maximumCredentialNumber, tailsDirectoryPath, revocationRegistryDefinitionPtr, revocationRegistryDefinitionPrivate);
242
+ this.handleError();
224
243
  return {
225
- revocationRegistryDefinition: new anoncreds_shared_1.ObjectHandle(revocationRegistryDefinitionPtr.deref()),
226
- revocationRegistryDefinitionPrivate: new anoncreds_shared_1.ObjectHandle(revocationRegistryDefinitionPrivate.deref()),
244
+ revocationRegistryDefinition: new anoncreds_shared_1.ObjectHandle(handleReturnPointer(revocationRegistryDefinitionPtr)),
245
+ revocationRegistryDefinitionPrivate: new anoncreds_shared_1.ObjectHandle(handleReturnPointer(revocationRegistryDefinitionPrivate)),
227
246
  };
228
247
  }
229
248
  createOrUpdateRevocationState(options) {
230
249
  var _a, _b;
231
250
  const { revocationRegistryDefinition, revocationStatusList, revocationRegistryIndex, tailsPath } = (0, ffi_1.serializeArguments)(options);
232
- const previousRevocationState = (_a = options.previousRevocationState) !== null && _a !== void 0 ? _a : new anoncreds_shared_1.ObjectHandle(0);
233
- const previousRevocationStatusList = (_b = options.previousRevocationStatusList) !== null && _b !== void 0 ? _b : new anoncreds_shared_1.ObjectHandle(0);
251
+ const oldRevocationState = (_a = options.oldRevocationState) !== null && _a !== void 0 ? _a : new anoncreds_shared_1.ObjectHandle(0);
252
+ const oldRevocationStatusList = (_b = options.oldRevocationStatusList) !== null && _b !== void 0 ? _b : new anoncreds_shared_1.ObjectHandle(0);
234
253
  const ret = (0, ffi_1.allocatePointer)();
235
- library_1.nativeAnoncreds.anoncreds_create_or_update_revocation_state(revocationRegistryDefinition, revocationStatusList, revocationRegistryIndex, tailsPath, previousRevocationStatusList.handle, previousRevocationState.handle, ret);
236
- (0, error_1.handleError)();
237
- return new anoncreds_shared_1.ObjectHandle(ret.deref());
254
+ this.nativeAnoncreds.anoncreds_create_or_update_revocation_state(revocationRegistryDefinition, revocationStatusList, revocationRegistryIndex, tailsPath, oldRevocationState.handle, oldRevocationStatusList.handle, ret);
255
+ this.handleError();
256
+ return new anoncreds_shared_1.ObjectHandle(handleReturnPointer(ret));
238
257
  }
239
258
  version() {
240
- return library_1.nativeAnoncreds.anoncreds_version();
259
+ return this.nativeAnoncreds.anoncreds_version();
260
+ }
261
+ setDefaultLogger() {
262
+ this.nativeAnoncreds.anoncreds_set_default_logger();
263
+ this.handleError();
241
264
  }
242
265
  // This should be called when a function returns a non-zero code
243
266
  getCurrentError() {
244
267
  const ret = (0, ffi_1.allocateStringBuffer)();
245
- library_1.nativeAnoncreds.anoncreds_get_current_error(ret);
246
- (0, error_1.handleError)();
247
- return ret.deref();
268
+ this.nativeAnoncreds.anoncreds_get_current_error(ret);
269
+ this.handleError();
270
+ return handleReturnPointer(ret, this.nativeAnoncreds.anoncreds_string_free);
248
271
  }
249
272
  objectFromJson(method, options) {
250
273
  const ret = (0, ffi_1.allocatePointer)();
251
274
  const byteBuffer = anoncreds_shared_1.ByteBuffer.fromUint8Array(new util_1.TextEncoder().encode(options.json));
252
- (0, error_1.handleError)();
275
+ this.handleError();
253
276
  method(byteBuffer, ret);
254
- return new anoncreds_shared_1.ObjectHandle(ret.deref());
277
+ return new anoncreds_shared_1.ObjectHandle(handleReturnPointer(ret));
255
278
  }
256
279
  presentationRequestFromJson(options) {
257
- return this.objectFromJson(library_1.nativeAnoncreds.anoncreds_presentation_request_from_json, options);
258
- }
259
- masterSecretFromJson(options) {
260
- return this.objectFromJson(library_1.nativeAnoncreds.anoncreds_master_secret_from_json, options);
280
+ return this.objectFromJson(this.nativeAnoncreds.anoncreds_presentation_request_from_json, options);
261
281
  }
262
282
  credentialRequestFromJson(options) {
263
- return this.objectFromJson(library_1.nativeAnoncreds.anoncreds_credential_request_from_json, options);
283
+ return this.objectFromJson(this.nativeAnoncreds.anoncreds_credential_request_from_json, options);
264
284
  }
265
285
  credentialRequestMetadataFromJson(options) {
266
- return this.objectFromJson(library_1.nativeAnoncreds.anoncreds_credential_request_metadata_from_json, options);
286
+ return this.objectFromJson(this.nativeAnoncreds.anoncreds_credential_request_metadata_from_json, options);
267
287
  }
268
288
  revocationRegistryDefinitionFromJson(options) {
269
- return this.objectFromJson(library_1.nativeAnoncreds.anoncreds_revocation_registry_definition_from_json, options);
289
+ return this.objectFromJson(this.nativeAnoncreds.anoncreds_revocation_registry_definition_from_json, options);
270
290
  }
271
291
  revocationRegistryFromJson(options) {
272
- return this.objectFromJson(library_1.nativeAnoncreds.anoncreds_revocation_registry_from_json, options);
292
+ return this.objectFromJson(this.nativeAnoncreds.anoncreds_revocation_registry_from_json, options);
293
+ }
294
+ revocationStatusListFromJson(options) {
295
+ return this.objectFromJson(this.nativeAnoncreds.anoncreds_revocation_status_list_from_json, options);
273
296
  }
274
297
  revocationStateFromJson(options) {
275
- return this.objectFromJson(library_1.nativeAnoncreds.anoncreds_revocation_state_from_json, options);
298
+ return this.objectFromJson(this.nativeAnoncreds.anoncreds_revocation_state_from_json, options);
276
299
  }
277
300
  presentationFromJson(options) {
278
- return this.objectFromJson(library_1.nativeAnoncreds.anoncreds_presentation_from_json, options);
301
+ return this.objectFromJson(this.nativeAnoncreds.anoncreds_presentation_from_json, options);
279
302
  }
280
303
  credentialOfferFromJson(options) {
281
- return this.objectFromJson(library_1.nativeAnoncreds.anoncreds_credential_offer_from_json, options);
304
+ return this.objectFromJson(this.nativeAnoncreds.anoncreds_credential_offer_from_json, options);
282
305
  }
283
306
  schemaFromJson(options) {
284
- return this.objectFromJson(library_1.nativeAnoncreds.anoncreds_schema_from_json, options);
307
+ return this.objectFromJson(this.nativeAnoncreds.anoncreds_schema_from_json, options);
285
308
  }
286
309
  credentialFromJson(options) {
287
- return this.objectFromJson(library_1.nativeAnoncreds.anoncreds_credential_from_json, options);
310
+ return this.objectFromJson(this.nativeAnoncreds.anoncreds_credential_from_json, options);
288
311
  }
289
312
  revocationRegistryDefinitionPrivateFromJson(options) {
290
- return this.objectFromJson(library_1.nativeAnoncreds.anoncreds_revocation_registry_definition_private_from_json, options);
291
- }
292
- revocationRegistryDeltaFromJson(options) {
293
- return this.objectFromJson(library_1.nativeAnoncreds.anoncreds_revocation_registry_delta_from_json, options);
313
+ return this.objectFromJson(this.nativeAnoncreds.anoncreds_revocation_registry_definition_private_from_json, options);
294
314
  }
295
315
  credentialDefinitionFromJson(options) {
296
- return this.objectFromJson(library_1.nativeAnoncreds.anoncreds_credential_definition_from_json, options);
316
+ return this.objectFromJson(this.nativeAnoncreds.anoncreds_credential_definition_from_json, options);
297
317
  }
298
318
  credentialDefinitionPrivateFromJson(options) {
299
- return this.objectFromJson(library_1.nativeAnoncreds.anoncreds_credential_definition_private_from_json, options);
319
+ return this.objectFromJson(this.nativeAnoncreds.anoncreds_credential_definition_private_from_json, options);
300
320
  }
301
321
  keyCorrectnessProofFromJson(options) {
302
- return this.objectFromJson(library_1.nativeAnoncreds.anoncreds_key_correctness_proof_from_json, options);
322
+ return this.objectFromJson(this.nativeAnoncreds.anoncreds_key_correctness_proof_from_json, options);
303
323
  }
304
324
  getJson(options) {
305
325
  const ret = (0, ffi_1.allocateByteBuffer)();
306
326
  const { objectHandle } = (0, ffi_1.serializeArguments)(options);
307
- library_1.nativeAnoncreds.anoncreds_object_get_json(objectHandle, ret);
308
- (0, error_1.handleError)();
309
- const output = new Uint8Array((0, ffi_1.byteBufferToBuffer)(ret.deref()));
310
- return new util_1.TextDecoder().decode(output);
327
+ this.nativeAnoncreds.anoncreds_object_get_json(objectHandle, ret);
328
+ this.handleError();
329
+ const returnValue = handleReturnPointer(ret);
330
+ const jsonAsArray = new Uint8Array((0, ffi_1.byteBufferToBuffer)(returnValue));
331
+ const output = new util_1.TextDecoder().decode(jsonAsArray);
332
+ this.nativeAnoncreds.anoncreds_buffer_free(returnValue.data);
333
+ return output;
311
334
  }
312
335
  getTypeName(options) {
313
336
  const { objectHandle } = (0, ffi_1.serializeArguments)(options);
314
337
  const ret = (0, ffi_1.allocateStringBuffer)();
315
- library_1.nativeAnoncreds.anoncreds_object_get_type_name(objectHandle, ret);
316
- (0, error_1.handleError)();
317
- return ret.deref();
338
+ this.nativeAnoncreds.anoncreds_object_get_type_name(objectHandle, ret);
339
+ this.handleError();
340
+ return handleReturnPointer(ret, this.nativeAnoncreds.anoncreds_string_free);
318
341
  }
319
342
  objectFree(options) {
320
- library_1.nativeAnoncreds.anoncreds_object_free(options.objectHandle.handle);
321
- (0, error_1.handleError)();
343
+ this.nativeAnoncreds.anoncreds_object_free(options.objectHandle.handle);
344
+ this.handleError();
322
345
  }
323
346
  }
324
347
  exports.NodeJSAnoncreds = NodeJSAnoncreds;