Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Kontraband 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.
-
RFC5280
-
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.
-
openssl asn1parse
-
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.
-
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.
-
Zkuste použít třídu X509Certificate2, viz https://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509certificate2%28v=vs.90%29.aspx