engage-engine 1.233.90730006 → 1.234.90740002

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/engage.cpp CHANGED
@@ -1161,6 +1161,27 @@ NAN_METHOD(getDeviceId)
1161
1161
  }
1162
1162
 
1163
1163
 
1164
+ //--------------------------------------------------------
1165
+ NAN_METHOD(verifyRiff)
1166
+ {
1167
+ NANRETI(engageVerifyRiff(STRVAL(0)));
1168
+ }
1169
+
1170
+
1171
+ //--------------------------------------------------------
1172
+ NAN_METHOD(getRiffDescriptor)
1173
+ {
1174
+ const char *rc = engageGetRiffDescriptor(STRVAL(0));
1175
+
1176
+ if(rc == nullptr)
1177
+ {
1178
+ rc = "";
1179
+ }
1180
+
1181
+ NANRETS(rc);
1182
+ }
1183
+
1184
+
1164
1185
  //--------------------------------------------------------
1165
1186
  NAN_MODULE_INIT(Init)
1166
1187
  {
@@ -1236,6 +1257,9 @@ NAN_MODULE_INIT(Init)
1236
1257
  ENGAGE_BINDING(isCryptoFipsValidated);
1237
1258
 
1238
1259
  ENGAGE_BINDING(getDeviceId);
1260
+
1261
+ ENGAGE_BINDING(verifyRiff);
1262
+ ENGAGE_BINDING(getRiffDescriptor);
1239
1263
  }
1240
1264
 
1241
1265
  NODE_MODULE(engage, Init)
@@ -2188,6 +2188,196 @@ namespace AppConfigurationObjects
2188
2188
  }
2189
2189
 
2190
2190
 
