Мужики, помогите кто знает - третьи сутки бьюсь.
Ситуация такая: установлен m2crypto, делаю:
from M2Crypto import Engine, httpslib, SSL
e = Engine.load_dynamic_engine('gost', '/usr/lib64/engines/libgost.so')
e.init()
e.set_default()
r = file('request.xml', "rb").read()
ctx = SSL.Context()
conn = httpslib.HTTPSConnection(host="icrs.nbki.ru", ssl_context = ctx)
conn.request("POST", "/products/B2BRequestServlet/", body=r)
Получаю SSLError: unknown cipher returned
То есть ситуация такая, что сайт отвечает пакетом данных, который расшифровать невозможно поскольку шифрсьют неизвестен
А сайт НБКИ использует шифрсьют GOST2001-GOST89-GOST89. Это совершенно точно, - я это проверил курлом, в смысле. И, само собой, он поддерживается ГОСТовским движком который есть и который можно загрузить принудительно.
Методом проб и ошибок я понял, что шифрсьюты не видит интерфейс SSL
In [12]: SSL.m2.engine_init(m2.engine_by_id("gost"))
Out[12]: 1
In [13]: SSL.m2.ssl_ctx_set_cipher_list(ctx.ctx, 'GOST2001-GOST89-GOST89')
Out[13]: 0
Может кто знает как победить эту хрень?