Статус: Участник
Группы: Участники
Зарегистрирован: 20.02.2018(UTC) Сообщений: 22  Сказал(а) «Спасибо»: 2 раз Поблагодарили: 1 раз в 1 постах
|
Добрый день. Используем CryptEncryptMessage, и возникла проблема с алгоритмом шифрования контента. В декодированном envelopedData видно, что для ГОСТ-сертификатов всегда используется 1.2.643.2.2.21 (GOST 28147-89), даже если указывать алгоритмы 1.2.643.7.1.1.5.1 и 1.2.643.7.1.1.5.2. Собственно такой же результат получится, если передать просто билеберду вместо oid. Возможно для них нужно обязательно указывать параметры, но я не нашел какие.
Для RSA-сертификатов нормально задаются и получаются на выходе 1.2.840.113549.3.4 и 1.2.840.113549.3.7, так что вероятно вызывающий код правильный.
Вопросы: 1) Может ли CryptEncryptMessage работать с кузнечиком и магмой? 2) Можно ли через низкоуровневые функции сформировать аналогичное сообщение с использованием кузнечика и магмы?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,181   Сказал «Спасибо»: 620 раз Поблагодарили: 2396 раз в 1885 постах
|
Здравствуйте.
Используется версия 5R2 и выше? |
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 20.02.2018(UTC) Сообщений: 22  Сказал(а) «Спасибо»: 2 раз Поблагодарили: 1 раз в 1 постах
|
Пробовал на 5.0.11998 KC1, и на 5.0.12500 KC1 (это вроде R3) - результат одинаковый
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,645
Сказал(а) «Спасибо»: 49 раз Поблагодарили: 705 раз в 486 постах
|
API точно работоспособно. В этом на windows/unix можно убедиться с помощью csptest в духе Код:$ csptest -sfenc -encrypt -alg GR3412_M -in src.txt -out src.txt.enc -my CN=user_cert -cert CN=user_cert
Read time: SYS: 0.000 sec USR: 0.000 sec UTC: 0.000 sec
Read perf: SYS: overflow USR: overflow UTC: overflow
#0:
Subject: CN=user_cert
Valid : 03.08.2022 00:21:57 - 03.08.2032 07:01:57 (UTC)
Issuer : DC=ru, DC=cp, CN=test-ca
#0:
Subject: CN=user_cert
Valid : 03.08.2022 00:21:57 - 03.08.2032 07:01:57 (UTC)
Issuer : DC=ru, DC=cp, CN=test-ca
The encrypted message is 3700 bytes.
Memory has been allocated for the encrypted blob.
File has been encrypted with alg: 1.2.643.7.1.1.5.1.1
Encrypt time: SYS: 0.000 sec USR: 0.030 sec UTC: 0.110 sec
Encrypt perf: SYS: overflow USR: 106.152 Kb/sec UTC: 28.951 Kb/sec
Output file (src.txt.enc) has been saved
[ErrorCode: 0x00000000]
Проверить алгоритмы можно на windows Код:> certutil -dump src.txt.enc
PKCS7 Message:
CMSG_ENVELOPED(3)
CMSG_ENVELOPED_DATA_PKCS_1_5_VERSION(0)
Content Type: 1.2.840.113549.1.7.1 PKCS 7 Data
Content Encryption Algorithm:
Algorithm ObjectId: 1.2.643.7.1.1.5.1.1 GOST R 34.12-2015 Magma CTR-ACPKM
Algorithm Parameters:
30 0e 04 0c 88 49 2d c6 d9 05 2f ae e8 05 8e 7b
88 49 2d c6 d9 05 2f ae e8 05 8e 7b .I-.../....{
...
No Signer
Recipient Count: 1
Recipient Info[0]:
CMSG_KEY_TRANS_RECIPIENT(1)
CERT_ID_ISSUER_SERIAL_NUMBER(1)
Serial Number: 76a5aed00000005347db
Issuer: CN=test-ca, DC=cp, DC=ru
Key Encryption Algorithm:
Algorithm ObjectId: 1.2.643.7.1.1.7.1.1
Algorithm Parameters:
30 0a 06 08 2a 85 03 07 01 01 06 02
1.2.643.7.1.1.6.2 GOST R 34.10-2012 DH 512 bit
...
и на unix: Код:$ openssl cms -inform DER -cmsout -print -in src.txt.enc
CMS_ContentInfo:
contentType: pkcs7-envelopedData (1.2.840.113549.1.7.3)
d.envelopedData:
version: <ABSENT>
originatorInfo: <ABSENT>
recipientInfos:
d.ktri:
version: <ABSENT>
d.issuerAndSerialNumber:
issuer: DC=ru, DC=cp, CN=test-ca
serialNumber: 560295554318937971967963
keyEncryptionAlgorithm:
algorithm: undefined (1.2.643.7.1.1.7.1.1)
parameter: SEQUENCE:
0:d=0 hl=2 l= 10 cons: SEQUENCE
2:d=1 hl=2 l= 8 prim: OBJECT :1.2.643.7.1.1.6.2
encryptedKey:
...
encryptedContentInfo:
contentType: pkcs7-data (1.2.840.113549.1.7.1)
contentEncryptionAlgorithm:
algorithm: undefined (1.2.643.7.1.1.5.1.1)
parameter: SEQUENCE:
0:d=0 hl=2 l= 14 cons: SEQUENCE
2:d=1 hl=2 l= 12 prim: OCTET STRING [HEX DUMP]:88492DC6D9052FAEE8058E7B
encryptedContent:
...
|
|
 1 пользователь поблагодарил Русев Андрей за этот пост.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 20.02.2018(UTC) Сообщений: 22  Сказал(а) «Спасибо»: 2 раз Поблагодарили: 1 раз в 1 постах
|
Да, спасибо, через csptest работает. Буду разбираться со своим кодом
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 20.02.2018(UTC) Сообщений: 22  Сказал(а) «Спасибо»: 2 раз Поблагодарили: 1 раз в 1 постах
|
Разобрался, код был верным, oid-ы - нет, теперь всё работает. Надо указывать один из этих (с механизмом преобразования ключа): 1.2.643.7.1.1.5.1.1, 1.2.643.7.1.1.5.1.2, 1.2.643.7.1.1.5.2.1, 1.2.643.7.1.1.5.2.2.
|
 1 пользователь поблагодарил alpolin за этот пост.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close