docs: def verify(self, M, S, t=None, h=None, mgf=None, sLen=None):
          """
          Verify alleged signature 'S' is indeed the signature of message 'M' using
          't' signature scheme where 't' can be:
  
          - None: the alleged signature 'S' is directly applied the RSAVP1 signature
                  primitive, as described in PKCS#1 v2.1, i.e. RFC 3447 Sect
                  5.2.1. Simply put, the provided signature is applied a moular
                  exponentiation using the public key. Then, a comparison of the
                  result is done against 'M'. On match, True is returned.
                  Additionnal method parameters are just ignored.
  
          - 'pkcs': the alleged signature 'S' and message 'M' are applied
                  RSASSA-PKCS1-v1_5-VERIFY signature verification scheme as
                  described in Sect. 8.2.2 of RFC 3447. In that context,
                  the hash function name is passed using 'h'. Possible values are
                  "md2", "md4", "md5", "sha1", "tls", "sha224", "sha256", "sha384"
                  and "sha512". If none is provided, sha1 is used. Other additionnal
                  parameters are ignored.
  
          - 'pss': the alleged signature 'S' and message 'M' are applied
                  RSASSA-PSS-VERIFY signature scheme as described in Sect. 8.1.2.
                  of RFC 3447. In that context,
  
                  o 'h' parameter provides the name of the hash method to use.
                     Possible values are "md2", "md4", "md5", "sha1", "tls", "sha224",
                     "sha256", "sha384" and "sha512". if none is provided, sha1
                     is used. 
  
                  o 'mgf' is the mask generation function. By default, mgf
                     is derived from the provided hash function using the
                     generic MGF1 (see pkcs_mgf1() for details).
  
                  o 'sLen' is the length in octet of the salt. You can overload the
                    default value (the octet length of the hash value for provided
                    algorithm) by providing another one with that parameter.
          """
          if h is not None:
              h = mapHashFunc(h)
          if t is None: #RSAVP1
              pad_inst = padding.AsymmetricPadding()
          elif t == "pkcs": # RSASSA-PKCS1-v1_5-VERIFY
              if h is None:
                  h = hashes.SHA1
              pad_inst = padding.PKCS1v15()
  
          elif t == "pss": # RSASSA-PSS-VERIFY
              pad_inst = padding.PSS(mgf = mgf, salg_length = sLen)
  
          else:
              warning("Key.verify(): Unknown signature type (%s) provided" % t)
              return None
          try:
              self.key.verify(
                  signature=S,
                  data=M,
                  padding=pad_inst,
                  algorithm=h(),
              )
              return True
          except InvalidSignature:
              return False