⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dumppubkey.js

📁 Digital Signature key tool
💻 JS
字号:
var CAPICOM_ENCODE_ANY = 0xffffffff;
var CAPICOM_ENCODE_BASE64 = 0;
var CAPICOM_ENCODE_BINARY = 1;

function printLine(text)
{
	WScript.Stdout.Writeline(text);
}

function handleError(err_msg)
{
	printLine(err_msg);
	WScript.Quit(-1);
}

function writeTargetFile(text, targetFileName)
{
   var fso, f;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.CreateTextFile(targetFileName, true);
   f.Write(text);
   f.Close();
}

function convertKey(key_data)
{
	var i, str, key_string;
	var Utilities = new ActiveXObject("CAPICOM.Utilities");
	if (!Utilities)
	{
		handleError("Cannot create CAPICOM.Utilities object");
	}

	key_string = Utilities.BinaryToHex(key_data);
	if (key_string.length%2 != 0)
	{
		handleError("Invalid key data");
	}
	
	str = "/* This file contains the signature public key blob */\n\n";
	str += "const unsigned char g_bSignPublicKeyBlob[] = {\n\t";
	for (i = 0; i < key_string.length; i += 2)
	{
		if (i != 0)
		{
			str += ",";
			if (i % 32 == 0)
			{
				str += "\n\t";
			}
		}
		str += "0x" + key_string.charAt(i) + key_string.charAt(i+1);
	}
	str += "\n};\n";
	return str;
//	printLine(str);
}


function main()
{
	var CertFile = WScript.Arguments(0);
	var OutFile = WScript.Arguments(1);
	printLine("dumping public key from "+CertFile + "to " + OutFile);
   
	var Certificate = new ActiveXObject("CAPICOM.Certificate");
	if (!Certificate)
	{
		handleError("Cannot create CAPICOM.Certificate object");
	}
	Certificate.Load(CertFile);
	Certificate.Display();

   printLine("Public Key:");
   printLine("  Algorithm  = " + Certificate.PublicKey().Algorithm.FriendlyName + "(" + Certificate.PublicKey().Algorithm.Value + ")");
   printLine("  Length     = " + Certificate.PublicKey().Length + " bits");
   printLine("  Key blob   = " + Certificate.PublicKey().EncodedKey.Format());
   printLine("  Parameters = " + Certificate.PublicKey().EncodedParameters.Format());
   
   var key_text = convertKey(Certificate.PublicKey().EncodedKey.Value(CAPICOM_ENCODE_BINARY));
   writeTargetFile(key_text, OutFile);
}

main();
WScript.Quit(0);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -