func()

in pkg/encrypt/encrypt_linux.go [23:43]


func (ch *LinuxCertificateHandler) Encrypt(bytesToEncrypt []byte) (encryptedBytes []byte, err error) {
	thumbprint, err := ch.GetThumbprint()
	if err != nil {
		return nil, err
	}
	crt := filepath.Join(ch.certLocation, fmt.Sprintf("%s.crt", thumbprint))

	// we use os/exec instead of azure-docker-extension/pkg/executil here as
	// other extension handlers depend on this package for parsing handler
	// settings.
	cmd := exec.Command("openssl", "smime", "-outform", "DER", "-encrypt", crt)
	var bOut, bErr bytes.Buffer
	cmd.Stdin = bytes.NewReader(bytesToEncrypt)
	cmd.Stdout = &bOut
	cmd.Stderr = &bErr

	if err := cmd.Run(); err != nil {
		return nil, fmt.Errorf("encryption failed: error=%v stderr=%s", err, string(bErr.Bytes()))
	}
	return bOut.Bytes(), nil
}