VerifyDataBytes KalkanCryptCOM: Совместимость старой (2.7) и новой (3.0-test) версии для ГОСТ 34.310-2004

Добрый день!

В нашей информационной системе (СЭД) выполняется проверка “сырой” подписи внутри CMS.

Формирование сырой подписи выполняется так (для старого и нового калкана одинаково):
SignFlags = (int)KALKANCRYPTCOM_FLAGS.KC_SIGN_DRAFT
| (int)KALKANCRYPTCOM_FLAGS.KC_OUT_BASE64;

kalkanCryptCom.SignDataBytes(string.Empty, SignFlags, ref data[0], data.Length, out signData);

Чтобы проверить одну и туже сырую подпись по ГОСТ2004 старым и новым калканом необходимо использовать разный набор флагов:

для старого:
VerifyFlags = (int)KALKANCRYPTCOM_FLAGS.KC_SIGN_DRAFT
| (int)KALKANCRYPTCOM_FLAGS.KC_IN2_BASE64
| (int)KALKANCRYPTCOM_FLAGS.KC_OUT_BASE64
| (int)KALKANCRYPTCOM_FLAGS.KC_NOCHECKCERTTIME;
kalkanCryptCom.VerifyDataBytes(string.Empty, VerifyFlags, 0, ref data[0], data.Length, signData, out outData, out verifyInfo, out outCert);

для нового:
int VerifyFlags = (int)KALKANCRYPTCOM_FLAGS.KC_SIGN_DRAFT
| (int)KALKANCRYPTCOM_FLAGS.KC_IN_BASE64
| (int)KALKANCRYPTCOM_FLAGS.KC_OUT_BASE64
| (int)KALKANCRYPTCOM_FLAGS.KC_NOCHECKCERTTIME;
kalkanCryptCom.VerifyDataBytes(string.Empty, VerifyFlags, 0, ref data[0], data.Length, signData, out outData, out verifyInfo, out outCert);

то есть разница в том, что в “старом” калкане надо использовать KC_IN2_BASE64, а в новом - KC_IN_BASE64.
иначе будет ошибка 0x8f0001d: Verify Data - decode error.

Подскажите, такой набор флагов в новом KalkanCryptCom (с поддержкой GOST-2015) так и планируется оставить, или он будет приведен к тому же виду, как для старого KalkanCryptCom (без поддержки ГОСТ 2015)?

Для нас это важно, так как небходимо оставить возможность быстро “откатиться” к использованию старого KalkanCryptCom, если в новом окажется много ошибок или если будут недовольны скоростью подписания и проверки (новый KalkanCryptCom в 2 раза медленнее хэширует данные - подробнее писал тут Проблема с OCSP-квитанциями для KalkanCryptCom GOST2015)

Добрый день!
На данный момент в новой библиотеке флаги приведены к более правильному виду.
Флаг KC_IN2_BASE64 отвечает за исходные данные (inData).