Skip to main content
Version: 4.0

CRL

CRL is an acronym for Certificate Revocation List. CRLs are basically "a list of [certificate serial numbers] that have been revoked by the issuing certificate authority (CA) before their scheduled expiration date and should no longer be trusted".

Reading CRLs

use phpseclib4\File\CRL;

$crl = CRL::load(file_get_contents('crl.bin'));

print_r($crl);
(download crl.bin)

$crl, in this case, is a CRL object which, in turn, is basically a thin wrapper around an instance of \phpseclib4\File\ASN1\Constructed. Passing $crl through print_r() or var_dump() triggers the __debugInfo() magic method which, in turn, produces the following output:

tbsCertList
version
phpseclib4\File\ASN1\Types\Integer
v2
signature
algorithm
phpseclib4\File\ASN1\Types\OID
sha1WithRSAEncryption
issuer
rdnSequence
0
0
type
phpseclib4\File\ASN1\Types\OID
id-at-countryName
value
phpseclib4\File\ASN1\Types\PrintableString
US
1
0
type
phpseclib4\File\ASN1\Types\OID
id-at-organizationName
value
phpseclib4\File\ASN1\Types\PrintableString
DigiCert Inc
2
0
type
phpseclib4\File\ASN1\Types\OID
id-at-organizationalUnitName
value
phpseclib4\File\ASN1\Types\PrintableString
3
0
type
phpseclib4\File\ASN1\Types\OID
id-at-commonName
value
phpseclib4\File\ASN1\Types\PrintableString
DigiCert High Assurance EV CA-1
thisUpdate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-11-08 17:00:51
nextUpdate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-11-15 17:00:00
revokedCertificates
0
userCertificate
phpseclib4\File\ASN1\Types\Integer
1896340804446443191581573972274376588
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2010-11-12 14:39:51
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
1
userCertificate
phpseclib4\File\ASN1\Types\Integer
3070878746722245918663569368773689441
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-01-27 19:05:01
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
2
userCertificate
phpseclib4\File\ASN1\Types\Integer
4264886842921432244720754082045654970
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-01-29 08:57:53
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
3
userCertificate
phpseclib4\File\ASN1\Types\Integer
15010621606132240696101502088677469075
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-01-29 11:33:11
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
4
userCertificate
phpseclib4\File\ASN1\Types\Integer
7582676908446657835356226492149097162
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-03-04 17:02:38
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
5
userCertificate
phpseclib4\File\ASN1\Types\Integer
14283655577370294982833658394379597056
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-05-07 00:56:32
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
6
userCertificate
phpseclib4\File\ASN1\Types\Integer
7025432242271914077410028621137285723
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-06-04 07:19:14
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
7
userCertificate
phpseclib4\File\ASN1\Types\Integer
11432507911400442777973975308466240444
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-06-16 14:55:08
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
8
userCertificate
phpseclib4\File\ASN1\Types\Integer
20330197051464367846096579178936391889
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-06-17 05:07:07
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
9
userCertificate
phpseclib4\File\ASN1\Types\Integer
16680987116210580911048750025133669960
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-06-21 05:48:44
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
10
userCertificate
phpseclib4\File\ASN1\Types\Integer
20466023700883303821257062866359277303
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-06-21 05:48:44
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
11
userCertificate
phpseclib4\File\ASN1\Types\Integer
10756487690572487823748256118640798071
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-06-24 08:48:18
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
12
userCertificate
phpseclib4\File\ASN1\Types\Integer
8292145653257002218980220083989767394
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-06-25 08:59:31
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
13
userCertificate
phpseclib4\File\ASN1\Types\Integer
10951424688851687115589962735976462777
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-06-25 08:59:31
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
14
userCertificate
phpseclib4\File\ASN1\Types\Integer
14877831153190058894953444007653661737
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-06-25 08:59:31
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
15
userCertificate
phpseclib4\File\ASN1\Types\Integer
8106872826991528186591703477283133854
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-06-27 04:40:23
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
16
userCertificate
phpseclib4\File\ASN1\Types\Integer
11447088191391849656865534388393824229
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-06-29 16:58:19
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
17
userCertificate
phpseclib4\File\ASN1\Types\Integer
12971785950040293558857465038124943423
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-07-11 10:18:56
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
18
userCertificate
phpseclib4\File\ASN1\Types\Integer
12050402564172114001138060275358805373
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-07-11 10:18:56
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
19
userCertificate
phpseclib4\File\ASN1\Types\Integer
5850275335281899680021320356432492558
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-07-11 10:19:41
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
20
userCertificate
phpseclib4\File\ASN1\Types\Integer
14447635487260724233449796859940282632
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-07-11 10:19:41
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
21
userCertificate
phpseclib4\File\ASN1\Types\Integer
16728550360999221651634506894938610341
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-07-11 10:20:29
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
22
userCertificate
phpseclib4\File\ASN1\Types\Integer
16030905390649360103346207998869143352
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-07-11 10:20:29
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
23
userCertificate
phpseclib4\File\ASN1\Types\Integer
18739817485093958723037461592510291989
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-07-15 16:47:35
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
24
userCertificate
phpseclib4\File\ASN1\Types\Integer
9099804057370938752416708935383533737
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-07-18 22:55:17
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
25
userCertificate
phpseclib4\File\ASN1\Types\Integer
18506899891304377465088800287631646645
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-07-18 22:55:29
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
26
userCertificate
phpseclib4\File\ASN1\Types\Integer
9740989011962920485166098611559070133
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-07-22 07:29:51
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
27
userCertificate
phpseclib4\File\ASN1\Types\Integer
12606765947201014004552070980564431376
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-07-28 10:59:54
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
28
userCertificate
phpseclib4\File\ASN1\Types\Integer
11863539923369887535883548696369594743
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-08-04 07:55:09
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
29
userCertificate
phpseclib4\File\ASN1\Types\Integer
14523020931429497840364095884714233910
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-08-04 07:55:09
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
30
userCertificate
phpseclib4\File\ASN1\Types\Integer
18802010376259540779962207147171705741
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-08-31 11:08:12
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
31
userCertificate
phpseclib4\File\ASN1\Types\Integer
6471328385581868711476413345994819127
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-08-31 16:03:23
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
32
userCertificate
phpseclib4\File\ASN1\Types\Integer
12062662917621376262424203111716494455
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-09-15 02:12:33
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
33
userCertificate
phpseclib4\File\ASN1\Types\Integer
19922459037596493581213701073508735518
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-09-15 14:30:21
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
34
userCertificate
phpseclib4\File\ASN1\Types\Integer
4170308715394771174203261292947718910
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-09-19 17:51:02
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
35
userCertificate
phpseclib4\File\ASN1\Types\Integer
5120396680976129203813117766483394758
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-09-21 18:51:34
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
36
userCertificate
phpseclib4\File\ASN1\Types\Integer
8551469534662953248701720692000801971
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-09-22 15:28:39
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
37
userCertificate
phpseclib4\File\ASN1\Types\Integer
2694298607835044575387938623595975156
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-09-29 18:46:27
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
38
userCertificate
phpseclib4\File\ASN1\Types\Integer
5403897671894201434087576466788430138
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-09-29 18:46:27
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
39
userCertificate
phpseclib4\File\ASN1\Types\Integer
14766500872587728926436578947211234945
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-09-29 18:46:27
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
40
userCertificate
phpseclib4\File\ASN1\Types\Integer
1969360307019232208588258315490543798
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-10-06 00:03:42
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
41
userCertificate
phpseclib4\File\ASN1\Types\Integer
13805847840723110206984528959889662778
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-10-06 00:03:42
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
42
userCertificate
phpseclib4\File\ASN1\Types\Integer
3231767018941084485056836680567973769
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-10-14 09:59:37
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
43
userCertificate
phpseclib4\File\ASN1\Types\Integer
6136447954200513613339807470452140907
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-10-19 14:50:54
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
44
userCertificate
phpseclib4\File\ASN1\Types\Integer
10594405372234083142850044012173086065
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-10-27 17:47:30
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
45
userCertificate
phpseclib4\File\ASN1\Types\Integer
15754083733651239988501909977176545970
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-10-29 15:33:25
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
46
userCertificate
phpseclib4\File\ASN1\Types\Integer
11322322126748539031686860974097456722
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-11-09 19:39:11
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
47
userCertificate
phpseclib4\File\ASN1\Types\Integer
14959541598610369708081995488729755398
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-11-09 19:39:11
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
48
userCertificate
phpseclib4\File\ASN1\Types\Integer
9182524120872630683840590262362405770
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-11-16 04:17:57
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
49
userCertificate
phpseclib4\File\ASN1\Types\Integer
16669236470555813098054077542559407296
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-11-16 15:34:20
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
50
userCertificate
phpseclib4\File\ASN1\Types\Integer
3674754774052853327023545058560749866
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-11-16 18:51:28
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
51
userCertificate
phpseclib4\File\ASN1\Types\Integer
9633560366377317563724388785725226531
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-11-16 18:51:28
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
52
userCertificate
phpseclib4\File\ASN1\Types\Integer
15638709831656528684702568260634584769
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-11-16 18:51:28
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
53
userCertificate
phpseclib4\File\ASN1\Types\Integer
6709907714158677764706972391007451489
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-11-16 18:51:28
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
54
userCertificate
phpseclib4\File\ASN1\Types\Integer
19248242646503970293758328328327080588
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-11-16 18:51:28
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
55
userCertificate
phpseclib4\File\ASN1\Types\Integer
8542658306393010305504570425231850862
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-11-26 15:22:15
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
56
userCertificate
phpseclib4\File\ASN1\Types\Integer
17595419601203870931006271723028906441
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-11-26 15:22:15
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
57
userCertificate
phpseclib4\File\ASN1\Types\Integer
4785835279669355583655938881778520658
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-12-08 10:15:42
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
58
userCertificate
phpseclib4\File\ASN1\Types\Integer
11464255240850822005868775757888289271
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-12-14 20:32:44
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
59
userCertificate
phpseclib4\File\ASN1\Types\Integer
13727338751918614127036096091352063294
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-12-20 09:08:13
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
60
userCertificate
phpseclib4\File\ASN1\Types\Integer
18370876364836814682478861412110162712
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-01-07 03:22:58
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
61
userCertificate
phpseclib4\File\ASN1\Types\Integer
15267834862673402903106743055532086386
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-01-17 06:29:51
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
62
userCertificate
phpseclib4\File\ASN1\Types\Integer
3408248274011898168801785162541918558
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-01-17 17:17:35
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
63
userCertificate
phpseclib4\File\ASN1\Types\Integer
14853363054547314661961210718389246542
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-01-17 17:17:35
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
64
userCertificate
phpseclib4\File\ASN1\Types\Integer
12596712634254658922038599939618333517
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-01-17 17:17:35
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
65
userCertificate
phpseclib4\File\ASN1\Types\Integer
15096149773166661643506781301146359892
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-01-17 17:17:35
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
66
userCertificate
phpseclib4\File\ASN1\Types\Integer
6640353608178196551668524719592821580
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-01-18 16:56:42
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
67
userCertificate
phpseclib4\File\ASN1\Types\Integer
21101212183184683018320376770714445422
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-02-07 12:12:41
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
68
userCertificate
phpseclib4\File\ASN1\Types\Integer
13952963294473988644070408354367085293
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-03-03 14:01:50
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
69
userCertificate
phpseclib4\File\ASN1\Types\Integer
8667529493141077373787589337830742843
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-03-03 14:04:53
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
70
userCertificate
phpseclib4\File\ASN1\Types\Integer
3581346949597299018559127977551003508
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-03-06 10:25:06
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
71
userCertificate
phpseclib4\File\ASN1\Types\Integer
20048263815839888421248152673232994616
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-03-08 14:53:52
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
72
userCertificate
phpseclib4\File\ASN1\Types\Integer
17517586373986021538185981193045611788
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-03-14 18:35:40
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
73
userCertificate
phpseclib4\File\ASN1\Types\Integer
8552546453560890677641840806857081094
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-03-14 18:35:56
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
74
userCertificate
phpseclib4\File\ASN1\Types\Integer
10379760794806923837693709575601520776
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-03-14 18:36:13
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
75
userCertificate
phpseclib4\File\ASN1\Types\Integer
13599191545244014068920415655283029444
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-03-14 18:36:51
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
76
userCertificate
phpseclib4\File\ASN1\Types\Integer
19038326648537872633383796119133911227
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-03-14 18:36:59
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
77
userCertificate
phpseclib4\File\ASN1\Types\Integer
13440400604018561112023537614995276527
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-03-14 18:37:08
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
78
userCertificate
phpseclib4\File\ASN1\Types\Integer
6015727751708413147025701626966430557
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-03-15 13:29:59
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
79
userCertificate
phpseclib4\File\ASN1\Types\Integer
12456931176019563439576415323272167179
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-03-26 14:40:24
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
80
userCertificate
phpseclib4\File\ASN1\Types\Integer
4438488660125662580497778986344055441
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-03-26 14:40:33
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
81
userCertificate
phpseclib4\File\ASN1\Types\Integer
18286597439084641425633112599863399111
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-03-26 21:20:02
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
82
userCertificate
phpseclib4\File\ASN1\Types\Integer
15150636431386499852278088849868898525
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-04-19 09:17:24
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
83
userCertificate
phpseclib4\File\ASN1\Types\Integer
9413740367916934725524378084784768186
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-04-30 20:16:21
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
84
userCertificate
phpseclib4\File\ASN1\Types\Integer
19938043504660635228180518346323043109
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-05-01 09:43:22
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
85
userCertificate
phpseclib4\File\ASN1\Types\Integer
3936191338939076990689077746497253713
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-05-01 10:11:16
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
86
userCertificate
phpseclib4\File\ASN1\Types\Integer
10039124784021198556626729044643418900
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-05-01 10:11:16
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
87
userCertificate
phpseclib4\File\ASN1\Types\Integer
2045920717981776911350965682598978887
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-05-01 10:11:34
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
88
userCertificate
phpseclib4\File\ASN1\Types\Integer
12528850273339548576627250082579067926
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-05-01 10:11:34
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
89
userCertificate
phpseclib4\File\ASN1\Types\Integer
11326432605603160013664517330210149298
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-05-01 10:11:55
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
90
userCertificate
phpseclib4\File\ASN1\Types\Integer
13567118698638783540421032428061778306
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-05-01 10:11:55
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
91
userCertificate
phpseclib4\File\ASN1\Types\Integer
14511455546385872832794765995651106902
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-05-01 10:11:55
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
92
userCertificate
phpseclib4\File\ASN1\Types\Integer
9898705350528108967233993090825718033
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-05-01 10:16:20
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
93
userCertificate
phpseclib4\File\ASN1\Types\Integer
12200626009134537545199978398746808306
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-05-01 10:16:53
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
94
userCertificate
phpseclib4\File\ASN1\Types\Integer
7624955769492031351074051210488601794
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-05-11 06:10:02
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
95
userCertificate
phpseclib4\File\ASN1\Types\Integer
12578953966579613084519948813967654595
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-05-11 06:10:02
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
96
userCertificate
phpseclib4\File\ASN1\Types\Integer
16850738090450324439314003364754421205
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-05-11 06:10:02
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
97
userCertificate
phpseclib4\File\ASN1\Types\Integer
2203305533163133959750028367382091333
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-08-06 18:24:02
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
98
userCertificate
phpseclib4\File\ASN1\Types\Integer
14540377289302665572735039702951441811
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-09-18 16:12:05
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
99
userCertificate
phpseclib4\File\ASN1\Types\Integer
18244777679847125680837237748408928706
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-09-18 16:12:05
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
100
userCertificate
phpseclib4\File\ASN1\Types\Integer
17317703406938269401099145732380474970
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-09-18 16:13:49
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
101
userCertificate
phpseclib4\File\ASN1\Types\Integer
9048354325167497831898969642461237543
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-09-18 16:14:08
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
102
userCertificate
phpseclib4\File\ASN1\Types\Integer
9835191522837184195846579768505545167
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2012-09-18 16:14:08
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
crlExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-authorityKeyIdentifier
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
keyIdentifier
phpseclib4\File\ASN1\Types\OctetString
4c58cb25f0414f52f428c881439ba6a8a0e692e5
1
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLNumber
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
1409
signatureAlgorithm
algorithm
phpseclib4\File\ASN1\Types\OID
sha1WithRSAEncryption
signature
phpseclib4\File\ASN1\Types\BitString
000fe1d18159cae617277f415c2fd76b18bfa4177a4454d6742ee0ed5109a2e42823975c3c4baf083f53c4e75dd6c78d7d3eb8000221b67e9c75f299571a73f785b0ec74ddb9661656d42d852e4c788e902448fe5a988111fcc623358412c539cc2da6528e4f54effed2af5dde7e035747b23bb3d835104b6de35995ce4784a2e25ce631a48624234a6eeafa1a8022ddc7a63882968452388de3431e3f6921f3b861a0325baf8f6de77784de468a9f11d957e9d2ebd7d40c40a09d4715460cde9ed06db0cde8e35c3b113a6803184ca844f441ec6f654428bd179fd96c5a280f7c025e44e68c9f0a90e48e8e2abe75625cd1ccb44d4d4693a07cdd35b51041669f

