engage-engine 1.228.90680001 → 1.230.90700001

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
@@ -1125,6 +1125,18 @@ NAN_METHOD(hookEngineLogging)
1125
1125
  }
1126
1126
  }
1127
1127
 
1128
+ //--------------------------------------------------------
1129
+ NAN_METHOD(setFipsCrypto)
1130
+ {
1131
+ NANRETI(engageSetFipsCrypto(STRVAL(0)));
1132
+ }
1133
+
1134
+ //--------------------------------------------------------
1135
+ NAN_METHOD(isCryptoFipsValidated)
1136
+ {
1137
+ NANRETI(engageIsCryptoFipsValidated());
1138
+ }
1139
+
1128
1140
  //--------------------------------------------------------
1129
1141
  NAN_MODULE_INIT(Init)
1130
1142
  {
@@ -1194,6 +1206,9 @@ NAN_MODULE_INIT(Init)
1194
1206
 
1195
1207
  ENGAGE_BINDING(logMsg);
1196
1208
  ENGAGE_BINDING(hookEngineLogging);
1209
+
1210
+ ENGAGE_BINDING(setFipsCrypto);
1211
+ ENGAGE_BINDING(isCryptoFipsValidated);
1197
1212
  }
1198
1213
 
1199
1214
  NODE_MODULE(engage, Init)
@@ -399,24 +399,32 @@ namespace AppConfigurationObjects
399
399
  };
400
400
 
401
401
  //-----------------------------------------------------------
402
- JSON_SERIALIZED_CLASS(CryptoEngineSettings)
403
- class CryptoEngineSettings : public ConfigurationObjectBase
402
+ JSON_SERIALIZED_CLASS(FipsCryptoSettings)
403
+ class FipsCryptoSettings : public ConfigurationObjectBase
404
404
  {
405
405
  IMPLEMENT_JSON_SERIALIZATION()
406
- IMPLEMENT_JSON_DOCUMENTATION(CryptoEngineSettings)
406
+ IMPLEMENT_JSON_DOCUMENTATION(FipsCryptoSettings)
407
407
 
408
408
  public:
409
- /** @brief [Optional] The signature of the crypto engine module. */
410
- std::string signature;
409
+ /** @brief [Optional, Default false] If true, requires FIPS140-2 crypto operation. */
410
+ bool enabled;
411
+
412
+ /** @brief Path where the crypto engine module is located */
413
+ std::string path;
414
+
415
+ /** @brief [Optional, Default false] If true, requests the crypto engine module to run in debugging mode. */
416
+ bool debug;
411
417
 
412
- CryptoEngineSettings()
418
+ FipsCryptoSettings()
413
419
  {
414
420
  clear();
415
421
  }
416
422
 
417
423
  void clear()
418
424
  {
419
- signature.clear();
425
+ enabled = false;
426
+ path.clear();
427
+ debug = false;
420
428
  }
421
429
 
422
430
  virtual void initForDocumenting()
@@ -425,16 +433,20 @@ namespace AppConfigurationObjects
425
433
  }
426
434
  };
427
435
 
428
- static void to_json(nlohmann::json& j, const CryptoEngineSettings& p)
436
+ static void to_json(nlohmann::json& j, const FipsCryptoSettings& p)
429
437
  {
430
438
  j = nlohmann::json{
431
- TOJSON_IMPL(signature)
439
+ TOJSON_IMPL(enabled),
440
+ TOJSON_IMPL(path),
441
+ TOJSON_IMPL(debug)
432
442
  };
433
443
  }
434
- static void from_json(const nlohmann::json& j, CryptoEngineSettings& p)
444
+ static void from_json(const nlohmann::json& j, FipsCryptoSettings& p)
435
445
  {
436
446
  p.clear();
437
- FROMJSON_IMPL_SIMPLE(signature);
447
+ FROMJSON_IMPL_SIMPLE(enabled);
448
+ FROMJSON_IMPL_SIMPLE(path);
449
+ FROMJSON_IMPL_SIMPLE(debug);
438
450
  }
439
451
 
440
452
 
@@ -3239,6 +3251,9 @@ namespace AppConfigurationObjects
3239
3251
  /** @brief The numeric specializer (if any) associated with the alias. */
3240
3252
  uint16_t aliasSpecializer;