2191
+ //-----------------------------------------------------------
2192
+ JSON_SERIALIZED_CLASS(TransportImpairment)
2193
+ /**
2194
+ * @brief Description of a transport impairment
2195
+ *
2196
+ * Helper C++ class to serialize and de-serialize TransportImpairment JSON.
2197
+ *
2198
+ * Example: @include[doc] examples/TransportImpairment.json
2199
+ *
2200
+ */
2201
+ class TransportImpairment : public ConfigurationObjectBase
2202
+ {
2203
+ IMPLEMENT_JSON_SERIALIZATION()
2204
+ IMPLEMENT_JSON_DOCUMENTATION(TransportImpairment)
2205
+
2206
+ public:
2207
+ int applicationPercentage;
2208
+ int jitterMs;
2209
+ int lossPercentage;
2210
+
2211
+ TransportImpairment()
2212
+ {
2213
+ clear();
2214
+ }
2215
+
2216
+ void clear()
2217
+ {
2218
+ applicationPercentage = 0;
2219
+ jitterMs = 0;
2220
+ lossPercentage = 0;
2221
+ }
2222
+ };
2223
+
2224
+ static void to_json(nlohmann::json& j, const TransportImpairment& p)
2225
+ {
2226
+ j = nlohmann::json{
2227
+ TOJSON_IMPL(applicationPercentage),
2228
+ TOJSON_IMPL(jitterMs),
2229
+ TOJSON_IMPL(lossPercentage)
2230
+ };
2231
+ }
2232
+ static void from_json(const nlohmann::json& j, TransportImpairment& p)
2233
+ {
2234
+ p.clear();
2235
+ getOptional<int>("applicationPercentage", p.applicationPercentage, j, 0);
2236
+ getOptional<int>("jitterMs", p.jitterMs, j, 0);
2237
+ getOptional<int>("lossPercentage", p.lossPercentage, j, 0);
2238
+ }
2239
+
2240
+ //-----------------------------------------------------------
2241
+ JSON_SERIALIZED_CLASS(NsmNetworking)
2242
+ /**
2243
+ * @brief NsmNetworking
2244
+ *
2245
+ * Helper C++ class to serialize and de-serialize NsmNetworking JSON
2246
+ *
2247
+ * Example: @include[doc] examples/NsmNetworking.json
2248
+ *
2249
+ */
2250
+ class NsmNetworking : public ConfigurationObjectBase
2251
+ {
2252
+ IMPLEMENT_JSON_SERIALIZATION()
2253
+ IMPLEMENT_JSON_DOCUMENTATION(NsmNetworking)
2254
+
2255
+ public:
2256
+ std::string interfaceName;
2257
+ NetworkAddress address;
2258
+ int ttl;
2259
+ int tos;
2260
+ int txOversend;
2261
+ TransportImpairment rxImpairment;
2262
+ TransportImpairment txImpairment;
2263
+ std::string cryptoPassword;
2264
+
2265
+ NsmNetworking()
2266
+ {
2267
+ clear();
2268
+ }
2269
+
2270
+ void clear()
2271
+ {
2272
+ interfaceName.clear();
2273
+ address.clear();
2274
+ ttl = 1;
2275
+ tos = 56;
2276
+ txOversend = 0;
2277
+ rxImpairment.clear();
2278
+ txImpairment.clear();
2279
+ cryptoPassword.clear();
2280
+ }
2281
+ };
2282
+
2283
+ static void to_json(nlohmann::json& j, const NsmNetworking& p)
2284
+ {
2285
+ j = nlohmann::json{
2286
+ TOJSON_IMPL(interfaceName),
2287
+ TOJSON_IMPL(address),
2288
+ TOJSON_IMPL(ttl),
2289
+ TOJSON_IMPL(tos),
2290
+ TOJSON_IMPL(txOversend),
2291
+ TOJSON_IMPL(rxImpairment),
2292
+ TOJSON_IMPL(txImpairment),
2293
+ TOJSON_IMPL(cryptoPassword)
2294
+ };
2295
+ }
2296
+ static void from_json(const nlohmann::json& j, NsmNetworking& p)
2297
+ {
2298
+ p.clear();
2299
+ getOptional("interfaceName", p.interfaceName, j, EMPTY_STRING);
2300
+ getOptional<NetworkAddress>("address", p.address, j);
2301
+ getOptional<int>("ttl", p.ttl, j, 1);
2302
+ getOptional<int>("tos", p.tos, j, 56);
2303
+ getOptional<int>("txOversend", p.txOversend, j, 0);
2304
+ getOptional<TransportImpairment>("rxImpairment", p.rxImpairment, j);
2305
+ getOptional<TransportImpairment>("txImpairment", p.txImpairment, j);
2306
+ getOptional("cryptoPassword", p.cryptoPassword, j, EMPTY_STRING);
2307
+ }
2308
+
2309
+
2310
+ //-----------------------------------------------------------
2311
+ JSON_SERIALIZED_CLASS(NsmConfiguration)
2312
+ /**
2313
+ * @brief NsmConfiguration
2314
+ *
2315
+ * Helper C++ class to serialize and de-serialize NsmConfiguration JSON
2316
+ *
2317
+ * Example: @include[doc] examples/NsmConfiguration.json
2318
+ *
2319
+ */
2320
+ class NsmConfiguration : public ConfigurationObjectBase
2321
+ {
2322
+ IMPLEMENT_JSON_SERIALIZATION()
2323
+ IMPLEMENT_JSON_DOCUMENTATION(NsmConfiguration)
2324
+
2325
+ public:
2326
+
2327
+ std::string id;
2328
+ bool favorUptime;
2329
+ NsmNetworking networking;
2330
+ std::vector<std::string> resources;
2331
+ int tokenStart;
2332
+ int tokenEnd;
2333
+ int intervalSecs;
2334
+ int transitionSecsFactor;
2335
+
2336
+ NsmConfiguration()
2337
+ {
2338
+ clear();
2339
+ }
2340
+
2341
+ void clear()
2342
+ {
2343
+ id.clear();
2344
+ favorUptime = false;
2345
+ networking.clear();
2346
+ resources.clear();
2347
+ tokenStart = 1000000;
2348
+ tokenEnd = 2000000;
2349
+ intervalSecs = 1;
2350
+ transitionSecsFactor = 3;
2351
+ }
2352
+ };
2353
+
2354
+ static void to_json(nlohmann::json& j, const NsmConfiguration& p)
2355
+ {
2356
+ j = nlohmann::json{
2357
+ TOJSON_IMPL(id),
2358
+ TOJSON_IMPL(favorUptime),
2359
+ TOJSON_IMPL(networking),
2360
+ TOJSON_IMPL(resources),
2361
+ TOJSON_IMPL(tokenStart),
2362
+ TOJSON_IMPL(tokenEnd),
2363
+ TOJSON_IMPL(intervalSecs),
2364
+ TOJSON_IMPL(transitionSecsFactor)
2365
+ };
2366
+ }
2367
+ static void from_json(const nlohmann::json& j, NsmConfiguration& p)
2368
+ {
2369
+ p.clear();
2370
+ getOptional("id", p.id, j);
2371
+ getOptional<bool>("favorUptime", p.favorUptime, j, false);
2372
+ getOptional<NsmNetworking>("networking", p.networking, j);
2373
+ getOptional<std::vector<std::string>>("resources", p.resources, j);
2374
+ getOptional<int>("tokenStart", p.tokenStart, j, 1000000);
2375
+ getOptional<int>("tokenEnd", p.tokenEnd, j, 2000000);
2376
+ getOptional<int>("intervalSecs", p.intervalSecs, j, 1);
2377
+ getOptional<int>("transitionSecsFactor", p.transitionSecsFactor, j, 3);
2378
+ }
2379
+
2380
+
2191
2381
  //-----------------------------------------------------------
