Example #1
0
        void m_initialize(Oid oid, Int32 majorVersion, Int32 minorVersion)
        {
            Oid = _eoid;
            Asn1Utils.EncodeObjectIdentifier(oid);
            Wincrypt.CERT_TEMPLATE_EXT pvStructInfo = new Wincrypt.CERT_TEMPLATE_EXT {
                pszObjId       = oid.Value,
                dwMajorVersion = (UInt32)majorVersion,
                dwMinorVersion = (UInt32)minorVersion,
                fMinorVersion  = true
            };
            UInt32 pcbEncoded = 0;

            if (Crypt32.CryptEncodeObject(1, "1.3.6.1.4.1.311.21.7", ref pvStructInfo, null, ref pcbEncoded))
            {
                RawData = new Byte[pcbEncoded];
                Crypt32.CryptEncodeObject(1, "1.3.6.1.4.1.311.21.7", ref pvStructInfo, RawData, ref pcbEncoded);
                TemplateOid  = new Oid(pvStructInfo.pszObjId);
                MajorVersion = majorVersion;
                MinorVersion = minorVersion;
            }
            else
            {
                throw new Win32Exception(Marshal.GetLastWin32Error());
            }
        }