print(digest_hex) print('\tПодписываем по handle закрытого ключа') #Для подписания используем handle закрытого ключа sign_hex, stat = t1.sign(ckmpair, digest_hex, hprivkey) if (stat != ''): print(stat) quit() #Для подписания используем CKA_ID закрытого ключа sign1_hex1, stat = t1.sign(ckmpair, digest_hex, pkcs11_id) print('\tПодписываем по pkcs11_id (CKA_ID) закрытого ключа') if (stat != ''): print(stat) quit() print(sign1_hex1) print('Проверка 1-ой подписи') verify, stat = t1.verify(digest_hex, sign1_hex1, pubkeyinfo) if (stat != ''): print('Прерывание при verify 1: ' + stat) if (verify == 1): print('Подпись верна') else: print('Подпись не верна') print('Проверка 2-ой подписи') verify, stat = t1.verify(digest_hex, sign1_hex1, pubkeyinfo) #verify, stat = t1.verify(digest_hex, pubkeyinfo, sign1_hex1) if (stat != ''): print('Прерывание при verify 2: ' + stat) if (verify == 1): print('Подпись верна') else:
print(stat) quit() print(parseHabre.keys()) #Проверяем, что издатель сертификата совпадает с владельцем корневого сертификата if (parseCA.get('subject') != parseHabre.get('issuer')): print('Сертификат выдан на другом УЦ') quit() print('Сертификат выдан на данном УЦ') #Переводим tbsCertificate пользователь в binary tbs_hex = parseHabre.get('tbsCertificate') tbsHabrDer = bytes(bytearray.fromhex(tbs_hex)) #tbsHabrDer = '1111' #Получаем хэш для tbs-сертификата hashTbs_hex, stat = t1.digest("stribog512", tbsHabrDer) if (stat != ''): print(stat) quit() #hashTbs_hex, stat = t1.digest("stribog256", tbsHabrDer) verify, stat = t1.verify(hashTbs_hex, parseHabre.get('signature'), parseCA.get('pubkeyinfo')) #verify, stat = t1.verify(hashTbs_hex, parseHabre.get('signature'), parseHabre.get('pubkeyinfo')) if (stat != ''): print('Ошибка при проверке подписи:') print(stat) quit() if (verify != 1): print('Подпись сертификата не прошла проверку') quit() print('Подпись сертификата прошла проверку') quit()