|
|
|
Microsoft CrytoAPI и RSA
|
|||
|---|---|---|---|
|
#18+
Никто не знает, как работает функция CryptDecrypt в MS CryptoAPI? Проблема в следующем: мне нужно зашифровать некие данные алгоритмом RSA с длиной ключа 1024 бита, чтобы потом их можно было расшифровать через CryptoAPI. На данный момент имею следующий код (вырезал всё лишнее): В CryptoAPI генерируется ключевая пара RSA и экспортируется публичный ключ Код: pascal 1. 2. 3. 4. Потом выгруженный ключ делится на экспоненту и модуль: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Т.к. в описании функции CryptDecrypt сказано что она использует PKCS #1 Padding , то реализовал его таким образом: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Cамо шифрование выглядит как-то так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. И в итоге при расшифровке текста в этот момент мы получаем NTE_BAD_DATA: Код: pascal 1. 2. 3. 4. Шифрование и расшифровка что в uCrypto что в CryptoAPI работают нормально, если расшифровывать в той же библиотеке, в какой и шифруется. А вот как их заставить работать между собой? Возможно кто-нибудь знает какие-то нюансы, которые я упустил? P.S: Шифрование требуется произовдить без CryptoAPI, т.к. в итоге данные могут шифроваться там, где его нет (linux, etc), в данный момент это не рабочее приложение, а испытательный стенд, где я пытаюсь понять как оно вообще работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 14:49 |
|
||
|
Microsoft CrytoAPI и RSA
|
|||
|---|---|---|---|
|
#18+
Мда, разобрался, данные после PKCS1Padding() нужно было перевернуть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 15:08 |
|
||
|
Microsoft CrytoAPI и RSA
|
|||
|---|---|---|---|
|
#18+
alekcvp, дописал бы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 15:52 |
|
||
|
Microsoft CrytoAPI и RSA
|
|||
|---|---|---|---|
|
#18+
makhaonalekcvp, дописал бы... Там нечего дописывать, одну строчку поменять (BE = Big-Endian): Код: pascal 1. После этого всё работает. Просто я когда экспериментировал модуль пробовал так загружать, не помогало. А оказывается надо было сообщение перевернуть, т.к. оно по-умолчанию в Big-Endian формате. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 21:38 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=109&tid=2040915]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 387ms |

| 0 / 0 |
