int wantserverid = -1;
// these three are harmless
- if(string[4] == CCREP_SERVER_INFO)
+ if((unsigned char) string[4] == CCREP_SERVER_INFO)
return CRYPTO_NOMATCH;
- if(string[4] == CCREP_PLAYER_INFO)
+ if((unsigned char) string[4] == CCREP_PLAYER_INFO)
return CRYPTO_NOMATCH;
- if(string[4] == CCREP_RULE_INFO)
+ if((unsigned char) string[4] == CCREP_RULE_INFO)
return CRYPTO_NOMATCH;
Crypto_RetrieveHostKey(&cls.connect_address, &wantserverid, NULL, 0, NULL, 0, NULL, NULL);
}
// cache the server key
- Crypto_StoreHostKey(&cls.connect_address, va(vabuf, sizeof(vabuf), "%d %s@%s", crypto->use_aes ? 1 : 0, crypto->server_idfp, pubkeys_fp64[CDATA->s]), false);
+ Crypto_StoreHostKey(&cls.connect_address, va(vabuf, sizeof(vabuf), "%d %s@%s%s", crypto->use_aes ? 1 : 0, crypto->server_idfp, crypto->server_issigned ? "" : "~", pubkeys_fp64[CDATA->s]), false);
if(CDATA->c >= 0)
{