/// <summary> /// Revokes the certificate. /// </summary> /// <param name="certificate">The certificate in DER format.</param> /// <param name="reason">The reason for revocation.</param> /// <param name="certificatePrivateKey">The certificate's private key.</param> /// <returns> /// The awaitable. /// </returns> public async Task RevokeCertificate(byte[] certificate, RevocationReason reason, IKey certificatePrivateKey) { var endpoint = await this.GetResourceUri(d => d.RevokeCert); var body = new CertificateRevocation { Certificate = JwsConvert.ToBase64String(certificate), Reason = reason }; JwsPayload payload; if (certificatePrivateKey != null) { var jws = new JwsSigner(certificatePrivateKey); payload = jws.Sign(body, url: endpoint, nonce: await HttpClient.ConsumeNonce()); } else { payload = await Sign(body, endpoint); } await HttpClient.Post <string>(endpoint, payload, true); }
public async Task RevokeCertificateAsync(Certificate certificate, RevocationReason reason = RevocationReason.Unspecified) { var certificateRevocation = new CertificateRevocation { Certificate = JwsConvert.ToBase64String(certificate.GetOriginalCertificate()), Reason = reason }; var directory = await GetDirectoryAsync(); var nonce = await GetNonceAsync(); var signedData = new JwsSigner(certificate.Key).Sign(certificateRevocation, url: directory.RevokeCert, nonce: nonce); var result = await PostAsync <Empty>(directory.RevokeCert, signedData); }
/// <summary> /// Revokes the certificate. /// </summary> /// <param name="certificate">The certificate in DER format.</param> /// <param name="reason">The reason for revocation.</param> /// <param name="certificatePrivateKey">The certificate's private key.</param> /// <returns> /// The awaitable. /// </returns> public async Task RevokeCertificate(byte[] certificate, RevocationReason reason, IKey certificatePrivateKey) { var endpoint = await this.GetResourceUri(d => d.RevokeCert); var body = new CertificateRevocation { Certificate = JwsConvert.ToBase64String(certificate), Reason = reason }; if (certificatePrivateKey != null) { var jws = new JwsSigner(certificatePrivateKey); await HttpClient.Post <string>(jws, endpoint, body, true); } else { await HttpClient.Post <string>(this, endpoint, body, true); } }