2192
2382
  JSON_SERIALIZED_CLASS(Rallypoint)
2193
2383
  /**
@@ -2564,55 +2754,6 @@ namespace AppConfigurationObjects
2564
2754
  getOptional("extra", p.extra, j);
2565
2755
  }
2566
2756
 
2567
- //-----------------------------------------------------------
2568
- JSON_SERIALIZED_CLASS(TransportImpairment)
2569
- /**
2570
- * @brief Description of a transport impairment
2571
- *
2572
- * Helper C++ class to serialize and de-serialize TransportImpairment JSON.
2573
- *
2574
- * Example: @include[doc] examples/TransportImpairment.json
2575
- *
2576
- */
2577
- class TransportImpairment : public ConfigurationObjectBase
2578
- {
2579
- IMPLEMENT_JSON_SERIALIZATION()
2580
- IMPLEMENT_JSON_DOCUMENTATION(NetworkDeviceDescriptor)
2581
-
2582
- public:
2583
- int applicationPercentage;
2584
- int jitterMs;
2585
- int lossPercentage;
2586
-
2587
- TransportImpairment()
2588
- {
2589
- clear();
2590
- }
2591
-
2592
- void clear()
2593
- {
2594
- applicationPercentage = 0;
2595
- jitterMs = 0;
2596
- lossPercentage = 0;
2597
- }
2598
- };
2599
-
2600
- static void to_json(nlohmann::json& j, const TransportImpairment& p)
2601
- {
2602
- j = nlohmann::json{
2603
- TOJSON_IMPL(applicationPercentage),
2604
- TOJSON_IMPL(jitterMs),
2605
- TOJSON_IMPL(lossPercentage)
2606
- };
2607
- }
2608
- static void from_json(const nlohmann::json& j, TransportImpairment& p)
2609
- {
2610
- p.clear();
2611
- getOptional<int>("applicationPercentage", p.applicationPercentage, j, 0);
2612
- getOptional<int>("jitterMs", p.jitterMs, j, 0);
2613
- getOptional<int>("lossPercentage", p.lossPercentage, j, 0);
2614
- }
2615
-
2616
2757
  //-----------------------------------------------------------
2617
2758
  JSON_SERIALIZED_CLASS(TxAudio)
2618
2759
  /**
@@ -7746,6 +7887,9 @@ namespace AppConfigurationObjects
7746
7887
  /** @brief [Optional] Settings for websocket operation */
7747
7888
  RallypointWebsocketSettings websocket;
7748
7889
 
7890
+ /** @brief [Optional] Settings for NSM. */
7891
+ NsmConfiguration nsm;
7892
+
7749
7893
  RallypointServer()
