Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static string GetCertRequestTemplate(string context)
- {
- var binaryData = CertificateHelper.GetBinaryDataFromStringContext(context);
- var certRequest = new Pkcs10CertificationRequest(binaryData);
- var certRequestInfo = certRequest.GetCertificationRequestInfo();
- IEnumerable<DerSequence> extensionSequence = certRequestInfo.Attributes.OfType<DerSequence>().Where(o => o.OfType<DerObjectIdentifier>().Any());
- foreach (var seq in extensionSequence)
- {
- DerSet extensionSet = seq.OfType<DerSet>().FirstOrDefault();
- if (extensionSet.OfType<DerSequence>().Any())
- {
- DerOctetString str = GetAsn1ObjectRecursive<DerOctetString>(extensionSet.OfType<DerSequence>().First(), "1.3.6.1.4.1.311.21.7");
- if (str != null) return str.Parser.ToString();
- }
- }
- return "";
- }
- static T GetAsn1ObjectRecursive<T>(DerSequence sequence, String id) where T : Asn1Object
- {
- if (sequence.OfType<DerObjectIdentifier>().Any(o => o.Id == id))
- {
- return sequence.OfType<T>().First();
- }
- foreach (DerSequence subSequence in sequence.OfType<DerSequence>())
- {
- T value = GetAsn1ObjectRecursive<T>(subSequence, id);
- if (value != default(T))
- {
- return value;
- }
- }
- return default(T);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement