Передача пароля по сети
Смотрю на код (в собственном клиенте для FB) упаковки пароля в буфер, который будет отправлен на сервер:
m_dpb.AppendMbcString (isc_api::ibp_isc_dpb_password_enc, L"isc_dpb_password_enc", dpb_type::mbc_str_box_type(password_b,password_sz));
И думаю…
1. Пароль передается в «зашифрованном» виде.
2. В FB3 с его SRP, шифрование «поинтереснее».
3. Но пришлось libtommath затащить в код.
4. А в родном NetProvider для FB это «затаскивание» не асилили, поэтому SRP оно не поддерживает.
5. А интересно — «isc_dpb_password_enc» хотя бы используется?
6. Нет, не используется. Пароль передается как есть (через isc_dpb_password):
protected override void SendAttachToBuffer(DatabaseParameterBuffer dpb, string database)
{
	XdrStream.Write(IscCodes.op_attach);
	XdrStream.Write(0);
	if (!string.IsNullOrEmpty(Password))
	{
		dpb.Append(IscCodes.isc_dpb_password, Password);
	}
	dpb.Append(IscCodes.isc_dpb_utf8_filename, 0);
	XdrStream.WriteBuffer(Encoding.UTF8.GetBytes(database));
	XdrStream.WriteBuffer(dpb.ToArray());
}
7. Забавно, забавно …

