コード例 #1
0
        public static string GetOidValue(Org.BouncyCastle.X509.X509Certificate certificate, string oidKey)
        {
            var oidValue = default(string);

            if (certificate.GetSubjectAlternativeNames() != null)
            {
                var alternativeNames = certificate
                                       .GetSubjectAlternativeNames()
                                       .Cast <ArrayList>()
                                       .Where(o => o.Count == 2 && o[0].GetType() == typeof(int));

                var oidKeys = alternativeNames
                              .Where(o => o[1] != null)
                              .Select(o => o[1].ToString());

                var oidValues = oidKeys
                                .Where(o => o.Contains('['))
                                .Where(o => o.Substring(1, o.IndexOf(',') - 1) == oidKey);

                oidValue = oidValues
                           .FirstOrDefault();
            }

            return(FormatOidValue(oidValue));
        }