From 88d9be6dbc015424b19dcf7c3d8a9e8b9e18584f Mon Sep 17 00:00:00 2001 From: Damyan Mitev <damyan.mitev@vereign.com> Date: Wed, 3 Jul 2019 15:17:49 +0300 Subject: [PATCH] Fix pkijs.RelativeDistinguishedNames.toSchema() --- javascript/src/utilities/signingUtilities.js | 23 ++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/javascript/src/utilities/signingUtilities.js b/javascript/src/utilities/signingUtilities.js index db47ed6..2fa2064 100644 --- a/javascript/src/utilities/signingUtilities.js +++ b/javascript/src/utilities/signingUtilities.js @@ -124,8 +124,28 @@ function generateKeys(algorithms) { return crypto.generateKey(algorithm.algorithm, true, algorithm.usages); } +function fixPkijsRDN() { + pkijs.RelativeDistinguishedNames.prototype.toSchema = function () { + //region Decode stored TBS value + if (this.valueBeforeDecode.byteLength === 0) // No stored encoded array, create "from scratch" + { + return (new asn1js.Sequence({ + value: Array.from(this.typesAndValues, element => new asn1js.Set({value: [element.toSchema()]})) + })); + } + + const asn1 = asn1js.fromBER(this.valueBeforeDecode); + //endregion + + //region Construct and return new ASN.1 schema for this object + return asn1.result; + //endregion + }; +} + //********************************************************************************* function createCertificate(certData, issuerData = null) { + if (typeof certData === "undefined") { return Promise.reject("No Certificate data provided"); } @@ -1252,3 +1272,6 @@ export const verifySMIME = (smimeString, rootCaPem) => { }, 50); }); }; + +//Initialization block +fixPkijsRDN(); -- GitLab