added existing key option
This commit is contained in:
parent
84937cc3a1
commit
13e4e4de07
6 changed files with 112 additions and 14 deletions
|
|
@ -22,15 +22,18 @@ const (
|
|||
|
||||
type NewKey struct {
|
||||
Name string `json:"name"`
|
||||
Existing string `json:"existing,omitempty"`
|
||||
Size int `json:"size"`
|
||||
Encoding core.Encoding `json:"encoding"`
|
||||
Type core.Type `json:"type"`
|
||||
}
|
||||
|
||||
var (
|
||||
ErrEmptyKeyName = errors.New("empty key name")
|
||||
ErrInvalidKeyName = errors.New("invalid key name")
|
||||
ErrInvalidKeySize = errors.New("invalid key size")
|
||||
ErrEmptyKeyName = errors.New("empty key name")
|
||||
ErrExistingKeyType = errors.New("invalid key type for existing key")
|
||||
ErrExistingKeyEncoding = errors.New("invalid key encoding for existing key")
|
||||
ErrInvalidKeyName = errors.New("invalid key name")
|
||||
ErrInvalidKeySize = errors.New("invalid key size")
|
||||
)
|
||||
|
||||
const (
|
||||
|
|
@ -42,6 +45,15 @@ func (nk NewKey) Validate() error {
|
|||
if nk.Name == "" {
|
||||
return ErrEmptyKeyName
|
||||
}
|
||||
if nk.Existing != "" {
|
||||
if nk.Type == core.Xor {
|
||||
return ErrExistingKeyType
|
||||
}
|
||||
_, err := hex.DecodeString(nk.Existing)
|
||||
if err != nil {
|
||||
return ErrExistingKeyEncoding
|
||||
}
|
||||
}
|
||||
if core.NameRe.MatchString(nk.Name) {
|
||||
return ErrInvalidKeyName
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ func newHandler(ctx *types.Context) {
|
|||
ctx.Err(types.ErrInvalid)
|
||||
return
|
||||
}
|
||||
key, err := ctx.Data.DB.CreateKey(newKey.Name, newKey.Size, newKey.Encoding, newKey.Type)
|
||||
key, err := ctx.Data.DB.CreateKey(newKey.Name, newKey.Existing, newKey.Size, newKey.Encoding, newKey.Type)
|
||||
if err != nil {
|
||||
ctx.Log.Error(err, "error writing key", "name", newKey.Name)
|
||||
ctx.Err(types.ErrISE)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue