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;
|
||||
}
|
||||
|
||||
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))
|
||||
{
|
||||
char *chal = challenge;
|
||||
|
|
Loading…
Reference in a new issue