Исследование API AvTuneProxy
Предыстория и мотивация
Исследование API AvTuneProxy
Точка подключения и протокол
Формат сообщений
"enum_containers": {}
}
"result": {
"AVP1040184033": [
{
"name": "Общество с ограниченной ответственностью \"Компания\"-30.12.24",
"cert_b64": "MIIHKDCCBtY...[base64-encoded certificate]..."
}
],
"AVP3060122044": [
{
"name": "ООО \"Другая Компания\"-20.11.24",
"cert_b64": null
}
]
}
}
Особенности API
{
"error": "KeyManager API: unsupported command"
}
Работа с сертификатами
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2(,$certBytes)
Особенности реализации клиента
$webSocket.Options.AddSubProtocol("permessage-deflate")
$webSocket.Options.KeepAliveInterval = TimeSpan.FromSeconds(5)
$result = $webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), tokenSource.Token).Result
$messageBuilder.Append(Encoding.UTF8.GetString(buffer, 0, result.Count))
if (result.EndOfMessage)
break;
} while (true)
$response = $response -replace "`0", ""
$response = $response -replace "[\u0000-\u001F]", ""