57 lines
1.3 KiB
Go
57 lines
1.3 KiB
Go
package pkiadm
|
|
|
|
type (
|
|
Serial struct {
|
|
ID string
|
|
Min int64
|
|
Max int64
|
|
}
|
|
|
|
SerialChange struct {
|
|
Serial Serial
|
|
FieldList []string
|
|
}
|
|
|
|
ResultSerial struct {
|
|
Result Result
|
|
Serials []Serial
|
|
}
|
|
)
|
|
|
|
// CreateSerial sends a RPC request to create a new private key.
|
|
func (c *Client) CreateSerial(ser Serial) error {
|
|
return c.exec("CreateSerial", ser)
|
|
}
|
|
func (c *Client) SetSerial(ser Serial, fieldList []string) error {
|
|
changeset := SerialChange{ser, fieldList}
|
|
return c.exec("SetSerial", changeset)
|
|
}
|
|
func (c *Client) DeleteSerial(id string) error {
|
|
ser := ResourceName{ID: id, Type: RTSerial}
|
|
return c.exec("DeleteSerial", ser)
|
|
}
|
|
func (c *Client) ListSerial() ([]Serial, error) {
|
|
result := &ResultSerial{}
|
|
if err := c.query("ListSerial", Filter{}, result); err != nil {
|
|
return []Serial{}, err
|
|
}
|
|
if result.Result.HasError {
|
|
return []Serial{}, result.Result.Error
|
|
}
|
|
return result.Serials, nil
|
|
}
|
|
func (c *Client) ShowSerial(id string) (Serial, error) {
|
|
ser := ResourceName{ID: id, Type: RTSerial}
|
|
result := &ResultSerial{}
|
|
if err := c.query("ShowSerial", ser, result); err != nil {
|
|
return Serial{}, err
|
|
}
|
|
if result.Result.HasError {
|
|
return Serial{}, result.Result.Error
|
|
}
|
|
for _, privateKey := range result.Serials {
|
|
return privateKey, nil
|
|
}
|
|
return Serial{}, nil
|
|
}
|