From 023307943705a5d4400d23fcf0e8126e998a15b5 Mon Sep 17 00:00:00 2001
From: epuig <epuig@google.com>
Date: Wed, 24 Jul 2019 04:35:48 -0700
Subject: [PATCH] Move tink_config out from core.

PiperOrigin-RevId: 259716293
---
 __init__.py                                   |   2 +-
 python/aead/aead_key_manager_test.py          |   2 +-
 python/core/keyset_handle_test.py             |   2 +-
 python/core/tink_config.py                    |  75 ------
 python/core/tink_config_test.py               | 225 ------------------
 .../deterministic_aead_key_manager_test.py    |   2 +-
 python/hybrid/hybrid_key_manager_test.py      |   2 +-
 .../public_key_sign_key_manager_test.py       |   2 +-
 .../public_key_verify_key_manager_test.py     |   2 +-
 .../signature/signature_key_templates_test.py |   2 +-
 10 files changed, 8 insertions(+), 308 deletions(-)
 delete mode 100644 python/core/tink_config.py
 delete mode 100644 python/core/tink_config_test.py

diff --git a/__init__.py b/__init__.py
index 5b8c5ab8a..63ee79701 100644
--- a/__init__.py
+++ b/__init__.py
@@ -24,7 +24,7 @@ from tink.python import daead
 from tink.python import hybrid
 from tink.python import mac
 from tink.python import signature
-from tink.python.core import tink_config
+from tink.python import tink_config
 
 
 Aead = aead.Aead
diff --git a/python/aead/aead_key_manager_test.py b/python/aead/aead_key_manager_test.py
index 685d93ef0..6a1a9b481 100644
--- a/python/aead/aead_key_manager_test.py
+++ b/python/aead/aead_key_manager_test.py
@@ -22,9 +22,9 @@ from absl.testing import absltest
 from tink.proto import aes_eax_pb2
 from tink.proto import aes_gcm_pb2
 from tink.proto import tink_pb2
+from tink.python import tink_config
 from tink.python.aead import aead
 from tink.python.aead import aead_key_manager
-from tink.python.core import tink_config
 from tink.python.core import tink_error
 
 
diff --git a/python/core/keyset_handle_test.py b/python/core/keyset_handle_test.py
index 3ab6595a4..50ccb9aa3 100644
--- a/python/core/keyset_handle_test.py
+++ b/python/core/keyset_handle_test.py
@@ -27,7 +27,7 @@ from tink.python import aead
 from tink.python import core
 from tink.python import hybrid
 from tink.python import mac
-from tink.python.core import tink_config
+from tink.python import tink_config
 from tink.python.testing import helper
 
 
