Formát certifikátu X509

Kontraband

Formát certifikátu X509
« kdy: 04. 02. 2016, 15:04:21 »
Rad by som sa spytal, ci neviete kde najdem strukturu ako vyzera format X509 certifikatu? V aplikacii mam pole bytov, ktore predstavuje dany certifikat. vo windows 10 sa neda pouzivat trieda x509certificate, ale iba trieda Certificate. A potreboval by som metodu na ziskanie Public Key, ale ta trieda ju neobsahuje. rozmyslam, ze si kluc vyparsujem z pola, ale nenasiel som strukturu, resp. neviem od akej pozicie zacina a kde konci public key.
za kazdu radu budem rad.
« Poslední změna: 04. 02. 2016, 17:16:52 od Petr Krčmář »


Re:Certifikat X509
« Odpověď #1 kdy: 04. 02. 2016, 15:16:29 »
RFC5280

Re:Certifikat X509
« Odpověď #2 kdy: 04. 02. 2016, 16:02:15 »
Třídu x509certificate určitě nepoužíváte ve Window, ale v nějakém programovacím jazyce a ta třída je z nějaké knihovny. Když prozradíte, o co se jedná, možná vám někdo dokáže poradit. Jinak X509 certifikáty se většinou ukládají v ASN.1 strukturách, a to na parsování není nic jednoduchého. Rozhodně tam nenajdete veřejný klíč tak, že by začínal na nějaké pozici a nemusel jste se starat o to, co je okolo.

dajo007

Re:Certifikat X509
« Odpověď #3 kdy: 04. 02. 2016, 16:33:06 »
openssl asn1parse

Kontraband

Re:Formát certifikátu X509
« Odpověď #4 kdy: 04. 02. 2016, 21:33:31 »
pouzivame .NET/C#. v novej technologii universal windows platform nie je trieda X509Certificate, iba trieda Certificate a ta nepouziva metodu GetPublicKey(). Nemam znalosti o strukture X509, ale myslel som si, ze to bude napr. ako pri TCP pakete, ze sa bude dat posuvat po bytoch.


Re:Formát certifikátu X509
« Odpověď #5 kdy: 05. 02. 2016, 07:08:26 »
pouzivame .NET/C#. v novej technologii universal windows platform nie je trieda X509Certificate, iba trieda Certificate a ta nepouziva metodu GetPublicKey().
Určitě to nějak musí jít, možná se nová třída jmenuje jinak. To opravdu není k tomu, aby si to každý programoval znovu sám.

Nemam znalosti o strukture X509, ale myslel som si, ze to bude napr. ako pri TCP pakete, ze sa bude dat posuvat po bytoch.
Ne, tak to není. Zjednodušeně řečeno se ASN.1 skládá z trojic „tag“ označující typ dané datové struktury, délka a pak vlastní obsah. Přičemž obsahem může být další vnořená trojice nebo jejich posloupnost. Takže k veřejnému certifikátu se nedostanete jinak, než že rozparsujete vše před ním a správně rozpoznáte všechny struktury.

wajta