mirror of https://github.com/ory/hydra
51 lines
1.1 KiB
Go
51 lines
1.1 KiB
Go
// Copyright © 2022 Ory Corp
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package cli
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/sawadashota/encrypta"
|
|
"github.com/spf13/cobra"
|
|
|
|
"github.com/ory/x/flagx"
|
|
)
|
|
|
|
const (
|
|
FlagEncryptionPGPKey = "pgp-key"
|
|
FlagEncryptionPGPKeyURL = "pgp-key-url"
|
|
FlagEncryptionKeybase = "keybase"
|
|
)
|
|
|
|
// NewEncryptionKey for client secret
|
|
func NewEncryptionKey(cmd *cobra.Command, client *http.Client) (ek encrypta.EncryptionKey, encryptSecret bool, err error) {
|
|
if client == nil {
|
|
client = http.DefaultClient
|
|
}
|
|
|
|
pgpKey := flagx.MustGetString(cmd, FlagEncryptionPGPKey)
|
|
pgpKeyURL := flagx.MustGetString(cmd, FlagEncryptionPGPKeyURL)
|
|
keybaseUsername := flagx.MustGetString(cmd, FlagEncryptionKeybase)
|
|
|
|
if pgpKey != "" {
|
|
ek, err = encrypta.NewPublicKeyFromBase64Encoded(pgpKey)
|
|
encryptSecret = true
|
|
return
|
|
}
|
|
|
|
if pgpKeyURL != "" {
|
|
ek, err = encrypta.NewPublicKeyFromURL(pgpKeyURL, encrypta.HTTPClientOption(client))
|
|
encryptSecret = true
|
|
return
|
|
}
|
|
|
|
if keybaseUsername != "" {
|
|
ek, err = encrypta.NewPublicKeyFromKeybase(keybaseUsername, encrypta.HTTPClientOption(client))
|
|
encryptSecret = true
|
|
return
|
|
}
|
|
|
|
return nil, false, nil
|
|
}
|