All elements and subelements of the above CRL object can be accessed as array elements vis-a-vis ArrayAccess.

To learn more about the capabilities afforded to the CRL class by virtue of it being a thin wrapper around \phpseclib4\File\ASN1\Constructed please refer to Deep Dive: ASN1\Constructed Objects.

listExtensions()

Quoting RFC5280 § 5.2. CRL Extensions:

Conforming CRL issuers are REQUIRED to include the authority key identifier (Section 5.2.1) and the CRL number (Section 5.2.3) extensions in all CRLs issued.

print_r($crl->listExtensions());

Running the above will produce an array with all the attributes that are in the CRL:

0
id-ce-authorityKeyIdentifier
1
id-ce-cRLNumber

id-ce-authorityKeyIdentifier "is especially useful where an issuer has more than one signing key, either due to multiple concurrent key pairs or due to changeover" (RFC5280 § 5.2.1. Authority Key Identifier)

id-ce-cRLNumber "allows users to easily determine when a particular CRL supersedes another CRL" (RFC5280 § 5.2.3. CRL Number)

getExtension()

Returns an array representing the first instance of an extension even if there are multiple instances. In this array extnId is a string, critical is a boolean and extnValue is an instance of phpseclib4\File\ASN1\Types\BaseType.

If said extension isn't present then null is returned.

