class_docstr: Implementation for experiment payload builder
  using public key RSA encryption.
class_docstr_tok: ["Implementation","for","experiment","payload","builder","using","public","key","RSA","encryption","."]
docstr: encrypted_payload - base64 representation of the encrypted payload.
  returns: base64-encoded signature
docstr_tok: ["encrypted_payload","-","base64","representation","of","the","encrypted","payload",".","returns",":","base64-encoded","signature"]
code: def _sign_payload(self, encrypted_payload):
      """
      encrypted_payload - base64 representation of the encrypted payload.
      returns: base64-encoded signature
      """
      sign_message = self.sender_key.sign(encrypted_payload)
  
      # Verify what we generated just in case:
      try:
          self.verify_key.verify(sign_message)
      except Exception as exc:
          msg: str = (
              "FAILED to verify signed data - {0}. ABORTING.".format(
                  exc
              )
          )
          self._raise_error(msg)
  
      result = base64.b64encode(sign_message.signature)
      return result
  
imports: from Crypto.PublicKey import RSA
  from Crypto.Cipher import PKCS1_OAEP
  from Crypto.Hash import SHA256
  import nacl.secret
  import nacl.utils
  from nacl.signing import SigningKey, VerifyKey
  import base64
  import json
  from sshpubkeys import SSHKey
  from studio.ed25519_key_util import Ed25519KeyUtil
  from studio.payload_builders.payload_builder import PayloadBuilder
  from studio.util import logs
  from studio.payload_builders.unencrypted_payload_builder import UnencryptedPayloadBuilder
  from studio.util.util import check_for_kb_interrupt
label_desc: Use image node_id 8 for calling the EncryptedPayloadBuilder obj's underlying member method code with example usage: obj._sign_payload(encrypted_payload) and returns: result