pkiadm/serial.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
}