func (reg Registration) Export(password string) (*RegistrationExport, error) { keyBlock, err := reg.SigningKey.EncryptPrivateKey(password, utils.PemDefaultCipher) if nil != err { return nil, err } jsonBytes, err := json.Marshal(rawRegistrationExportJson{ Resource: reg.Resource, LinkTermsOfService: reg.LinkTermsOfService, RecoveryToken: reg.RecoveryToken, }) if nil != err { return nil, err } jsonBlock := &pem.Block{ Type: pemTypeAcmeJsonRegistration, Bytes: jsonBytes, } if err := utils.EncryptPemBlock(jsonBlock, password, utils.PemDefaultCipher); nil != err { return nil, err } return &RegistrationExport{ JsonPem: pem.EncodeToMemory(jsonBlock), SigningKeyPem: pem.EncodeToMemory(keyBlock), Location: reg.Location, Name: reg.Name, }, nil }
func (auth Authorization) Export(password string) (*AuthorizationExport, error) { if jsonBytes, err := json.Marshal(auth); nil != err { return nil, err } else { jsonBlock := &pem.Block{ Type: pemTypeAcmeJsonAuthorization, Bytes: jsonBytes, } if err := utils.EncryptPemBlock(jsonBlock, password, utils.PemDefaultCipher); nil != err { return nil, err } return &AuthorizationExport{ JsonPem: pem.EncodeToMemory(jsonBlock), }, nil } }
func (cert Certificate) Export(password string) (*CertificateExport, error) { var privateKeyBlob []byte if nil != cert.PrivateKey { privateKeyBlock := *cert.PrivateKey if err := utils.EncryptPemBlock(&privateKeyBlock, password, utils.PemDefaultCipher); nil != err { return nil, err } privateKeyBlob = pem.EncodeToMemory(&privateKeyBlock) } return &CertificateExport{ CertificatePem: pem.EncodeToMemory(cert.Certificate), PrivateKeyPem: privateKeyBlob, Location: cert.Location, LinkIssuer: cert.LinkIssuer, }, nil }