-
-
Notifications
You must be signed in to change notification settings - Fork 647
Commit
- Loading branch information
There are no files selected for viewing
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
_test |
Large diffs are not rendered by default.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,9 @@ | ||
/* x509-2.0.9.js (c) 2012-2020 Kenji Urushima | kjur.github.io/jsrsasign/license | ||
/* x509-2.0.10.js (c) 2012-2021 Kenji Urushima | kjur.github.io/jsrsasign/license | ||
*/ | ||
/* | ||
* x509.js - X509 class to read subject public key from certificate. | ||
* | ||
* Copyright (c) 2010-2020 Kenji Urushima ([email protected]) | ||
* Copyright (c) 2010-2021 Kenji Urushima ([email protected]) | ||
* | ||
* This software is licensed under the terms of the MIT License. | ||
* https://kjur.github.io/jsrsasign/license | ||
|
@@ -16,7 +16,7 @@ | |
* @fileOverview | ||
* @name x509-1.1.js | ||
* @author Kenji Urushima [email protected] | ||
* @version jsrsasign 10.1.0 x509 2.0.9 (2020-Nov-18) | ||
* @version jsrsasign 10.1.12 x509 2.0.10 (2021-Feb-25) | ||
* @since jsrsasign 1.x.x | ||
* @license <a href="https://kjur.github.io/jsrsasign/license/">MIT License</a> | ||
*/ | ||
|
@@ -271,14 +271,16 @@ function X509(params) { | |
* @memberOf X509# | ||
* @function | ||
* @return {String} issuer DN string | ||
* @see X509#getIssuer | ||
* @example | ||
* var x = new X509(); | ||
* x.readCertPEM(sCertPEM); | ||
* var dn1 = x.getIssuerString(); // return string like "/C=US/O=TEST" | ||
* var dn2 = KJUR.asn1.x509.X500Name.compatToLDAP(dn1); // returns "O=TEST, C=US" | ||
*/ | ||
this.getIssuerString = function() { | ||
return _X509.hex2dn(this.getIssuerHex()); | ||
var pIssuer = this.getIssuer(); | ||
return pIssuer.str; | ||
}; | ||
|
||
/** | ||
|
@@ -321,14 +323,16 @@ function X509(params) { | |
* @memberOf X509# | ||
* @function | ||
* @return {String} subject DN string | ||
* @see X509#getSubject | ||
* @example | ||
* var x = new X509(); | ||
* x.readCertPEM(sCertPEM); | ||
* var dn1 = x.getSubjectString(); // return string like "/C=US/O=TEST" | ||
* var dn2 = KJUR.asn1.x509.X500Name.compatToLDAP(dn1); // returns "O=TEST, C=US" | ||
*/ | ||
this.getSubjectString = function() { | ||
return _X509.hex2dn(this.getSubjectHex()); | ||
var pSubject = this.getSubject(); | ||
return pSubject.str; | ||
}; | ||
|
||
/** | ||
|
@@ -2238,7 +2242,7 @@ function X509(params) { | |
var hValue = _getVbyList(h, a[1], []); | ||
var oid = KJUR.asn1.ASN1Util.oidHexToInt(hOID); | ||
result.type = KJUR.asn1.x509.OID.oid2atype(oid); | ||
result.value = hextorstr(hValue); | ||
result.value = hextoutf8(hValue); | ||
result.ds = this.HEX2STAG[h.substr(a[1], 2)]; | ||
return result; | ||
}; | ||
|
@@ -2662,14 +2666,14 @@ function X509(params) { | |
*/ | ||
this.dnarraytostr = function(aDN) { | ||
function rdnarraytostr(aRDN) { | ||
return aRDN.map(function(x){return atvtostr(x);}).join("+"); | ||
return aRDN.map(function(x){return atvtostr(x).replace(/\+/,"\\+");}).join("+"); | ||
}; | ||
|
||
function atvtostr(pATV) { | ||
return pATV.type + "=" + pATV.value; | ||
}; | ||
|
||
return "/" + aDN.map(function(x){return rdnarraytostr(x);}).join("/"); | ||
return "/" + aDN.map(function(x){return rdnarraytostr(x).replace(/\//, "\\/");}).join("/"); | ||
}; | ||
|
||
/** | ||
|
@@ -2864,17 +2868,10 @@ function X509(params) { | |
*/ | ||
X509.hex2dn = function(hex, idx) { | ||
if (idx === undefined) idx = 0; | ||
if (hex.substr(idx, 2) !== "30") throw new Error("malformed DN"); | ||
|
||
var a = new Array(); | ||
|
||
var aIdx = ASN1HEX.getChildIdx(hex, idx); | ||
for (var i = 0; i < aIdx.length; i++) { | ||
a.push(X509.hex2rdn(hex, aIdx[i])); | ||
} | ||
|
||
a = a.map(function(s) { return s.replace("/", "\\/"); }); | ||
return "/" + a.join("/"); | ||
var x = new X509(); | ||
var hDN = ASN1HEX.getTLV(hex, idx); | ||
var pDN = x.getX500Name(hex); | ||
return pDN.str; | ||
}; | ||
|
||
/** | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -912,8 +912,16 @@ | |
], | ||
str: "/C=JP/O=b/[email protected]" | ||
}; | ||
|
||
deepEqual(x.getX500Name(hIn1), pExpect, "/C=JP/O=b/[email protected]") | ||
|
||
var hIn2 = "30123110300e06035504030c0743c3a06e617279"; | ||
var pExpect2 = { | ||
array: [ | ||
[{type:"CN",value:"Cànary",ds:"utf8"}] | ||
], | ||
str: "/CN=Cànary" | ||
}; | ||
deepEqual(x.getX500Name(hIn2), pExpect2, "/CN=Cànary") | ||
}); | ||
|
||
test("getRDN test", function() { | ||
|