我正在vba中编写一些API代码以连接到安全端点。该过程的一部分要求我发送有效载荷,并使用我的私钥对其进行签名。那里有人可以帮助我在VBA中将私钥转换为PKCS8格式吗?
下面是一些代码,这些代码精确地代表了我想要完成的工作,尽管在Java中,我知道它的工作原理。我想要的是VBA中的类似内容。
=====
function _genJWS() {
var sHead = "some value";
var sPayload = "Some payload";
var sPemPrvKey = "Some private key";
var sResult = null;
try {
prv = KEYUTIL.getKey(sPemPrvKey);
sResult = sign("RS256", sHead, sPayload, prv);
"some value" = sResult;
} catch (ex) {
alert("Error: " + ex);
}
}
function sign(alg, spHeader, spPayload, key, pass) {
var sHeader, pHeader, sPayload;
sHeader = spHeader;
if (! KJUR.jws.JWS.isSafeJSONString(sHeader))
throw "JWS Head is not safe JSON string: " + sHeader;
pHeader = KJUR.jws.JWS.readSafeJSONString(sHeader);
sPayload = spPayload;
if (alg !== pHeader.alg)
throw "alg and sHeader.alg doesn't match: " + alg + "!=" +
pHeader.alg;
var sigAlg = KJUR.jws.JWS.jwsalg2sigalg[alg];
var uHeader = utf8tob64u(sHeader);
var uPayload = sPayload;
var uSignatureInput = uHeader + "." + uPayload
var hSig = "";
if (sigAlg != "none") {
var sig = new KJUR.crypto.Signature({'alg': sigAlg});
sig.init(key, pass);
sig.updateString(uSignatureInput);
hSig = sig.sign();
}
var uSig = hextob64u(hSig);
return uHeader + ".." + uSig;
};