str_append(reg->handshake, "\tforward-secrecy");
if ((mech->flags & MECH_SEC_MUTUAL_AUTH) != 0)
str_append(reg->handshake, "\tmutual-auth");
+ if ((mech->flags & MECH_SEC_CHANNEL_BINDING) != 0)
+ str_append(reg->handshake, "\tchannel-binding");
str_append_c(reg->handshake, '\n');
list->next = reg->modules;
mech_desc.flags |= MECH_SEC_FORWARD_SECRECY;
else if (strcmp(*args, "mutual-auth") == 0)
mech_desc.flags |= MECH_SEC_MUTUAL_AUTH;
+ else if (strcmp(*args, "channel-binding") == 0)
+ mech_desc.flags |= MECH_SEC_CHANNEL_BINDING;
}
array_push_back(&conn->available_auth_mechs, &mech_desc);
return 0;
MECH_SEC_MUTUAL_AUTH = 0x0040,
/* Allow NULs in input data */
MECH_SEC_ALLOW_NULS = 0x0080,
+ /* Requires channel binding */
+ MECH_SEC_CHANNEL_BINDING = 0x0100,
};
/* auth failure codes */