Ejemplo n.º 1
0
        public static int AuthenticodeDigestSign([In] IntPtr pSignerCert,
                                                 [In] ref CRYPT_ATTR_BLOB pMetadataBlob,
                                                 [In] AlgId digestAlgID,
                                                 [In][MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 4)] byte[] pbToBeSignedDigest,
                                                 [In] int cbToBeSignedDigest,
                                                 [Out] out CRYPT_ATTR_BLOB pSignedDigest
                                                 )
        {
            pSignedDigest = default;

            try
            {
                //  var signerCert = new X509Certificate2(pSignerCert);
                var accessToken   = Environment.GetEnvironmentVariable("KEYVAULT_ACCESSTOKEN");
                var keyIdentifier = Environment.GetEnvironmentVariable("KEYVAULT_KEY_IDENTIFIER");

                HookAssemblyLoad();

                var kvalg = AlgIdToJwsAlgId(digestAlgID);
                if (kvalg == null)
                {
                    return(-1);
                }

                var signed = SignWithKeyVault(keyIdentifier, accessToken, pbToBeSignedDigest, kvalg).Result;

                var buffer = Marshal.AllocHGlobal(signed.Length);
                Marshal.Copy(signed, 0, buffer, signed.Length);
                pSignedDigest = new CRYPT_ATTR_BLOB
                {
                    pbData = buffer,
                    cbData = signed.Length
                };
            }
            catch (Exception e)
            {
                Console.Error.WriteLine(e.Message);
                return(Marshal.GetHRForException(e));
            }
            return(0);
        }
Ejemplo n.º 2
0
 public static extern bool PFXIsPFXBlob(ref CRYPT_ATTR_BLOB pPFX);
Ejemplo n.º 3
0
 public static extern bool PFXExportCertStore(IntPtr hStore, ref CRYPT_ATTR_BLOB pPFX, [In][MarshalAs(UnmanagedType.LPWStr)] string szPassword, uint dwFlags);
Ejemplo n.º 4
0
 public static extern bool PFXVerifyPassword(ref CRYPT_ATTR_BLOB pPFX, [In][MarshalAs(UnmanagedType.LPWStr)] string szPassword, uint dwFlags);