diff --git a/ChangeLog.txt b/ChangeLog.txt
index 3afb451d..a9e06ce4 100755
--- a/ChangeLog.txt
+++ b/ChangeLog.txt
@@ -1,6 +1,11 @@
ChangeLog for jsrsasign
+X509CRL.findRevCert bugfix for empty revCerts
+* Changes from 10.5.6 to 10.5.7 (2022-Feb-19)
+ - src/x509crl.js
+ - X509CRL.{findRevCert,findRevCertBySN} method fix for empty revCerts
+
X509CRL.findRevCert bugfix
* Changes from 10.5.5 to 10.5.6 (2022-Feb-17)
- src/x509crl.js X509CRL class
diff --git a/api/files.html b/api/files.html
index ca4edb20..a7f85a97 100644
--- a/api/files.html
+++ b/api/files.html
@@ -905,7 +905,7 @@
Version:
- jsrsasign 10.5.5 x509crl 1.0.3 (2021-Feb-17)
+ jsrsasign 10.5.7 x509crl 1.0.4 (2021-Feb-19)
diff --git a/api/symbols/KJUR.asn1.ocsp.OCSPResponse.html b/api/symbols/KJUR.asn1.ocsp.OCSPResponse.html
index e7f227da..149f840b 100644
--- a/api/symbols/KJUR.asn1.ocsp.OCSPResponse.html
+++ b/api/symbols/KJUR.asn1.ocsp.OCSPResponse.html
@@ -636,8 +636,8 @@
<>
});
// constructor for error
-new KJUR.asn1.ocsp.OCSPRequest({resstatus: 1})
-new KJUR.asn1.ocsp.OCSPRequest({resstatus: "unauthorized"})
+new KJUR.asn1.ocsp.OCSPResponse({resstatus: 1})
+new KJUR.asn1.ocsp.OCSPResponse({resstatus: "unauthorized"})
diff --git a/api/symbols/src/asn1ocsp-1.0.js.html b/api/symbols/src/asn1ocsp-1.0.js.html
index 77b26c67..a3c9b763 100644
--- a/api/symbols/src/asn1ocsp-1.0.js.html
+++ b/api/symbols/src/asn1ocsp-1.0.js.html
@@ -118,8 +118,8 @@
111 * <<ResponseBytes parameters>>
112 * });
113 * // constructor for error
-114 * new KJUR.asn1.ocsp.OCSPRequest({resstatus: 1})
-115 * new KJUR.asn1.ocsp.OCSPRequest({resstatus: "unauthorized"})
+114 * new KJUR.asn1.ocsp.OCSPResponse({resstatus: 1})
+115 * new KJUR.asn1.ocsp.OCSPResponse({resstatus: "unauthorized"})
116 */
117 KJUR.asn1.ocsp.OCSPResponse = function(params) {
118 KJUR.asn1.ocsp.OCSPResponse.superclass.constructor.call(this);
diff --git a/api/symbols/src/x509crl.js.html b/api/symbols/src/x509crl.js.html
index a82f2d48..3b6c7d4f 100644
--- a/api/symbols/src/x509crl.js.html
+++ b/api/symbols/src/x509crl.js.html
@@ -23,7 +23,7 @@
16 * @fileOverview
17 * @name x509crl.js
18 * @author Kenji Urushima kenji.urushima@gmail.com
- 19 * @version jsrsasign 10.5.5 x509crl 1.0.3 (2021-Feb-17)
+ 19 * @version jsrsasign 10.5.7 x509crl 1.0.4 (2021-Feb-19)
20 * @since jsrsasign 10.1.0
21 * @license <a href="https://kjur.github.io/jsrsasign/license/">MIT License</a>
22 */
@@ -387,130 +387,131 @@
380 */
381 this.findRevCertBySN = function(hSN) {
382 if (this.parsed == null) this.getParam();
-383 var revcert = this.parsed.revcert;
-384 for (var i = 0; i < revcert.length; i++) {
-385 if (hSN == revcert[i].sn.hex) return revcert[i];
-386 }
-387 return null;
-388 };
-389
-390 /**
-391 * get signature value as hexadecimal string<br/>
-392 * @name getSignatureValueHex
-393 * @memberOf X509CRL#
-394 * @function
-395 * @return {String} signature value hexadecimal string without BitString unused bits
-396 *
-397 * @description
-398 * This method will get signature value of CRL.
-399 *
-400 * @example
-401 * crl = new X509CRL("-----BEGIN X509 CRL...");
-402 * crl.getSignatureValueHex() &rarr "8a4c47913..."
-403 */
-404 this.getSignatureValueHex = function() {
-405 return _getVbyList(this.hex, 0, [2], "03", true);
-406 };
-407
-408 /**
-409 * verifies signature value by public key<br/>
-410 * @name verifySignature
-411 * @memberOf X509CRL#
-412 * @function
-413 * @param {Object} pubKey public key object, pubkey PEM or PEM issuer cert
-414 * @return {Boolean} true if signature value is valid otherwise false
-415 * @see X509#verifySignature
-416 * @see KJUR.crypto.Signature
-417 *
-418 * @description
-419 * This method verifies signature value of hexadecimal string of
-420 * X.509 CRL by specified public key.
-421 * The signature algorithm used to verify will refer
-422 * signatureAlgorithm field.
-423 * (See {@link X509CRL#getSignatureAlgorithmField})
-424 *
-425 * @example
-426 * crl = new X509CRL("-----BEGIN X509 CRL...");
-427 * x.verifySignature(pubKey) → true, false or raising exception
-428 */
-429 this.verifySignature = function(pubKey) {
-430 var algName = this.getSignatureAlgorithmField();
-431 var hSigVal = this.getSignatureValueHex();
-432 var hTbsCertList = _getTLVbyList(this.hex, 0, [0], "30");
-433
-434 var sig = new KJUR.crypto.Signature({alg: algName});
-435 sig.init(pubKey);
-436 sig.updateHex(hTbsCertList);
-437 return sig.verify(hSigVal);
-438 };
-439
-440 /**
-441 * get JSON object for CRL parameters<br/>
-442 * @name getParam
-443 * @memberOf X509CRL#
-444 * @function
-445 * @return {Array} JSON object for CRL parameters
-446 * @see KJUR.asn1.x509.CRL
-447 *
-448 * @description
-449 * This method returns a JSON object of the CRL
-450 * parameters.
-451 * Return value can be passed to
-452 * {@link KJUR.asn1.x509.CRL} constructor.
-453 *
-454 * @example
-455 * crl = new X509CRL("-----BEGIN X509 CRL...");
-456 * crl.getParam() →
-457 * {version: 2,
-458 * sigalg: "SHA256withRSA",
-459 * issuer: {array:
-460 * [[{type:"C",value:"JP",ds:"prn"}],[{type:"O",value:"T1",ds:"prn"}]]},
-461 * thisupdate: "200820212434Z",
-462 * nextupdate: "200910212434Z",
-463 * revcert: [
-464 * {sn:{hex:"123d..."},
-465 * date:"061110000000Z",
-466 * ext:[{extname:"cRLReason",code:4}]}],
-467 * ext: [
-468 * {extname:"authorityKeyIdentifier",kid:{hex: "03de..."}},
-469 * {extname:"cRLNumber",num:{hex:"0211"}}],
-470 * sighex: "3c5e..."}
-471 */
-472 this.getParam = function() {
-473 var result = {};
-474
-475 var version = this.getVersion();
-476 if (version != null) result.version = version;
-477
-478 result.sigalg = this.getSignatureAlgorithmField();
-479 result.issuer = this.getIssuer();
-480 result.thisupdate = this.getThisUpdate();
-481
-482 var nextUpdate = this.getNextUpdate();
-483 if (nextUpdate != null) result.nextupdate = nextUpdate;
-484
-485 var revCerts = this.getRevCertArray();
-486 if (revCerts != null) result.revcert = revCerts;
-487
-488 var idxExt = _getIdxbyListEx(this.hex, 0, [0, "[0]"]);
-489 if (idxExt != -1) {
-490 var hExtSeq = _getTLVbyListEx(this.hex, 0, [0, "[0]", 0]);
-491 result.ext = _x509obj.getExtParamArray(hExtSeq);
-492 }
-493
-494 result.sighex = this.getSignatureValueHex();
-495
-496 this.parsed = result;
-497 return result;
-498 };
-499
-500 if (typeof params == "string") {
-501 if (_isHex(params)) {
-502 this.hex = params;
-503 } else if (params.match(/-----BEGIN X509 CRL/)) {
-504 this.hex = pemtohex(params);
-505 }
-506 this._setPos();
-507 }
-508 };
-509