public static SoftwarePublisherCertificate CreateFromFile(
     string filename)
 {
     if (filename == null)
     {
         throw new ArgumentNullException(nameof(filename));
     }
     byte[] numArray = (byte[])null;
     using (FileStream fileStream = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.Read))
     {
         numArray = new byte[fileStream.Length];
         fileStream.Read(numArray, 0, numArray.Length);
         fileStream.Close();
     }
     if (numArray.Length < 2)
     {
         return((SoftwarePublisherCertificate)null);
     }
     if (numArray[0] != (byte)48)
     {
         try
         {
             numArray = SoftwarePublisherCertificate.PEM(numArray);
         }
         catch (Exception ex)
         {
             throw new CryptographicException("Invalid encoding", ex);
         }
     }
     return(new SoftwarePublisherCertificate(numArray));
 }