@@ -2,51 +2,31 @@ package api
2
2
3
3
import (
4
4
"encoding/pem"
5
- "fmt"
6
- "github.com/pkg/errors"
7
- "github.com/smallstep/certificates/errs"
8
5
"net/http"
6
+
7
+ "github.com/smallstep/certificates/api/render"
9
8
)
10
9
11
10
// CRL is an HTTP handler that returns the current CRL in DER or PEM format
12
11
func CRL (w http.ResponseWriter , r * http.Request ) {
13
12
crlBytes , err := mustAuthority (r .Context ()).GetCertificateRevocationList ()
14
-
15
- _ , formatAsPEM := r .URL .Query ()["pem" ]
16
-
17
13
if err != nil {
18
-
19
- caErr , isCaErr := err .(* errs.Error )
20
-
21
- if isCaErr {
22
- http .Error (w , caErr .Msg , caErr .Status )
23
- return
24
- }
25
-
26
- w .WriteHeader (500 )
27
- _ , err = fmt .Fprintf (w , "%v\n " , err )
28
- if err != nil {
29
- panic (errors .Wrap (err , "error writing http response" ))
30
- }
14
+ render .Error (w , err )
31
15
return
32
16
}
33
17
18
+ _ , formatAsPEM := r .URL .Query ()["pem" ]
34
19
if formatAsPEM {
35
20
pemBytes := pem .EncodeToMemory (& pem.Block {
36
21
Type : "X509 CRL" ,
37
22
Bytes : crlBytes ,
38
23
})
39
24
w .Header ().Add ("Content-Type" , "application/x-pem-file" )
40
25
w .Header ().Add ("Content-Disposition" , "attachment; filename=\" crl.pem\" " )
41
- _ , err = w .Write (pemBytes )
26
+ w .Write (pemBytes )
42
27
} else {
43
28
w .Header ().Add ("Content-Type" , "application/pkix-crl" )
44
29
w .Header ().Add ("Content-Disposition" , "attachment; filename=\" crl.der\" " )
45
- _ , err = w .Write (crlBytes )
46
- }
47
-
48
- if err != nil {
49
- panic (errors .Wrap (err , "error writing http response" ))
30
+ w .Write (crlBytes )
50
31
}
51
-
52
32
}
0 commit comments