7750
7894
  {
7751
7895
  clear();
@@ -7799,6 +7943,7 @@ namespace AppConfigurationObjects
7799
7943
  peerRtTestIntervalMs = 60000;
7800
7944
  peerRtBehaviors.clear();
7801
7945
  websocket.clear();
7946
+ nsm.clear();
7802
7947
  }
7803
7948
  };
7804
7949
 
@@ -7850,7 +7995,8 @@ namespace AppConfigurationObjects
7850
7995
  TOJSON_IMPL(maxOutboundPeerConnectionIntervalDeltaSecs),
7851
7996
  TOJSON_IMPL(peerRtTestIntervalMs),
7852
7997
  TOJSON_IMPL(peerRtBehaviors),
7853
- TOJSON_IMPL(websocket)
7998
+ TOJSON_IMPL(websocket),
7999
+ TOJSON_IMPL(nsm)
7854
8000
  };
7855
8001
  }
7856
8002
  static void from_json(const nlohmann::json& j, RallypointServer& p)
@@ -7902,6 +8048,7 @@ namespace AppConfigurationObjects
7902
8048
  getOptional<int>("peerRtTestIntervalMs", p.peerRtTestIntervalMs, j, 60000);
7903
8049
  getOptional<std::vector<RallypointRpRtTimingBehavior>>("peerRtBehaviors", p.peerRtBehaviors, j);
7904
8050
  getOptional<RallypointWebsocketSettings>("websocket", p.websocket, j);
8051
+ getOptional<NsmConfiguration>("nsm", p.nsm, j);
7905
8052
  }
7906
8053
 
7907
8054
  //-----------------------------------------------------------
@@ -7978,6 +8125,7 @@ namespace AppConfigurationObjects
7978
8125
  getOptional<uint32_t>("configurationVersion", p.configurationVersion, j, 0);
7979
8126
  }
7980
8127
 
8128
+
7981
8129
  //-----------------------------------------------------------
7982
8130
  class TimelineEvent
7983
8131
  {
@@ -8420,6 +8568,94 @@ namespace AppConfigurationObjects
8420
8568
  getOptional<std::string>("fingerprint", p.fingerprint, j, EMPTY_STRING);
8421
8569
  }
8422
8570
 
8571
+
8572
+ //-----------------------------------------------------------
8573
+ JSON_SERIALIZED_CLASS(RiffDescriptor)
8574
+ /**
8575
+ * @brief Helper class for serializing and deserializing the RiffDescriptor JSON
8576
+ *
8577
+ * Helper C++ class to serialize and de-serialize RiffDescriptor JSON
8578
+ *
8579
+ * Example: @include[doc] examples/RiffDescriptor.json
8580
+ *
8581
+ * @see TODO: engageGetRiffDescriptor
8582
+ */
8583
+ class RiffDescriptor : public ConfigurationObjectBase
8584
+ {
8585
+ IMPLEMENT_JSON_SERIALIZATION()
8586
+ IMPLEMENT_JSON_DOCUMENTATION(RiffDescriptor)
8587
+
8588
+ public:
8589
+ /** @brief Name of the RIFF file. */
8590
+ std::string file;
8591
+
8592
+ /** @brief True if the ECDSA signature is verified. */
8593
+ bool verified;
8594
+
8595
+ /** @brief Number of audio channels */
8596
+ int channels;
8597
+
8598
+ /** @brief Number of audio samples */
8599
+ int sampleCount;
8600
+
8601
+ /** @brief [Optional] Meta data associated with the file - typically a stringified JSON object. */
8602
+ std::string meta;
8603
+
8604
+ /** @brief [Optional] X.509 certificate in PEM format used to sign the RIFF file. */
8605
+ std::string certPem;
8606
+
8607
+ /** @brief [Optional] X.509 certificate parsed into a CertificateDescriptor object. */
8608
+ CertificateDescriptor certDescriptor;
8609
+
8610
+ /** @brief [Optional] ECDSA signature */
8611
+ std::string signature;
8612
+
8613
+ RiffDescriptor()
8614
+ {
8615
+ clear();
8616
+ }
8617
+
8618
+ void clear()
8619
+ {
8620
+ file.clear();
8621
+ verified = false;
8622
+ channels = 0;
8623
+ sampleCount = 0;
8624
+ meta.clear();
8625
+ certPem.clear();
8626
+ certDescriptor.clear();
8627
+ signature.clear();
8628
+ }
8629
+ };
8630
+
8631
+ static void to_json(nlohmann::json& j, const RiffDescriptor& p)
8632
+ {
8633
+ j = nlohmann::json{
8634
+ TOJSON_IMPL(file),
8635
+ TOJSON_IMPL(verified),
8636
+ TOJSON_IMPL(channels),
8637
+ TOJSON_IMPL(sampleCount),
8638
+ TOJSON_IMPL(meta),
8639
+ TOJSON_IMPL(certPem),
8640
+ TOJSON_IMPL(certDescriptor),
8641
+ TOJSON_IMPL(signature)
8642
+ };
8643
+ }
8644
+
8645
+ static void from_json(const nlohmann::json& j, RiffDescriptor& p)
8646
+ {
8647
+ p.clear();
8648
+ FROMJSON_IMPL(file, std::string, EMPTY_STRING);
8649
+ FROMJSON_IMPL(verified, bool, false);
8650
+ FROMJSON_IMPL(channels, int, 0);
8651
+ FROMJSON_IMPL(sampleCount, int, 0);
8652
+ FROMJSON_IMPL(meta, std::string, EMPTY_STRING);
8653
+ FROMJSON_IMPL(certPem, std::string, EMPTY_STRING);
8654
+ getOptional<CertificateDescriptor>("certDescriptor", p.certDescriptor, j);
8655
+ FROMJSON_IMPL(signature, std::string, EMPTY_STRING);
8656
+ }
8657
+
8658
+
8423
8659
  //-----------------------------------------------------------