3241
3253
 
3254
+ /** @brief Indicates if RX is muted for this talker. */
3255
+ bool rxMuted;
3256
+
3242
3257
  TalkerInformation()
3243
3258
  {
3244
3259
  clear();
@@ -3253,6 +3268,7 @@ namespace AppConfigurationObjects
3253
3268
  txId = 0;
3254
3269
  duplicateCount = 0;
3255
3270
  aliasSpecializer = 0;
3271
+ rxMuted = false;
3256
3272
  }
3257
3273
  };
3258
3274
 
@@ -3265,7 +3281,8 @@ namespace AppConfigurationObjects
3265
3281
  TOJSON_IMPL(txPriority),
3266
3282
  TOJSON_IMPL(txId),
3267
3283
  TOJSON_IMPL(duplicateCount),
3268
- TOJSON_IMPL(aliasSpecializer)
3284
+ TOJSON_IMPL(aliasSpecializer),
3285
+ TOJSON_IMPL(rxMuted)
3269
3286
  };
3270
3287
  }
3271
3288
  static void from_json(const nlohmann::json& j, TalkerInformation& p)
@@ -3278,6 +3295,7 @@ namespace AppConfigurationObjects
3278
3295
  getOptional<uint32_t>("txId", p.txId, j, 0);
3279
3296
  getOptional<int>("duplicateCount", p.duplicateCount, j, 0);
3280
3297
  getOptional<uint16_t>("aliasSpecializer", p.aliasSpecializer, j, 0);
3298
+ getOptional<bool>("rxMuted", p.rxMuted, j, false);
3281
3299
  }
3282
3300
 
3283
3301
  //-----------------------------------------------------------
@@ -6493,10 +6511,6 @@ namespace AppConfigurationObjects
6493
6511
  /** @brief Optional RTP - overrides the default */
6494
6512
  std::vector<RtpMapEntry> rtpMap;
6495
6513
 
6496
- /** @brief [Optional] Settings for the crypto engine. */
6497
- CryptoEngineSettings cryptoEngine;
6498
-
6499
-
6500
6514
  EnginePolicy()
6501
6515
  {
6502
6516
  clear();
@@ -6520,7 +6534,6 @@ namespace AppConfigurationObjects
6520
6534
  namedAudioDevices.clear();
6521
6535
  externalCodecs.clear();
6522
6536
  rtpMap.clear();
6523
- cryptoEngine.clear();
6524
6537
  }
6525
6538
  };
6526
6539
 
@@ -6542,8 +6555,7 @@ namespace AppConfigurationObjects
6542
6555
  TOJSON_IMPL(featureset),
6543
6556
  TOJSON_IMPL(namedAudioDevices),
6544
6557
  TOJSON_IMPL(externalCodecs),
6545
- TOJSON_IMPL(rtpMap),
6546
- TOJSON_IMPL(cryptoEngine)
6558
+ TOJSON_IMPL(rtpMap)
6547
6559
  };
6548
6560
  }
6549
6561
  static void from_json(const nlohmann::json& j, EnginePolicy& p)
@@ -6565,7 +6577,6 @@ namespace AppConfigurationObjects
6565
6577
  FROMJSON_IMPL_SIMPLE(namedAudioDevices);
6566
6578
  FROMJSON_IMPL_SIMPLE(externalCodecs);
6567
6579
  FROMJSON_IMPL_SIMPLE(rtpMap);
6568
- FROMJSON_IMPL_SIMPLE(cryptoEngine);
6569
6580
  }
6570
6581
 
6571
6582
 
@@ -7351,8 +7362,8 @@ namespace AppConfigurationObjects
7351
7362
  IMPLEMENT_JSON_DOCUMENTATION(RallypointServer)
7352
7363
 
7353
7364
  public:
7354
- /** @brief [Optional] Settings for the crypto engine. */
7355
- CryptoEngineSettings cryptoEngine;
7365
+ /** @brief [Optional] Settings for the FIPS crypto. */
7366
+ FipsCryptoSettings fipsCrypto;
7356
7367
 
7357
7368
  /** @brief [Optional] Settings for the Rallypoint's watchdog. */
7358
7369
  WatchdogSettings watchdog;
@@ -7366,9 +7377,6 @@ namespace AppConfigurationObjects
7366
7377
  /** @brief Name of the NIC to bind to for listening for incoming TCP connections. */
