📄 dumppubkey.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 + -