====== 5.3 Certificate Authentication ====== Client identification via PQ certificates. ===== Main Certificate ===== The developer certificate is issued by the internal CA. # Request certificate openssl req -new -newkey ml-dsa-65 -keyout dev.key -out dev.csr # Send CSR to CA # After approval: receive dev.crt ===== Use Certificate ===== # API call with client certificate curl --cert dev.crt --key dev.key \ https://gateway.intern:443/api/v1/dsn/demo/tables ===== In Applications ===== var handler = new HttpClientHandler(); handler.ClientCertificates.Add( new X509Certificate2("dev.pfx", "password")); var client = new HttpClient(handler); var response = await client.GetAsync("https://gateway.intern/api/v1/dsn/demo/tables"); ===== Certificate Validation ===== The server checks: - Is the certificate valid (not expired)? - Was it signed by our CA? - Is it not revoked (CRL/OCSP)? - Does it have the required extensions? ===== PQ-Crypto Library ===== For programmatic creation and management of PQ certificates see the **WvdS.System.Security.Cryptography** library: * [[..:..:..:..:..:pqcrypt:developer:beispiele:start|Developer Examples (CSR, PKI)]] * [[..:..:..:..:..:pqcrypt:api:wvds-system-security-cryptography:x509certificates:start|X509Certificates API]] * [[..:..:..:..:..:pqcrypt:api:wvds-system-security-cryptography:x509certificates:certificaterequestextensions|CertificateRequest Extensions]]