private static byte[] GetPublicX(Asn1Object header) { var seq1 = header as Asn1Sequence; if (seq1 != null && seq1.Count > 0) { var seq2 = seq1[0] as Asn1Sequence; if (seq2 != null) { byte[] key = null; if (seq2.Count == 5 || seq2.Count == 6) { key = Asn1Utils.ExtractOctets(seq2[seq2.Count - 1]); } else if (seq2.Count == 7) { key = Asn1Utils.ExtractOctets(seq2[5]); } if (key != null && key.Length == 8) { return(key); } } } throw new CryptographicException("Ошибка в данных header.key."); }
public byte[] GetRawCertificate() { var header = Asn1Object.FromByteArray(Header); var seq1 = header as Asn1Sequence; if (seq1 != null && seq1.Count > 0) { var seq2 = seq1[0] as Asn1Sequence; if (seq2 != null && seq2.Count >= 6) { return(Asn1Utils.ExtractOctets(seq2[4])); } } throw new CryptographicException("Контейнер не содержит сертификата."); }