7367
7378
  std::string interfaceName;
7368
7379
 
7369
- /** @brief Indicate whether FIPS140-2 mode is required for security. */
7370
- bool requireFips;
7371
-
7372
7380
  /** @brief X.509 certificate and private key that identifies the Rallypoint. @see SecurityCertificate*/
7373
7381
  SecurityCertificate certificate;
7374
7382
 
@@ -7484,12 +7492,11 @@ namespace AppConfigurationObjects
7484
7492
 
7485
7493
  void clear()
7486
7494
  {
7487
- cryptoEngine.clear();
7495
+ fipsCrypto.clear();
7488
7496
  watchdog.clear();
7489
7497
  id.clear();
7490
7498
  listenPort = 7443;
7491
7499
  interfaceName.clear();
7492
- requireFips = false;
7493
7500
  certificate.clear();
7494
7501
  allowMulticastForwarding = false;
7495
7502
  peeringConfiguration.clear();
@@ -7532,12 +7539,11 @@ namespace AppConfigurationObjects
7532
7539
  static void to_json(nlohmann::json& j, const RallypointServer& p)
7533
7540
  {
7534
7541
  j = nlohmann::json{
7535
- TOJSON_IMPL(cryptoEngine),
7542
+ TOJSON_IMPL(fipsCrypto),
7536
7543
  TOJSON_IMPL(watchdog),
7537
7544
  TOJSON_IMPL(id),
7538
7545
  TOJSON_IMPL(listenPort),
7539
7546
  TOJSON_IMPL(interfaceName),
7540
- TOJSON_IMPL(requireFips),
7541
7547
  TOJSON_IMPL(certificate),
7542
7548
  TOJSON_IMPL(allowMulticastForwarding),
7543
7549
  // TOJSON_IMPL(peeringConfiguration), // NOTE: Not serialized!
@@ -7579,11 +7585,10 @@ namespace AppConfigurationObjects
7579
7585
  static void from_json(const nlohmann::json& j, RallypointServer& p)
7580
7586
  {
7581
7587
  p.clear();
7582
- getOptional<CryptoEngineSettings>("cryptoEngine", p.cryptoEngine, j);
7588
+ getOptional<FipsCryptoSettings>("fipsCrypto", p.fipsCrypto, j);
7583
7589
  getOptional<WatchdogSettings>("watchdog", p.watchdog, j);
7584
7590
  getOptional<std::string>("id", p.id, j);
7585
7591
  getOptional<SecurityCertificate>("certificate", p.certificate, j);
7586
- getOptional<bool>("requireFips", p.requireFips, j, false);
7587
7592
  getOptional<std::string>("interfaceName", p.interfaceName, j);
7588
7593
  getOptional<int>("listenPort", p.listenPort, j, 7443);
7589
7594
  getOptional<bool>("allowMulticastForwarding", p.allowMulticastForwarding, j, false);
@@ -9184,6 +9189,9 @@ namespace AppConfigurationObjects
9184
9189
  /** @brief Name to use for signalling a configuration check */
9185
9190
  std::string configurationCheckSignalName;
9186
9191
 
9192
+ /** @brief [Optional] Settings for the FIPS crypto. */
9193
+ FipsCryptoSettings fipsCrypto;
9194
+
9187
9195
  BridgingServerConfiguration()
9188
9196
  {
9189
9197
  clear();
@@ -9204,6 +9212,7 @@ namespace AppConfigurationObjects
9204
9212
  certStorePasswordHex.clear();
9205
9213
  enginePolicy.clear();
9206
9214
  configurationCheckSignalName = "rts.6cc0651.${id}";
9215
+ fipsCrypto.clear();
9207
9216
  }
9208
9217
  };
9209
9218
 
@@ -9222,7 +9231,8 @@ namespace AppConfigurationObjects
9222
9231
  TOJSON_IMPL(certStoreFileName),
9223
9232
  TOJSON_IMPL(certStorePasswordHex),
9224
9233
  TOJSON_IMPL(enginePolicy),
9225
- TOJSON_IMPL(configurationCheckSignalName)
9234
+ TOJSON_IMPL(configurationCheckSignalName),
9235
+ TOJSON_IMPL(fipsCrypto)
9226
9236
  };
9227
9237
  }
9228
9238
  static void from_json(const nlohmann::json& j, BridgingServerConfiguration& p)
@@ -9241,6 +9251,7 @@ namespace AppConfigurationObjects
9241
9251
  getOptional<std::string>("certStorePasswordHex", p.certStorePasswordHex, j);
9242
9252
  j.at("enginePolicy").get_to(p.enginePolicy);
9243
9253
  getOptional<std::string>("configurationCheckSignalName", p.configurationCheckSignalName, j, "rts.6cc0651.${id}");
9254
+ getOptional<FipsCryptoSettings>("fipsCrypto", p.fipsCrypto, j);
9244
9255
  }