diff --git a/python/core/tink_config.py b/python/core/tink_config.py
deleted file mode 100644
index 0ba8523cc..000000000
--- a/python/core/tink_config.py
+++ /dev/null
@@ -1,75 +0,0 @@
-# Copyright 2019 Google LLC.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Static methods for handling of Tink configurations."""
-
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-
-from tink.python import aead
-from tink.python import daead
-from tink.python import hybrid
-from tink.python import mac
-from tink.python import signature
-from tink.python.aead import aead_key_manager
-from tink.python.cc.clif import cc_tink_config
-from tink.python.core import registry
-from tink.python.daead import deterministic_aead_key_manager
-from tink.python.hybrid import hybrid_decrypt_key_manager
-from tink.python.hybrid import hybrid_encrypt_key_manager
-from tink.python.mac import mac_key_manager
-from tink.python.signature import public_key_sign_key_manager
-from tink.python.signature import public_key_verify_key_manager
-
-
-KEY_MANAGER_GENERATORS = {
-    'Aead': aead_key_manager.from_cc_registry,
-    'DeterministicAead': deterministic_aead_key_manager.from_cc_registry,
-    'HybridDecrypt': hybrid_decrypt_key_manager.from_cc_registry,
-    'HybridEncrypt': hybrid_encrypt_key_manager.from_cc_registry,
-    'Mac': mac_key_manager.from_cc_registry,
-    'PublicKeySign': public_key_sign_key_manager.from_cc_registry,
-    'PublicKeyVerify': public_key_verify_key_manager.from_cc_registry,
-}
-
-
-def register():
-  cc_tink_config.register()
-  _register_key_managers()
-  _register_primitive_wrappers()
-
-
-def latest():
-  return cc_tink_config.latest()
-
-
-def _register_key_managers():
-  for entry in cc_tink_config.latest().entry:
-    if entry.primitive_name in KEY_MANAGER_GENERATORS:
-      registry.Registry.register_key_manager(
-          KEY_MANAGER_GENERATORS[entry.primitive_name](entry.type_url),
-          entry.new_key_allowed)
-
-
-def _register_primitive_wrappers():
-  """Registers all primitive wrappers."""
-  register_primitive_wrapper = registry.Registry.register_primitive_wrapper
-  register_primitive_wrapper(aead.AeadWrapper())
-  register_primitive_wrapper(daead.DeterministicAeadWrapper())
-  register_primitive_wrapper(hybrid.HybridDecryptWrapper())
-  register_primitive_wrapper(hybrid.HybridEncryptWrapper())
-  register_primitive_wrapper(mac.MacWrapper())
-  register_primitive_wrapper(signature.PublicKeySignWrapper())
-  register_primitive_wrapper(signature.PublicKeyVerifyWrapper())
diff --git a/python/core/tink_config_test.py b/python/core/tink_config_test.py
deleted file mode 100644
index 6fe0e3161..000000000
--- a/python/core/tink_config_test.py
+++ /dev/null
@@ -1,225 +0,0 @@
-# Copyright 2019 Google LLC.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Tests for tink.python.tink_config."""
-
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-
-from absl.testing import absltest
-from tink.proto import tink_pb2
-from tink.python import aead
-from tink.python import core
-from tink.python import daead
-from tink.python import hybrid
-from tink.python import mac
-from tink.python import signature
-from tink.python.core import tink_config
-
-
-def setUpModule():
-  tink_config.register()
-
-
-def _primitive_and_key(key_data, primitive_class, output_prefix_type):
-  primitive = core.Registry.primitive(key_data, primitive_class)
-  key = tink_pb2.Keyset.Key(
-      key_id=1, status=tink_pb2.ENABLED, output_prefix_type=output_prefix_type)
-  key.key_data.CopyFrom(key_data)
-  return primitive, key
-
-
-def _new_primitive_and_key(template, primitive_class, output_prefix_type):
-  return _primitive_and_key(
-      core.Registry.new_key_data(template), primitive_class, output_prefix_type)
-
-
-def _public_primitive_and_key(private_key, primitive_class, output_prefix_type):
-  return _primitive_and_key(
-      core.Registry.public_key_data(private_key.key_data), primitive_class,
-      output_prefix_type)
-
-
-class TinkConfigTest(absltest.TestCase):
-
-  def test_all_aead_templates_are_registered(self):
-    for template in [
-        aead.aead_key_templates.AES128_EAX,
-        aead.aead_key_templates.AES256_EAX,
-        aead.aead_key_templates.AES128_GCM,
-        aead.aead_key_templates.AES256_GCM,
-        aead.aead_key_templates.AES128_CTR_HMAC_SHA256,
-        aead.aead_key_templates.AES256_CTR_HMAC_SHA256,
-        aead.aead_key_templates.XCHACHA20_POLY1305
-    ]:
-      key_data = core.Registry.new_key_data(template)
-      primitive = core.Registry.primitive(key_data, aead.Aead)
-      self.assertEqual(
-          primitive.decrypt(primitive.encrypt(b'message', b'ad'), b'ad'),
-          b'message')
-
-  def test_all_mac_templates_are_registered(self):
-    for template in [
-        mac.mac_key_templates.HMAC_SHA256_128BITTAG,
-        mac.mac_key_templates.HMAC_SHA256_256BITTAG
-    ]:
-      key_data = core.Registry.new_key_data(template)
-      primitive = core.Registry.primitive(key_data, mac.Mac)
-      self.assertIsNone(
-          primitive.verify_mac(primitive.compute_mac(b'data'), b'data'))
-
-  def test_all_deterministic_aead_templates_are_registered(self):
-    key_data = core.Registry.new_key_data(
-        daead.deterministic_aead_key_templates.AES256_SIV)
-    daead_primitive = core.Registry.primitive(key_data, daead.DeterministicAead)
-    ciphertext = daead_primitive.encrypt_deterministically(b'message', b'ad')
-    self.assertEqual(
-        daead_primitive.decrypt_deterministically(ciphertext, b'ad'),
-        b'message')
-
-  def test_aead_wrapper_is_correctly_registered(self):
-    aead1, key1 = _new_primitive_and_key(aead.aead_key_templates.AES128_EAX,
-                                         aead.Aead, tink_pb2.RAW)
-    aead2, key2 = _new_primitive_and_key(aead.aead_key_templates.AES256_GCM,
-                                         aead.Aead, tink_pb2.TINK)
-    pset = core.PrimitiveSet(aead.Aead)
-    pset.add_primitive(aead1, key1)
-    pset.set_primary(pset.add_primitive(aead2, key2))
-    wrapped_aead = core.Registry.wrap(pset)
-
-    self.assertEqual(
-        wrapped_aead.decrypt(aead1.encrypt(b'plaintext1', b'ad1'), b'ad1'),
-        b'plaintext1')
-    self.assertEqual(
-        wrapped_aead.decrypt(
-            wrapped_aead.encrypt(b'plaintext2', b'ad2'), b'ad2'), b'plaintext2')
-
-  def test_mac_wrapper_is_correctly_registered(self):
-    mac1, key1 = _new_primitive_and_key(
-        mac.mac_key_templates.HMAC_SHA256_128BITTAG, mac.Mac, tink_pb2.RAW)
-    mac2, key2 = _new_primitive_and_key(
-        mac.mac_key_templates.HMAC_SHA256_256BITTAG, mac.Mac, tink_pb2.TINK)
-    pset = core.PrimitiveSet(mac.Mac)
-    pset.add_primitive(mac1, key1)
-    pset.set_primary(pset.add_primitive(mac2, key2))
-    wrapped_mac = core.Registry.wrap(pset)
-
-    self.assertIsNone(
-        wrapped_mac.verify_mac(mac1.compute_mac(b'data1'), b'data1'))
-    self.assertIsNone(
-        wrapped_mac.verify_mac(wrapped_mac.compute_mac(b'data2'), b'data2'))
-
-  def test_deterministic_aead_wrapper_is_correctly_registered(self):
-    daead1, key1 = _new_primitive_and_key(
-        daead.deterministic_aead_key_templates.AES256_SIV,
-        daead.DeterministicAead, tink_pb2.RAW)
-    daead2, key2 = _new_primitive_and_key(
-        daead.deterministic_aead_key_templates.AES256_SIV,
-        daead.DeterministicAead, tink_pb2.TINK)
-    pset = core.PrimitiveSet(daead.DeterministicAead)
-    pset.add_primitive(daead1, key1)
-    pset.set_primary(pset.add_primitive(daead2, key2))
-    wrapped_daead = core.Registry.wrap(pset)
-
-    self.assertEqual(
-        wrapped_daead.decrypt_deterministically(
-            daead1.encrypt_deterministically(b'plaintext1', b'ad1'), b'ad1'),
-        b'plaintext1')
-    self.assertEqual(
-        wrapped_daead.decrypt_deterministically(
-            wrapped_daead.encrypt_deterministically(b'plaintext2', b'ad2'),
-            b'ad2'), b'plaintext2')
-
-  def test_hybrid_wrappers_are_correctly_registered(self):
-    dec1, dec1_key = _new_primitive_and_key(
-        hybrid.hybrid_key_templates.ECIES_P256_HKDF_HMAC_SHA256_AES128_GCM,
-        hybrid.HybridDecrypt, tink_pb2.RAW)
-    enc1, enc1_key = _public_primitive_and_key(dec1_key, hybrid.HybridEncrypt,
-                                               tink_pb2.RAW)
-
-    dec2, dec2_key = _new_primitive_and_key(
-        hybrid.hybrid_key_templates.ECIES_P256_HKDF_HMAC_SHA256_AES128_GCM,
-        hybrid.HybridDecrypt, tink_pb2.RAW)
-    enc2, enc2_key = _public_primitive_and_key(dec2_key, hybrid.HybridEncrypt,
-                                               tink_pb2.RAW)
-
-    dec_pset = core.PrimitiveSet(hybrid.HybridDecrypt)
-    dec_pset.add_primitive(dec1, dec1_key)
-    dec_pset.set_primary(dec_pset.add_primitive(dec2, dec2_key))
-    wrapped_dec = core.Registry.wrap(dec_pset)
-
-    enc_pset = core.PrimitiveSet(hybrid.HybridEncrypt)
-    enc_pset.add_primitive(enc1, enc1_key)
-    enc_pset.set_primary(enc_pset.add_primitive(enc2, enc2_key))
-    wrapped_enc = core.Registry.wrap(enc_pset)
-
-    self.assertEqual(
-        wrapped_dec.decrypt(enc1.encrypt(b'plaintext1', b'ad1'), b'ad1'),
-        b'plaintext1')
-    self.assertEqual(
-        wrapped_dec.decrypt(wrapped_enc.encrypt(b'plaintext2', b'ad2'), b'ad2'),
-        b'plaintext2')
-
-  def test_key_managers_for_signature_templates_are_registered(self):
-    key_templates = signature.signature_key_templates
-    for template in [
-        key_templates.ECDSA_P256, key_templates.ECDSA_P384,
-        key_templates.ECDSA_P521, key_templates.ECDSA_P256_IEEE_P1363,
-        key_templates.ECDSA_P256_IEEE_P1363,
-        key_templates.ECDSA_P521_IEEE_P1363, key_templates.ED25519,
-        key_templates.RSA_SSA_PSS_3072_SHA256_SHA256_32_F4,
-        key_templates.RSA_SSA_PSS_4096_SHA512_SHA512_64_F4,
-        key_templates.RSA_SSA_PKCS1_3072_SHA256_F4,
-        key_templates.RSA_SSA_PKCS1_4096_SHA512_F4
-    ]:
-      key_data = core.Registry.new_key_data(template)
-      primitive = core.Registry.primitive(key_data, signature.PublicKeySign)
-      sig = primitive.sign(b'data')
-
-      public_key = core.Registry.public_key_data(key_data)
-      primitive_verify = core.Registry.primitive(public_key,
-                                                 signature.PublicKeyVerify)
-
-      primitive_verify.verify(sig, b'data')
-
-  def test_signature_wrapper_is_correctly_registered(self):
-    sig1, key1 = _new_primitive_and_key(
-        signature.signature_key_templates.ECDSA_P256, signature.PublicKeySign,
-        tink_pb2.TINK)
-    sig2, key2 = _new_primitive_and_key(
-        signature.signature_key_templates.ECDSA_P256, signature.PublicKeySign,
-        tink_pb2.TINK)
-
-    ver1, pubkey1 = _public_primitive_and_key(key1, signature.PublicKeyVerify,
-                                              tink_pb2.TINK)
-    ver2, pubkey2 = _public_primitive_and_key(key2, signature.PublicKeyVerify,
-                                              tink_pb2.TINK)
-
-    pset = core.PrimitiveSet(signature.PublicKeySign)
-    pset.add_primitive(sig1, key1)
-    pset.set_primary(pset.add_primitive(sig2, key2))
-    wrapped_sig = core.Registry.wrap(pset)
-
-    pset_verify = core.new_primitive_set(signature.PublicKeyVerify)
-    pset_verify.add_primitive(ver1, pubkey1)
-    pset_verify.set_primary(pset_verify.add_primitive(ver2, pubkey2))
-    wrapped_ver = core.Registry.wrap(pset_verify)
-
-    sig = wrapped_sig.sign(b'data')
-    wrapped_ver.verify(sig, b'data')
-
-
-if __name__ == '__main__':
-  absltest.main()
diff --git a/python/daead/deterministic_aead_key_manager_test.py b/python/daead/deterministic_aead_key_manager_test.py
index 8856c6fbb..94bf467ce 100644
--- a/python/daead/deterministic_aead_key_manager_test.py
+++ b/python/daead/deterministic_aead_key_manager_test.py
@@ -21,7 +21,7 @@ from __future__ import print_function
 from absl.testing import absltest
 from tink.proto import aes_siv_pb2
 from tink.proto import tink_pb2
