Ejemplo n.º 1
0
def destination_domain_blind_signing():
    report_data_dest = request.form['report_data_dest']
    blinded_nonce_dest = unhexlify(request.form['blinded_nonce_dest'])
    csrf_token = request.form['csrf_token']

    if not validate_csrf_token(csrf_token):
        raise Exception('invalid csrf token')

    return hexlify(
        sign_message(get_rsa_key(('destination-domain.com', report_data_dest)),
                     blinded_nonce_dest))
Ejemplo n.º 2
0
def source_domain_blind_signing():
    destination_domain = request.form['destination_domain']
    click_data_src = request.form['click_data_src']
    blinded_nonce_src = unhexlify(request.form['blinded_nonce_src'])
    csrf_token = request.form['csrf_token']

    if not validate_csrf_token(csrf_token):
        raise Exception('invalid csrf token')

    return hexlify(
        sign_message(
            get_rsa_key(
                ('source-domain.com', destination_domain, click_data_src)),
            blinded_nonce_src))
Ejemplo n.º 3
0
    def test_sign_blind_message(self):
        public_key = get_public_key(self.cache_key)
        blinded_message = blind_message(
            public_key,
            self.message,
            self.blinding_factor
        )

        rsa_key = get_rsa_key(self.cache_key)
        blinded_sig = sign_message(rsa_key, blinded_message)
        unblinded_sig = unblind_message(
            public_key,
            blinded_sig,
            self.blinding_factor
        )
        valid = validate_signature(public_key, self.message, unblinded_sig)
        self.assertTrue(valid)
Ejemplo n.º 4
0
 def test_sign_message(self):
     rsa_key = get_rsa_key(self.cache_key)
     sig = sign_message(rsa_key, self.message)
     public_key = get_public_key(self.cache_key)
     valid = validate_signature(public_key, self.message, sig)
     self.assertTrue(valid)
Ejemplo n.º 5
0
 def test_get_rsa_key_cache(self):
     key1 = get_rsa_key(self.cache_key)
     key2 = get_rsa_key(self.cache_key)
     self.assertEqual(key1, key2)