def generate_rsa_sha1_signature(base_string, client_private_key, *args, **kwargs): """ Calculates an RSA-SHA1 OAuth signature. :see: RSA-SHA1 (http://tools.ietf.org/html/rfc5849#section-3.4.3) :param base_string: Base string. :param client_private_key: PEM-encoded RSA private key. :returns: RSA-SHA1 signature. """ from mom.security.rsa import parse_private_key key = parse_private_key(client_private_key) return base64_encode(key.pkcs1_v1_5_sign(sha1_digest(base_string)))
def verify_rsa_sha1_signature(signature, base_string, client_certificate, *args, **kwargs): """ Verifies a RSA-SHA1 OAuth signature. :see: RSA-SHA1 (http://tools.ietf.org/html/rfc5849#section-3.4.3) :param base_string: Base string. :param signature: RSA-SHA1 OAuth signature. :param client_certificate: PEM-encoded X.509 certificate or RSA public key. :returns: ``True`` if verified to be correct; ``False`` otherwise. """ from mom.security.rsa import parse_public_key key = parse_public_key(client_certificate) return key.pkcs1_v1_5_verify(sha1_digest(base_string), base64_decode(signature))
def test_value(self): self.assertEqual(sha1_digest(*inputs), input_sha1_digest)
def test_value(self): self.assertEqual(hash.sha1_digest(*INPUTS), INPUT_SHA1_DIGEST)