-from tink.python.core import tink_config
+from tink.python import tink_config
 from tink.python.core import tink_error
 from tink.python.daead import deterministic_aead
 from tink.python.daead import deterministic_aead_key_manager
diff --git a/python/hybrid/hybrid_key_manager_test.py b/python/hybrid/hybrid_key_manager_test.py
index e4d1783f8..a6ebadd8f 100644
--- a/python/hybrid/hybrid_key_manager_test.py
+++ b/python/hybrid/hybrid_key_manager_test.py
@@ -22,8 +22,8 @@ from absl.testing import absltest
 from tink.proto import common_pb2
 from tink.proto import ecies_aead_hkdf_pb2
 from tink.proto import tink_pb2
+from tink.python import tink_config
 from tink.python.aead import aead_key_templates
-from tink.python.core import tink_config
 from tink.python.core import tink_error
 from tink.python.hybrid import hybrid_decrypt
 from tink.python.hybrid import hybrid_decrypt_key_manager
diff --git a/python/signature/public_key_sign_key_manager_test.py b/python/signature/public_key_sign_key_manager_test.py
index bd18cbe4b..896df2fb7 100644
--- a/python/signature/public_key_sign_key_manager_test.py
+++ b/python/signature/public_key_sign_key_manager_test.py
@@ -23,7 +23,7 @@ from absl.testing import absltest
 from tink.proto import common_pb2
 from tink.proto import ecdsa_pb2
 from tink.proto import tink_pb2
