Exemple #1
0
    def test_sign_verify(self):
        keyset_servicer = services.KeysetServicer()
        signature_servicer = services.SignatureServicer()

        template = signature.signature_key_templates.ECDSA_P256.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')
        private_keyset = gen_response.keyset

        pub_request = testing_api_pb2.KeysetPublicRequest(
            private_keyset=private_keyset)
        pub_response = keyset_servicer.Public(pub_request, self._ctx)
        self.assertEqual(pub_response.WhichOneof('result'), 'public_keyset')
        public_keyset = pub_response.public_keyset

        data = b'The quick brown fox jumps over the lazy dog'

        sign_request = testing_api_pb2.SignatureSignRequest(
            private_keyset=private_keyset, data=data)
        sign_response = signature_servicer.Sign(sign_request, self._ctx)
        self.assertEqual(sign_response.WhichOneof('result'), 'signature')
        a_signature = sign_response.signature

        verify_request = testing_api_pb2.SignatureVerifyRequest(
            public_keyset=public_keyset, signature=a_signature, data=data)
        verify_response = signature_servicer.Verify(verify_request, self._ctx)
        self.assertEmpty(verify_response.err)
Exemple #2
0
 def sign(self, data: bytes) -> bytes:
     request = testing_api_pb2.SignatureSignRequest(
         private_keyset=self._private_handle, data=data)
     response = self._stub.Sign(request)
     if response.err:
         raise tink.TinkError(response.err)
     return response.signature
Exemple #3
0
 def sign(self, data: bytes) -> bytes:
     logging.info('compute_mac in lang %s.', self.lang)
     request = testing_api_pb2.SignatureSignRequest(
         private_keyset=self._private_handle, data=data)
     response = self._stub.Sign(request)
     if response.err:
         logging.info('error signature sign in %s: %s', self.lang,
                      response.err)
         raise tink.TinkError(response.err)
     return response.signature