9245
9256
 
9246
9257
 
@@ -9458,6 +9469,9 @@ namespace AppConfigurationObjects
9458
9469
  /** @brief Name to use for signalling a configuration check */
9459
9470
  std::string configurationCheckSignalName;
9460
9471
 
9472
+ /** @brief [Optional] Settings for the FIPS crypto. */
9473
+ FipsCryptoSettings fipsCrypto;
9474
+
9461
9475
  EarServerConfiguration()
9462
9476
  {
9463
9477
  clear();
@@ -9477,6 +9491,7 @@ namespace AppConfigurationObjects
9477
9491
  certStorePasswordHex.clear();
9478
9492
  enginePolicy.clear();
9479
9493
  configurationCheckSignalName = "rts.9a164fa.${id}";
9494
+ fipsCrypto.clear();
9480
9495
  }
9481
9496
  };
9482
9497
 
@@ -9494,7 +9509,8 @@ namespace AppConfigurationObjects
9494
9509
  TOJSON_IMPL(certStoreFileName),
9495
9510
  TOJSON_IMPL(certStorePasswordHex),
9496
9511
  TOJSON_IMPL(enginePolicy),
9497
- TOJSON_IMPL(configurationCheckSignalName)
9512
+ TOJSON_IMPL(configurationCheckSignalName),
9513
+ TOJSON_IMPL(fipsCrypto)
9498
9514
  };
9499
9515
  }
9500
9516
  static void from_json(const nlohmann::json& j, EarServerConfiguration& p)
@@ -35,8 +35,8 @@ static const int ENGAGE_RESULT_NOT_STARTED = -5;
35
35
  static const int ENGAGE_RESULT_ALREADY_STARTED = -6;
36
36
  /** @brief Insufficient space in destination */
37
37
  static const int ENGAGE_RESULT_INSUFFICIENT_DESTINATION_SPACE = -7;
38
- /** @brief Verification of the crypto module failed */
39
- static const int ENGAGE_RESULT_CRYPTO_VERIFICATION_FAILED = -8;
38
+ /** @brief Initialization of the crypto module failed */
39
+ static const int ENGAGE_RESULT_CRYPTO_MODULE_INITIALIZATION_FAILED = -8;
40
40
  /** @} */
41
41
 
42
42
 
@@ -1560,6 +1560,14 @@ ENGAGE_API int engageEndFileRecording(const char * _Nonnull id);
1560
1560
  */
1561
1561
  ENGAGE_API const char * _Nonnull engageGetActiveFeatureset();
1562
1562
 
1563
+ /**
1564
+ * @brief [SYNC] Enable FIPS crypto
1565
+ *
1566
+ * @param jsonParams A JSON object of type @ref ConfigurationObjects::FipsCryptoSettings
1567
+ * @return ENGAGE_RESULT_OK on sucess, other values on failure
1568
+ */
1569
+ ENGAGE_API int engageSetFipsCrypto(const char * _Nonnull jsonParams);
1570
+
1563
1571
  /**
1564
1572
  * @brief [SYNC] Returns 1 if crypto is FIPS140-2 validated, otherwise 0
1565
1573
  *
@@ -1569,6 +1577,7 @@ ENGAGE_API const char * _Nonnull engageGetActiveFeatureset();
1569
1577
  */
1570
1578
  ENGAGE_API int engageIsCryptoFipsValidated(void);
1571
1579
 
1580
+
1572
1581
  // TODO: Engage compression/decompression functions not available at this time
1573
1582
  #if 0
1574
1583
  /**
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.228.90680001",
3
+ "version": "1.230.90700001",
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"