admin: Improve CA API
This commit is contained in:
parent
6d5ded2c3b
commit
2254ee7702
2 changed files with 52 additions and 26 deletions
|
@ -1,6 +1,7 @@
|
|||
package api
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
|
||||
|
@ -10,21 +11,47 @@ import (
|
|||
)
|
||||
|
||||
func init() {
|
||||
router.GET("/api/ca", apiHandler(genCA))
|
||||
router.GET("/api/ca.pem", apiHandler(GetCAPEM))
|
||||
router.POST("/api/ca/new", apiHandler(
|
||||
func(_ httprouter.Params, _ []byte) (interface{}, error) { return fic.GenerateCA() }))
|
||||
router.GET("/api/ca/crl", apiHandler(GetCRL))
|
||||
router.POST("/api/ca/crl", apiHandler(
|
||||
func(_ httprouter.Params, _ []byte) (interface{}, error) { return fic.GenerateCRL() }))
|
||||
|
||||
|
||||
router.GET("/api/teams/:tid/certificate/", apiHandler(teamHandler(GetTeamCertificate)))
|
||||
router.GET("/api/teams/:tid/certificate/generate", apiHandler(teamHandler(
|
||||
func(team fic.Team, _ []byte) (interface{}, error) { return team.GenerateCert(), nil })))
|
||||
func(team fic.Team, _ []byte) (interface{}, error) { return team.GenerateCert() })))
|
||||
router.GET("/api/teams/:tid/certificate/revoke", apiHandler(teamHandler(
|
||||
func(team fic.Team, _ []byte) (interface{}, error) { return team.RevokeCert(), nil })))
|
||||
func(team fic.Team, _ []byte) (interface{}, error) { return team.RevokeCert() })))
|
||||
}
|
||||
|
||||
func genCA(_ httprouter.Params, body []byte) (interface{}, error) {
|
||||
return fic.GenerateCA(), nil
|
||||
}
|
||||
|
||||
func GetTeamCertificate(team fic.Team, body []byte) (interface{}, error) {
|
||||
if fd, err := os.Open("../PKI/pkcs/" + team.Name + ".p12"); err == nil {
|
||||
func GetCAPEM(_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
if _, err := os.Stat("../PKI/shared/cacert.crt"); os.IsNotExist(err) {
|
||||
return nil, errors.New("Unable to locate the CA root certificate. Have you generated it?")
|
||||
} else if fd, err := os.Open("../PKI/shared/cacert.crt"); err == nil {
|
||||
return ioutil.ReadAll(fd)
|
||||
} else {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
func GetCRL(_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
if _, err := os.Stat("../PKI/shared/crl.pem"); os.IsNotExist(err) {
|
||||
return nil, errors.New("Unable to locate the CRL. Have you generated it?")
|
||||
} else if fd, err := os.Open("../PKI/shared/crl.pem"); err == nil {
|
||||
return ioutil.ReadAll(fd)
|
||||
} else {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
func GetTeamCertificate(team fic.Team, _ []byte) (interface{}, error) {
|
||||
if _, err := os.Stat("../PKI/pkcs/" + team.Name + ".p12"); os.IsNotExist(err) {
|
||||
return nil, errors.New("Unable to locate the p12. Have you generated it?")
|
||||
} else if fd, err := os.Open("../PKI/pkcs/" + team.Name + ".p12"); err == nil {
|
||||
return ioutil.ReadAll(fd)
|
||||
} else {
|
||||
return nil, err
|
||||
|
|
Reference in a new issue