8424
8660
  JSON_SERIALIZED_CLASS(BridgeCreationDetail)
8425
8661
  /**
@@ -9514,6 +9750,9 @@ namespace AppConfigurationObjects
9514
9750
  /** @brief Address and port of the proxy */
9515
9751
  NetworkAddress proxy;
9516
9752
 
9753
+ /** @brief [Optional] Settings for NSM. */
9754
+ NsmConfiguration nsm;
9755
+
9517
9756
  LingoServerConfiguration()
9518
9757
  {
9519
9758
  clear();
@@ -9532,9 +9771,10 @@ namespace AppConfigurationObjects
9532
9771
  certStoreFileName.clear();
9533
9772
  certStorePasswordHex.clear();
9534
9773
  enginePolicy.clear();
9535
- configurationCheckSignalName = "rts.6cc0651.${id}";
9774
+ configurationCheckSignalName = "rts.22f4ec3.${id}";
9536
9775
  fipsCrypto.clear();
9537
9776
  proxy.clear();
9777
+ nsm.clear();
9538
9778
  }
9539
9779
  };
9540
9780
 
@@ -9554,7 +9794,8 @@ namespace AppConfigurationObjects
9554
9794
  TOJSON_IMPL(enginePolicy),
9555
9795
  TOJSON_IMPL(configurationCheckSignalName),
9556
9796
  TOJSON_IMPL(fipsCrypto),
9557
- TOJSON_IMPL(proxy)
9797
+ TOJSON_IMPL(proxy),
9798
+ TOJSON_IMPL(nsm)
9558
9799
  };
9559
9800
  }
9560
9801
  static void from_json(const nlohmann::json& j, LingoServerConfiguration& p)
@@ -9571,9 +9812,10 @@ namespace AppConfigurationObjects
9571
9812
  getOptional<std::string>("certStoreFileName", p.certStoreFileName, j);
9572
9813
  getOptional<std::string>("certStorePasswordHex", p.certStorePasswordHex, j);
9573
9814
  j.at("enginePolicy").get_to(p.enginePolicy);
