Статус: Новичок
Группы: Участники
Зарегистрирован: 18.02.2012(UTC) Сообщений: 2
|
пытаюсь сделать модуль печати сертификатов свой затык сейчас в расшифровке расширений сертификата хочу получить норм текст как certutil выдает: Код:Certificate Extensions: 8
2.5.29.19: Flags = 1(Critical), Length = 2
Основные ограничения
Тип субъекта=Конечный субъект
Ограничение на длину пути=Отсутствует
0000 30 00 0.
2.5.29.32: Flags = 0, Length = 11
Политики сертификата
[1]Политика сертификата:
Идентификатор политики=1.2.643.3.61.502710.1.2.2
0000 30 0f 30 0d 06 0b 2a 85 03 03 3d 9e d7 36 01 02 0.0...*...=..6..
0010 02 .
2.5.29.17: Flags = 0, Length = 7a
Дополнительное имя субъекта
Другое имя:
T=13 09 33 32 32 31 33 30 36 35 38
URL=0
Другое имя:
1.2.643.3.131.1.1=13 0a 37 37 33 35 30 39 36 33 35 38
Другое имя:
1.2.643.3.61.502710.1.7=13 09 37 37 33 35 30 31 30 30 31
Другое имя:
1.2.643.3.61.502710.1.5=13 0b 30 33 37 33 32 30 30 31 33 36 39
Другое имя:
1.2.643.1.12345.1=13 00
308.984.0: 0x80040154 (-2147221164)
0000 30 78 a0 12 06 03 55 04 0c a0 0b 13 09 33 32 32 0x....U......322
0010 31 33 30 36 35 38 86 01 30 a0 18 06 08 2a 85 03 130658..0....*..
0020 03 81 03 01 01 a0 0c 13 0a 37 37 33 35 30 39 36 .........7735096
0030 33 35 38 a0 19 06 0a 2a 85 03 03 3d 9e d7 36 01 358....*...=..6.
0040 07 a0 0b 13 09 37 37 33 35 30 31 30 30 31 a0 1b .....773501001..
0050 06 0a 2a 85 03 03 3d 9e d7 36 01 05 a0 0d 13 0b ..*...=..6......
0060 30 33 37 33 32 30 30 31 33 36 39 a0 0d 06 07 2a 03732001369....*
0070 85 03 01 e0 39 01 a0 02 13 00 ....9.....
2.5.29.15: Flags = 1(Critical), Length = 4
Использование ключа
Цифровая подпись, Неотрекаемость, Шифрование ключей, Согласование ключей (e8)
0000 03 02 03 e8 ....
2.5.29.37: Flags = 0, Length = 3c
Улучшенный ключ
Проверка подлинности клиента (1.3.6.1.5.5.7.3.2)
Неизвестное использование ключа (1.2.643.3.61.502710.1.6.3.4.1.1)
Неизвестное использование ключа (1.2.643.3.61.502710.1.6.3.4.1.2)
Неизвестное использование ключа (1.2.643.3.61.502710.1.6.3.4.1.4)
0000 30 3a 06 08 2b 06 01 05 05 07 03 02 06 0e 2a 85 0:..+.........*.
0010 03 03 3d 9e d7 36 01 06 03 04 01 01 06 0e 2a 85 ..=..6........*.
0020 03 03 3d 9e d7 36 01 06 03 04 01 02 06 0e 2a 85 ..=..6........*.
0030 03 03 3d 9e d7 36 01 06 03 04 01 04 ..=..6......
2.5.29.35: Flags = 0, Length = 18
Идентификатор ключа центра сертификатов
Идентификатор ключа=07 b5 79 b7 01 3a 0c 81 bd 25 81 73 ab 1a 40 e9 58 c3 f3 4d
0000 30 16 80 14 07 b5 79 b7 01 3a 0c 81 bd 25 81 73 0.....y..:...%.s
0010 ab 1a 40 e9 58 c3 f3 4d ..@.X..M
2.5.29.31: Flags = 0, Length = 5d
Точки распространения списков отзыва (CRL)
[1]Точка распределения списка отзыва (CRL)
Имя точки распространения:
Полное имя:
URL=http://dc.uc-sfsfk.local/crl/current.crl
[2]Точка распределения списка отзыва (CRL)
Имя точки распространения:
Полное имя:
URL=http://crl.roskazna.ru/crl/last.crl
0000 30 5b 30 2e a0 2c a0 2a 86 28 68 74 74 70 3a 2f 0[0..,.*.(http:/
0010 2f 64 63 2e 75 63 2d 73 66 73 66 6b 2e 6c 6f 63 /dc.uc-sfsfk.loc
0020 61 6c 2f 63 72 6c 2f 63 75 72 72 65 6e 74 2e 63 al/crl/current.c
0030 72 6c 30 29 a0 27 a0 25 86 23 68 74 74 70 3a 2f rl0).'.%.#http:/
0040 2f 63 72 6c 2e 72 6f 73 6b 61 7a 6e 61 2e 72 75 /crl.roskazna.ru
0050 2f 63 72 6c 2f 6c 61 73 74 2e 63 72 6c /crl/last.crl
2.5.29.14: Flags = 0, Length = 16
Идентификатор ключа субъекта
af e5 5b f0 d9 4e cd af 3a 46 e2 85 02 56 1c 47 51 4d 2a 35
0000 04 14 af e5 5b f0 d9 4e cd af 3a 46 e2 85 02 56 ....[..N..:F...V
0010 1c 47 51 4d 2a 35 .GQM*5
пока дошел до получения массива расширений сертификата либо Код: 0000 30 3a 06 08 2b 06 01 05 05 07 03 02 06 0e 2a 85 0:..+.........*.
0010 03 03 3d 9e d7 36 01 06 03 04 01 01 06 0e 2a 85 ..=..6........*.
0020 03 03 3d 9e d7 36 01 06 03 04 01 02 06 0e 2a 85 ..=..6........*.
0030 03 03 3d 9e d7 36 01 06 03 04 01 04 ..=..6......
таких строк как certutil выдает из него Код:var
pContext: PCCERT_CONTEXT;
M: TMemoryStream;
i, j, FileListi: integer;
arExtension: array of CERT_EXTENSION;
arAltNameEntry: array of CERT_ALT_NAME_ENTRY;
res: bool;
szOID: LPSTR;
pExtension: PCERT_EXTENSION;
cbStructInfo, pvStructInfo: Cardinal;
AltNameInfo: PCERT_ALT_NAME_INFO;
begin
for FileListi:=0 to CheckListBox1.Items.Count-1 do
begin
if CheckListBox1.Checked[FileListi] then
try
M:=TMemoryStream.Create;
M.LoadFromFile(edit1.text+'\'+CheckListBox1.Items.Strings[FileListi]);
pContext:=CertCreateCertificateContext(X509_ASN_ENCODING or
PKCS_7_ASN_ENCODING, M.Memory, M.Size);
if Assigned(pContext) then
try
pointer(arExtension):= pContext.pCertInfo.rgExtension;
memo1.Lines.Add(IntToStr(pContext.pCertInfo.cExtension));
for i:=0 to pContext.pCertInfo.cExtension-1 do
begin
memo1.Lines.Add('/////////////////////////////////////');
memo1.Lines.Add(arExtension[i].pszObjId);
memo1.Lines.Add(BoolToStr(arExtension[i].fCritical, true));
memo1.Lines.Add(IntToStr(arExtension[i].Value.cbData));
memo1.Lines.Add(ByteArrayToStrInv(arExtension[i].Value.pbData, arExtension[i].Value.cbData));
end;
finally
if not CertFreeCertificateContext(pContext) then
ShowMessage(SysErrorMessage(GetLastError));
end;
finally
M.Free;
end;
end;
end;
в результате получаю: Код://///////////////////////////////////
2.5.29.19
True
2
3000
/////////////////////////////////////
2.5.29.32
False
17
300F300D060B2A8503033D9ED736010202
/////////////////////////////////////
2.5.29.17
False
122
3078A012060355040CA00B1309333232313330363538860130A01806082A85030381030101A00C130A37373335303936333538A019060A2A8503033D9ED7360107A00B1309373733353031303031A01B060A2A8503033D9ED7360105A00D130B3033373332303031333639A00D06072A850301E03901A0021300
/////////////////////////////////////
2.5.29.15
True
4
030203E8
/////////////////////////////////////
2.5.29.37
False
60
303A06082B06010505070302060E2A8503033D9ED736010603040101060E2A8503033D9ED736010603040102060E2A8503033D9ED736010603040104
/////////////////////////////////////
2.5.29.35
False
24
3016801407B579B7013A0C81BD258173AB1A40E958C3F34D
/////////////////////////////////////
2.5.29.31
False
93
305B302EA02CA02A8628687474703A2F2F64632E75632D736673666B2E6C6F63616C2F63726C2F63757272656E742E63726C3029A027A0258623687474703A2F2F63726C2E726F736B617A6E612E72752F63726C2F6C6173742E63726C
/////////////////////////////////////
2.5.29.14
False
22
0414AFE55BF0D94ECDAF3A46E28502561C47514D2A35
а вот что дальше сделать с ними чтобы получить удобоваримый текст из них? пробовал на примере szOID_SUBJECT_ALT_NAME2 через PCERT_ALT_NAME_INFO обработать отдельный связный с ним элемент массива расширений - как-то еще хуже было, ничего не получилось.. не подскажет кто куда дальше двигаться?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Цитата:не подскажет кто куда дальше двигаться? посмотреть ветку "встраивание" целиком + старый форум и воспользоваться поиском CertFindExtension CryptDecodeObject и далее в зависимости от расширения (PCRYPT_DATA_BLOB, BinToHex ... ) тебе в помощь Отредактировано пользователем 18 февраля 2012 г. 19:42:47(UTC)
| Причина: Не указана |
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 18.02.2012(UTC) Сообщений: 2
|
кажется нашел в чем проблема. неправильное описание структуры CERT_ALT_NAME_ENTRY в wincript2, из-за этого не получалось нормально декриптить.. не считая кучи других ошибок описания в этом винкрипте.. нету у кого случаем ссылки на правильный wincrypt для дельфи?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Не используй wincrYpt2 Цитата:нету у кого случаем ссылки на правильный wincrypt для дельфи? ссылка на правильный wincrypt - не существует ... Use jwawincrypt Отредактировано пользователем 19 февраля 2012 г. 15:43:11(UTC)
| Причина: Не указана |
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close