engage-engine 1.236.90760003 → 1.238.90780004
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/include/ConfigurationObjects.h +213 -3
- package/include/EngageConstants.h +5 -2
- 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.x64/engage-shared.dll +0 -0
- package/package.json +1 -1
|
@@ -2105,6 +2105,22 @@ namespace AppConfigurationObjects
|
|
|
2105
2105
|
getOptional<NetworkAddress>("tx", p.tx, j);
|
|
2106
2106
|
}
|
|
2107
2107
|
|
|
2108
|
+
/** @brief Enum describing restriction types. */
|
|
2109
|
+
typedef enum
|
|
2110
|
+
{
|
|
2111
|
+
/** @brief Registration for groups is allowed by default */
|
|
2112
|
+
graptPermissive = 0,
|
|
2113
|
+
|
|
2114
|
+
/** @brief Registration for groups is NOT allowed by default - requires definitive access through something like a whitelist*/
|
|
2115
|
+
graptStrict = 1
|
|
2116
|
+
} GroupRestrictionAccessPolicyType_t;
|
|
2117
|
+
|
|
2118
|
+
static bool isValidGroupRestrictionAccessPolicyType(GroupRestrictionAccessPolicyType_t t)
|
|
2119
|
+
{
|
|
2120
|
+
return (t == GroupRestrictionAccessPolicyType_t::graptPermissive ||
|
|
2121
|
+
t == GroupRestrictionAccessPolicyType_t::graptStrict );
|
|
2122
|
+
}
|
|
2123
|
+
|
|
2108
2124
|
/** @brief Enum describing restriction types. */
|
|
2109
2125
|
typedef enum
|
|
2110
2126
|
{
|
|
@@ -2125,6 +2141,43 @@ namespace AppConfigurationObjects
|
|
|
2125
2141
|
t == RestrictionType_t::rtBlacklist );
|
|
2126
2142
|
}
|
|
2127
2143
|
|
|
2144
|
+
/** @brief Enum describing restriction element types. */
|
|
2145
|
+
typedef enum
|
|
2146
|
+
{
|
|
2147
|
+
/** @brief A literal group ID */
|
|
2148
|
+
retGroupId = 0,
|
|
2149
|
+
|
|
2150
|
+
/** @brief Elements are group ID regex patterns */
|
|
2151
|
+
retGroupIdPattern = 1,
|
|
2152
|
+
|
|
2153
|
+
/** @brief Elements are generic access tags regex patterns */
|
|
2154
|
+
retGenericAccessTagPattern = 2,
|
|
2155
|
+
|
|
2156
|
+
/** @brief Elements are X.509 certificate serial number regex patterns */
|
|
2157
|
+
retCertificateSerialNumberPattern = 3,
|
|
2158
|
+
|
|
2159
|
+
/** @brief Elements are X.509 certificate fingerprint regex patterns */
|
|
2160
|
+
retCertificateFingerprintPattern = 4,
|
|
2161
|
+
|
|
2162
|
+
/** @brief Elements are X.509 certificate subject regex patterns */
|
|
2163
|
+
retCertificateSubjectPattern = 5,
|
|
2164
|
+
|
|
2165
|
+
/** @brief Elements are X.509 certificate issuer regex patterns */
|
|
2166
|
+
retCertificateIssuerPattern = 6
|
|
2167
|
+
} RestrictionElementType_t;
|
|
2168
|
+
|
|
2169
|
+
static bool isValidRestrictionElementType(RestrictionElementType_t t)
|
|
2170
|
+
{
|
|
2171
|
+
return (t == RestrictionElementType_t::retGroupId ||
|
|
2172
|
+
t == RestrictionElementType_t::retGroupIdPattern ||
|
|
2173
|
+
t == RestrictionElementType_t::retGenericAccessTagPattern ||
|
|
2174
|
+
t == RestrictionElementType_t::retCertificateSerialNumberPattern ||
|
|
2175
|
+
t == RestrictionElementType_t::retCertificateFingerprintPattern ||
|
|
2176
|
+
t == RestrictionElementType_t::retCertificateSubjectPattern ||
|
|
2177
|
+
t == RestrictionElementType_t::retCertificateIssuerPattern);
|
|
2178
|
+
}
|
|
2179
|
+
|
|
2180
|
+
|
|
2128
2181
|
//-----------------------------------------------------------
|
|
2129
2182
|
JSON_SERIALIZED_CLASS(NetworkAddressRestrictionList)
|
|
2130
2183
|
/**
|
|
@@ -2196,12 +2249,16 @@ namespace AppConfigurationObjects
|
|
|
2196
2249
|
/** @brief Type indicating how the elements are to be treated **/
|
|
2197
2250
|
RestrictionType_t type;
|
|
2198
2251
|
|
|
2252
|
+
/** @brief Type indicating what kind of data each element contains **/
|
|
2253
|
+
RestrictionElementType_t elementsType;
|
|
2254
|
+
|
|
2199
2255
|
/** @brief List of elements */
|
|
2200
|
-
std::vector<std::string>
|
|
2256
|
+
std::vector<std::string> elements;
|
|
2201
2257
|
|
|
2202
2258
|
StringRestrictionList()
|
|
2203
2259
|
{
|
|
2204
2260
|
type = RestrictionType_t::rtUndefined;
|
|
2261
|
+
elementsType = RestrictionElementType_t::retGroupId;
|
|
2205
2262
|
clear();
|
|
2206
2263
|
}
|
|
2207
2264
|
|
|
@@ -2215,6 +2272,7 @@ namespace AppConfigurationObjects
|
|
|
2215
2272
|
{
|
|
2216
2273
|
j = nlohmann::json{
|
|
2217
2274
|
TOJSON_IMPL(type),
|
|
2275
|
+
TOJSON_IMPL(elementsType),
|
|
2218
2276
|
TOJSON_IMPL(elements)
|
|
2219
2277
|
};
|
|
2220
2278
|
}
|
|
@@ -2222,6 +2280,7 @@ namespace AppConfigurationObjects
|
|
|
2222
2280
|
{
|
|
2223
2281
|
p.clear();
|
|
2224
2282
|
getOptional<RestrictionType_t>("type", p.type, j, RestrictionType_t::rtUndefined);
|
|
2283
|
+
getOptional<RestrictionElementType_t>("elementsType", p.elementsType, j, RestrictionElementType_t::retGroupId);
|
|
2225
2284
|
getOptional<std::vector<std::string>>("elements", p.elements, j);
|
|
2226
2285
|
}
|
|
2227
2286
|
|
|
@@ -3879,6 +3938,44 @@ namespace AppConfigurationObjects
|
|
|
3879
3938
|
ENGAGE_IGNORE_COMPILER_UNUSED_WARNING static const char *GROUP_DISCONNECTED_REASON_SECURITY_CLASSIFICATION_LEVEL_TOO_HIGH = "SecurityClassificationLevelTooHigh";
|
|
3880
3939
|
/** @brief The Rallypoint has denied the registration for no specific reason **/
|
|
3881
3940
|
ENGAGE_IGNORE_COMPILER_UNUSED_WARNING static const char *GROUP_DISCONNECTED_REASON_GENERAL_DENIAL = "GeneralDenial";
|
|
3941
|
+
|
|
3942
|
+
/** @brief The Rallypoint denied the registration request because the far-end's certificate does not have an access tag for the group **/
|
|
3943
|
+
ENGAGE_IGNORE_COMPILER_UNUSED_WARNING static const char *GROUP_DISCONNECTED_REASON_NO_ACCESS_TAG = "NoAccessTag";
|
|
3944
|
+
/** @brief The Rallypoint denied the registration request because the far-end's certificate does not have an access tag for the group **/
|
|
3945
|
+
ENGAGE_IGNORE_COMPILER_UNUSED_WARNING static const char *GROUP_DISCONNECTED_REASON_EXCLUDED_ACCESS_TAG = "ExcludedAccessTag";
|
|
3946
|
+
/** @brief The Rallypoint denied the registration request because the far-end's certificate does not have an an approved serial number **/
|
|
3947
|
+
ENGAGE_IGNORE_COMPILER_UNUSED_WARNING static const char *GROUP_DISCONNECTED_REASON_NO_SERIAL = "NoSerial";
|
|
3948
|
+
/** @brief The Rallypoint denied the registration request because the far-end's certificate serial number has been excluded **/
|
|
3949
|
+
ENGAGE_IGNORE_COMPILER_UNUSED_WARNING static const char *GROUP_DISCONNECTED_REASON_EXCLUDED_SERIAL = "ExcludedSerial";
|
|
3950
|
+
/** @brief The Rallypoint denied the registration request because the far-end's certificate does not have an an approved fingerprint **/
|
|
3951
|
+
ENGAGE_IGNORE_COMPILER_UNUSED_WARNING static const char *GROUP_DISCONNECTED_REASON_NO_FINGERPRINT = "NoFingerprint";
|
|
3952
|
+
/** @brief The Rallypoint denied the registration request because the far-end's certificate fingerprint has been excluded **/
|
|
3953
|
+
ENGAGE_IGNORE_COMPILER_UNUSED_WARNING static const char *GROUP_DISCONNECTED_REASON_EXCLUDED_FINGERPRINT = "ExcludedFingerprint";
|
|
3954
|
+
/** @brief The Rallypoint denied the registration request because the far-end's certificate does not have an an approved subject **/
|
|
3955
|
+
ENGAGE_IGNORE_COMPILER_UNUSED_WARNING static const char *GROUP_DISCONNECTED_REASON_NO_SUBJECT = "NoSubject";
|
|
3956
|
+
/** @brief The Rallypoint denied the registration request because the far-end's certificate subject has been excluded **/
|
|
3957
|
+
ENGAGE_IGNORE_COMPILER_UNUSED_WARNING static const char *GROUP_DISCONNECTED_REASON_EXCLUDED_SUBJECT = "ExcludedSubject";
|
|
3958
|
+
/** @brief The Rallypoint denied the registration request because the far-end's certificate does not have an an approved issuer **/
|
|
3959
|
+
ENGAGE_IGNORE_COMPILER_UNUSED_WARNING static const char *GROUP_DISCONNECTED_REASON_NO_ISSUER = "NoIssuer";
|
|
3960
|
+
/** @brief The Rallypoint denied the registration request because the far-end's certificate issuer has been excluded **/
|
|
3961
|
+
ENGAGE_IGNORE_COMPILER_UNUSED_WARNING static const char *GROUP_DISCONNECTED_REASON_EXCLUDED_ISSUER = "ExcludedIssuer";
|
|
3962
|
+
/** @brief The Rallypoint denied the registration request because the far-end does not appear in any whitelist criteria **/
|
|
3963
|
+
ENGAGE_IGNORE_COMPILER_UNUSED_WARNING static const char *GROUP_DISCONNECTED_REASON_NOT_ON_WHITELIST = "NotOnWhitelist";
|
|
3964
|
+
/** @brief The Rallypoint denied the registration request because the far-end does appears in blackist criteria **/
|
|
3965
|
+
ENGAGE_IGNORE_COMPILER_UNUSED_WARNING static const char *GROUP_DISCONNECTED_REASON_ON_BLACKLIST = "OnBlacklist";
|
|
3966
|
+
|
|
3967
|
+
/** @} */
|
|
3968
|
+
|
|
3969
|
+
/** @addtogroup OID IANA-type object identifiers
|
|
3970
|
+
*
|
|
3971
|
+
* Object Identifiers we commonly use
|
|
3972
|
+
*
|
|
3973
|
+
* @{
|
|
3974
|
+
*/
|
|
3975
|
+
/** @brief Rally Tactical Systems' PEN as assigned by IANA */
|
|
3976
|
+
ENGAGE_IGNORE_COMPILER_UNUSED_WARNING static const char *OID_RTS_PEM = "58217";
|
|
3977
|
+
/** @brief The link to the Rallypoint is down */
|
|
3978
|
+
ENGAGE_IGNORE_COMPILER_UNUSED_WARNING static const char *OID_RTS_CERT_SUBJ_ACCESS_TAGS = "1.3.6.1.4.1.58217.1";
|
|
3882
3979
|
/** @} */
|
|
3883
3980
|
|
|
3884
3981
|
|
|
@@ -7944,6 +8041,54 @@ namespace AppConfigurationObjects
|
|
|
7944
8041
|
getOptional<std::vector<std::string>>("extraMeshes", p.extraMeshes, j);
|
|
7945
8042
|
}
|
|
7946
8043
|
|
|
8044
|
+
|
|
8045
|
+
//-----------------------------------------------------------
|
|
8046
|
+
JSON_SERIALIZED_CLASS(RallypointExtendedGroupRestriction)
|
|
8047
|
+
/**
|
|
8048
|
+
* @brief Defines settings for Rallypoint extended group restrictions
|
|
8049
|
+
*
|
|
8050
|
+
* Example: @include[doc] examples/RallypointExtendedGroupRestriction.json
|
|
8051
|
+
*
|
|
8052
|
+
*/
|
|
8053
|
+
class RallypointExtendedGroupRestriction : public ConfigurationObjectBase
|
|
8054
|
+
{
|
|
8055
|
+
IMPLEMENT_JSON_SERIALIZATION()
|
|
8056
|
+
IMPLEMENT_JSON_DOCUMENTATION(RallypointExtendedGroupRestriction)
|
|
8057
|
+
|
|
8058
|
+
public:
|
|
8059
|
+
/** @brief Group ID */
|
|
8060
|
+
std::string id;
|
|
8061
|
+
|
|
8062
|
+
/** @brief Restrictions */
|
|
8063
|
+
std::vector<StringRestrictionList> restrictions;
|
|
8064
|
+
|
|
8065
|
+
RallypointExtendedGroupRestriction()
|
|
8066
|
+
{
|
|
8067
|
+
clear();
|
|
8068
|
+
}
|
|
8069
|
+
|
|
8070
|
+
void clear()
|
|
8071
|
+
{
|
|
8072
|
+
id.clear();
|
|
8073
|
+
restrictions.clear();
|
|
8074
|
+
}
|
|
8075
|
+
};
|
|
8076
|
+
|
|
8077
|
+
static void to_json(nlohmann::json& j, const RallypointExtendedGroupRestriction& p)
|
|
8078
|
+
{
|
|
8079
|
+
j = nlohmann::json{
|
|
8080
|
+
TOJSON_IMPL(id),
|
|
8081
|
+
TOJSON_IMPL(restrictions)
|
|
8082
|
+
};
|
|
8083
|
+
}
|
|
8084
|
+
static void from_json(const nlohmann::json& j, RallypointExtendedGroupRestriction& p)
|
|
8085
|
+
{
|
|
8086
|
+
p.clear();
|
|
8087
|
+
getOptional<std::string>("id", p.id, j);
|
|
8088
|
+
getOptional<std::vector<StringRestrictionList>>("restrictions", p.restrictions, j);
|
|
8089
|
+
}
|
|
8090
|
+
|
|
8091
|
+
|
|
7947
8092
|
//-----------------------------------------------------------
|
|
7948
8093
|
JSON_SERIALIZED_CLASS(RallypointServer)
|
|
7949
8094
|
/**
|
|
@@ -8056,6 +8201,12 @@ namespace AppConfigurationObjects
|
|
|
8056
8201
|
/** @brief Group IDs to be restricted (inclusive or exclusive) */
|
|
8057
8202
|
StringRestrictionList groupRestrictions;
|
|
8058
8203
|
|
|
8204
|
+
/** @brief The policy employed to allow group registration */
|
|
8205
|
+
GroupRestrictionAccessPolicyType_t groupRestrictionAccessPolicyType;
|
|
8206
|
+
|
|
8207
|
+
/** @brief Extended group restrictions */
|
|
8208
|
+
std::vector<RallypointExtendedGroupRestriction> extendedGroupRestrictions;
|
|
8209
|
+
|
|
8059
8210
|
/** @brief Name to use for signalling a configuration check */
|
|
8060
8211
|
std::string configurationCheckSignalName;
|
|
8061
8212
|
|
|
@@ -8159,6 +8310,8 @@ namespace AppConfigurationObjects
|
|
|
8159
8310
|
websocket.clear();
|
|
8160
8311
|
nsm.clear();
|
|
8161
8312
|
advertising.clear();
|
|
8313
|
+
extendedGroupRestrictions.clear();
|
|
8314
|
+
groupRestrictionAccessPolicyType = GroupRestrictionAccessPolicyType_t::graptPermissive;
|
|
8162
8315
|
}
|
|
8163
8316
|
};
|
|
8164
8317
|
|
|
@@ -8212,7 +8365,9 @@ namespace AppConfigurationObjects
|
|
|
8212
8365
|
TOJSON_IMPL(peerRtBehaviors),
|
|
8213
8366
|
TOJSON_IMPL(websocket),
|
|
8214
8367
|
TOJSON_IMPL(nsm),
|
|
8215
|
-
TOJSON_IMPL(advertising)
|
|
8368
|
+
TOJSON_IMPL(advertising),
|
|
8369
|
+
TOJSON_IMPL(extendedGroupRestrictions),
|
|
8370
|
+
TOJSON_IMPL(groupRestrictionAccessPolicyType)
|
|
8216
8371
|
};
|
|
8217
8372
|
}
|
|
8218
8373
|
static void from_json(const nlohmann::json& j, RallypointServer& p)
|
|
@@ -8266,6 +8421,8 @@ namespace AppConfigurationObjects
|
|
|
8266
8421
|
getOptional<RallypointWebsocketSettings>("websocket", p.websocket, j);
|
|
8267
8422
|
getOptional<NsmConfiguration>("nsm", p.nsm, j);
|
|
8268
8423
|
getOptional<RallypointAdvertisingSettings>("advertising", p.advertising, j);
|
|
8424
|
+
getOptional<std::vector<RallypointExtendedGroupRestriction>>("extendedGroupRestrictions", p.extendedGroupRestrictions, j);
|
|
8425
|
+
getOptional<GroupRestrictionAccessPolicyType_t>("groupRestrictionAccessPolicyType", p.groupRestrictionAccessPolicyType, j, GroupRestrictionAccessPolicyType_t::graptPermissive);
|
|
8269
8426
|
}
|
|
8270
8427
|
|
|
8271
8428
|
//-----------------------------------------------------------
|
|
@@ -8703,6 +8860,53 @@ namespace AppConfigurationObjects
|
|
|
8703
8860
|
getOptional<std::vector<CertStoreCertificateElement>>("certificates", p.certificates, j);
|
|
8704
8861
|
}
|
|
8705
8862
|
|
|
8863
|
+
//-----------------------------------------------------------
|
|
8864
|
+
JSON_SERIALIZED_CLASS(CertificateSubjectElement)
|
|
8865
|
+
/**
|
|
8866
|
+
* @brief Description of a certificate subject element
|
|
8867
|
+
*
|
|
8868
|
+
* Helper C++ class to serialize and de-serialize CertificateSubjectElement JSON
|
|
8869
|
+
*
|
|
8870
|
+
*/
|
|
8871
|
+
class CertificateSubjectElement : public ConfigurationObjectBase
|
|
8872
|
+
{
|
|
8873
|
+
IMPLEMENT_JSON_SERIALIZATION()
|
|
8874
|
+
IMPLEMENT_JSON_DOCUMENTATION(CertificateSubjectElement)
|
|
8875
|
+
|
|
8876
|
+
public:
|
|
8877
|
+
/** @brief Name */
|
|
8878
|
+
std::string name;
|
|
8879
|
+
|
|
8880
|
+
/** @brief Value */
|
|
8881
|
+
std::string value;
|
|
8882
|
+
|
|
8883
|
+
CertificateSubjectElement()
|
|
8884
|
+
{
|
|
8885
|
+
clear();
|
|
8886
|
+
}
|
|
8887
|
+
|
|
8888
|
+
void clear()
|
|
8889
|
+
{
|
|
8890
|
+
name.clear();
|
|
8891
|
+
value.clear();
|
|
8892
|
+
}
|
|
8893
|
+
};
|
|
8894
|
+
|
|
8895
|
+
static void to_json(nlohmann::json& j, const CertificateSubjectElement& p)
|
|
8896
|
+
{
|
|
8897
|
+
j = nlohmann::json{
|
|
8898
|
+
TOJSON_IMPL(name),
|
|
8899
|
+
TOJSON_IMPL(value)
|
|
8900
|
+
};
|
|
8901
|
+
}
|
|
8902
|
+
static void from_json(const nlohmann::json& j, CertificateSubjectElement& p)
|
|
8903
|
+
{
|
|
8904
|
+
p.clear();
|
|
8905
|
+
getOptional<std::string>("name", p.name, j, EMPTY_STRING);
|
|
8906
|
+
getOptional<std::string>("value", p.value, j, EMPTY_STRING);
|
|
8907
|
+
}
|
|
8908
|
+
|
|
8909
|
+
|
|
8706
8910
|
//-----------------------------------------------------------
|
|
8707
8911
|
JSON_SERIALIZED_CLASS(CertificateDescriptor)
|
|
8708
8912
|
/**
|
|
@@ -8741,6 +8945,9 @@ namespace AppConfigurationObjects
|
|
|
8741
8945
|
/** @brief Fingerprint */
|
|
8742
8946
|
std::string fingerprint;
|
|
8743
8947
|
|
|
8948
|
+
/** @brief Array of subject elements */
|
|
8949
|
+
std::vector<CertificateSubjectElement> subjectElements;
|
|
8950
|
+
|
|
8744
8951
|
CertificateDescriptor()
|
|
8745
8952
|
{
|
|
8746
8953
|
clear();
|
|
@@ -8756,6 +8963,7 @@ namespace AppConfigurationObjects
|
|
|
8756
8963
|
notAfter.clear();
|
|
8757
8964
|
serial.clear();
|
|
8758
8965
|
fingerprint.clear();
|
|
8966
|
+
subjectElements.clear();
|
|
8759
8967
|
}
|
|
8760
8968
|
};
|
|
8761
8969
|
|
|
@@ -8769,7 +8977,8 @@ namespace AppConfigurationObjects
|
|
|
8769
8977
|
TOJSON_IMPL(notBefore),
|
|
8770
8978
|
TOJSON_IMPL(notAfter),
|
|
8771
8979
|
TOJSON_IMPL(serial),
|
|
8772
|
-
TOJSON_IMPL(fingerprint)
|
|
8980
|
+
TOJSON_IMPL(fingerprint),
|
|
8981
|
+
TOJSON_IMPL(subjectElements)
|
|
8773
8982
|
};
|
|
8774
8983
|
}
|
|
8775
8984
|
static void from_json(const nlohmann::json& j, CertificateDescriptor& p)
|
|
@@ -8783,6 +8992,7 @@ namespace AppConfigurationObjects
|
|
|
8783
8992
|
getOptional<std::string>("notAfter", p.notAfter, j, EMPTY_STRING);
|
|
8784
8993
|
getOptional<std::string>("serial", p.serial, j, EMPTY_STRING);
|
|
8785
8994
|
getOptional<std::string>("fingerprint", p.fingerprint, j, EMPTY_STRING);
|
|
8995
|
+
getOptional<std::vector<CertificateSubjectElement>>("subjectElements", p.subjectElements, j);
|
|
8786
8996
|
}
|
|
8787
8997
|
|
|
8788
8998
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED