private void CreateCertContext(string name, DateTime start, DateTime expire) { CriticalAllocHandle providerInfo = this.GetProviderInfo(); CriticalAllocHandle handle2 = GetSha1AlgorithmId(); SystemTime pStartTime = new SystemTime(start); SystemTime pEndTime = new SystemTime(expire); CertificateName name2 = new CertificateName(name); using (CryptoApiBlob blob = name2.GetCryptoApiBlob()) { using (providerInfo) { using (handle2) { this.cert = CertCreateSelfSignCertificate(this.keyContainer, blob.GetMemoryForPinning(), SelfSignFlags.None, (IntPtr)providerInfo, (IntPtr)handle2, ref pStartTime, ref pEndTime, IntPtr.Zero); if (this.cert.IsInvalid) { PeerExceptionHelper.ThrowInvalidOperation_PeerCertGenFailure(PeerExceptionHelper.GetLastException()); } if (!CertSetCertificateContextProperty(this.cert, 1, 0, this.key)) { PeerExceptionHelper.ThrowInvalidOperation_PeerCertGenFailure(PeerExceptionHelper.GetLastException()); } } } } }
public static CriticalAllocHandle FromBlob <T>(T id) { CriticalAllocHandle handle = CriticalAllocHandle.FromSize(Marshal.SizeOf(typeof(T))); Marshal.StructureToPtr(id, (IntPtr)handle, false); return(handle); }
public static CriticalAllocHandle FromGuid(Guid input) { int size = Marshal.SizeOf(typeof(Guid)); CriticalAllocHandle handle = CriticalAllocHandle.FromSize(size); Marshal.Copy(input.ToByteArray(), 0, (IntPtr)handle, size); return(handle); }
public static CriticalAllocHandle FromGuid(Guid input) { int guidSize = Marshal.SizeOf(typeof(Guid)); CriticalAllocHandle result = CriticalAllocHandle.FromSize(guidSize); Marshal.Copy(input.ToByteArray(), 0, (IntPtr)result, guidSize); return(result); }
public static CriticalAllocHandle FromBlob <T>(T id) { int size = Marshal.SizeOf(typeof(T)); CriticalAllocHandle result = CriticalAllocHandle.FromSize(size); Marshal.StructureToPtr(id, (IntPtr)result, false); return(result); }
public static CriticalAllocHandle FromSize(int size) { CriticalAllocHandle result = new CriticalAllocHandle(); RuntimeHelpers.PrepareConstrainedRegions(); try { } finally { result.SetHandle(Marshal.AllocHGlobal(size)); } return(result); }
public void AllocateBlob(int size) { data = CriticalAllocHandle.FromSize(size); cbData = size; }