-from tink.python.core import tink_config
+from tink.python import tink_config
 from tink.python.signature import public_key_sign
 from tink.python.signature import public_key_sign_key_manager
 from tink.python.signature import public_key_verify_key_manager
diff --git a/python/signature/public_key_verify_key_manager_test.py b/python/signature/public_key_verify_key_manager_test.py
index d58ea52cf..bfd9a480f 100644
--- a/python/signature/public_key_verify_key_manager_test.py
+++ b/python/signature/public_key_verify_key_manager_test.py
@@ -23,7 +23,7 @@ from absl.testing import absltest
 from tink.proto import common_pb2
 from tink.proto import ecdsa_pb2
 from tink.proto import tink_pb2
-from tink.python.core import tink_config
+from tink.python import tink_config
 from tink.python.core import tink_error
 from tink.python.signature import public_key_sign_key_manager
 from tink.python.signature import public_key_verify_key_manager
diff --git a/python/signature/signature_key_templates_test.py b/python/signature/signature_key_templates_test.py
index da256d022..e5606681b 100644
--- a/python/signature/signature_key_templates_test.py
+++ b/python/signature/signature_key_templates_test.py
@@ -26,7 +26,7 @@ from tink.proto import ecdsa_pb2
 from tink.proto import rsa_ssa_pkcs1_pb2
 from tink.proto import rsa_ssa_pss_pb2
 from tink.proto import tink_pb2
-from tink.python.core import tink_config
+from tink.python import tink_config
 from tink.python.signature import public_key_sign_key_manager
 from tink.python.signature import signature_key_templates
 
-- 
GitLab