print_r($crl->getExtension('id-ce-cRLNumber'));

Since id-ce-cRLNumber exists in $crl, running the above will produce an array with three elements:

extnId
id-ce-cRLNumber
extnValue
phpseclib4\File\ASN1\Types\Integer
1409
critical
false

You can search by the extension name or the OID for the extension (2.5.29.20, in this case).

If you just want to see if the extension exists you could do getExtension() !== null or you could call hasExtension():

echo $crl->hasExtension('id-ce-cRLNumber') ? 't' : 'f';

hasExtension() works largely the same way that getExtension() does, except that it returns true or false depending on if the extension exists or not.

getDN() / getDNProps()

A CRL has only has an issuer distinguished name (DN for short). The methods for accessing that DN are as follows:

Learn more about how DNs work in phpseclib at Deep Dive: Distinguished Names (DNs).

Checking for CRL Inclusion

numRevoked()

The number of revoked certificate serial numbers contained within a CRL can be determined by doing $crl->numRevoked() or count($this->crl['tbsCertList']['revokedCertificates']).

So let's say the CRL in question has 100 revoked certificate serial numbers. You can get the $n'th revoked certificate serial number by doing either $crl->getRevokedByIndex($n) or $this->crl['tbsCertList']['revokedCertificates'][$n]. Doing print_r() on either will give you something like this:

userCertificate
phpseclib4\File\ASN1\Types\Integer
14447635487260724233449796859940282632
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-07-11 10:19:41
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified

userCertificate and revocationDate will always be present - crlEntryExtensions is not guaranteed to be present.

getRevokedAsArray()

$crl->getRevokedAsArray() returns an array whose keys are the hex encoded versions of the certificate serial numbers:

016d38d1fa474f65bf2c32588c82ef8c
revocationDate
2010-11-12 14:39:51
reason
unspecified
024f6e0301e5c803ada5526b2f4e0061
revocationDate
2011-01-27 19:05:01
reason
unspecified
03356327eddd1940e48cd5acd90e77ba
revocationDate
2011-01-29 08:57:53
reason
unspecified
0b4af0c8c5322dd1723e79d1e574ab93
revocationDate
2011-01-29 11:33:11
reason
unspecified
05b45ed5eb809ac598b6e5a925ed62ca
revocationDate
2011-03-04 17:02:38
reason
unspecified

If a serial number had multiple entries in the CRL (which shouldn't ever happen but whatever) then you'd get this:

016d38d1fa474f65bf2c32588c82ef8c
0
revocationDate
2010-11-12 14:39:51
reason
unspecified
1
revocationDate
2011-01-27 19:05:01
reason
unspecified

This structure has several advantages over ->toArray(). It's more easily serialized, you can check to see if a certificate is in the CRL by doing isset($arr[$x509['tbsCertificate']['serialNumber']]). This method is also much more performant than ->toArray() due to employing some of the lazy loading discussed in Deep Dive: ASN1\Constructed Objects: Speed and Memory Usage.

isRevoked()

This function takes one parameter - either the serial number of the certificate in question, represented by an instance of \phpseclib4\Math\BigInteger (ie. $x509['tbsCertificate']['serialNumber']), or an X509 object, from which the the serial number can be extracted.

The output of this function is a boolean. True if the certificate in question is revoked, false if it isn't.

getRevokedInfo()

This function takes one parameter - either the serial number of the certificate in question, represented by an instance of \phpseclib4\Math\BigInteger (ie. $x509['tbsCertificate']['serialNumber']), or an X509 object, from which the the serial number can be extracted. For the rest of this section this parameter shall be called the serial number.

If the certificate in question has not been revoked then null will be returned. If it has been revoked then you'll get something like this:

userCertificate
phpseclib4\File\ASN1\Types\Integer
14447635487260724233449796859940282632
revocationDate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
2011-07-11 10:19:41
crlEntryExtensions
0
extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
critical
phpseclib4\File\ASN1\Types\Boolean
false
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified

userCertificate and revocationDate will always be present - crlEntryExtensions is not guaranteed to be present.

If you wanted to get the index of the revoked certificate serial number, so that you might access it directly on subsequent loads vs having to search for the serial number each time then one need simply call getRevokedIndex(), passing to it the serial number. If the index is out of bounds then null will be returned.

CRL Entry Extensions

Just as each CRL can have optional extensions, each entry in the CRL can also have extensions. RFC5280 § 5.3. CRL Entry Extensions mentions 3x extensions that could appear for each entry:

  • id-ce-cRLReasons

    CRL::listValidRevocationReasons() returns an array with all the valid rejection reasons.

  • id-ce-invalidityDate

    The difference between the revocation date and the invalidty date is that the revocation date is when the CA actually revoked the certificate whereas the invalidity date is when the certificate (or the private key corresponding to it) was compromised. Like a compromised certificate may not be discovered immediately and even after it is discovered it may take time for the CA to actually revoke it.

  • id-ce-certificateIssuer

listRevokedExtensions()

listRevokedExtensions() takes one parameter - either an instance of \phpseclib4\Math\BigInteger (ie. $x509['tbsCertificate']['serialNumber']) , or an X509 object, from which the the serial number can be extracted.

If the serial number does not exist in the CRL null will be returned. If the serial number does exist you'll get something like this:

0
id-ce-cRLReasons

getRevokedExtension()

getRevokedExtension() takes two parameters:

  • $cert, an instance of \phpseclib4\Math\BigInteger (ie. $x509['tbsCertificate']['serialNumber']) , or an X509 object, from which the the serial number can be extracted
  • $name, the name of the extension whose contents you're trying to get

Returns an array representing the first instance of an extension even if there are multiple instances. In this array extnId is a string, critical is a boolean and extnValue is an instance of phpseclib4\File\ASN1\Types\BaseType.

If said extension or if the certificate serial number isn't present then null is returned.

Example:

$r = $crl->getRevokedExtension(
new Biginteger('016d38d1fa474f65bf2c32588c82ef8c', 16),
'id-ce-cRLReasons'
);
print_r($r);

Since id-ce-cRLReasons exists in $crl, running the above will produce an array with three elements:

extnId
phpseclib4\File\ASN1\Types\OID
id-ce-cRLReasons
extnValue
phpseclib4\File\ASN1\Types\Integer
unspecified
critical

You can search by the extension name or the OID for the extension (2.5.29.21, in this case).

If you just want to see if the extension exists you could do getRevokedExtension() !== null or you could call hasRevokedExtension():

echo $crl->getRevokedExtension(
new Biginteger('016d38d1fa474f65bf2c32588c82ef8c', 16),
'id-ce-cRLReasons'
) ? 't' : 'f';

hasRevokedExtension() works largely the same way that getRevokedExtension() does, except that it returns true or false depending on if the extension exists or not.

Using CRLs in Practice

Real world CRLs can be fairly large. For example, Deep Dive: ASN1\Constructed Objects: Speed and Memory Usage discusses a 2.2mb CRL, and who wants to download 2.2mb every time you're making an AJAX request for 10 bytes of data? This is why CRLs have thisUpdate and nextUpdate as fields ($crl['tbsCertList']['thisUpdate'] and $crl['tbsCertList']['nextUpdate'], respectively).

Of course, those fields are only of use if you already have downloaded the CRL. So how do you store a CRL that's valid for ten days from the moment that you first downloaded it? That's where X509::setCRLLookupCallback() comes into play. Here's an example of its being used:

$x509 = X509::load('google.crt');
$CRLCache = [];
$cacheHits = $cacheMisses = 0;
X509::setCRLLookupCallback(function(string $url, BigInteger $serial) use (&$CRLCache, &$cacheHits, &$cacheMisses): bool {
if (isset($CRLCache[$url])) {
$cacheHits++;
} else {
$crl = CRL::load(file_get_contents($url));
$CRLCache[$url] = $crl->getRevokedAsArray();
$cacheMisses++;
}
return isset($CRLCache[$url][$serial->toHex()]);
});
echo $x509->validateNonRevokedStatus() ? 't' : 'f';

Whatever the function that's being passed to X509::setCRLLookupCallback() is, it needs to have two parameters - $url (a string) and $serial (an instance of \phpseclib4\Math\BigInteger). The output should be a boolean, true if the serial number is in the certificate, false if it isn't.

Changes you'd want to make to that function before using it in the real world:

  • Update it to store stuff to and retrieve stuff from something like MySQL, MongoDB, the local filesystem, whatever.
  • Check $crl['tbsCertList']['thisUpdate'] and $crl['tbsCertList']['nextUpdate'] to make sure that the dates are valid. This has been omitted for brevity.
  • Validate the signature of the CRL. This, too, has been omitted for brevity.
  • Handle the case where file_get_contents($url) fails. Should an exception be thrown? Should it return false? Or true? That's entirely your prerogative.

Also, it should be noted that $x509->validateSignature() calls $x509->validateNonRevokedStatus(). Rather than deal with loading CAs and all that jazz, however, this section opted to call $x509->validateNonRevokedStatus() for simplicities sake.

Creating CRLs

Consider the following:

use phpseclib4\File\CRL;

$crl = new CRL();
echo $crl;

The CRL that that would produce would look something like this:

-----BEGIN X509 CRL-----
MCMwGQIBATADBgEAMAAXDTcwMDEwMTAwMDAwMFowAwYBAAMBAA==
-----END X509 CRL-----

This CRL has no extensions, does not have an issuer distinguished name, does not have a signature and it does not have any revoked serial numbers in it.

If you saved this CRL as test.pem and then did openssl crl -in test.pem -inform PEM -text -noout on that CRL you'd get this:

Certificate Revocation List (CRL):
Version 2 (0x1)
Signature Algorithm: 0.0
Issuer:
Last Update: Jan 1 00:00:00 1970 GMT
Next Update: NONE
No Revoked Certificates.
Signature Algorithm: 0.0
Signature Value:

If you did print_r($x509) on that certificate you'd get this:

tbsCertList
version
phpseclib4\File\ASN1\Types\Integer
v2
signature
algorithm
phpseclib4\File\ASN1\Types\OID
0.0
issuer
rdnSequence
thisUpdate
utcTime
phpseclib4\File\ASN1\Types\UTCTime
1970-01-01 00:00:00
signatureAlgorithm
algorithm
phpseclib4\File\ASN1\Types\OID
0.0
signature
phpseclib4\File\ASN1\Types\BitString
00

That said, even when doing this, $crl['tbsCertList']['thisUpdate'] will (probably) be different every time you create a new CRL. By default it's set to the current time in the systems timezone but you can change that by calling $crl->setThisDate() (or $crl->setLastDate(), which is an alias of $crl->setThisDate()).

There's also $crl['tbsCertList']['nextUpdate']. RFC5280 § 5.1.2.5. Next Update explains the purpose behind nextUpdate:

This field indicates the date by which the next CRL will be issued. The next CRL could be issued before the indicated date, but it will not be issued any later than the indicated date.

That said, RFC5280 § 5.1.2.5. Next Update is a little weird with regard to whether or not that field is required:

Conforming CRL issuers MUST include the nextUpdate field in all CRLs. Note that the ASN.1 syntax of TBSCertList describes this field as OPTIONAL, which is consistent with the ASN.1 structure defined in [X.509]. The behavior of clients processing CRLs that omit nextUpdate is not specified by this profile.

This field can be set by calling $crl->setNextDate().

Both $crl->setThisDate() and $crl->setNextDate() have one required parameter - $date - which can be either an instance of \DateTimeInterface or a string. If it's a string it'll be passed to the constructor of \DateTime and parsed by that.

Revoking Certificates

The following shows a few ways in which certificates can be revoked:

$crl->revoke($x509, 'keyCompromise', new DateTime('1970-01-01', new DateTimeZone('UTC')));
$crl->revoke($x509['tbsCertificate']['serialNumber']);
$crl->revoke(new BigInteger('deadbeef', 16), reason: 'keyCompromise');

The parameters are as follows:

  • $cert

    Can be either an instance of \phpseclib4\File\X509 or \phpseclib4\Math\BigInteger. If it's a BigInteger it should be the serial number of the certificate in question

  • $reason

    Can be a string or null.

    Valid reasons (from RFC5280 pp. 130) can be listed by doing CRL::listValidRevocationReasons() but, none-the-less, the supported reasons are as follows:

    • unspecified
    • keyCompromise
    • cACompromise
    • affiliationChanged
    • superseded
    • cessationOfOperation
    • certificateHold
    • removeFromCRL
    • privilegeWithdrawn
    • aACompromise

    Reason names are case-insensitive — both keyCompromise and KEYCOMPROMISE are accepted. Anything not in the list throws \phpseclib4\Exception\UnexpectedValueException.

    Defaults to null (ie. a id-ce-cRLReasons CRL Entry Extension will not be present).

  • $date

    Can be an instance of \DateTimeInterface or a string or null. If it's a string it'll be passed to the constructor of \DateTime and parsed by that.

    Default to null (ie. the current date).

Certificates can be unrevoked by calling $crl->unrevoke(), which takes one parameter - $cert - an instance of \phpseclib4\File\X509 or \phpseclib4\Math\BigInteger.

Setting Extensions

CRLs have two different types of extensions that can be set - top level extensions and per-certificate extensions.

Here's an example of a top-level extension being set:

$crl->setExtension('id-ce-cRLNumber', 155);

Here's an example of a per-certificate extension being set:

$crl->setRevokedExtension($x509, 'id-ce-invalidityDate', '1970-01-01 00:00:00');

Both setExtension() and setRevokedExtension() accept an optional extra parameter - $critical, as well which, if not explicitly set, will be set to either bool(true) or bool(false) based on what RFC5280 says about it. Like some extensions are only ever supposed have critical set to either bool(false) or bool(true) and others can be set to one or the other depending on their specific situation. If you manually set an extension to bool(true) that RFC5280 says should only ever be bool(false) phpseclib will let you do so.

Setting the DN

A CRL has only has an issuer distinguished name (DN for short). The methods for manipulating that DN are as follows:

Additionally, the issuer DN can be set by signing the CRL with a PFX. eg. $pfx->sign($x509). The Signing section elaborates.

Signing

CRLs can be signed with private key objects or PFX objects.

Here's an example of how you'd sign a CRL with a private key object:

use phpseclib4\Crypt\EC;
use phpseclib4\File\CRL;

$private = EC::createKey('nistp256');

$crl = new CRL();
// do stuff
$private->sign($crl);

Here's an example of how you'd create a CA signed cert with a PFX object that builds on the above:

use phpseclib4\File\PFX;
use phpseclib4\File\CSR;

$pfx = PFX::load('...');

$crl = new CRL();
// do stuff
$pfx->sign($crl);

This will sign the certificate and auto-set the issuer DN's to match those of the X.509 that is in the PFX.

Signing the CRL before the DNs or extensions or whatever have been set will result in the CRL having a bad signature. Like modifications done after the signature was added do not automatically result in the signature being updated to reflect those changes.

Output Format

By default, CRL objects, when cast to a string, are converted to base64-encoded PEMs. To make it so that casting to a string produces a binary encoded DERs one need simply call CRL::enableBinaryOutput(). To go back to PEMs calling CRL::disableBinaryOutput() is sufficient.

You can also convert a CRL object to binary by doing $crl->toString(['binary' => true]).