void initializeFromCOM(IX509CertificateTemplate template) { if (CryptographyUtils.TestOleCompat()) { GeneralFlags = (CertificateTemplateFlags)template.Property[EnrollmentTemplateProperty.TemplatePropGeneralFlags]; EnrollmentOptions = (CertificateTemplateEnrollmentFlags)template.Property[EnrollmentTemplateProperty.TemplatePropEnrollmentFlags]; subjectFlags = (Int32)template.Property[EnrollmentTemplateProperty.TemplatePropSubjectNameFlags]; ValidityPeriod = readValidity(null, (Int64)template.Property[EnrollmentTemplateProperty.TemplatePropValidityPeriod]); RenewalPeriod = readValidity(null, (Int64)template.Property[EnrollmentTemplateProperty.TemplatePropRenewalPeriod]); } else { GeneralFlags = (CertificateTemplateFlags)Convert.ToInt32((UInt32)template.Property[EnrollmentTemplateProperty.TemplatePropGeneralFlags]); EnrollmentOptions = (CertificateTemplateEnrollmentFlags)Convert.ToInt32((UInt32)template.Property[EnrollmentTemplateProperty.TemplatePropEnrollmentFlags]); subjectFlags = unchecked ((Int32)(UInt32)template.Property[EnrollmentTemplateProperty.TemplatePropSubjectNameFlags]); ValidityPeriod = readValidity(null, Convert.ToInt64((UInt64)template.Property[EnrollmentTemplateProperty.TemplatePropValidityPeriod])); RenewalPeriod = readValidity(null, Convert.ToInt64((UInt64)template.Property[EnrollmentTemplateProperty.TemplatePropRenewalPeriod])); } try { SupersededTemplates = (String[])template.Property[EnrollmentTemplateProperty.TemplatePropSupersede]; } catch { SupersededTemplates = Array.Empty <String>(); } List <X509Extension> exts2 = (from IX509Extension ext in (IX509Extensions)template.Property[EnrollmentTemplateProperty.TemplatePropExtensions] select new X509Extension(ext.ObjectId.Value, Convert.FromBase64String(ext.RawData[Interop.CERTENROLLLib.EncodingType.XCN_CRYPT_STRING_BASE64]), ext.Critical)).Select(CryptographyUtils.ConvertExtension).ToList(); foreach (X509Extension ext in exts2) { _extensions.Add(ext); } }
void initializeFromDsEntry() { GeneralFlags = (CertificateTemplateFlags)_entry[DsUtils.PropFlags]; subjectFlags = (Int32)_entry[DsUtils.PropPkiSubjectFlags]; EnrollmentOptions = (CertificateTemplateEnrollmentFlags)_entry[DsUtils.PropPkiEnrollFlags]; pkf = (Int32)_entry[DsUtils.PropPkiPKeyFlags]; ValidityPeriod = readValidity((Byte[])_entry[DsUtils.PropPkiNotAfter]); RenewalPeriod = readValidity((Byte[])_entry[DsUtils.PropPkiRenewalPeriod]); pathLength = (Int32)_entry[DsUtils.PropPkiPathLength]; if ((EnrollmentOptions & CertificateTemplateEnrollmentFlags.CAManagerApproval) > 0) { CAManagerApproval = true; } readEKU(); readCertPolicies(); readCriticalExtensions(); readSuperseded(); readExtensions(); }