Я пытаюсь проверить сертификат на встроенной плате вручную, потому что она не поддерживает Openssl или другие библиотеки. Однако у него есть библиотеки для хешей MD5 и SHA1 и шифрования RSA.
Насколько я понимаю, для проверки сертификата сначала вычислите хэш SHA1 (или MD5) сертификата; затем декодируйте подпись, используя открытый ключ CA, чтобы получить хешированное значение. Эти два значения хеш-функции должны быть одинаковыми.
Хэш SHA1 дает 20-байтовое значение, а MD5 дает 16-байтовое значение. Однако декодирования подписи RSA нет. Если ключ CA составляет 1024 бита, подпись декодирования будет 80 байтов; если ключ CA составляет 512 бит, декодированная подпись будет иметь размер 40 байт. Поэтому я не могу сравнивать 20-байтовое значение SHA1 с 40- или 80-байтовой декодированной подписью.
Я делаю что-то неправильно? Или мне не хватает шага?