| package model | |
| import ( | |
| "golang.org/x/crypto/ssh" | |
| "time" | |
| ) | |
| type SSHPublicKey struct { | |
| ID uint `json:"id" gorm:"primaryKey"` | |
| UserId uint `json:"-"` | |
| Title string `json:"title"` | |
| Fingerprint string `json:"fingerprint"` | |
| KeyStr string `gorm:"type:text" json:"-"` | |
| AddedTime time.Time `json:"added_time"` | |
| LastUsedTime time.Time `json:"last_used_time"` | |
| } | |
| func (k *SSHPublicKey) GetKey() (ssh.PublicKey, error) { | |
| pubKey, _, _, _, err := ssh.ParseAuthorizedKey([]byte(k.KeyStr)) | |
| if err != nil { | |
| return nil, err | |
| } | |
| return pubKey, nil | |
| } | |
| func (k *SSHPublicKey) UpdateLastUsedTime() { | |
| k.LastUsedTime = time.Now() | |
| } | |