Объявление
protected bool ValidateCertificate(byte[] certificateData);Параметры
| certificateData | Данные сертификата в формате PEM или DER. Если данные сертификата содержат несколько сертификатов, первый из них является конечным сертификатом. |
Возвращает
bool true, если сертификат должен быть принят, false, если нет.
Описание
Обратный вызов, вызываемый для каждого листового сертификата, отправленного удаленным сервером.
Переопределите это, чтобы реализовать пользовательскую схему проверки сертификата.
using UnityEngine.Networking;
using System.Security.Cryptography.X509Certificates;
// Based on https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning#.Net
class AcceptAllCertificatesSignedWithASpecificKeyPublicKey : CertificateHandler
{
// Encoded RSAPublicKey
private static string PUB_KEY = "30818902818100C4A06B7B52F8D17DC1CCB47362" +
"C64AB799AAE19E245A7559E9CEEC7D8AA4DF07CB0B21FDFD763C63A313A668FE9D764E" +
"D913C51A676788DB62AF624F422C2F112C1316922AA5D37823CD9F43D1FC54513D14B2" +
"9E36991F08A042C42EAAEEE5FE8E2CB10167174A359CEBF6FACC2C9CA933AD403137EE" +
"2C3F4CBED9460129C72B0203010001";
protected override bool ValidateCertificate(byte[] certificateData)
{
X509Certificate2 certificate = new X509Certificate2(certificateData);
string pk = certificate.GetPublicKeyString();
if (pk.Equals(PUB_KEY))
return true;
// Bad dog
return false;
}
}

