/// <summary> /// Get Raw data /// </summary> /// <returns></returns> public static byte[] ToRawData(this X509CrlModel model) { const string certPemHeader = "-----BEGIN X509 CRL-----"; const string certPemFooter = "-----END X509 CRL-----"; if (model.Crl == null) { throw new ArgumentNullException(nameof(model.Crl)); } switch (model.Crl.Type) { case JTokenType.Bytes: return((byte[])model.Crl); case JTokenType.String: var request = (string)model.Crl; if (request.Contains(certPemHeader, StringComparison.OrdinalIgnoreCase)) { var strippedCertificateRequest = request.Replace( certPemHeader, "", StringComparison.OrdinalIgnoreCase); strippedCertificateRequest = strippedCertificateRequest.Replace( certPemFooter, "", StringComparison.OrdinalIgnoreCase); return(Convert.FromBase64String(strippedCertificateRequest)); } return(Convert.FromBase64String(request)); default: throw new ArgumentException("Bad crl data.", nameof(model.Crl)); } }
/// <summary> /// Convert to service model /// </summary> /// <returns></returns> public static Crl ToStackModel(this X509CrlModel model) { return(CrlEx.ToCrl(model.ToRawData())); }