def _Sign(self):
    assert self._signer_uri
    assert self._signer_key
    assert self._protocol.IsAllowedSigner(self._parsed_data, self._signer_uri)

    signature_alg = self._protocol.GetSigningAlg(self._signer_key)
    self._sig = signature_alg.Sign(self._data)
    self._alg = signature_alg.GetName()

    # Hmm.  This seems like a no-brainer assert but what if you're
    # signing something with a not-yet-published public key?
    assert signature_alg.Verify(self._data, self._sig)

    # TODO(jpanzer): Clear private key data from object?
JRPC test: services.communiations.storePassiveMessage (2)
dataset/ETHPy150Open mimecuvalo/helloworld/packages/magicsig/__init__.py/Envelope._Sign--crossover with--dataset/ETHPy150Open satnet-project/server/services/communications/tests/test_jrpc.py/TestPassiveCommunications.test_store_passive_message