def requestCertificateForAddress(self, fromAddress, sharedSecret):
        kp = KeyPair.generate()
        subject = DistinguishedName(commonName=str(fromAddress))
        reqobj = kp.requestObject(subject)
        # create worthless, self-signed certificate for the moment, it will be
        # replaced later.

        #attemptAddress = q2q.Q2QAddress(fromAddress.domain,
        #   fromAddress.resource + '+attempt')
        # fakeSubj = DistinguishedName(commonName=str(attemptAddress))
        fakereq = kp.requestObject(subject)
        ssigned = kp.signRequestObject(subject, fakereq, 1)
        certpair = PrivateCertificate.fromCertificateAndKeyPair
        fakecert = certpair(ssigned, kp)
        apc = self.certificateStorage.addPrivateCertificate

        def _2(secured):
            D = secured.callRemote(
                Sign,
                certificate_request=reqobj,
                password=sharedSecret)
            def _1(dcert):
                cert = dcert['certificate']
                privcert = certpair(cert, kp)
                apc(str(fromAddress), privcert)
            return D.addCallback(_1)
        return self.getSecureConnection(
            fromAddress, fromAddress.domainAddress(), authorize=False,
            usePrivateCertificate=fakecert,
            ).addCallback(_2)
Create an XML-request and pass this to send_request expection a
dataset/ETHPy150Open twisted/vertex/vertex/q2q.py/Q2QService.requestCertificateForAddress--crossover with--dataset/ETHPy150Open Zimbra-Community/python-zimbra/tests/test_autoresponse.py/TestAutoresponse.test_autoresponse_xml