Přeskočit obsah

Metody třídy CaConnector

Detailní informace o metodách jsou k dispozici formou programátorské dokumentace, která je součástí NuGet balíčku knihovny nebo v sekci Dokumentace tříd.

Všechny metody při volání musí mít nastavené vlastnosti ServerUrl, OperatorSigner a RaCode pokud u metody není uvedeno jinak.

GetProvCertAsync

public Task<GetProvCertResponse> GetProvCertAsync()

Metoda pro získání vydavatelských certifikátů z cílové CA. Vydavatelské certifikáty jsou potřeba zejména pro vyfiltrování operátorských certifikátů při používání RA.

Protože se jedná o statická data, která se mění pouze v případech že vznikne nový vydavatelský certifikát, je v této metodě možnost si data ukládat do cache. Pro zakomponování cache je potřeba vytvořit implementaci rozhraní IGetProvCertCache a instanci implementace předat při vytváření instance třídy CaConnector (viz Inicializace). Knihovna obsahuje výchozí implementaci IGetProvCert, která data ukládá do souboru do definovaného adresáře (RAConnection.Common.Cache.FileGetProvCertCache).

Odkazy na dokumentaci:

Tato metoda při volání nepotřebuje míst nastavenou vlastnost OperatorSigner a RaCode.

GetReqIdAsync

public Task<GetReqIdResp> GetReqIdAsync()

Metoda pro získání posledního evidovaného ID žádosti na CA pro daný kód RA. Po získání ID žádosti z CA je nutno jej inkrementovat a až poté je možné jej použít jako identifikátor nově vzniklé žádosti. Poslední ID žádosti se získává na základě hodnoty RaCode, která se přidává jako nepodepsaný atribut k PKCS#7 těla HTTP požadavku.

Požadavky komunikace GetReqId je možné cachovat, aby se při každém volání této metody nemusely znovu vytvářet podepsané požadavky na systém CA. Cachování požadavků lze aktivovat předáním implementace rozhraní IGetReqId v konstruktoru třídy CaConnector. Knihovna RAConnection obsahuje výchozí implementaci cachování GetReqId požadavků do operační paměti (CAConnection.Common.Cache.MemoryGetReqIdCache), nebo je možné si vytvořit vlastní implementaci podle potřeby.

Návratový objekt GetReqIdResp obhajuje poslední evidované ID žádosti pro klasický certifikát a ID žádosti pro certifikát TWINS.

Odkazy na dokumentaci:

CancelReqAsync

public Task CancelReqAsync(string requestId)

Metoda se používá pro zrušení procesu vydání certifikátu na CA. Zrušení vydání certifikátu vzniká na základě ID žádosti, které se předává v parametru funkce. ID se žádosti přiřazuje při vzniku žádosti (viz komunikace GetReqIdAsync).

Odkazy na dokumentaci:

GetCertificateAsync

public Task<GetCertRespBody> GetCertificateAsync(GetCertReqBody body)

Metoda pro získání certifikátu ze systému CA. Metoda na vstupu přebírá instanci třídy GetCertReqBody, která obsahuje možnosti podle kterých lze certifikát pro vyhledat na CA. Pro vyhledání je potřeba vždy použít pouze jeden z dostupných údajů:

public class GetCertReqBody
{
    public string CertSN { get; set; }
    public string ReqID { get; set; }
    public string KeyDigest { get; set; }
}
  • CertSN - Sériové číslo certifikátu. Používá se při hledání již vydaného certifikátu. Odpověď vždy obsahuje hledaný certifikátu, nebo je navrácena výjimka pokud certifikát neexistuje.
  • ReqID - ID žádosti o certifikát. Tento údaj pro vyhledání certifikátu se typicky využívá při vydání prvotního certifikátu v aplikaci RA, která se tímto způsobem dotazuje CA, zda byl pro danou žádost vydán certifikát, nebo se stále vydává a nebo byla žádost o certifikát zamítnuta.
  • KeyDigest - SHA-1 otisk klíče v hexadecimálním tvaru. Tato varianta se nevyužívá při získávání prvotních certifikátů.

Odpověď z CA poté obsahuje informace o stavu vydání certifikátu (probíhá vydání, vydáno, zamítnuto). Pokud je certifikát vydán je v odpovědi také samotný certifikát. V případě že byla žádost o certifikát zamítnuta, je v odpovědi důvod zamítnutí žádosti o certifikát.

Vzhledem k důvodu, že se tento požadavek pravidelně odesílá na CA pro dotázání na stav vydání certifikátu, lze si požadavky ukládat do cache, aby se při každém volání nemusel požadavek podepisovat operátorským certifikátem. Pro aktivaci cachování dotazů je potřeba při vytváření instance CaConnectoru v parametru předat instanci implementace rozhraní IGetCertCache. V knihovně RaConnection je k dispozici výchozí implementace rozhraní, která požadavky ukládá v operační paměti (RAConnection.Common.Cache.MemoryGetCertCache).

Odkazy na dokumentaci:

PutReqAsync

public Task PutReqAsync(PutReqReq body)

Metoda pro odeslání žádosti o certifikát a dalších potřebných údajů na CA, která následně pokud je vše v pořádku vydá nový certifikát. Instance třídy PutReqReq se skládá z následujících objektů:

