internal CertificateX509(GitCertificateX509 cert) { int len = checked ((int)cert.len.ToUInt32()); byte[] data = new byte[len]; Marshal.Copy(cert.data, data, 0, len); Certificate = new X509Certificate(data); }
internal IntPtr ToPointers(out IntPtr dataPtr) { var certData = Certificate.Export(X509ContentType.Cert); dataPtr = Marshal.AllocHGlobal(certData.Length); Marshal.Copy(certData, 0, dataPtr, certData.Length); var gitCert = new GitCertificateX509() { cert_type = GitCertificateType.X509, data = dataPtr, len = (UIntPtr)certData.LongLength, }; var ptr = Marshal.AllocHGlobal(Marshal.SizeOf(gitCert)); Marshal.StructureToPtr(gitCert, ptr, false); return(ptr); }