| ||||
| ||||
Уважаемые разработчики и пользователи JCP! Помогите разобраться. В JCP не удаётся проверить результат отработки ф-и "CryptSignHash" Но удаётся проверить результат отработки "CryptSignMessage" пусть byte[] hash = MessageDigest.getInstance("GOST3411").digest("doc".getBytes()); //----------------------- Вот что удаётся ------------------------------- //клиент сделал документу "doc" CryptSignMessage и прислал signature PKCS7 pkcs7 = new PKCS7(signature); X509Certificate [] certs = pkcs7.getCertificates(); SignerInfo [] si = pkcs7.getSignerInfos(); byte [] signed_hash = si[0].getEncryptedDigest(); PublicKey pub = certs[0].getPublicKey(); boolean res = MyCheckEncryptedDigest(hash,signed_hash,pub); //возвращает true //------------------------------------------------------------------------- //----------------------- Не удаётся -------------------------------------- byte [] signed_hash = ... // присалется клиентом, результат CryptSignHash PublicKey pub = .. // тоже считаем что есть boolean res = MyCheckEncryptedDigest(hash,signed_hash,pub); //возвращает false //------------------------------------------------------------------------- В CryptCreateHash передаю CALG_GR3411 В CryptSignMessage передаю SigParams.HashAlgorithm.pszObjId = szOID_CP_GOST_R3411_R3410; В java - MessageDigest.getInstance("GOST3411") Вывод такой, что CryptSignMessage не "в лоб" считает хаш, подписывает его и формирует pkcs#7, иначе меня бы во втором случае меня ожидал успех НО КАК ТОГДА? В чём здесь может быть дело? Подскажите пожалуйста | ||||
Ответы: | ||||
| ||||
Или всё таки CryptSignMessage в качестве подписи (те самые 64 байта)в pkcs#7 заворачивает не результат работы CryptSignHash??????..... Ну не проверяется подпись от CryptSignHash в java и всё там!!! | ||||
| ||||
Может есть у кого нить микрософтовый исходник от CryptSignMessage? А то намыльте :) пожалуйста. Очень интересно чего она с хешем делает. | ||||