Add certfp check to challenge too.
This commit is contained in:
parent
76169ea734
commit
ed8b3d69ac
1 changed files with 19 additions and 0 deletions
|
@ -237,6 +237,25 @@ m_challenge(struct Client *client_p, struct Client *source_p, int parc, const ch
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (oper_p->certfp != NULL)
|
||||||
|
{
|
||||||
|
if (source_p->certfp == NULL || strcasecmp(source_p->certfp, oper_p->certfp))
|
||||||
|
{
|
||||||
|
sendto_one_numeric(source_p, ERR_NOOPERHOST, form_str(ERR_NOOPERHOST));
|
||||||
|
ilog(L_FOPER, "FAILED OPER (%s) by (%s!%s@%s) (%s) -- client certificate fingerprint mismatch",
|
||||||
|
name, source_p->name,
|
||||||
|
source_p->username, source_p->host, source_p->sockhost);
|
||||||
|
|
||||||
|
if(ConfigFileEntry.failed_oper_notice)
|
||||||
|
{
|
||||||
|
sendto_realops_snomask(SNO_GENERAL, L_ALL,
|
||||||
|
"Failed OPER attempt - client certificate fingerprint mismatch by %s (%s@%s)",
|
||||||
|
source_p->name, source_p->username, source_p->host);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(!generate_challenge(&challenge, &(source_p->localClient->challenge), oper_p->rsa_pubkey))
|
if(!generate_challenge(&challenge, &(source_p->localClient->challenge), oper_p->rsa_pubkey))
|
||||||
{
|
{
|
||||||
char *chal = challenge;
|
char *chal = challenge;
|
||||||
|
|
Loading…
Reference in a new issue