Пример #1
0
        static X509CertificateRequestType getRequestFormat(Byte[] rawData)
        {
            UInt32 pcbStructInfo = 0;

            if (Crypt32.CryptDecodeObject(65537, Wincrypt.X509_CERT_REQUEST_TO_BE_SIGNED, rawData, (UInt32)rawData.Length, 8, IntPtr.Zero, ref pcbStructInfo))
            {
                return(X509CertificateRequestType.PKCS10);
            }
            try {
                PKCS7SignedMessage temp = new PKCS7SignedMessage(rawData);
                return(temp.Content is X509CertificateRequest[]
                                        ? X509CertificateRequestType.PKCS7
                                        : X509CertificateRequestType.Invalid);
            } catch {
                return(X509CertificateRequestType.Invalid);
            }
        }
Пример #2
0
 void decodePkcs7()
 {
     ExternalData       = new PKCS7SignedMessage(RawData);
     Version            = ((X509CertificateRequest[])ExternalData.Content)[0].Version;
     SubjectDn          = ((X509CertificateRequest[])ExternalData.Content)[0].SubjectDn;
     PublicKey          = ((X509CertificateRequest[])ExternalData.Content)[0].PublicKey;
     SignatureIsValid   = ((X509CertificateRequest[])ExternalData.Content)[0].SignatureIsValid;
     SignatureAlgorithm = ((X509CertificateRequest[])ExternalData.Content)[0].SignatureAlgorithm;
     foreach (X509Attribute attrib in ((X509CertificateRequest[])ExternalData.Content)[0].Attributes)
     {
         _attribs.Add(attrib);
     }
     foreach (X509Extension ext in ((X509CertificateRequest[])ExternalData.Content)[0].Extensions)
     {
         exts.Add(ext);
     }
 }