示例#1
0
 def compute_mac(self, data: bytes) -> bytes:
     request = testing_api_pb2.ComputeMacRequest(keyset=self._keyset,
                                                 data=data)
     response = self._stub.ComputeMac(request)
     if response.err:
         raise tink.TinkError(response.err)
     return response.mac_value
示例#2
0
 def compute_mac(self, data: bytes) -> bytes:
     logging.info('compute_mac in lang %s.', self.lang)
     request = testing_api_pb2.ComputeMacRequest(keyset=self._keyset,
                                                 data=data)
     response = self._stub.ComputeMac(request)
     if response.err:
         logging.info('error compute_mac in %s: %s', self.lang,
                      response.err)
         raise tink.TinkError(response.err)
     return response.mac_value
  def test_generate_compute_verify_mac(self):
    keyset_servicer = services.KeysetServicer()
    mac_servicer = services.MacServicer()

    template = mac.mac_key_templates.HMAC_SHA256_128BITTAG.SerializeToString()
    gen_request = testing_api_pb2.KeysetGenerateRequest(template=template)
    gen_response = keyset_servicer.Generate(gen_request, self._ctx)
    self.assertEqual(gen_response.WhichOneof('result'), 'keyset')
    keyset = gen_response.keyset
    data = b'The quick brown fox jumps over the lazy dog'
    comp_request = testing_api_pb2.ComputeMacRequest(keyset=keyset, data=data)
    comp_response = mac_servicer.ComputeMac(comp_request, self._ctx)
    self.assertEqual(comp_response.WhichOneof('result'), 'mac_value')
    mac_value = comp_response.mac_value
    verify_request = testing_api_pb2.VerifyMacRequest(
        keyset=keyset, mac_value=mac_value, data=data)
    verify_response = mac_servicer.VerifyMac(verify_request, self._ctx)
    self.assertEmpty(verify_response.err)