9574
- getOptional<std::string>("configurationCheckSignalName", p.configurationCheckSignalName, j, "rts.6cc0651.${id}");
9815
+ getOptional<std::string>("configurationCheckSignalName", p.configurationCheckSignalName, j, "rts.22f4ec3.${id}");
9575
9816
  getOptional<FipsCryptoSettings>("fipsCrypo", p.fipsCrypto, j);
9576
9817
  getOptional<NetworkAddress>("proxy", p.proxy, j);
9818
+ getOptional<NsmConfiguration>("nsm", p.nsm, j);
9577
9819
  }
9578
9820
 
9579
9821
 
@@ -9938,7 +10180,10 @@ namespace AppConfigurationObjects
9938
10180
  std::string configurationCheckSignalName;
9939
10181
 
9940
10182
  /** @brief [Optional] Settings for the FIPS crypto. */
9941
- FipsCryptoSettings fipsCrypto;
10183
+ FipsCryptoSettings fipsCrypto;
10184
+
10185
+ /** @brief [Optional] Settings for NSM. */
10186
+ NsmConfiguration nsm;
9942
10187
 
9943
10188
  BridgingServerConfiguration()
9944
10189
  {
@@ -9961,6 +10206,7 @@ namespace AppConfigurationObjects
9961
10206
  enginePolicy.clear();
9962
10207
  configurationCheckSignalName = "rts.6cc0651.${id}";
9963
10208
  fipsCrypto.clear();
10209
+ nsm.clear();
9964
10210
  }
9965
10211
  };
9966
10212
 
@@ -9980,7 +10226,8 @@ namespace AppConfigurationObjects
9980
10226
  TOJSON_IMPL(certStorePasswordHex),
9981
10227
  TOJSON_IMPL(enginePolicy),
9982
10228
  TOJSON_IMPL(configurationCheckSignalName),
9983
- TOJSON_IMPL(fipsCrypto)
10229
+ TOJSON_IMPL(fipsCrypto),
10230
+ TOJSON_IMPL(nsm)
9984
10231
  };
9985
10232
  }
9986
10233
  static void from_json(const nlohmann::json& j, BridgingServerConfiguration& p)
@@ -10000,6 +10247,7 @@ namespace AppConfigurationObjects
10000
10247
  j.at("enginePolicy").get_to(p.enginePolicy);
10001
10248
  getOptional<std::string>("configurationCheckSignalName", p.configurationCheckSignalName, j, "rts.6cc0651.${id}");
10002
10249
  getOptional<FipsCryptoSettings>("fipsCrypto", p.fipsCrypto, j);
10250
+ getOptional<NsmConfiguration>("nsm", p.nsm, j);
10003
10251
  }
10004
10252
 
10005
10253
 
@@ -10220,6 +10468,9 @@ namespace AppConfigurationObjects
10220
10468
  /** @brief [Optional] Settings for the FIPS crypto. */
10221
10469
  FipsCryptoSettings fipsCrypto;
10222
10470
 
10471
+ /** @brief [Optional] Settings for NSM. */
10472
+ NsmConfiguration nsm;
10473
+
10223
10474
  EarServerConfiguration()
10224
10475
  {
10225
10476
  clear();
@@ -10240,6 +10491,7 @@ namespace AppConfigurationObjects
10240
10491
  enginePolicy.clear();
10241
10492
  configurationCheckSignalName = "rts.9a164fa.${id}";
10242
10493
  fipsCrypto.clear();
10494
+ nsm.clear();
10243
10495
  }
10244
10496
  };
10245
10497
 
@@ -10258,7 +10510,8 @@ namespace AppConfigurationObjects
10258
10510
  TOJSON_IMPL(certStorePasswordHex),
10259
10511
  TOJSON_IMPL(enginePolicy),
10260
10512
  TOJSON_IMPL(configurationCheckSignalName),
10261
- TOJSON_IMPL(fipsCrypto)
10513
+ TOJSON_IMPL(fipsCrypto),
10514
+ TOJSON_IMPL(nsm)
10262
10515
  };
10263
10516
  }
10264
10517
  static void from_json(const nlohmann::json& j, EarServerConfiguration& p)
@@ -10275,7 +10528,9 @@ namespace AppConfigurationObjects
10275
10528
  getOptional<std::string>("certStoreFileName", p.certStoreFileName, j);
