diff --git a/libretroshare/src/gxs/rsgenexchange.cc b/libretroshare/src/gxs/rsgenexchange.cc index e7ae496f9..4ed5ed154 100644 --- a/libretroshare/src/gxs/rsgenexchange.cc +++ b/libretroshare/src/gxs/rsgenexchange.cc @@ -49,9 +49,15 @@ #define PRIV_GRP_OFFSET 16 #define GRP_OPTIONS_OFFSET 24 +/** authentication key indices. Used to store them in a map **/ + +static const uint32_t INDEX_AUTHEN_IDENTITY = 0x00000010; // identity +static const uint32_t INDEX_AUTHEN_PUBLISH = 0x00000020; // publish key +static const uint32_t INDEX_AUTHEN_ADMIN = 0x00000040; // admin key + #define GXS_MASK "GXS_MASK_HACK" -//#define GEN_EXCH_DEBUG 1 +#define GEN_EXCH_DEBUG 1 #define MSG_CLEANUP_PERIOD 60*5 // 5 minutes #define INTEGRITY_CHECK_PERIOD 60*30 // 30 minutes @@ -416,7 +422,7 @@ uint8_t RsGenExchange::createGroup(RsNxsGrp *grp, RsTlvSecurityKeySet& privateKe bool ok = GxsSecurity::getSignature(allGrpData, allGrpDataLen, privAdminKey, adminSign); // add admin sign to grpMeta - meta->signSet.keySignSet[GXS_SERV::FLAG_AUTHEN_ADMIN] = adminSign; + meta->signSet.keySignSet[INDEX_AUTHEN_ADMIN] = adminSign; RsTlvBinaryData grpData(mServType); grpData.setBinData(allGrpData, allGrpDataLen); @@ -494,7 +500,7 @@ int RsGenExchange::createGroupSignatures(RsTlvKeySignatureSet& signSet, RsTlvBin id_ret = SIGN_FAIL; } - signSet.keySignSet[GXS_SERV::FLAG_AUTHEN_IDENTITY] = sign; + signSet.keySignSet[INDEX_AUTHEN_IDENTITY] = sign; } else { @@ -609,12 +615,12 @@ int RsGenExchange::createMsgSignatures(RsTlvKeySignatureSet& signSet, RsTlvBinar // private publish key publishKey = &(mit->second); - RsTlvKeySignature publishSign = signSet.keySignSet[GXS_SERV::FLAG_AUTHEN_PUBLISH]; + RsTlvKeySignature publishSign = signSet.keySignSet[INDEX_AUTHEN_PUBLISH]; publishSignSuccess = GxsSecurity::getSignature((char*)msgData.bin_data, msgData.bin_len, *publishKey, publishSign); //place signature in msg meta - signSet.keySignSet[GXS_SERV::FLAG_AUTHEN_PUBLISH] = publishSign; + signSet.keySignSet[INDEX_AUTHEN_PUBLISH] = publishSign; }else { std::cerr << "RsGenExchange::createMsgSignatures()"; @@ -653,7 +659,7 @@ int RsGenExchange::createMsgSignatures(RsTlvKeySignatureSet& signSet, RsTlvBinar id_ret = SIGN_FAIL; } - signSet.keySignSet[GXS_SERV::FLAG_AUTHEN_IDENTITY] = sign; + signSet.keySignSet[INDEX_AUTHEN_IDENTITY] = sign; } else { @@ -763,7 +769,7 @@ int RsGenExchange::createMessage(RsNxsMsg* msg) } } -int RsGenExchange::validateMsg(RsNxsMsg *msg, const uint32_t& grpFlag, RsTlvSecurityKeySet& grpKeySet) +int RsGenExchange::validateMsg(RsNxsMsg *msg, const uint32_t& grpFlag, const uint32_t& signFlag, RsTlvSecurityKeySet& grpKeySet) { bool needIdentitySign = false; bool needPublishSign = false; @@ -796,12 +802,16 @@ int RsGenExchange::validateMsg(RsNxsMsg *msg, const uint32_t& grpFlag, RsTlvSecu if ((checkAuthenFlag(pos, author_flag)) || (!msg->metaData->mAuthorId.isNull())) needIdentitySign = true; +#ifdef GEN_EXCH_DEBUG + std::cerr << "Validate message: msgId=" << msg->msgId << ", grpId=" << msg->grpId << " grpFlags=" << std::hex << grpFlag << std::dec + << ". Need publish=" << needPublishSign << ", needIdentitySign=" << needIdentitySign ; +#endif RsGxsMsgMetaData& metaData = *(msg->metaData); if(needPublishSign) { - RsTlvKeySignature sign = metaData.signSet.keySignSet[GXS_SERV::FLAG_AUTHEN_PUBLISH]; + RsTlvKeySignature sign = metaData.signSet.keySignSet[INDEX_AUTHEN_PUBLISH]; std::map& keys = grpKeySet.keys; std::map::iterator mit = keys.begin(); @@ -849,31 +859,36 @@ int RsGenExchange::validateMsg(RsNxsMsg *msg, const uint32_t& grpFlag, RsTlvSecu bool haveKey = mGixs->haveKey(metaData.mAuthorId); if(haveKey) - { + { - RsTlvSecurityKey authorKey; - bool auth_key_fetched = mGixs->getKey(metaData.mAuthorId, authorKey) ; + RsTlvSecurityKey authorKey; + bool auth_key_fetched = mGixs->getKey(metaData.mAuthorId, authorKey) ; - if (auth_key_fetched) - { + if (auth_key_fetched) + { + RsTlvKeySignature sign = metaData.signSet.keySignSet[INDEX_AUTHEN_IDENTITY]; + idValidate &= GxsSecurity::validateNxsMsg(*msg, sign, authorKey); + mGixs->timeStampKey(metaData.mAuthorId) ; + } + else + { + std::cerr << "RsGenExchange::validateMsg()"; + std::cerr << " ERROR Cannot Retrieve AUTHOR KEY for Message Validation"; + std::cerr << std::endl; + idValidate = false; + } - RsTlvKeySignature sign = metaData.signSet.keySignSet[GXS_SERV::FLAG_AUTHEN_IDENTITY]; - idValidate &= GxsSecurity::validateNxsMsg(*msg, sign, authorKey); - mGixs->timeStampKey(metaData.mAuthorId) ; - } - else - { - std::cerr << "RsGenExchange::validateMsg()"; - std::cerr << " ERROR Cannot Retrieve AUTHOR KEY for Message Validation"; - std::cerr << std::endl; - idValidate = false; - } - - }else +// if(signFlag & GXS_SERV:: + } + else { std::list peers; peers.push_back(msg->PeerId()); mGixs->requestKey(metaData.mAuthorId, peers); + +#ifdef GEN_EXCH_DEBUG + std::cerr << ", Key missing. Retry later." << std::endl; +#endif return VALIDATE_FAIL_TRY_LATER; } } @@ -890,6 +905,10 @@ int RsGenExchange::validateMsg(RsNxsMsg *msg, const uint32_t& grpFlag, RsTlvSecu idValidate = true; } +#ifdef GEN_EXCH_DEBUG + std::cerr << ", publish val=" << publishValidate << ", idValidate=" << idValidate << ". Result=" << (publishValidate && idValidate) << std::endl; +#endif + if(publishValidate && idValidate) return VALIDATE_SUCCESS; else @@ -930,7 +949,7 @@ int RsGenExchange::validateGrp(RsNxsGrp* grp) if (auth_key_fetched) { - RsTlvKeySignature sign = metaData.signSet.keySignSet[GXS_SERV::FLAG_AUTHEN_IDENTITY]; + RsTlvKeySignature sign = metaData.signSet.keySignSet[INDEX_AUTHEN_IDENTITY]; idValidate = GxsSecurity::validateNxsGrp(*grp, sign, authorKey); mGixs->timeStampKey(metaData.mAuthorId) ; @@ -2530,9 +2549,12 @@ void RsGenExchange::processRecvdMessages() if(mit != grpMetas.end()) { RsGxsGrpMetaData* grpMeta = mit->second; - validateReturn = validateMsg(msg, grpMeta->mGroupFlags, grpMeta->keys); + validateReturn = validateMsg(msg, grpMeta->mGroupFlags, grpMeta->mSignFlags, grpMeta->keys); + #ifdef GEN_EXCH_DEBUG - std::cerr << " message validation result: " << validateReturn << std::endl; + std::cerr << " grpMeta.mSignFlags: " << std::hex << grpMeta->mSignFlags << std::dec << std::endl; + std::cerr << " grpMeta.mAuthFlags: " << std::hex << grpMeta->mAuthenFlags << std::dec << std::endl; + std::cerr << " message validation result: " << (int)validateReturn << std::endl; #endif } @@ -2821,7 +2843,7 @@ void RsGenExchange::performUpdateValidation() bool RsGenExchange::updateValid(RsGxsGrpMetaData& oldGrpMeta, RsNxsGrp& newGrp) const { std::map& signSet = newGrp.metaData->signSet.keySignSet; - std::map::iterator mit = signSet.find(GXS_SERV::FLAG_AUTHEN_ADMIN); + std::map::iterator mit = signSet.find(INDEX_AUTHEN_ADMIN); if(mit == signSet.end()) { diff --git a/libretroshare/src/gxs/rsgenexchange.h b/libretroshare/src/gxs/rsgenexchange.h index ba59dcaac..3266a348e 100644 --- a/libretroshare/src/gxs/rsgenexchange.h +++ b/libretroshare/src/gxs/rsgenexchange.h @@ -739,12 +739,13 @@ private: /*! * Attempts to validate msg signatures * @param msg message to be validated - * @param grpFlag the flag for the group the message belongs to + * @param grpFlag the distribution flag for the group the message belongs to + * @param grpFlag the signature flag for the group the message belongs to * @param grpKeySet the key set user has for the message's group * @return VALIDATE_SUCCESS for success, VALIDATE_FAIL for fail, * VALIDATE_ID_SIGN_NOT_AVAIL for Id sign key not avail (but requested) */ - int validateMsg(RsNxsMsg* msg, const uint32_t& grpFlag, RsTlvSecurityKeySet& grpKeySet); + int validateMsg(RsNxsMsg* msg, const uint32_t& grpFlag, const uint32_t &signFlag, RsTlvSecurityKeySet& grpKeySet); /*! * Attempts to validate group signatures diff --git a/libretroshare/src/gxs/rsgxsdata.h b/libretroshare/src/gxs/rsgxsdata.h index 9829b8bd6..2bc2bd1bc 100644 --- a/libretroshare/src/gxs/rsgxsdata.h +++ b/libretroshare/src/gxs/rsgxsdata.h @@ -52,7 +52,7 @@ public: RsGxsGroupId mGroupId; RsGxsGroupId mOrigGrpId; std::string mGroupName; - uint32_t mGroupFlags; + uint32_t mGroupFlags; // GXS_SERV::FLAG_PRIVACY_RESTRICTED | GXS_SERV::FLAG_PRIVACY_PRIVATE | GXS_SERV::FLAG_PRIVACY_PUBLIC uint32_t mPublishTs; uint32_t mSignFlags; RsGxsId mAuthorId; diff --git a/libretroshare/src/retroshare/rsgxsflags.h b/libretroshare/src/retroshare/rsgxsflags.h index a7cc27ee4..7b3bc6a9d 100644 --- a/libretroshare/src/retroshare/rsgxsflags.h +++ b/libretroshare/src/retroshare/rsgxsflags.h @@ -18,48 +18,35 @@ namespace GXS_SERV { /** START privacy **/ - static const uint32_t FLAG_PRIVACY_MASK = 0x0000000f; - - // pub key encrypted - static const uint32_t FLAG_PRIVACY_PRIVATE = 0x00000001; - - // publish private key needed to publish - static const uint32_t FLAG_PRIVACY_RESTRICTED = 0x00000002; - - // anyone can publish, publish key pair not needed - static const uint32_t FLAG_PRIVACY_PUBLIC = 0x00000004; + static const uint32_t FLAG_PRIVACY_MASK = 0x0000000f; + static const uint32_t FLAG_PRIVACY_PRIVATE = 0x00000001; // pub key encrypted + static const uint32_t FLAG_PRIVACY_RESTRICTED = 0x00000002; // publish private key needed to publish + static const uint32_t FLAG_PRIVACY_PUBLIC = 0x00000004; // anyone can publish, publish key pair not needed /** END privacy **/ - /** START authentication **/ - - static const uint32_t FLAG_AUTHEN_MASK = 0x000000f0; - - // identity - static const uint32_t FLAG_AUTHEN_IDENTITY = 0x000000010; - - // publish key - static const uint32_t FLAG_AUTHEN_PUBLISH = 0x000000020; - - // admin key - static const uint32_t FLAG_AUTHEN_ADMIN = 0x00000040; - - // pgp sign identity - static const uint32_t FLAG_AUTHEN_PGP_IDENTITY = 0x00000080; - /** END authentication **/ + + /** START author authentication flags **/ + static const uint32_t FLAG_AUTHOR_AUTHENTICATION_MASK = 0x0000ff00; + static const uint32_t FLAG_AUTHOR_AUTHENTICATION_NONE = 0x00000000; + static const uint32_t FLAG_AUTHOR_AUTHENTICATION_GPG = 0x00000100; + static const uint32_t FLAG_AUTHOR_AUTHENTICATION_REQUIRED = 0x00000200; + static const uint32_t FLAG_AUTHOR_AUTHENTICATION_IFNOPUBSIGN = 0x00000400; + static const uint32_t FLAG_GROUP_SIGN_PUBLISH_MASK = 0x000000ff; + static const uint32_t FLAG_GROUP_SIGN_PUBLISH_ENCRYPTED = 0x00000001; + static const uint32_t FLAG_GROUP_SIGN_PUBLISH_ALLSIGNED = 0x00000002; + static const uint32_t FLAG_GROUP_SIGN_PUBLISH_THREADHEAD = 0x00000004; + static const uint32_t FLAG_GROUP_SIGN_PUBLISH_NONEREQ = 0x00000008; + /** START msg authentication flags **/ - static const uint8_t MSG_AUTHEN_MASK = 0x0f; - - static const uint8_t MSG_AUTHEN_ROOT_PUBLISH_SIGN = 0x01; - + static const uint8_t MSG_AUTHEN_MASK = 0x0f; + static const uint8_t MSG_AUTHEN_ROOT_PUBLISH_SIGN = 0x01; static const uint8_t MSG_AUTHEN_CHILD_PUBLISH_SIGN = 0x02; - - static const uint8_t MSG_AUTHEN_ROOT_AUTHOR_SIGN = 0x04; - - static const uint8_t MSG_AUTHEN_CHILD_AUTHOR_SIGN = 0x08; + static const uint8_t MSG_AUTHEN_ROOT_AUTHOR_SIGN = 0x04; + static const uint8_t MSG_AUTHEN_CHILD_AUTHOR_SIGN = 0x08; /** END msg authentication flags **/ @@ -71,12 +58,9 @@ namespace GXS_SERV { /** START Subscription Flags. (LOCAL) **/ - static const uint32_t GROUP_SUBSCRIBE_ADMIN = 0x01; - - static const uint32_t GROUP_SUBSCRIBE_PUBLISH = 0x02; - - static const uint32_t GROUP_SUBSCRIBE_SUBSCRIBED = 0x04; - + static const uint32_t GROUP_SUBSCRIBE_ADMIN = 0x01; + static const uint32_t GROUP_SUBSCRIBE_PUBLISH = 0x02; + static const uint32_t GROUP_SUBSCRIBE_SUBSCRIBED = 0x04; static const uint32_t GROUP_SUBSCRIBE_NOT_SUBSCRIBED = 0x08; /*! @@ -95,17 +79,12 @@ namespace GXS_SERV { * * NOTE: RsGxsCommentService uses 0x000f0000. */ - static const uint32_t GXS_MSG_STATUS_GEN_MASK = 0x0000ffff; - + static const uint32_t GXS_MSG_STATUS_GEN_MASK = 0x0000ffff; static const uint32_t GXS_MSG_STATUS_UNPROCESSED = 0x00000001; - - static const uint32_t GXS_MSG_STATUS_GUI_UNREAD = 0x00000002; - - static const uint32_t GXS_MSG_STATUS_GUI_NEW = 0x00000004; - - static const uint32_t GXS_MSG_STATUS_KEEP = 0x00000008; - - static const uint32_t GXS_MSG_STATUS_DELETE = 0x000000020; + static const uint32_t GXS_MSG_STATUS_GUI_UNREAD = 0x00000002; + static const uint32_t GXS_MSG_STATUS_GUI_NEW = 0x00000004; + static const uint32_t GXS_MSG_STATUS_KEEP = 0x00000008; + static const uint32_t GXS_MSG_STATUS_DELETE = 0x00000020; /** END GXS Msg status flags **/ @@ -124,9 +103,9 @@ namespace GXS_SERV { #define IS_MSG_UNREAD(status) (status & GXS_SERV::GXS_MSG_STATUS_GUI_UNREAD) #define IS_GROUP_ADMIN(subscribeFlags) (subscribeFlags & GXS_SERV::GROUP_SUBSCRIBE_ADMIN) -#define IS_GROUP_PUBLISHER(subscribeFlags) (subscribeFlags & GXS_SERV::GROUP_SUBSCRIBE_PUBLISH) +#define IS_GROUP_PUBLISHER(subscribeFlags) (subscribeFlags & GXS_SERV::GROUP_SUBSCRIBE_PUBLISH) #define IS_GROUP_SUBSCRIBED(subscribeFlags) (subscribeFlags & GXS_SERV::GROUP_SUBSCRIBE_SUBSCRIBED) -#define IS_GROUP_NOT_SUBSCRIBED(subscribeFlags) (subscribeFlags & GXS_SERV::GROUP_SUBSCRIBE_NOT_SUBSCRIBED) +#define IS_GROUP_NOT_SUBSCRIBED(subscribeFlags) (subscribeFlags & GXS_SERV::GROUP_SUBSCRIBE_NOT_SUBSCRIBED) #define IS_MSG_UNPROCESSED(status) (status & GXS_SERV::GXS_MSG_STATUS_UNPROCESSED) diff --git a/retroshare-gui/src/gui/gxs/GxsGroupDialog.cpp b/retroshare-gui/src/gui/gxs/GxsGroupDialog.cpp index 19b315164..955020117 100644 --- a/retroshare-gui/src/gui/gxs/GxsGroupDialog.cpp +++ b/retroshare-gui/src/gui/gxs/GxsGroupDialog.cpp @@ -37,18 +37,24 @@ #include // Control of Publish Signatures. -#define RSGXS_GROUP_SIGN_PUBLISH_MASK 0x000000ff -#define RSGXS_GROUP_SIGN_PUBLISH_ENCRYPTED 0x00000001 -#define RSGXS_GROUP_SIGN_PUBLISH_ALLSIGNED 0x00000002 -#define RSGXS_GROUP_SIGN_PUBLISH_THREADHEAD 0x00000004 -#define RSGXS_GROUP_SIGN_PUBLISH_NONEREQ 0x00000008 +// +// These are now defined in rsgxsflags.h +// +// #define FLAG_GROUP_SIGN_PUBLISH_MASK 0x000000ff +// #define FLAG_GROUP_SIGN_PUBLISH_ENCRYPTED 0x00000001 +// #define FLAG_GROUP_SIGN_PUBLISH_ALLSIGNED 0x00000002 +// #define FLAG_GROUP_SIGN_PUBLISH_THREADHEAD 0x00000004 +// #define FLAG_GROUP_SIGN_PUBLISH_NONEREQ 0x00000008 -// Author Signature. -#define RSGXS_GROUP_SIGN_AUTHOR_MASK 0x0000ff00 -#define RSGXS_GROUP_SIGN_AUTHOR_GPG 0x00000100 -#define RSGXS_GROUP_SIGN_AUTHOR_REQUIRED 0x00000200 -#define RSGXS_GROUP_SIGN_AUTHOR_IFNOPUBSIGN 0x00000400 -#define RSGXS_GROUP_SIGN_AUTHOR_NONE 0x00000800 +// // Author Signature. +// +// These are now defined in rsgxsflags.h +// +// #define FLAG_AUTHOR_AUTHENTICATION_MASK 0x0000ff00 +// #define FLAG_AUTHOR_AUTHENTICATION_NONE 0x00000000 +// #define FLAG_AUTHOR_AUTHENTICATION_GPG 0x00000100 +// #define FLAG_AUTHOR_AUTHENTICATION_REQUIRED 0x00000200 +// #define FLAG_AUTHOR_AUTHENTICATION_IFNOPUBSIGN 0x00000400 #define GXSGROUP_NEWGROUPID 1 #define GXSGROUP_LOADGROUP 2 @@ -576,54 +582,54 @@ uint32_t GxsGroupDialog::getGroupSignFlags() /* grab from the ui options -> */ uint32_t signFlags = 0; if (ui.publish_encrypt->isChecked()) { - signFlags |= RSGXS_GROUP_SIGN_PUBLISH_ENCRYPTED; + signFlags |= GXS_SERV::FLAG_GROUP_SIGN_PUBLISH_ENCRYPTED; } else if (ui.publish_required->isChecked()) { - signFlags |= RSGXS_GROUP_SIGN_PUBLISH_ALLSIGNED; + signFlags |= GXS_SERV::FLAG_GROUP_SIGN_PUBLISH_ALLSIGNED; } else if (ui.publish_threads->isChecked()) { - signFlags |= RSGXS_GROUP_SIGN_PUBLISH_THREADHEAD; + signFlags |= GXS_SERV::FLAG_GROUP_SIGN_PUBLISH_THREADHEAD; } else { // publish_open (default). - signFlags |= RSGXS_GROUP_SIGN_PUBLISH_NONEREQ; + signFlags |= GXS_SERV::FLAG_GROUP_SIGN_PUBLISH_NONEREQ; } // Author Signature. if (ui.personal_pgp->isChecked()) { - signFlags |= RSGXS_GROUP_SIGN_AUTHOR_GPG; + signFlags |= GXS_SERV::FLAG_AUTHOR_AUTHENTICATION_GPG; } else if (ui.personal_required->isChecked()) { - signFlags |= RSGXS_GROUP_SIGN_AUTHOR_REQUIRED; + signFlags |= GXS_SERV::FLAG_AUTHOR_AUTHENTICATION_REQUIRED; } else if (ui.personal_ifnopub->isChecked()) { - signFlags |= RSGXS_GROUP_SIGN_AUTHOR_IFNOPUBSIGN; + signFlags |= GXS_SERV::FLAG_AUTHOR_AUTHENTICATION_IFNOPUBSIGN; } else { // shouldn't allow this one. - signFlags |= RSGXS_GROUP_SIGN_AUTHOR_NONE; + signFlags |= GXS_SERV::FLAG_AUTHOR_AUTHENTICATION_NONE; } return signFlags; } void GxsGroupDialog::setGroupSignFlags(uint32_t signFlags) { - if (signFlags & RSGXS_GROUP_SIGN_PUBLISH_ENCRYPTED) { + if (signFlags & GXS_SERV::FLAG_GROUP_SIGN_PUBLISH_ENCRYPTED) { ui.publish_encrypt->setChecked(true); - } else if (signFlags & RSGXS_GROUP_SIGN_PUBLISH_ALLSIGNED) { + } else if (signFlags & GXS_SERV::FLAG_GROUP_SIGN_PUBLISH_ALLSIGNED) { ui.publish_required->setChecked(true); - } else if (signFlags & RSGXS_GROUP_SIGN_PUBLISH_THREADHEAD) { + } else if (signFlags & GXS_SERV::FLAG_GROUP_SIGN_PUBLISH_THREADHEAD) { ui.publish_threads->setChecked(true); - } else if (signFlags & RSGXS_GROUP_SIGN_PUBLISH_NONEREQ) { + } else if (signFlags & GXS_SERV::FLAG_GROUP_SIGN_PUBLISH_NONEREQ) { ui.publish_open->setChecked(true); } - if (signFlags & RSGXS_GROUP_SIGN_AUTHOR_GPG) { + if (signFlags & GXS_SERV::FLAG_AUTHOR_AUTHENTICATION_GPG) { ui.personal_pgp->setChecked(true); - } else if (signFlags & RSGXS_GROUP_SIGN_AUTHOR_REQUIRED) { + } else if (signFlags & GXS_SERV::FLAG_AUTHOR_AUTHENTICATION_REQUIRED) { ui.personal_required->setChecked(true); - } else if (signFlags & RSGXS_GROUP_SIGN_AUTHOR_IFNOPUBSIGN) { + } else if (signFlags & GXS_SERV::FLAG_AUTHOR_AUTHENTICATION_IFNOPUBSIGN) { ui.personal_ifnopub->setChecked(true); - } else if (signFlags & RSGXS_GROUP_SIGN_AUTHOR_NONE) { + } else if (signFlags & GXS_SERV::FLAG_AUTHOR_AUTHENTICATION_NONE) { // Its the same... but not quite. //ui.personal_noifpub->setChecked(); } /* guess at comments */ - if ((signFlags & RSGXS_GROUP_SIGN_PUBLISH_THREADHEAD) && - (signFlags & RSGXS_GROUP_SIGN_AUTHOR_IFNOPUBSIGN)) + if ((signFlags & GXS_SERV::FLAG_GROUP_SIGN_PUBLISH_THREADHEAD) && + (signFlags & GXS_SERV::FLAG_AUTHOR_AUTHENTICATION_IFNOPUBSIGN)) { ui.comments_allowed->setChecked(true); ui.comments_allowed_3->setChecked(true); diff --git a/retroshare-gui/src/gui/gxs/GxsGroupDialog.h b/retroshare-gui/src/gui/gxs/GxsGroupDialog.h index ab93a2038..1029ccedd 100644 --- a/retroshare-gui/src/gui/gxs/GxsGroupDialog.h +++ b/retroshare-gui/src/gui/gxs/GxsGroupDialog.h @@ -69,8 +69,8 @@ public: /*** Default flags are used to determine privacy of group, signatures required *** *** whether publish or id and whether comments are allowed or not ***/ -#define GXS_GROUP_DEFAULTS_DISTRIB_MASK 0x0000000f -#define GXS_GROUP_DEFAULTS_PUBLISH_MASK 0x000000f0 +#define GXS_GROUP_DEFAULTS_DISTRIB_MASK 0x0000000f +#define GXS_GROUP_DEFAULTS_PUBLISH_MASK 0x000000f0 #define GXS_GROUP_DEFAULTS_PERSONAL_MASK 0x00000f00 #define GXS_GROUP_DEFAULTS_COMMENTS_MASK 0x0000f000 @@ -78,16 +78,16 @@ public: #define GXS_GROUP_DEFAULTS_DISTRIB_GROUP 0x00000002 #define GXS_GROUP_DEFAULTS_DISTRIB_LOCAL 0x00000004 -#define GXS_GROUP_DEFAULTS_PUBLISH_OPEN 0x00000010 +#define GXS_GROUP_DEFAULTS_PUBLISH_OPEN 0x00000010 #define GXS_GROUP_DEFAULTS_PUBLISH_THREADS 0x00000020 #define GXS_GROUP_DEFAULTS_PUBLISH_REQUIRED 0x00000040 #define GXS_GROUP_DEFAULTS_PUBLISH_ENCRYPTED 0x00000080 -#define GXS_GROUP_DEFAULTS_PERSONAL_PGP 0x00000100 +#define GXS_GROUP_DEFAULTS_PERSONAL_PGP 0x00000100 #define GXS_GROUP_DEFAULTS_PERSONAL_REQUIRED 0x00000200 #define GXS_GROUP_DEFAULTS_PERSONAL_IFNOPUB 0x00000400 -#define GXS_GROUP_DEFAULTS_COMMENTS_YES 0x00001000 +#define GXS_GROUP_DEFAULTS_COMMENTS_YES 0x00001000 #define GXS_GROUP_DEFAULTS_COMMENTS_NO 0x00002000 /*! diff --git a/retroshare-gui/src/gui/gxsforums/GxsForumGroupDialog.cpp b/retroshare-gui/src/gui/gxsforums/GxsForumGroupDialog.cpp index 41f138e20..88a2c93e5 100644 --- a/retroshare-gui/src/gui/gxsforums/GxsForumGroupDialog.cpp +++ b/retroshare-gui/src/gui/gxsforums/GxsForumGroupDialog.cpp @@ -33,7 +33,7 @@ const uint32_t ForumCreateEnabledFlags = ( GXS_GROUP_FLAGS_DISTRIBUTION | // GXS_GROUP_FLAGS_PUBLISHSIGN | GXS_GROUP_FLAGS_SHAREKEYS | - // GXS_GROUP_FLAGS_PERSONALSIGN | + GXS_GROUP_FLAGS_PERSONALSIGN | // GXS_GROUP_FLAGS_COMMENTS | 0); @@ -46,7 +46,7 @@ const uint32_t ForumCreateDefaultsFlags = ( GXS_GROUP_DEFAULTS_DISTRIB_PUBLIC //GXS_GROUP_DEFAULTS_PUBLISH_REQUIRED | //GXS_GROUP_DEFAULTS_PUBLISH_ENCRYPTED | - //GXS_GROUP_DEFAULTS_PERSONAL_GPG | + //GXS_GROUP_DEFAULTS_PERSONAL_PGP | GXS_GROUP_DEFAULTS_PERSONAL_REQUIRED | //GXS_GROUP_DEFAULTS_PERSONAL_IFNOPUB |