code: def signature_algo(self):
          
  
          algorithm = self['algorithm'].native
  
          algo_map = {
              'md2_rsa': 'rsassa_pkcs1v15',
              'md5_rsa': 'rsassa_pkcs1v15',
              'sha1_rsa': 'rsassa_pkcs1v15',
              'sha224_rsa': 'rsassa_pkcs1v15',
              'sha256_rsa': 'rsassa_pkcs1v15',
              'sha384_rsa': 'rsassa_pkcs1v15',
              'sha512_rsa': 'rsassa_pkcs1v15',
              'rsassa_pkcs1v15': 'rsassa_pkcs1v15',
              'rsassa_pss': 'rsassa_pss',
              'sha1_dsa': 'dsa',
              'sha224_dsa': 'dsa',
              'sha256_dsa': 'dsa',
              'dsa': 'dsa',
              'sha1_ecdsa': 'ecdsa',
              'sha224_ecdsa': 'ecdsa',
              'sha256_ecdsa': 'ecdsa',
              'sha384_ecdsa': 'ecdsa',
              'sha512_ecdsa': 'ecdsa',
              'sha3_224_ecdsa': 'ecdsa',
              'sha3_256_ecdsa': 'ecdsa',
              'sha3_384_ecdsa': 'ecdsa',
              'sha3_512_ecdsa': 'ecdsa',
              'ecdsa': 'ecdsa',
          }
          if algorithm in algo_map:
              return algo_map[algorithm]
  
          raise ValueError(unwrap(
              '''
              Signature algorithm not known for %s
              ''',
              algorithm
          ))
docs: :return:
              A unicode string of "rsassa_pkcs1v15", "rsassa_pss", "dsa" or
              "ecdsa"