10276
10529
  getOptional<std::string>("certStorePasswordHex", p.certStorePasswordHex, j);
10277
10530
  j.at("enginePolicy").get_to(p.enginePolicy);
10278
- getOptional<std::string>("configurationCheckSignalName", p.configurationCheckSignalName, j, "rts.6cc0651.${id}");
10531
+ getOptional<std::string>("configurationCheckSignalName", p.configurationCheckSignalName, j, "rts.9a164fa.${id}");
10532
+ getOptional<FipsCryptoSettings>("fipsCrypto", p.fipsCrypto, j);
10533
+ getOptional<NsmConfiguration>("nsm", p.nsm, j);
10279
10534
  }
10280
10535
 
10281
10536
  //-----------------------------------------------------------
@@ -1259,9 +1259,23 @@ ENGAGE_API int engageSetMissionId(const char * _Nullable missionId);
1259
1259
 
1260
1260
 
1261
1261
  /**
1262
- * @brief [SYNC] Opens/creates a certificate store
1262
+ * @brief [SYNC] Creates a certificate store
1263
1263
  *
1264
- * This function opens (or creates) a certificate store and makes it the active certificate store used for the Engine. The function fails
1264
+ * This function creates a certificate store and makes it the active certificate store used for the Engine.
1265
+ *
1266
+ * No events are generated by this API call.
1267
+ *
1268
+ * @param fileName The full path to the file
1269
+ * @param passwordHexByteString Password as a hex byte string (if the file is to be password protected with an additional application password)
1270
+ * @return ENGAGE_RESULT_OK if the store was opened
1271
+ */
1272
+ ENGAGE_API int engageCreateCertStore(const char * _Nonnull fileName, const char * _Nullable passwordHexByteString);
1273
+
1274
+
1275
+ /**
1276
+ * @brief [SYNC] Opens a certificate store
1277
+ *
1278
+ * This function opensa certificate store and makes it the active certificate store used for the Engine. The function fails
1265
1279
  * if the file already exists and it cannot be opened due to file corruption, password mismatch, or invalid content.
1266
1280
  *
1267
1281
  * No events are generated by this API call.
@@ -1612,6 +1626,34 @@ ENGAGE_API int engageIsCryptoFipsValidated(void);
1612
1626
  */
1613
1627
  ENGAGE_API int engageSetCertStore(const uint8_t * _Nonnull buffer, size_t size, const char * _Nullable passwordHexByteString);
1614
1628
 
1629
+ /**
1630
+ * @brief [SYNC] Verifies a recorded RIFF file.
1631
+ *
1632
+ * This function verifies a signed, recorded RIFF file. It returns ENGAGE_RESULT_OK (0) on success.
1633
+ *
1634
+ * No events are generated by this API call.
1635
+ *
1636
+ * @param fn The path to the file.
1637
+ * @return ENGAGE_RESULT_OK if operation was successful.
1638
+ */
1639
+ ENGAGE_API int engageVerifyRiff(const char * _Nonnull fn);
1640
+
1641
+ /**
1642
+ * @brief [SYNC] Returns a descriptor for a RIFF file
1643
+ *
1644
+ * Call this function to obtain a JSON descriptor of the RIFF file.
1645
+ *
1646
+ * No events are generated by this API call.
1647
+ *
1648
+ * @param fn The path to the file.
1649
+ * @return Zero-terminated string representing a JSON object describing the RIFF file
1650
+ * <P>
1651
+ * Example: @include[doc] examples/RiffDescriptor.json
1652
+ * </P>
1653
+ */
1654
+
1655
+ ENGAGE_API const char * _Nonnull engageGetRiffDescriptor(const char * _Nonnull fn);
1656
+
1615
1657
  // TODO: Engage compression/decompression functions not available at this time
1616
1658
  #if 0
1617
1659
  /**
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "engage-engine",
3
- "version": "1.233.90730006",
3
+ "version": "1.234.90740002",
4
4
  "description": "Use Engage to communicate with everyone, everywhere, from any device",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"