Switch to sqscreds param for passing in SQS credentials

This commit is contained in:
Michael Pu 2024-03-02 16:37:51 -05:00
parent fe56eaddf4
commit 9fe2ca58a0
7 changed files with 89 additions and 18 deletions

View file

@ -0,0 +1,36 @@
package main
import (
"fmt"
sqscreds "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/sqscreds/lib"
)
// This script can be run to generate the encoded SQS credentials to pass as a CLI param or SOCKS option to the client
func main() {
var accessKey, secretKey string
fmt.Print("Enter Access Key: ")
_, err := fmt.Scanln(&accessKey)
if err != nil {
fmt.Println("Error reading access key:", err)
return
}
fmt.Print("Enter Secret Key: ")
_, err = fmt.Scanln(&secretKey)
if err != nil {
fmt.Println("Error reading access key:", err)
return
}
awsCreds := sqscreds.AwsCreds{AwsAccessKeyId: accessKey, AwsSecretKey: secretKey}
println()
println("Encoded Credentials:")
res, err := awsCreds.Base64()
if err != nil {
fmt.Println("Error encoding credentials:", err)
return
}
println(res)
}

View file

@ -0,0 +1,35 @@
package sqscreds
import (
"encoding/base64"
"encoding/json"
)
type AwsCreds struct {
AwsAccessKeyId string `json:"aws-access-key-id"`
AwsSecretKey string `json:"aws-secret-key"`
}
func (awsCreds AwsCreds) Base64() (string, error) {
jsonData, err := json.Marshal(awsCreds)
if err != nil {
return "", err
}
return base64.StdEncoding.EncodeToString(jsonData), nil
}
func AwsCredsFromBase64(base64Str string) (AwsCreds, error) {
var awsCreds AwsCreds
jsonData, err := base64.StdEncoding.DecodeString(base64Str)
if err != nil {
return awsCreds, err
}
err = json.Unmarshal(jsonData, &awsCreds)
if err != nil {
return awsCreds, err
}
return awsCreds, nil
}