package pki import ( "encoding/base64" "fmt" "html" "github.com/google/uuid" ) // GenerateMobileconfig generates an iOS configuration profile containing // the root CA certificate for one-tap trust installation. func GenerateMobileconfig(rootDER []byte, rootCN string) []byte { b64Cert := base64.StdEncoding.EncodeToString(rootDER) profileUUID := uuid.New().String() certUUID := uuid.New().String() safeCN := html.EscapeString(rootCN) profile := fmt.Sprintf(` PayloadContent PayloadCertificateFileName gordon-ca.crt PayloadContent %s PayloadDescription Installs the Gordon internal CA root certificate PayloadDisplayName %s PayloadIdentifier dev.gordon.ca.%s PayloadType com.apple.security.root PayloadUUID %s PayloadVersion 1 PayloadDescription Trust Gordon's internal Certificate Authority for HTTPS access PayloadDisplayName Gordon CA Trust PayloadIdentifier dev.gordon.ca-profile PayloadType Configuration PayloadUUID %s PayloadVersion 1 `, b64Cert, safeCN, certUUID, certUUID, profileUUID) return []byte(profile) }