engage-engine 1.227.90670004 → 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 +15 -0
- package/include/ConfigurationObjects.h +49 -33
- package/include/EngageConstants.h +2 -2
- package/include/EngageInterface.h +9 -0
- package/lib/darwin.x64/libengage-shared.dylib +0 -0
- package/lib/linux.x64/libengage-shared.so +0 -0
- package/lib/win32.ia32/engage-shared.dll +0 -0
- package/lib/win32.ia32/engage-shared.lib +0 -0
- package/lib/win32.x64/engage-shared.dll +0 -0
- package/lib/win32.x64/engage-shared.lib +0 -0
- package/package.json +1 -1
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(
|
|
403
|
-
class
|
|
402
|
+
JSON_SERIALIZED_CLASS(FipsCryptoSettings)
|
|
403
|
+
class FipsCryptoSettings : public ConfigurationObjectBase
|
|
404
404
|
{
|
|
405
405
|
IMPLEMENT_JSON_SERIALIZATION()
|
|
406
|
-
IMPLEMENT_JSON_DOCUMENTATION(
|
|
406
|
+
IMPLEMENT_JSON_DOCUMENTATION(FipsCryptoSettings)
|
|
407
407
|
|
|
408
408
|
public:
|
|
409
|
-
/** @brief [Optional]
|
|
410
|
-
|
|
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
|
-
|
|
418
|
+
FipsCryptoSettings()
|
|
413
419
|
{
|
|
414
420
|
clear();
|
|
415
421
|
}
|
|
416
422
|
|
|
417
423
|
void clear()
|
|
418
424
|
{
|
|
419
|
-
|
|
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
|
|
436
|
+
static void to_json(nlohmann::json& j, const FipsCryptoSettings& p)
|
|
429
437
|
{
|
|
430
438
|
j = nlohmann::json{
|
|
431
|
-
TOJSON_IMPL(
|
|
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,
|
|
444
|
+
static void from_json(const nlohmann::json& j, FipsCryptoSettings& p)
|
|
435
445
|
{
|
|
436
446
|
p.clear();
|
|
437
|
-
FROMJSON_IMPL_SIMPLE(
|
|
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
|
|
7355
|
-
|
|
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
|
-
|
|
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(
|
|
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<
|
|
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
|
|
39
|
-
static const int
|
|
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
|
|
Binary file
|
package/package.json
CHANGED