public class PutReqReq
{
    public KeyAndRequestDataObject KeyAndRequestData { get; set; }
    public PutReqCertProps CertificateProperties { get; set; }
    public BillingDataObject BillingData { get; set; }
    public PutReqUserData UserData { get; set; }
    public string RaReceivedData { get; set; }
}
  • KeyAndRequestData - obsahuje samotnou žádost o certifikát, ID žádosti a další údaje týkající se žádosti (např. číslo karty, pokud byl klíč na kartě vygenerován)
  • CertificateProperties - parametry pro vydávaný certifikát jako typ certifikátu, heslo pro zneplatnění, zveřejnění certifikátu, IK MPSV apod.
  • BillingData - informace o plátci za certifikát
  • UserData - osobní údaje a další vyžadované informace o žadateli.
  • RaReceivedData - Žádost o certifikát + další informace (nepovinné - při typickém procesu vydání certifikátu není potřeba využívat).

Odkazy na dokumentaci:

RevokeCertAsync

public Task RevokeCertAsync(RevokeCertReq body)

Metoda pro zneplatnění existujícího certifikátu. Zneplatnění probíhá na základě sériového čísla certifikátu, hesla pro zneplatnění (v případě zneplatňování operátorem RA heslo není potřeba zadávat). Volitelně lze zadat i důvod zneplatnění, který bude vložen v CRL seznamu.

public class RevokeCertReq
{
    public string CertSN { get; set; }
    public string CertChallengePassword { get; set; }
    public CrlReasons? CRLReason { get; set; }
}

Odkazy na dokumentaci:

GetCert4CardAsync

public Task<GetCert4CardResp> GetCert4CardAsync(GetCert4CardReq body)

Metoda pro aktualizaci vydavatelských certifikátů na čipových kartách Starcos. V instanci třídy GetCert4CardReq jsou specifikovány kritéria pro filtraci navrácených certifikátů z CA. V odpovědi

Odkazy na dokumentaci:

Tato metoda při volání nepotřebuje míst nastavenou vlastnost OperatorSigner a RaCode.

GetSaveReqAsync

public Task<GetSaveReqResp> GetSaveReqAsync(string fileReqID)

Metoda pro získání žádosti o certifikát na základě ID souboru žádosti, pod kterým je evidována na CA. ID souboru žádosti není totožné s ID žádosti, které lze získat pomocí metody GetReqIdAsync.

V odpovědi se nachází samotná žádost o certifikát v kódování Base64String.

Odkazy na dokumentaci:

PutRenReq

public Task PutRenReqAsync(PutRenReqReq body)

Metoda pro odeslání žádosti o následný certifikát na systém CA. Metoda na vstupu přebírá instanci třídy PutRenReq, která v sobě obsahuje žádost o vydání následného certifikátu a další vyžadovaná metadata.

public class PutRenReqReq
{
    public KeyAndRequestDataObject KeyAndRequestData { get; set; }
    public PutRenReqCertProps CertificateProperties { get; set; }
    public BillingDataObject BillingData { get; set; }
    public PutRenReqUserData UserData { get; set; }
    public string RaReceivedData { get; set; }
}
  • KeyAndRequestData - údaje o žádosti o následný certifikát, jedná se o stejný objekt jako v metodě PutReqAsync
  • CertificateProperties - nastavení pro následný certifikát, které se liší od certifikátu obnovovaného. Lze změnit např. heslo zneplatnění, dodatečně vložit IK MPSV apod.
  • BillingData - údaje pro fakturační systém (údaje o plátci za certifikát). Položka je nepovinná.
  • UserData - údaje o držiteli certifikátu, které se liší od vydání obnovovaného certifikátu. Tato možnost je nepovinná a zastaralá a neměla by se do komunikace vkládat
  • RaReceivedData - další data přijaté na RA, nepovinná položka. Pro vydání následného certifikátu typicky není potřeba.

Odkazy na dokumentaci:

TestConAsync

public Task<TestConResp> TestConAsync(TestConReq body)

Metoda pro otestování spojení a dostupnosti systému CA a jeho částí. V objektu TestConReq lze specifikovat části CA, které se mají otestovat na dostupnost. Výsledek testu spojení je poté uložen v objektu TestConResp

Tato metoda při volání nepotřebuje míst nastavenou vlastnost OperatorSigner a RaCode.

Odkazy na dokumentaci:

GetUserCertsAsync

public Task<GetUserCertsResp> GetUserCertsAsync(GetUserCertsReq body)

Metoda pro získání uživatelů a jejich certifikátů na základě vyhledávacích kritérií v objektu GetUserCertsReq - lze nastavit typ certifikátu, osobní údaje majitele certifikátu. Návratový objekt poté obsahuje nalezené výsledky.

Odkazy na dokumentaci:

ClearRequestCacheAsync

public Task ClearRequestCacheAsync()

Tato metoda neprovádí komunikaci s CA, není potřeba tedy mít nastavené vlastnosti ServerUrl, OperatorSigner a RaCode. Metoda slouží k pročistění cachovaných dotazů. Pokud se používá výchozí implementace cahování dotazů v operační paměti, je doporučeno cache čistit při změně operátorského certifikátu za běhu aplikace RA, z důvodu aby odesílané požadavky byly vždy podepsány aktuálně používaným operátorským certifikátem.

Odkazy na dokumentaci: