Skip to content

Instantly share code, notes, and snippets.

@plsnotracking
Created April 22, 2025 17:33
Show Gist options
  • Save plsnotracking/3879c5055b2e95910b345b90de6df51e to your computer and use it in GitHub Desktop.
Save plsnotracking/3879c5055b2e95910b345b90de6df51e to your computer and use it in GitHub Desktop.
Tries to fetch the mosaic secret, from legacy namespace using whisper dev certificates.
package main
import (
"context"
"flag"
"go.uber.org/zap"
"log"
"os"
"time"
"github.pie.apple.com/isd-dev/go-applecerts"
"github.pie.apple.com/isd-dev/go-whisper"
)
var keyFilename = flag.String("key", "/Users/vpatani/junkyard/certs/whisper-dev/key.pem", "private key file location")
var keyFilePassword = flag.String("keyPass", "/Users/vpatani/junkyard/certs/whisper-dev/pass", "private key password file location")
var certFilename = flag.String("cert", "/Users/vpatani/junkyard/certs/whisper-dev/cert.pem", "cert file location")
var namespace = flag.String("namespace", "", "namespace to be used")
var groupId = flag.String("groupId", "4525495", "group ID to be assigned to the bucket")
var bucket = flag.String("bucket", "visible-bucket", "bucket to attach the APRN Principal to")
func main() {
var err error
logger, err = GetLogger()
if err != nil {
log.Fatalf("could not init logger: %+v", err)
}
flag.Parse()
keyFile, err := os.Open(*keyFilename)
if err != nil {
logger.Fatal("error loading key file", zap.Error(err))
}
certFile, err := os.Open(*certFilename)
if err != nil {
logger.Fatal("error loading cert file", zap.Error(err))
}
hc, err := applecerts.Client()
if err != nil {
logger.Fatal("error loading apple certificates", zap.Error(err))
}
c, err := whisper.New(whisper.Config{
HTTPClient: hc,
Timeout: time.Second * 30,
BaseURL: whisper.ProdURL,
Version: whisper.V1,
Namespace: *namespace,
})
if err != nil {
logger.Fatal("failed to create whisper client", zap.Error(err))
}
if err = c.AppendCert(whisper.CertConfig{
KeyData: keyFile,
CertData: certFile,
}); err != nil {
logger.Fatal("error appending cert file", zap.Error(err))
}
s, err := c.HealthCheck(context.Background())
if err != nil {
logger.Fatal("health check failed", zap.Error(err))
}
logger.Info("health check succeeded",
zap.String("message", s.Message),
zap.String("status", s.Status),
)
tempSecret, err := c.MySecretByName(context.TODO(), "mosaic.sharing-policy-client-id.token")
if err != nil {
logger.Fatal("error getting bucket list", zap.Error(err))
}
content, err := tempSecret.Content()
logger.Info("secret fetched",
zap.String("secret", tempSecret.Name),
zap.String("encoded content", tempSecret.EncodedContent()),
zap.String("content", content),
)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment