/// <summary> /// Add revocation data either from list of OCSP response objects or list of X509 CRL objects /// or from specified RevocationValuesType. /// </summary> /// <param name="validateRequest"></param> /// <param name="ocspResponses"></param> /// <param name="crls"></param> /// <param name="revocationData"></param> private void addRevocationData(ValidateRequestType validateRequest, List <OcspResp> ocspResponses, List <X509Crl> crls, RevocationValuesType revocationData) { RevocationDataMessageExtensionType revocationDataMessageExtension = new RevocationDataMessageExtensionType(); if (null != revocationData) { revocationDataMessageExtension.RevocationValues = revocationData; } else { RevocationValuesType revocationValues = new RevocationValuesType(); // OCSP EncapsulatedPKIDataType[] ocspValues = new EncapsulatedPKIDataType[ocspResponses.Count]; int idx = 0; foreach (OcspResp ocspResponse in ocspResponses) { EncapsulatedPKIDataType ocspValue = new EncapsulatedPKIDataType(); ocspValue.Value = ocspResponse.GetEncoded(); ocspValues[idx++] = ocspValue; } revocationValues.OCSPValues = ocspValues; // CRL EncapsulatedPKIDataType[] crlValues = new EncapsulatedPKIDataType[crls.Count]; idx = 0; foreach (X509Crl crl in crls) { EncapsulatedPKIDataType crlValue = new EncapsulatedPKIDataType(); crlValue.Value = crl.GetEncoded(); crlValues[idx++] = crlValue; } revocationValues.CRLValues = crlValues; revocationDataMessageExtension.RevocationValues = revocationValues; } validateRequest.MessageExtension = new MessageExtensionAbstractType[] { revocationDataMessageExtension }; }
/// <summary> /// Add revocation data either from list of OCSP response objects or list of X509 CRL objects /// or from specified RevocationValuesType. /// </summary> /// <param name="validateRequest"></param> /// <param name="ocspResponses"></param> /// <param name="crls"></param> /// <param name="revocationData"></param> private void addRevocationData(ValidateRequestType validateRequest, List<OcspResp> ocspResponses, List<X509Crl> crls, RevocationValuesType revocationData) { RevocationDataMessageExtensionType revocationDataMessageExtension = new RevocationDataMessageExtensionType(); if (null != revocationData) { revocationDataMessageExtension.RevocationValues = revocationData; } else { RevocationValuesType revocationValues = new RevocationValuesType(); // OCSP EncapsulatedPKIDataType[] ocspValues = new EncapsulatedPKIDataType[ocspResponses.Count]; int idx = 0; foreach (OcspResp ocspResponse in ocspResponses) { EncapsulatedPKIDataType ocspValue = new EncapsulatedPKIDataType(); ocspValue.Value = ocspResponse.GetEncoded(); ocspValues[idx++] = ocspValue; } revocationValues.OCSPValues = ocspValues; // CRL EncapsulatedPKIDataType[] crlValues = new EncapsulatedPKIDataType[crls.Count]; idx = 0; foreach (X509Crl crl in crls) { EncapsulatedPKIDataType crlValue = new EncapsulatedPKIDataType(); crlValue.Value = crl.GetEncoded(); crlValues[idx++] = crlValue; } revocationValues.CRLValues = crlValues; revocationDataMessageExtension.RevocationValues = revocationValues; } validateRequest.MessageExtension = new MessageExtensionAbstractType[] { revocationDataMessageExtension }; }