+26
-0
lines changedFilter options
+26
-0
lines changed Original file line number Diff line number Diff line change
@@ -76,6 +76,7 @@ type Accessor interface {
76
76
GetCertificate(serial, aki string) ([]CertificateRecord, error)
77
77
GetUnexpiredCertificates() ([]CertificateRecord, error)
78
78
GetRevokedAndUnexpiredCertificates() ([]CertificateRecord, error)
79
+
GetUnexpiredCertificatesByLabel(labels []string) (crs []CertificateRecord, err error)
79
80
GetRevokedAndUnexpiredCertificatesByLabel(label string) ([]CertificateRecord, error)
80
81
GetRevokedAndUnexpiredCertificatesByLabelSelectColumns(label string) ([]CertificateRecord, error)
81
82
RevokeCertificate(serial, aki string, reasonCode int) error
Original file line number Diff line number Diff line change
@@ -72,6 +72,8 @@ type Accessor struct {
72
72
db *sqlx.DB
73
73
}
74
74
75
+
var _ certdb.Accessor = &Accessor{}
76
+
75
77
func wrapSQLError(err error) error {
76
78
if err != nil {
77
79
return cferr.Wrap(cferr.CertStoreError, cferr.Unknown, err)
@@ -176,6 +178,29 @@ func (d *Accessor) GetUnexpiredCertificates() (crs []certdb.CertificateRecord, e
176
178
return crs, nil
177
179
}
178
180
181
+
// GetUnexpiredCertificatesByLabel gets all unexpired certificate from db that have the provided label.
182
+
func (d *Accessor) GetUnexpiredCertificatesByLabel(labels []string) (crs []certdb.CertificateRecord, err error) {
183
+
err = d.checkDB()
184
+
if err != nil {
185
+
return nil, err
186
+
}
187
+
188
+
query, args, err := sqlx.In(
189
+
fmt.Sprintf(`SELECT %s FROM certificates WHERE CURRENT_TIMESTAMP < expiry AND ca_label IN (?)`,
190
+
sqlstruct.Columns(certdb.CertificateRecord{}),
191
+
), labels)
192
+
if err != nil {
193
+
return nil, wrapSQLError(err)
194
+
}
195
+
196
+
err = d.db.Select(&crs, d.db.Rebind(query), args...)
197
+
if err != nil {
198
+
return nil, wrapSQLError(err)
199
+
}
200
+
201
+
return crs, nil
202
+
}
203
+
179
204
// GetRevokedAndUnexpiredCertificates gets all revoked and unexpired certificate from db (for CRLs).
180
205
func (d *Accessor) GetRevokedAndUnexpiredCertificates() (crs []certdb.CertificateRecord, err error) {
181
206
err = d.checkDB()
You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4