RemObjects.InternetPack.NetCertificateBuilder.CreateCertificateRequest C# (CSharp) Метод

CreateCertificateRequest() приватный Метод

private CreateCertificateRequest ( Object subject, Object issuer, Object privateKey, Object keyUseSection, Object hashAlgorithm ) : Object
subject Object
issuer Object
privateKey Object
keyUseSection Object
hashAlgorithm Object
Результат Object
		private Object CreateCertificateRequest(Object subject, Object issuer, Object privateKey, Object keyUseSection, Object hashAlgorithm)
		{
			// Create the self signing request
			//CX509CertificateRequestCertificate lCertificateRequest = new CX509CertificateRequestCertificate();
			Type lCertificateRequestCertificateType = Type.GetTypeFromProgID("X509Enrollment.CX509CertificateRequestCertificate");
			Object lCertificateRequest = Activator.CreateInstance(lCertificateRequestCertificateType);

			//lCertificateRequest.InitializeFromPrivateKey(X509CertificateEnrollmentContext.XCN_CONTEXT_USER, lPrivateKey, "");
			lCertificateRequestCertificateType.InvokeMember("InitializeFromPrivateKey", BindingFlags.InvokeMethod, null, lCertificateRequest,
				new Object[] { XCN_CONTEXT_USER, privateKey, "" });

			//lCertificateRequest.Subject = lSubjectDN;
			lCertificateRequestCertificateType.InvokeMember("Subject", BindingFlags.SetProperty, null, lCertificateRequest, new Object[] { subject });

			//lCertificateRequest.Issuer = lIssuerDN;
			lCertificateRequestCertificateType.InvokeMember("Issuer", BindingFlags.SetProperty, null, lCertificateRequest, new Object[] { issuer });

			//lCertificateRequest.NotBefore = DateTime.Now;
			lCertificateRequestCertificateType.InvokeMember("NotBefore", BindingFlags.SetProperty, null, lCertificateRequest, new Object[] { this.GetCertificateStartDate() });

			//lCertificateRequest.NotAfter = DateTime.Now.AddYears(10);
			lCertificateRequestCertificateType.InvokeMember("NotAfter", BindingFlags.SetProperty, null, lCertificateRequest, new Object[] { this.GetCertificateEndDate() });

			//lCertificateRequest.X509Extensions.Add((CX509Extension)lKeyUsage);
			Object lExtensions = lCertificateRequestCertificateType.InvokeMember("X509Extensions", BindingFlags.GetProperty, null, lCertificateRequest, new Object[] { });
			lExtensions.GetType().InvokeMember("Add", BindingFlags.InvokeMethod, null, lExtensions, new Object[] { keyUseSection });

			//lCertificateRequest.HashAlgorithm = lHashAlgorithm;
			lCertificateRequestCertificateType.InvokeMember("HashAlgorithm", BindingFlags.SetProperty, null, lCertificateRequest, new Object[] { hashAlgorithm });

			//lCertificateRequest.SuppressDefaults = true;
			lCertificateRequestCertificateType.InvokeMember("SuppressDefaults", BindingFlags.SetProperty, null, lCertificateRequest, new Object[] { true });

			//lCertificateRequest.Encode();
			lCertificateRequestCertificateType.InvokeMember("Encode", BindingFlags.InvokeMethod, null, lCertificateRequest, new Object[] { });


			return lCertificateRequest;
		}