Add revocation check to certservice
This commit is contained in:
parent
f20da8ed23
commit
feb76ff890
@ -10,9 +10,10 @@ import (
|
||||
"crypto/x509/pkix"
|
||||
"encoding/pem"
|
||||
"fmt"
|
||||
"gitea.benny.dog/torjus/ezshare/store"
|
||||
"math/big"
|
||||
"time"
|
||||
|
||||
"gitea.benny.dog/torjus/ezshare/store"
|
||||
)
|
||||
|
||||
type CertService struct {
|
||||
@ -58,7 +59,7 @@ func NewCertService(s store.CertificateStore, certBytes, keyBytes []byte) (*Cert
|
||||
|
||||
func (cs *CertService) NewClient(id string) ([]byte, []byte, error) {
|
||||
cert := &x509.Certificate{
|
||||
SerialNumber: big.NewInt(time.Now().Unix()),
|
||||
SerialNumber: big.NewInt(time.Now().UnixMilli()),
|
||||
Subject: pkix.Name{
|
||||
CommonName: id,
|
||||
Organization: []string{"ezshare"},
|
||||
@ -129,5 +130,13 @@ func (cs *CertService) VerifyClient(certBytes []byte) (string, error) {
|
||||
return "", fmt.Errorf("unable to verify: %w", err)
|
||||
}
|
||||
|
||||
revoked, err := cs.store.IsRevoked(cert.SerialNumber.String())
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("unable to check if revoked: %w", err)
|
||||
}
|
||||
if revoked {
|
||||
return "", fmt.Errorf("certificate is revoked")
|
||||
}
|
||||
|
||||
return cert.Subject.CommonName, nil
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user