Initial cloud-services repo - gateway service + pkg modules
This commit is contained in:
52
pkg/common/file_key.go
Normal file
52
pkg/common/file_key.go
Normal file
@@ -0,0 +1,52 @@
|
||||
package common
|
||||
|
||||
import (
|
||||
b64 "encoding/base64"
|
||||
|
||||
"fiskerinc.com/modules/common/dbbasemodel"
|
||||
)
|
||||
|
||||
type FileKey struct {
|
||||
FileID string `pg:",pk" validate:"required,len=16,hexadecimal"`
|
||||
Key []byte `pg:",notnull" validate:"required"`
|
||||
Auth []byte `pg:",notnull" validate:"required"`
|
||||
Nonce []byte `pg:",notnull" validate:"required"`
|
||||
Error string `pg:"-"`
|
||||
dbbasemodel.DBModelBase
|
||||
}
|
||||
|
||||
type FileKeysRequest struct {
|
||||
FileIDs []string `json:"file_ids" validate:"required,dive,len=16,hexadecimal"`
|
||||
}
|
||||
|
||||
type FileKeyResponse struct {
|
||||
FileID string `json:"file_id" redis:"file_id" validate:"required,len=16,hexadecimal"`
|
||||
Key string `json:"key,omitempty" redis:"key,omitempty" validate:"required"`
|
||||
Auth string `json:"auth,omitempty" redis:"auth,omitempty" validate:"required"`
|
||||
Nonce string `json:"nonce,omitempty" redis:"nonce,omitempty" validate:"required"`
|
||||
Error string `json:"error,omitempty" redis:"error,omitempty"`
|
||||
}
|
||||
|
||||
// Turns the FileKey into a FileKeyResponse
|
||||
func (fkr *FileKeyResponse) Apply(key *FileKey) {
|
||||
fkr.FileID = key.FileID
|
||||
fkr.Key = b64.StdEncoding.EncodeToString(key.Key)
|
||||
fkr.Auth = b64.StdEncoding.EncodeToString(key.Auth)
|
||||
fkr.Nonce = b64.StdEncoding.EncodeToString(key.Nonce)
|
||||
}
|
||||
|
||||
// Turns a FileKeyResponse into a file key
|
||||
func (key *FileKey) Apply(fkr *FileKeyResponse) (err error) {
|
||||
key.FileID = fkr.FileID
|
||||
key.Error = fkr.Error
|
||||
key.Key, err = b64.StdEncoding.DecodeString(fkr.Key)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
key.Auth, err = b64.StdEncoding.DecodeString(fkr.Auth)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
key.Nonce, err = b64.StdEncoding.DecodeString(fkr.Nonce)
|
||||
return err
|
||||
}
|
||||
Reference in New Issue
Block a user